diff options
Diffstat (limited to 'extension')
-rw-r--r-- | extension/ChangeLog | 10 | ||||
-rw-r--r-- | extension/filefuncs.c | 11 | ||||
-rw-r--r-- | extension/fork.c | 11 | ||||
-rw-r--r-- | extension/rwarray.c | 4 | ||||
-rw-r--r-- | extension/testext.c | 37 |
5 files changed, 34 insertions, 39 deletions
diff --git a/extension/ChangeLog b/extension/ChangeLog index a0cc713d..40224589 100644 --- a/extension/ChangeLog +++ b/extension/ChangeLog @@ -1,3 +1,13 @@ +2012-07-08 Arnold D. Robbins <arnold@skeeve.com> + + * filefuncs.c (array_set): Adjust for change in set_array_element API. + * fork.c (array_set_numeric): Ditto. + * rwarray.c (read_array): Use set_array_element_by_elem. + (read_value): Add a cast to silence a compiler warning. + * testext.c (test_array_elem): Adjust for change in set_array_element + API. + (fill_in_array): Ditto. Change parameter name to new_array. + 2012-06-29 Arnold D. Robbins <arnold@skeeve.com> * ordchr.c (do_ord, do_chr): Improve argument checking and diff --git a/extension/filefuncs.c b/extension/filefuncs.c index d4e1b57c..32a3cee6 100644 --- a/extension/filefuncs.c +++ b/extension/filefuncs.c @@ -211,15 +211,12 @@ read_symlink(const char *fname, size_t bufsize, ssize_t *linksize) static void array_set(awk_array_t array, const char *sub, awk_value_t *value) { - awk_element_t element; - awk_value_t tmp; - - memset(& element, 0, sizeof(element)); + awk_value_t index; - element.index = *make_string(sub, strlen(sub), & tmp); - element.value = *value; + set_array_element(array, + make_string(sub, strlen(sub), & index), + value); - set_array_element(array, & element); } /* array_set_numeric --- set an array element with a number */ diff --git a/extension/fork.c b/extension/fork.c index 58089d55..efad17eb 100644 --- a/extension/fork.c +++ b/extension/fork.c @@ -50,15 +50,12 @@ int plugin_is_GPL_compatible; static void array_set_numeric(awk_array_t array, const char *sub, double num) { - awk_element_t element; - awk_value_t tmp; + awk_value_t index, value; - memset(& element, 0, sizeof(element)); + set_array_element(array, + make_string(sub, strlen(sub), & index), + make_number(num, & value)); - element.index = *make_string(sub, strlen(sub), & tmp); - make_number(num, &element.value); - - set_array_element(array, & element); } /* do_fork --- provide dynamically loaded fork() builtin for gawk */ diff --git a/extension/rwarray.c b/extension/rwarray.c index e4ddde3b..a63fa3d2 100644 --- a/extension/rwarray.c +++ b/extension/rwarray.c @@ -344,7 +344,7 @@ read_array(int fd, awk_array_t array) for (i = 0; i < count; i++) { if (read_elem(fd, & new_elem)) { /* add to array */ - if (! set_array_element(array, & new_elem)) { + if (! set_array_element_by_elem(array, & new_elem)) { printf("read_array: set_array_element failed\n"); return 0; } @@ -445,7 +445,7 @@ read_value(int fd, awk_value_t *value) value->str_value.str = malloc(len + 2); memset(value->str_value.str, '\0', len + 2); - if (read(fd, value->str_value.str, len) != len) { + if (read(fd, value->str_value.str, len) != (ssize_t) len) { free(value->str_value.str); return 0; } diff --git a/extension/testext.c b/extension/testext.c index e3975b27..e54055cc 100644 --- a/extension/testext.c +++ b/extension/testext.c @@ -335,9 +335,7 @@ static awk_value_t * test_array_elem(int nargs, awk_value_t *result) { awk_value_t array, index, value; - awk_element_t element; - memset(& element, 0, sizeof(element)); make_number(0.0, result); /* default return until full success */ assert(result != NULL); @@ -366,9 +364,8 @@ test_array_elem(int nargs, awk_value_t *result) valrep2str(& value)); /* change the element - "3" */ - element.index = index; - (void) make_number(42.0, & element.value); - if (! set_array_element(array.array_cookie, & element)) { + (void) make_number(42.0, & value); + if (! set_array_element(array.array_cookie, & index, & value)) { printf("test_array_elem: set_array_element failed\n"); goto out; } @@ -382,18 +379,16 @@ test_array_elem(int nargs, awk_value_t *result) /* add a new element - "7" */ (void) make_string("7", 1, & index); - element.index = index; - (void) make_string("seven", 5, & element.value); - if (! set_array_element(array.array_cookie, & element)) { + (void) make_string("seven", 5, & value); + if (! set_array_element(array.array_cookie, & index, & value)) { printf("test_array_elem: set_array_element failed\n"); goto out; } /* add a subarray */ (void) make_string("subarray", 8, & index); - element.index = index; - fill_in_array(& element.value); - if (! set_array_element(array.array_cookie, & element)) { + fill_in_array(& value); + if (! set_array_element(array.array_cookie, & index, & value)) { printf("test_array_elem: set_array_element (subarray) failed\n"); goto out; } @@ -486,33 +481,29 @@ out: /* fill_in_array --- fill in a new array */ static void -fill_in_array(awk_value_t *value) +fill_in_array(awk_value_t *new_array) { - awk_element_t element; awk_array_t a_cookie; - awk_value_t index; + awk_value_t index, value; a_cookie = create_array(); (void) make_string("hello", 5, & index); - element.index = index; - (void) make_string("world", 5, & element.value); - if (! set_array_element(a_cookie, & element)) { + (void) make_string("world", 5, & value); + if (! set_array_element(a_cookie, & index, & value)) { printf("fill_in_array:%d: set_array_element failed\n", __LINE__); return; } (void) make_string("answer", 6, & index); - element.index = index; - (void) make_number(42.0, & element.value); - if (! set_array_element(a_cookie, & element)) { + (void) make_number(42.0, & value); + if (! set_array_element(a_cookie, & index, & value)) { printf("fill_in_array:%d: set_array_element failed\n", __LINE__); return; } - value->val_type = AWK_ARRAY; - value->array_cookie = a_cookie; - + new_array->val_type = AWK_ARRAY; + new_array->array_cookie = a_cookie; } /* create_new_array --- create a named array */ |