Move variable definitions to the start of their respective blocks.
Improves support for older compilers.
From Boaz Stolk <bstolk@aweta.nl>.
diff --git a/lib/zip_dirent.c b/lib/zip_dirent.c
index cac1565..de6ade8 100644
--- a/lib/zip_dirent.c
+++ b/lib/zip_dirent.c
@@ -613,6 +613,8 @@
zip_uint16_t dostime, dosdate;
zip_encoding_type_t com_enc, name_enc;
zip_extra_field_t *ef;
+ zip_extra_field_t *ef64;
+ zip_uint32_t ef_total_size;
bool is_zip64;
bool is_really_zip64;
zip_uint8_t buf[CDENTRYSIZE];
@@ -686,7 +688,7 @@
return -1;
}
- zip_extra_field_t *ef64 = _zip_ef_new(ZIP_EF_ZIP64, (zip_uint16_t)(_zip_buffer_offset(ef_buffer)), ef_zip64, ZIP_EF_BOTH);
+ ef64 = _zip_ef_new(ZIP_EF_ZIP64, (zip_uint16_t)(_zip_buffer_offset(ef_buffer)), ef_zip64, ZIP_EF_BOTH);
_zip_buffer_free(ef_buffer);
ef64->next = ef;
ef = ef64;
@@ -739,7 +741,7 @@
_zip_buffer_put_16(buffer, _zip_string_length(de->filename));
/* TODO: check for overflow */
- zip_uint32_t ef_total_size = (zip_uint32_t)_zip_ef_size(de->extra_fields, flags) + (zip_uint32_t)_zip_ef_size(ef, ZIP_EF_BOTH);
+ ef_total_size = (zip_uint32_t)_zip_ef_size(de->extra_fields, flags) + (zip_uint32_t)_zip_ef_size(ef, ZIP_EF_BOTH);
_zip_buffer_put_16(buffer, (zip_uint16_t)ef_total_size);
if ((flags & ZIP_FL_LOCAL) == 0) {
diff --git a/lib/zip_source_buffer.c b/lib/zip_source_buffer.c
index e2c5b5a..ea502c9 100644
--- a/lib/zip_source_buffer.c
+++ b/lib/zip_source_buffer.c
@@ -375,6 +375,7 @@
buffer_write(buffer_t *buffer, const zip_uint8_t *data, zip_uint64_t length, zip_error_t *error)
{
zip_uint64_t n, i, fragment_offset;
+ zip_uint8_t **fragments;
if (buffer->offset + length + buffer->fragment_size - 1 < length) {
zip_error_set(error, ZIP_ER_INVAL, 0);
@@ -392,7 +393,7 @@
new_capacity *= 2;
}
- zip_uint8_t **fragments = realloc(buffer->fragments, new_capacity * sizeof(*fragments));
+ fragments = realloc(buffer->fragments, new_capacity * sizeof(*fragments));
if (fragments == NULL) {
zip_error_set(error, ZIP_ER_MEMORY, 0);
diff --git a/lib/zip_source_win32handle.c b/lib/zip_source_win32handle.c
index 7e30dfc..20b2521 100644
--- a/lib/zip_source_win32handle.c
+++ b/lib/zip_source_win32handle.c
@@ -408,6 +408,7 @@
static int
_win32_create_temp_file(_zip_source_win32_read_file_t *ctx)
{
+ zip_uint32_t value;
/*
Windows has GetTempFileName(), but it closes the file after
creation, leaving it open to a horrible race condition. So
@@ -447,7 +448,7 @@
}
}
- zip_uint32_t value = GetTickCount();
+ value = GetTickCount();
for (i = 0; i < 1024 && th == INVALID_HANDLE_VALUE; i++) {
th = ctx->ops->op_create_temp(ctx, &temp, value + i, psa);
if (th == INVALID_HANDLE_VALUE && GetLastError() != ERROR_FILE_EXISTS)
diff --git a/regress/fread.c b/regress/fread.c
index 22b3ae4..cf7cebd 100644
--- a/regress/fread.c
+++ b/regress/fread.c
@@ -177,6 +177,7 @@
zip_file_t *zf;
enum when when_got;
zip_error_t error_got, error_ex;
+ zip_error_t *zf_error;
int err;
char b[8192];
zip_int64_t n;
@@ -188,7 +189,7 @@
if ((zf=zip_fopen(z, name, flags)) == NULL) {
when_got = WHEN_OPEN;
- zip_error_t *zf_error = zip_get_error(z);
+ zf_error = zip_get_error(z);
zip_error_set(&error_got, zip_error_code_zip(zf_error), zip_error_code_system(zf_error));
}
else {
@@ -196,7 +197,7 @@
;
if (n < 0) {
when_got = WHEN_READ;
- zip_error_t *zf_error = zip_file_get_error(zf);
+ zf_error = zip_file_get_error(zf);
zip_error_set(&error_got, zip_error_code_zip(zf_error), zip_error_code_system(zf_error));
}
err = zip_fclose(zf);
diff --git a/regress/modify.c b/regress/modify.c
index 4b9d376..916bdc7 100644
--- a/regress/modify.c
+++ b/regress/modify.c
@@ -133,13 +133,14 @@
static int
add_from_zip(int argc, char *argv[]) {
- zip_uint64_t idx;
+ zip_uint64_t idx, start;
+ zip_int64_t len;
int err;
zip_source_t *zs;
/* add from another zip file */
idx = strtoull(argv[2], NULL, 10);
- zip_uint64_t start = strtoull(argv[3], NULL, 10);
- zip_int64_t len = strtoll(argv[4], NULL, 10);
+ start = strtoull(argv[3], NULL, 10);
+ len = strtoll(argv[4], NULL, 10);
if ((z_in[z_in_count]=zip_open(argv[1], ZIP_CHECKCONS, &err)) == NULL) {
zip_error_t error;
zip_error_init_with_code(&error, err);
diff --git a/regress/source_hole.c b/regress/source_hole.c
index caf6703..eeb9582 100644
--- a/regress/source_hole.c
+++ b/regress/source_hole.c
@@ -344,6 +344,7 @@
static zip_int64_t
buffer_write(buffer_t *buffer, const zip_uint8_t *data, zip_uint64_t length, zip_error_t *error)
{
+ zip_uint8_t **fragment;
if (buffer->offset + length > buffer->nfragments * buffer->fragment_size) {
zip_uint64_t needed_fragments = (buffer->offset + length + buffer->fragment_size - 1) / buffer->fragment_size;
zip_uint64_t new_capacity = buffer->nfragments;
@@ -356,7 +357,7 @@
new_capacity *= 2;
}
- zip_uint8_t **fragment = realloc(buffer->fragment, new_capacity * sizeof(*fragment));
+ fragment = realloc(buffer->fragment, new_capacity * sizeof(*fragment));
if (fragment == NULL) {
zip_error_set(error, ZIP_ER_MEMORY, 0);