gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, master, updated. 242ee720a6387f87e05d3eb


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. 242ee720a6387f87e05d3eb8e30d2c7061cbf8ef
Date: Fri, 30 Nov 2012 12:24:44 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  242ee720a6387f87e05d3eb8e30d2c7061cbf8ef (commit)
       via  f2d137e07671bb1158f81e5a772c3f994c69953f (commit)
       via  880d9f5b287a8d44227aed80f53395f19c2283a2 (commit)
      from  db20bfeba4c618f380315e18e6433fb6b8e63c26 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=242ee720a6387f87e05d3eb8e30d2c7061cbf8ef

commit 242ee720a6387f87e05d3eb8e30d2c7061cbf8ef
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Nov 30 14:24:19 2012 +0200

    Add awk_true and awk_false to API.

diff --git a/ChangeLog b/ChangeLog
index 0036939..36af31c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,9 @@
        * regcomp.c, regex.c, regex_internal.h, regexec.c: Sync
        with GLIBC.  Why not.
 
+       * gawkapi.c (awk_bool_t): Change into an enum with awk_false and
+       awk_true values.
+
 2012-01-30         Andrew J. Schorr     <address@hidden>
 
        Further cleanups of macros in awk.h
diff --git a/extension/ChangeLog b/extension/ChangeLog
index ca47bf6..fb5a79e 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-30         Arnold D. Robbins     <address@hidden>
+
+       * filefuncs.c readdir.c, revoutput.c, revtwoway.c, rwarray.c,
+       rwarray0.c, testext.c: Use awk_true and awk_false instead of 1 and 0.
+
 2012-11-21         Arnold D. Robbins     <address@hidden>
 
        * filefuncs.c (do_stat): Optional third argument indicates to
diff --git a/extension/filefuncs.c b/extension/filefuncs.c
index c8ef053..85c05b2 100644
--- a/extension/filefuncs.c
+++ b/extension/filefuncs.c
@@ -475,7 +475,7 @@ fill_error_element(awk_array_t element_array, const int 
errcode)
 /* fill_default_elements --- fill in stat and path elements */
 
 static void
