aboutsummaryrefslogtreecommitdiffstats
path: root/extension/testext.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2012-07-09 21:17:10 +0300
committerArnold D. Robbins <arnold@skeeve.com>2012-07-09 21:17:10 +0300
commit7d37bcd5a8066718b15de8c03725708819389931 (patch)
tree4ac9c8f43898c9f5a7a5bd6183fb075d22fa8cfe /extension/testext.c
parente1749c3c853ace06796efd7dd3bd3e9bf025a549 (diff)
downloadegawk-7d37bcd5a8066718b15de8c03725708819389931.tar.gz
egawk-7d37bcd5a8066718b15de8c03725708819389931.tar.bz2
egawk-7d37bcd5a8066718b15de8c03725708819389931.zip
API: Update set_array_element(). Adjust extensions.
Diffstat (limited to 'extension/testext.c')
-rw-r--r--extension/testext.c37
1 files changed, 14 insertions, 23 deletions
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 */