diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2016-05-02 06:51:25 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2016-05-02 06:51:25 +0300 |
commit | 4c4a94fb45a7fea9234d328cec36720457b6bc68 (patch) | |
tree | 9d431df8bde0d922563aed8d2f338fa0f17d5f2b | |
parent | 16cb7aa177a9c593450107e9f478fc28d1a7879d (diff) | |
parent | 1cf371db5f30bc9f40a4840f1d1d276ee46619a0 (diff) | |
download | egawk-4c4a94fb45a7fea9234d328cec36720457b6bc68.tar.gz egawk-4c4a94fb45a7fea9234d328cec36720457b6bc68.tar.bz2 egawk-4c4a94fb45a7fea9234d328cec36720457b6bc68.zip |
Merge branch 'gawk-4.1-stable'
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | array.c | 2 | ||||
-rw-r--r-- | awk.h | 3 | ||||
-rw-r--r-- | cint_array.c | 8 | ||||
-rw-r--r-- | int_array.c | 14 | ||||
-rw-r--r-- | str_array.c | 4 |
6 files changed, 28 insertions, 14 deletions
@@ -1,7 +1,16 @@ +2016-05-02 Arnold D. Robbins <arnold@skeeve.com> + + * awk.h (success_node): Declare. + * array.c (success_node): Define. + * cint_array.c, int_array.c, str_array.c: Use `& success_node' + instead of `(NODE **) ! NULL' to indicate success throughout. + Thanks to Pat Rankin for the cleanup suggestion. + 2016-04-27 Arnold D. Robbins <arnold@skeeve.com> * io.c (set_RS): Use rs1scan if do_traditional, even if length - of RS is > 1. + of RS is > 1. Bug reported by Glauco Ciullini + <glauco.ciullini6245@gmail.com>. 2016-04-24 Arnold D. Robbins <arnold@skeeve.com> @@ -28,6 +28,8 @@ extern FILE *output_fp; extern NODE **fmt_list; /* declared in eval.c */ +NODE *success_node; + static size_t SUBSEPlen; static char *SUBSEP; static char indent_char[] = " "; @@ -1075,6 +1075,9 @@ extern afunc_t str_array_func[]; extern afunc_t cint_array_func[]; extern afunc_t int_array_func[]; +/* special node used to indicate success in array routines (not NULL) */ +extern NODE *success_node; + extern BLOCK nextfree[]; extern bool field0_valid; diff --git a/cint_array.c b/cint_array.c index 3945e6e7..e74e279c 100644 --- a/cint_array.c +++ b/cint_array.c @@ -162,7 +162,7 @@ cint_array_init(NODE *symbol ATTRIBUTE_UNUSED, NODE *subs ATTRIBUTE_UNUSED) } else null_array(symbol); - return (NODE **) ! NULL; + return & success_node; } @@ -172,7 +172,7 @@ NODE ** is_uinteger(NODE *symbol, NODE *subs) { if (is_integer(symbol, subs) != NULL && subs->numbr >= 0) - return (NODE **) ! NULL; + return & success_node; return NULL; } @@ -358,7 +358,7 @@ cint_remove(NODE *symbol, NODE *subs) freenode(xn); } - return (NODE **) ! NULL; + return & success_node; xremove: xn = symbol->xarray; @@ -371,7 +371,7 @@ xremove: symbol->table_size--; assert(symbol->table_size > 0); - return (NODE **) ! NULL; + return & success_node; } diff --git a/int_array.c b/int_array.c index c2bf37b5..8e6af037 100644 --- a/int_array.c +++ b/int_array.c @@ -74,7 +74,7 @@ int_array_init(NODE *symbol, NODE *subs ATTRIBUTE_UNUSED) } else null_array(symbol); - return (NODE **) ! NULL; + return & success_node; } /* is_integer --- check if subscript is an integer */ @@ -89,13 +89,13 @@ is_integer(NODE *symbol, NODE *subs) return NULL; if ((subs->flags & NUMINT) != 0) - return (NODE **) ! NULL; + return & success_node; if ((subs->flags & NUMBER) != 0) { d = subs->numbr; if (d <= INT32_MAX && d >= INT32_MIN && d == (int32_t) d) { subs->flags |= NUMINT; - return (NODE **) ! NULL; + return & success_node; } return NULL; } @@ -126,7 +126,7 @@ is_integer(NODE *symbol, NODE *subs) subs->flags |= NUMBER; } subs->flags |= (NUMCUR|NUMINT); - return (NODE **) ! NULL; + return & success_node; } cpend = cp + len; @@ -146,7 +146,7 @@ is_integer(NODE *symbol, NODE *subs) subs->flags |= NUMCUR; if (l <= INT32_MAX && l >= INT32_MIN) { subs->flags |= NUMINT; - return (NODE **) ! NULL; + return & success_node; } } return NULL; @@ -303,7 +303,7 @@ int_remove(NODE *symbol, NODE *subs) } symbol->table_size--; assert(symbol->table_size > 0); - return (NODE **) ! NULL; + return & success_node; } k = subs->numbr; @@ -372,7 +372,7 @@ removed: freenode(xn); } - return (NODE **) ! NULL; /* return success */ + return & success_node; /* return success */ } diff --git a/str_array.c b/str_array.c index 33c9ddcc..2ffa5df9 100644 --- a/str_array.c +++ b/str_array.c @@ -115,7 +115,7 @@ str_array_init(NODE *symbol ATTRIBUTE_UNUSED, NODE *subs ATTRIBUTE_UNUSED) } else null_array(symbol); - return (NODE **) ! NULL; + return & success_node; } @@ -292,7 +292,7 @@ str_remove(NODE *symbol, NODE *subs) symbol->ainit(symbol, NULL); /* re-initialize symbol */ } - return (NODE **) ! NULL; /* return success */ + return & success_node; /* return success */ } } |