-fill_default_elements(awk_array_t element_array, const FTSENT *const fentry, 
int bad_ret)
+fill_default_elements(awk_array_t element_array, const FTSENT *const fentry, 
awk_bool_t bad_ret)
 {
        /* full path */
        fill_path_element(element_array, fentry->fts_path);
@@ -501,12 +501,12 @@ process(FTS *heirarchy, awk_array_t destarray, int seedot)
        FTSENT *fentry;
        awk_value_t index, value;
        awk_array_t element_array, newdir_array, dot_array;
-       int bad_ret = 0;
+       awk_bool_t bad_ret = awk_false;
 
        /* path is full path,  pathlen is length thereof */
        /* name is name in directory, namelen is length thereof */
        while ((fentry = fts_read(heirarchy)) != NULL) {
-               bad_ret = 0;
+               bad_ret = awk_false;
 
                switch (fentry->fts_info) {
                case FTS_D:
@@ -542,7 +542,7 @@ process(FTS *heirarchy, awk_array_t destarray, int seedot)
                case FTS_ERR:
                case FTS_NS:
                        /* error */
-                       bad_ret = 1;
+                       bad_ret = awk_true;
                        /* fall through */
 
                case FTS_NSOK:
diff --git a/extension/readdir.c b/extension/readdir.c
index 05ac8b9..6aebf09 100644
--- a/extension/readdir.c
+++ b/extension/readdir.c
@@ -171,7 +171,7 @@ static awk_bool_t
 dir_can_take_file(const awk_input_buf_t *iobuf)
 {
        if (iobuf == NULL)
-               return 0;
+               return awk_false;
 
        return (iobuf->fd != INVALID_HANDLE && S_ISDIR(iobuf->sbuf.st_mode));
 }
@@ -201,7 +201,7 @@ dir_take_control_of(awk_input_buf_t *iobuf)
                warning(ext_id, _("dir_take_control_of: opendir/fdopendir 
failed: %s"),
                                strerror(errno));
                update_ERRNO_int(errno);
-               return 0;
+               return awk_false;
        }
 
        emalloc(the_dir, open_directory_t *, sizeof(open_directory_t), 
"dir_take_control_of");
@@ -213,7 +213,7 @@ dir_take_control_of(awk_input_buf_t *iobuf)
        iobuf->get_record = dir_get_record;
        iobuf->close_func = dir_close;
 
-       return 1;
+       return awk_true;
 }
 
 static awk_input_parser_t readdir_parser = {
@@ -242,7 +242,7 @@ init_readdir()
        register_input_parser(& readdir_parser2);
 #endif
 
-       return 1;
+       return awk_true;
 }
 
 static awk_ext_func_t func_table[] = {
diff --git a/extension/revoutput.c b/extension/revoutput.c
index 0366672..0536627 100644
--- a/extension/revoutput.c
+++ b/extension/revoutput.c
@@ -79,10 +79,10 @@ revoutput_can_take_file(const awk_output_buf_t *outbuf)
        awk_value_t value;
 
        if (outbuf == NULL)
-               return 0;
+               return awk_false;
 
        if (! sym_lookup("REVOUT", AWK_NUMBER, & value))
-               return 0;
+               return awk_false;
 
        return (value.num_value != 0);
 }
@@ -97,11 +97,11 @@ static awk_bool_t
 revoutput_take_control_of(awk_output_buf_t *outbuf)
 {
        if (outbuf == NULL)
-               return 0;
+               return awk_false;
 
        outbuf->gawk_fwrite = rev_fwrite;
-       outbuf->redirected = 1;
-       return 1;
+       outbuf->redirected = awk_true;
+       return awk_true;
 }
 
 static awk_output_wrapper_t output_wrapper = {
@@ -124,10 +124,10 @@ init_revoutput()
        if (! sym_update("REVOUT", & value)) {
                warning(ext_id, _("revoutput: could not initialize REVOUT 
variable"));
 
-               return 0;
+               return awk_false;
        }
 
-       return 1;
+       return awk_true;
 }
 
 static awk_ext_func_t func_table[] = {
diff --git a/extension/revtwoway.c b/extension/revtwoway.c
index 0008d63..13f0e77 100644
--- a/extension/revtwoway.c
+++ b/extension/revtwoway.c
@@ -280,7 +280,7 @@ revtwoway_take_control_of(const char *name, awk_input_buf_t 
*inbuf, awk_output_b
        two_way_proc_data_t *proc_data;
 
        if (inbuf == NULL || outbuf == NULL)
-               return 0;
+               return awk_false;
 
        emalloc(proc_data, two_way_proc_data_t *, sizeof(two_way_proc_data_t), 
"revtwoway_take_control_of");
        proc_data->in_use = 2;
@@ -304,8 +304,9 @@ revtwoway_take_control_of(const char *name, awk_input_buf_t 
*inbuf, awk_output_b
        outbuf->gawk_fflush = rev2way_fflush;
        outbuf->gawk_ferror = rev2way_ferror;
        outbuf->gawk_fclose = rev2way_fclose;
-       outbuf->redirected = 1;
-       return 1;
+       outbuf->redirected = awk_true;
+
+       return awk_true;
 }
 
 static awk_two_way_processor_t two_way_processor = {
@@ -324,7 +325,7 @@ init_revtwoway()
 
        max_fds = getdtablesize();
 
-       return 1;
+       return awk_true;
 }
 
 static awk_ext_func_t func_table[] = {
diff --git a/extension/rwarray.c b/extension/rwarray.c
index 4311828..cf76f3f 100644
--- a/extension/rwarray.c
+++ b/extension/rwarray.c
@@ -178,24 +178,24 @@ write_array(FILE *fp, awk_array_t array)
 
        if (! flatten_array(array, & flat_array)) {
                fprintf(stderr, _("write_array: could not flatten array\n"));
-               return 0;
+               return awk_false;
        }
 
        count = htonl(flat_array->count);
        if (fwrite(& count, 1, sizeof(count), fp) != sizeof(count))
-               return 0;
+               return awk_false;
 
        for (i = 0; i < flat_array->count; i++) {
                if (! write_elem(fp, & flat_array->elements[i]))
-                       return 0;
+                       return awk_false;
        }
 
        if (! release_flattened_array(array, flat_array)) {
                fprintf(stderr, _("write_array: could not release flattened 
array\n"));
-               return 0;
+               return awk_false;
        }
 
-       return 1;
+       return awk_true;
 }
 
 /* write_elem --- write out a single element */
@@ -208,13 +208,13 @@ write_elem(FILE *fp, awk_element_t *element)
 
        indexval_len = htonl(element->index.str_value.len);
        if (fwrite(& indexval_len, 1, sizeof(indexval_len), fp) != 
sizeof(indexval_len))
-               return 0;
+               return awk_false;
 
        if (element->index.str_value.len > 0) {
                write_count = fwrite(element->index.str_value.str,
                                1, element->index.str_value.len, fp);
                if (write_count != (ssize_t) element->index.str_value.len)
-                       return 0;
+                       return awk_false;
        }
 
        return write_value(fp, & element->value);
@@ -222,7 +222,7 @@ write_elem(FILE *fp, awk_element_t *element)
 
 /* write_value --- write a number or a string or a array */
 
-static int
+static awk_bool_t
 write_value(FILE *fp, awk_value_t *val)
 {
        uint32_t code, len;
@@ -230,32 +230,32 @@ write_value(FILE *fp, awk_value_t *val)
        if (val->val_type == AWK_ARRAY) {
                code = htonl(2);
                if (fwrite(& code, 1, sizeof(code), fp) != sizeof(code))
-                       return 0;
+                       return awk_false;
                return write_array(fp, val->array_cookie);
        }
 
        if (val->val_type == AWK_NUMBER) {
                code = htonl(1);
                if (fwrite(& code, 1, sizeof(code), fp) != sizeof(code))
-                       return 0;
+                       return awk_false;
 
                if (fwrite(& val->num_value, 1, sizeof(val->num_value), fp) != 
sizeof(val->num_value))
-                       return 0;
+                       return awk_false;
        } else {
                code = 0;
                if (fwrite(& code, 1, sizeof(code), fp) != sizeof(code))
-                       return 0;
+                       return awk_false;
 
                len = htonl(val->str_value.len);
                if (fwrite(& len, 1, sizeof(len), fp) != sizeof(len))
-                       return 0;
+                       return awk_false;
 
                if (fwrite(val->str_value.str, 1, val->str_value.len, fp)
                                != (ssize_t) val->str_value.len)
-                       return 0;
+                       return awk_false;
        }
 
-       return 1;
+       return awk_true;
 }
 
 /* do_reada --- read an array */
@@ -358,9 +358,9 @@ read_array(FILE *fp, awk_array_t array)
        uint32_t count;
        awk_element_t new_elem;
 
-       if (fread(& count, 1, sizeof(count), fp) != sizeof(count)) {
-               return 0;
-       }
+       if (fread(& count, 1, sizeof(count), fp) != sizeof(count))
+               return awk_false;
+
        count = ntohl(count);
 
        for (i = 0; i < count; i++) {
@@ -368,16 +368,16 @@ read_array(FILE *fp, awk_array_t array)
                        /* add to array */
                        if (! set_array_element_by_elem(array, & new_elem)) {
                                fprintf(stderr, _("read_array: 
set_array_element failed\n"));
-                               return 0;
+                               return awk_false;
                        }
                } else
                        break;
        }
 
        if (i != count)
-               return 0;
+               return awk_false;
 
-       return 1;
+       return awk_true;
 }
 
 /* read_elem --- read in a single element */
@@ -391,7 +391,7 @@ read_elem(FILE *fp, awk_element_t *element)
        ssize_t ret;
 
        if ((ret = fread(& index_len, 1, sizeof(index_len), fp)) != 
sizeof(index_len)) {
-               return 0;
+               return awk_false;
        }
        index_len = ntohl(index_len);
 
@@ -407,14 +407,14 @@ read_elem(FILE *fp, awk_element_t *element)
                        char *cp = realloc(buffer, index_len);
 
                        if (cp == NULL)
-                               return 0;
+                               return awk_false;
 
                        buffer = cp;
                        buflen = index_len;
                }
 
                if (fread(buffer, 1, index_len, fp) != (ssize_t) index_len) {
-                       return 0;
+                       return awk_false;
                }
                make_const_string(buffer, index_len, & element->index);
        } else {
@@ -422,9 +422,9 @@ read_elem(FILE *fp, awk_element_t *element)
        }
 
        if (! read_value(fp, & element->value))
-               return 0;
+               return awk_false;
 
-       return 1;
+       return awk_true;
 }
 
 /* read_value --- read a number or a string */
@@ -435,15 +435,15 @@ read_value(FILE *fp, awk_value_t *value)
        uint32_t code, len;
 
        if (fread(& code, 1, sizeof(code), fp) != sizeof(code))
-               return 0;
+               return awk_false;
 
        code = ntohl(code);
 
        if (code == 2) {
                awk_array_t array = create_array();
 
-               if (read_array(fp, array) != 0)
-                       return 0; 
+               if (! read_array(fp, array))
+                       return awk_false; 
 
                /* hook into value */
                value->val_type = AWK_ARRAY;
@@ -452,14 +452,14 @@ read_value(FILE *fp, awk_value_t *value)
                double d;
 
                if (fread(& d, 1, sizeof(d), fp) != sizeof(d))
-                       return 0;
+                       return awk_false;
 
                /* hook into value */
                value->val_type = AWK_NUMBER;
                value->num_value = d;
        } else {
                if (fread(& len, 1, sizeof(len), fp) != sizeof(len)) {
-                       return 0;
+                       return awk_false;
                }
                len = ntohl(len);
                value->val_type = AWK_STRING;
@@ -469,11 +469,11 @@ read_value(FILE *fp, awk_value_t *value)
 
                if (fread(value->str_value.str, 1, len, fp) != (ssize_t) len) {
                        free(value->str_value.str);
-                       return 0;
+                       return awk_false;
                }
        }
 
-       return 1;
+       return awk_true;
 }
 
 static awk_ext_func_t func_table[] = {
diff --git a/extension/rwarray0.c b/extension/rwarray0.c
index c50c6a3..353fb15 100644
--- a/extension/rwarray0.c
+++ b/extension/rwarray0.c
@@ -167,24 +167,24 @@ write_array(int fd, awk_array_t array)
 
        if (! flatten_array(array, & flat_array)) {
                fprintf(stderr, _("write_array: could not flatten array\n"));
-               return 0;
+               return awk_false;
        }
 
        count = htonl(flat_array->count);
        if (write(fd, & count, sizeof(count)) != sizeof(count))
-               return 0;
+               return awk_false;
 
        for (i = 0; i < flat_array->count; i++) {
                if (! write_elem(fd, & flat_array->elements[i]))
-                       return 0;
+                       return awk_false;
        }
 
        if (! release_flattened_array(array, flat_array)) {
                fprintf(stderr, _("write_array: could not release flattened 
array\n"));
-               return 0;
+               return awk_false;
        }
 
-       return 1;
+       return awk_true;
 }
 
 /* write_elem --- write out a single element */
@@ -197,13 +197,13 @@ write_elem(int fd, awk_element_t *element)
 
        indexval_len = htonl(element->index.str_value.len);
        if (write(fd, & indexval_len, sizeof(indexval_len)) != 
sizeof(indexval_len))
-               return 0;
+               return awk_false;
 
        if (element->index.str_value.len > 0) {
                write_count = write(fd, element->index.str_value.str,
                                element->index.str_value.len);
                if (write_count != (ssize_t) element->index.str_value.len)
-                       return 0;
+                       return awk_false;
        }
 
        return write_value(fd, & element->value);
@@ -211,7 +211,7 @@ write_elem(int fd, awk_element_t *element)
 
 /* write_value --- write a number or a string or a array */
 
-static int
+static awk_bool_t
 write_value(int fd, awk_value_t *val)
 {
        uint32_t code, len;
@@ -219,32 +219,32 @@ write_value(int fd, awk_value_t *val)
        if (val->val_type == AWK_ARRAY) {
                code = htonl(2);
                if (write(fd, & code, sizeof(code)) != sizeof(code))
-                       return 0;
+                       return awk_false;
                return write_array(fd, val->array_cookie);
        }
 
        if (val->val_type == AWK_NUMBER) {
                code = htonl(1);
                if (write(fd, & code, sizeof(code)) != sizeof(code))
-                       return 0;
+                       return awk_false;
 
                if (write(fd, & val->num_value, sizeof(val->num_value)) != 
sizeof(val->num_value))
-                       return 0;
+                       return awk_false;
        } else {
                code = 0;
                if (write(fd, & code, sizeof(code)) != sizeof(code))
-                       return 0;
+                       return awk_false;
 
                len = htonl(val->str_value.len);
                if (write(fd, & len, sizeof(len)) != sizeof(len))
-                       return 0;
+                       return awk_false;
 
                if (write(fd, val->str_value.str, val->str_value.len)
                                != (ssize_t) val->str_value.len)
-                       return 0;
+                       return awk_false;
        }
 
-       return 1;
+       return awk_true;
 }
 
 /* do_reada --- read an array */
@@ -347,7 +347,7 @@ read_array(int fd, awk_array_t array)
        awk_element_t new_elem;
 
        if (read(fd, & count, sizeof(count)) != sizeof(count)) {
-               return 0;
+               return awk_false;
        }
        count = ntohl(count);
 
@@ -356,16 +356,16 @@ read_array(int fd, awk_array_t array)
                        /* add to array */
                        if (! set_array_element_by_elem(array, & new_elem)) {
                                fprintf(stderr, _("read_array: 
set_array_element failed\n"));
-                               return 0;
+                               return awk_false;
                        }
                } else
                        break;
        }
 
        if (i != count)
-               return 0;
+               return awk_false;
 
-       return 1;
+       return awk_true;
 }
 
 /* read_elem --- read in a single element */
@@ -379,7 +379,7 @@ read_elem(int fd, awk_element_t *element)
        ssize_t ret;
 
        if ((ret = read(fd, & index_len, sizeof(index_len))) != 
sizeof(index_len)) {
-               return 0;
+               return awk_false;
        }
        index_len = ntohl(index_len);
 
@@ -395,14 +395,14 @@ read_elem(int fd, awk_element_t *element)
                        char *cp = realloc(buffer, index_len);
 
                        if (cp == NULL)
-                               return 0;
+                               return awk_false;
 
                        buffer = cp;
                        buflen = index_len;
                }
 
                if (read(fd, buffer, index_len) != (ssize_t) index_len) {
-                       return 0;
+                       return awk_false;
                }
                make_const_string(buffer, index_len, & element->index);
        } else {
@@ -410,9 +410,9 @@ read_elem(int fd, awk_element_t *element)
        }
 
        if (! read_value(fd, & element->value))
-               return 0;
+               return awk_false;
 
-       return 1;
+       return awk_true;
 }
 
 /* read_value --- read a number or a string */
@@ -423,7 +423,7 @@ read_value(int fd, awk_value_t *value)
        uint32_t code, len;
 
        if (read(fd, & code, sizeof(code)) != sizeof(code))
-               return 0;
+               return awk_false;
 
        code = ntohl(code);
 
@@ -431,7 +431,7 @@ read_value(int fd, awk_value_t *value)
                awk_array_t array = create_array();
 
                if (read_array(fd, array) != 0)
-                       return 0; 
+                       return awk_false; 
 
                /* hook into value */
                value->val_type = AWK_ARRAY;
@@ -440,14 +440,14 @@ read_value(int fd, awk_value_t *value)
                double d;
 
                if (read(fd, & d, sizeof(d)) != sizeof(d))
-                       return 0;
+                       return awk_false;
 
                /* hook into value */
                value->val_type = AWK_NUMBER;
                value->num_value = d;
        } else {
                if (read(fd, & len, sizeof(len)) != sizeof(len)) {
-                       return 0;
+                       return awk_false;
                }
                len = ntohl(len);
                value->val_type = AWK_STRING;
@@ -457,11 +457,11 @@ read_value(int fd, awk_value_t *value)
 
                if (read(fd, value->str_value.str, len) != (ssize_t) len) {
                        free(value->str_value.str);
-                       return 0;
+                       return awk_false;
                }
        }
 
-       return 1;
+       return awk_true;
 }
 
 static awk_ext_func_t func_table[] = {
diff --git a/extension/testext.c b/extension/testext.c
index eef62bf..9367da7 100644
--- a/extension/testext.c
+++ b/extension/testext.c
@@ -819,7 +819,7 @@ BEGIN {
 
        create_new_array();
 
-       return 1;
+       return awk_true;
 }
 
 static awk_bool_t (*init_func)(void) = init_testext;
diff --git a/gawkapi.h b/gawkapi.h
index e4dff73..8fc0816 100644
--- a/gawkapi.h
+++ b/gawkapi.h
@@ -113,7 +113,10 @@ extern "C" {
 #define awk_const const
 #endif
 
-typedef int awk_bool_t;        /* we don't use <stdbool.h> on purpose */
+typedef enum awk_bool {
+       awk_false = 0,
+       awk_true
+} awk_bool_t;  /* we don't use <stdbool.h> on purpose */
 
 /* The information about input files that input parsers need to know: */
 typedef struct awk_input {

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=f2d137e07671bb1158f81e5a772c3f994c69953f

commit f2d137e07671bb1158f81e5a772c3f994c69953f
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Nov 30 14:20:43 2012 +0200

    Sync regex routines with GLIBC.

diff --git a/ChangeLog b/ChangeLog
index 352d9da..0036939 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-11-30         Arnold D. Robbins     <address@hidden>
+
+       * regcomp.c, regex.c, regex_internal.h, regexec.c: Sync
+       with GLIBC.  Why not.
+
 2012-01-30         Andrew J. Schorr     <address@hidden>
 
        Further cleanups of macros in awk.h
diff --git a/regcomp.c b/regcomp.c
index f83e454..f6a7fdf 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -573,8 +573,12 @@ regerror (errcode, preg, errbuf, errbuf_size)
     {
       if (BE (msg_size > errbuf_size, 0))
        {
+#if defined HAVE_MEMPCPY || defined _LIBC
+         *((char *) __mempcpy (errbuf, msg, errbuf_size - 1)) = '\0';
+#else
          memcpy (errbuf, msg, errbuf_size - 1);
          errbuf[errbuf_size - 1] = 0;
+#endif
        }
       else
        memcpy (errbuf, msg, msg_size);
@@ -896,7 +900,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len)
 # endif
 
   /* strcasecmp isn't a standard interface. brute force check */
-#if 0
+#ifndef GAWK
   if (strcasecmp (codeset_name, "UTF-8") == 0
       || strcasecmp (codeset_name, "UTF8") == 0)
     dfa->is_utf8 = 1;
@@ -978,8 +982,12 @@ init_word_char (re_dfa_t *dfa)
     {
       if (sizeof (dfa->word_char[0]) == 8)
        {
-         dfa->word_char[0] = UINT64_C (0x03ff000000000000);
-         dfa->word_char[1] = UINT64_C (0x07fffffe87fffffe);
+          /* The extra temporaries here avoid "implicitly truncated"
+             warnings in the case when this is dead code, i.e. 32-bit.  */
+          const uint64_t wc0 = UINT64_C (0x03ff000000000000);
+          const uint64_t wc1 = UINT64_C (0x07fffffe87fffffe);
+         dfa->word_char[0] = wc0;
+         dfa->word_char[1] = wc1;
          i = 2;
        }
       else if (sizeof (dfa->word_char[0]) == 4)
@@ -2679,7 +2687,6 @@ build_range_exp (reg_syntax_t syntax, bitset_t sbcset,
 # endif /* not RE_ENABLE_I18N */
 {
   unsigned int start_ch, end_ch;
-
   /* Equivalence Classes and Character Classes can't be a range start/end.  */
   if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS
          || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS,
diff --git a/regex.c b/regex.c
index 3abc758..5ce79e0 100644
--- a/regex.c
+++ b/regex.c
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
+   Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <address@hidden>.
 
@@ -56,6 +56,9 @@
    #undefs RE_DUP_MAX and sets it to the right value.  */
 #include <limits.h>
 
+/* This header defines the MIN and MAX macros.  */
+#include <sys/param.h>
+
 #ifdef GAWK
 #undef alloca
 #define alloca alloca_is_bad_you_should_never_use_it
diff --git a/regex_internal.h b/regex_internal.h
index f38a13b..36f29e4 100644
--- a/regex_internal.h
+++ b/regex_internal.h
@@ -1,5 +1,5 @@
 /* Extended regular expression matching and search library.
-   Copyright (C) 2002-2005, 2007, 2008, 2010, 2011 Free Software Foundation, 
Inc.
+   Copyright (C) 2002-2012 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Isamu Hasegawa <address@hidden>.
 
@@ -92,7 +92,7 @@ is_blank (int c)
 # ifdef _LIBC
 #  undef gettext
 #  define gettext(msgid) \
-  INTUSE(__dcgettext) (_libc_intl_domainname, msgid, LC_MESSAGES)
+  __dcgettext (_libc_intl_domainname, msgid, LC_MESSAGES)
 # endif
 #else
 # define gettext(msgid) (msgid)
diff --git a/regexec.c b/regexec.c
index ea4a02f..ff90fe3 100644
--- a/regexec.c
+++ b/regexec.c
@@ -375,7 +375,7 @@ re_search_2_stub (bufp, string1, length1, string2, length2, 
start, range, regs,
   const char *str;
   int rval;
   int len = length1 + length2;
-  int free_str = 0;
+  char *s = NULL;
 
   if (BE (length1 < 0 || length2 < 0 || stop < 0 || len < length1, 0))
     return -2;
@@ -384,7 +384,7 @@ re_search_2_stub (bufp, string1, length1, string2, length2, 
start, range, regs,
   if (length2 > 0)
     if (length1 > 0)
       {
-       char *s = re_malloc (char, len);
+       s = re_malloc (char, len);
 
        if (BE (s == NULL, 0))
          return -2;
@@ -395,7 +395,6 @@ re_search_2_stub (bufp, string1, length1, string2, length2, 
start, range, regs,
        memcpy (s + length1, string2, length2);
 #endif
        str = s;
-       free_str = 1;
       }
     else
       str = string2;
@@ -403,8 +402,7 @@ re_search_2_stub (bufp, string1, length1, string2, length2, 
start, range, regs,
     str = string1;
 
   rval = re_search_stub (bufp, str, len, start, range, stop, regs, ret_len);
-  if (free_str)
-    re_free ((char *) str);
+  re_free (s);
   return rval;
 }
 

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=880d9f5b287a8d44227aed80f53395f19c2283a2

commit 880d9f5b287a8d44227aed80f53395f19c2283a2
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Nov 30 14:16:37 2012 +0200

    Further awk.h cleanup.

diff --git a/ChangeLog b/ChangeLog
index 17f53df..352d9da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,17 @@
+2012-01-30         Andrew J. Schorr     <address@hidden>
+
+       Further cleanups of macros in awk.h
+
+       * awk.h (_r, _t): Remove declarations.
+       (unref, m_force_string): Remove macros.
+       (r_unref): Move declaration.
+       (r_force_string): Remove declaration.
+       (DEREF, force_string, force_number, unref): Now inline functions.
+       (POP_STRING, TOP_STRING): Back to macros.
+       * eval.c (_t): Remove definition.
+       * main.c (_r): Remove definition.
+       * node.c (r_force_string): Remove.
+
 2012-11-27         Arnold D. Robbins     <address@hidden>
 
        * builtin.c (do_fflush): Make fflush() and fflush("") both
diff --git a/awk.h b/awk.h
index 557e036..a35484f 100644
--- a/awk.h
+++ b/awk.h
@@ -1034,9 +1034,6 @@ extern int (*cmp_numbers)(const NODE *, const NODE *);
 typedef int (*Func_pre_exec)(INSTRUCTION **);
 typedef void (*Func_post_exec)(INSTRUCTION *);
 
-extern NODE *_t;       /* used as temporary in macros */
-extern NODE *_r;       /* used as temporary in macros */
-
 extern BLOCK nextfree[];
 extern bool field0_valid;
 
@@ -1157,7 +1154,14 @@ extern STACK_ITEM *stack_top;
 
 #define UPREF(r)       (void) ((r)->valref++)
 
-#define DEREF(r)       ( _r = (r), (--_r->valref == 0) ?  r_unref(_r) : 
(void)0 )
+extern void r_unref(NODE *tmp);
+
+static inline void
+DEREF(NODE *r)
+{
+       if (--r->valref == 0)
+               r_unref(r);
+}
 
 #define POP_NUMBER() force_number(POP_SCALAR())
 #define TOP_NUMBER() force_number(TOP_SCALAR())
@@ -1238,24 +1242,33 @@ extern STACK_ITEM *stack_top;
 
 #define efree(p)       free(p)
 
-#define        force_string(s) (_t = (s), m_force_string(_t))  
+static inline NODE *
+force_string(NODE *s)
+{
+       if ((s->flags & STRCUR) != 0
+                   && (s->stfmt == -1 || s->stfmt == CONVFMTidx)
+       )
+               return s;
+       return format_val(CONVFMT, CONVFMTidx, s);
+}
 
 #ifdef GAWKDEBUG
 #define unref  r_unref
-#define m_force_string r_force_string
-extern NODE *r_force_string(NODE *s);
 #define        force_number    str2number
 #else /* not GAWKDEBUG */
 
-#define unref(r)       ( _r = (r), (_r == NULL || --_r->valref > 0) ? \
-                       (void)0 : r_unref(_r) )
-
-#define        m_force_string(_ts)     (((_ts->flags & STRCUR) && \
-                       (_ts->stfmt == -1 || _ts->stfmt == CONVFMTidx)) ? \
-                       _ts : format_val(CONVFMT, CONVFMTidx, _ts))
+static inline void
+unref(NODE *r)
+{
+       if (r != NULL && --r->valref <= 0)
+               r_unref(r);
+}
 
-#define force_number(n)        (_t = (n), \
-               (_t->flags & NUMCUR) ? _t : str2number(_t))
+static inline NODE *
+force_number(NODE *n)
+{
+       return (n->flags & NUMCUR) ? n : str2number(n);
+}
 
 #endif /* GAWKDEBUG */
 
@@ -1549,7 +1562,6 @@ extern NODE *r_format_val(const char *format, int index, 
NODE *s);
 extern NODE *r_dupnode(NODE *n);
 extern NODE *make_str_node(const char *s, size_t len, int flags);
 extern void *more_blocks(int id);
-extern void r_unref(NODE *tmp);
 extern int parse_escape(const char **string_ptr);
 #if MBS_SUPPORT
 extern NODE *str2wstr(NODE *n, size_t **ptr);
@@ -1711,24 +1723,10 @@ TOP_SCALAR()
 }
 
 /* POP_STRING --- pop the string at the top of the stack */
