gawk-diffs
[Top][All Lists]
Advanced

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

[SCM] gawk branch, feature/bool, updated. gawk-4.1.0-4309-g200c22e


From: Arnold Robbins
Subject: [SCM] gawk branch, feature/bool, updated. gawk-4.1.0-4309-g200c22e
Date: Fri, 30 Apr 2021 04:52:05 -0400 (EDT)

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, feature/bool has been updated
       via  200c22e0556cdaf381d758304e69807d1b0ceff7 (commit)
      from  fbda8cdd8e8c5a324f1174b070aa0bdcffc5115d (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=200c22e0556cdaf381d758304e69807d1b0ceff7

commit 200c22e0556cdaf381d758304e69807d1b0ceff7
Author: Arnold D. Robbins <arnold@skeeve.com>
Date:   Fri Apr 30 11:51:43 2021 +0300

    Fixes to awk.h.

diff --git a/ChangeLog b/ChangeLog
index 9548651..5e2e98e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2021-04-30         Arnold D. Robbins     <arnold@skeeve.com>
+
+       * awk.h (boolval): Remove check for BOOL flag. It was incorrect.
+       Thanks to Andrew Schorr for the catch.
+       For Node_val, update the comment to describe the BOOL flag, and
+       move BOOL up to be alongside the flags for Node_val.
+
 2021-04-28         Arnold D. Robbins     <arnold@skeeve.com>
 
        Make bools plain numbers that have bool flag instead of
diff --git a/awk.h b/awk.h
index c0f44d5..57dae1e 100644
--- a/awk.h
+++ b/awk.h
@@ -436,6 +436,10 @@ typedef struct exp_node {
                 * is a hint to indicate that an integer array optimization may 
be
                 * used when this value appears as a subscript.
                 *
+                * The BOOL flag indicates that this number should be converted 
to True
+                * or False by extensions that interchange data with other 
languages,
+                * via JSON, XML or some other serialization mechanism.
+                *
                 * We hope that the rest of the flags are self-explanatory. :-)
                 */
                MALLOC  = 0x0001,       /* stptr can be free'd, i.e. not a 
field node pointing into a shared buffer */
@@ -445,25 +449,25 @@ typedef struct exp_node {
                NUMBER  = 0x0010,       /* assigned as number */
                USER_INPUT = 0x0020,    /* user input: if NUMERIC then
                                         * a NUMBER */
-               INTLSTR = 0x0040,       /* use localized version */
-               NUMINT  = 0x0080,       /* numeric value is an integer */
-               INTIND  = 0x0100,       /* integral value is array index;
+               BOOL    = 0x0040,       /* this is a boolean value */
+               INTLSTR = 0x0080,       /* use localized version */
+               NUMINT  = 0x0100,       /* numeric value is an integer */
+               INTIND  = 0x0200,       /* integral value is array index;
                                         * lazy conversion to string.
                                         */
-               WSTRCUR = 0x0200,       /* wide str value is current */
-               MPFN    = 0x0400,       /* arbitrary-precision floating-point 
number */
-               MPZN    = 0x0800,       /* arbitrary-precision integer */
-               NO_EXT_SET = 0x1000,    /* extension cannot set a value for 
this variable */
-               NULL_FIELD = 0x2000,    /* this is the null field */
+               WSTRCUR = 0x0400,       /* wide str value is current */
+               MPFN    = 0x0800,       /* arbitrary-precision floating-point 
number */
+               MPZN    = 0x01000,      /* arbitrary-precision integer */
+               NO_EXT_SET = 0x02000,   /* extension cannot set a value for 
this variable */
+               NULL_FIELD = 0x04000,   /* this is the null field */
 
        /* type = Node_var_array */
-               ARRAYMAXED      = 0x4000,       /* array is at max size */
-               HALFHAT         = 0x8000,       /* half-capacity Hashed Array 
Tree;
+               ARRAYMAXED      = 0x08000,      /* array is at max size */
+               HALFHAT         = 0x010000,     /* half-capacity Hashed Array 
Tree;
                                                 * See cint_array.c */
-               XARRAY          = 0x10000,
-               NUMCONSTSTR     = 0x20000,      /* have string value for 
numeric constant */
-               REGEX           = 0x40000,      /* this is a typed regex */
-               BOOL            = 0x80000,      /* this is a boolean value */
+               XARRAY          = 0x020000,
+               NUMCONSTSTR     = 0x040000,     /* have string value for 
numeric constant */
+               REGEX           = 0x080000,     /* this is a typed regex */
        } flags;
        long valref;
 } NODE;
@@ -1998,7 +2002,7 @@ static inline bool
 boolval(NODE *t)
 {
        (void) fixtype(t);
-       if ((t->flags & (BOOL|NUMBER)) != 0)
+       if ((t->flags & NUMBER) != 0)
                return ! is_zero(t);
        return (t->stlen > 0);
 }

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

Summary of changes:
 ChangeLog |  7 +++++++
 awk.h     | 34 +++++++++++++++++++---------------
 2 files changed, 26 insertions(+), 15 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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