aboutsummaryrefslogtreecommitdiffstats
path: root/extension
diff options
context:
space:
mode:
Diffstat (limited to 'extension')
-rw-r--r--extension/ChangeLog10
-rw-r--r--extension/filefuncs.c11
-rw-r--r--extension/fork.c11
-rw-r--r--extension/rwarray.c4
-rw-r--r--extension/testext.c37
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 */