-
-static inline NODE *
-POP_STRING()
-{
-       NODE *s = POP_SCALAR();
-       
-       return m_force_string(s);
-}
+#define POP_STRING()   force_string(POP_SCALAR())
 
 /* TOP_STRING --- get the string at the top of the stack */
-
-static inline NODE *
-TOP_STRING()
-{
-       NODE *s = TOP_SCALAR();
-       
-       return m_force_string(s);
-}
+#define TOP_STRING()   force_string(TOP_SCALAR())
 
 /* in_array --- return pointer to element in array if there */
 
diff --git a/eval.c b/eval.c
index 69b830a..2db2a7d 100644
--- a/eval.c
+++ b/eval.c
@@ -43,7 +43,6 @@ static Func_post_exec post_execute = NULL;
 
 extern void frame_popped();
 
-NODE *_t;              /* used as a temporary in macros */
 int OFSlen;
 int ORSlen;
 int OFMTidx;
diff --git a/main.c b/main.c
index 5e84a3c..6174dd9 100644
--- a/main.c
+++ b/main.c
@@ -71,8 +71,6 @@ NODE *RLENGTH_node, *RSTART_node, *RS_node, *RT_node, 
*SUBSEP_node;
 NODE *PREC_node, *ROUNDMODE_node;
 NODE *TEXTDOMAIN_node;
 
-NODE *_r;      /* used as temporary in stack macros */
-
 long NF;
 long NR;
 long FNR;
@@ -86,7 +84,7 @@ char *TEXTDOMAIN;
 /*
  * CONVFMT is a convenience pointer for the current number to string format.
  * We must supply an initial value to avoid recursion problems of
- *     set_CONVFMT -> fmt_index -> r_force_string: gets NULL CONVFMT
+ *     set_CONVFMT -> fmt_index -> force_string: gets NULL CONVFMT
  * Fun, fun, fun, fun.
  */
 char *CONVFMT = "%.6g";
diff --git a/node.c b/node.c
index a857aa1..8d9354f 100644
--- a/node.c
+++ b/node.c
@@ -260,21 +260,6 @@ no_malloc:
        return s;
 }
 
-
-/* r_force_string --- force a value to be a string */
-
-#ifdef GAWKDEBUG
-NODE *
-r_force_string(NODE *s)
-{
-       if ((s->flags & STRCUR) != 0
-                   && (s->stfmt == -1 || s->stfmt == CONVFMTidx)
-       )
-               return s;
-       return format_val(CONVFMT, CONVFMTidx, s);
-}
-#endif
-
 /* r_dupnode --- duplicate a node */
 
 NODE *

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog             |   22 ++++++++++++++++
 awk.h                 |   62 ++++++++++++++++++++++-----------------------
 eval.c                |    1 -
 extension/ChangeLog   |    5 +++
 extension/filefuncs.c |    8 +++---
 extension/readdir.c   |    8 +++---
 extension/revoutput.c |   14 +++++-----
 extension/revtwoway.c |    9 +++---
 extension/rwarray.c   |   66 ++++++++++++++++++++++++------------------------
 extension/rwarray0.c  |   60 ++++++++++++++++++++++----------------------
 extension/testext.c   |    2 +-
 gawkapi.h             |    5 +++-
 main.c                |    4 +--
 node.c                |   15 -----------
 regcomp.c             |   15 ++++++++---
 regex.c               |    5 +++-
 regex_internal.h      |    4 +-
 regexec.c             |    8 ++---
 18 files changed, 166 insertions(+), 147 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]