gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, extgawk, updated. 1ab61e1508bb2c35d53671


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, extgawk, updated. 1ab61e1508bb2c35d536717868d9dbe5ea20fa93
Date: Tue, 19 Jun 2012 18:26:24 +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, extgawk has been updated
       via  1ab61e1508bb2c35d536717868d9dbe5ea20fa93 (commit)
       via  fd3c1195711270a001d860770098b8c0d9118c10 (commit)
       via  3a40be8a79f9d4e4bb205cca4eb15b1ee811f60c (commit)
      from  1e3ac8a49caeeb991d8163042a576a66db51c74b (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=1ab61e1508bb2c35d536717868d9dbe5ea20fa93

commit 1ab61e1508bb2c35d536717868d9dbe5ea20fa93
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jun 19 20:57:22 2012 +0300

    Additional debugging flags at compile time.

diff --git a/ChangeLog b/ChangeLog
index 0b6f7b4..77f59ec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -17,6 +17,11 @@
        * gawkapi.c (release_flattened_array): Delete elements flagged
        for deletion. Free the flattened array also.
 
+       Add additional debugging when developing:
+
+       * configure.ac: Add additional debugging flags.
+       * configure: Regenerated.
+
 2012-06-18         Arnold D. Robbins     <address@hidden>
 
        * gawkapi.h (get_array_element): Restore `wanted' paramater.
diff --git a/configure b/configure
index 44116db..633ca99 100755
--- a/configure
+++ b/configure
@@ -5535,7 +5535,7 @@ $as_echo_n "checking for special development options... " 
>&6; }
 if test -f $srcdir/.developing
 then
        # add other debug flags as appropriate, save GAWKDEBUG for emergencies
-       CFLAGS="$CFLAGS -DARRAYDEBUG"
+       CFLAGS="$CFLAGS -DARRAYDEBUG -DYYDEBUG"
        if grep dbug $srcdir/.developing
        then
                CFLAGS="$CFLAGS -DDBUG"
@@ -5545,7 +5545,7 @@ then
        # enable debugging using macros also
        if test "$GCC" = yes
        then
-               CFLAGS="$CFLAGS -Wall"
+               CFLAGS="$CFLAGS -Wall -fno-builtin -g3 -gdwarf-2"
        fi
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
diff --git a/configure.ac b/configure.ac
index 55bf0ba..90ad44b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -80,7 +80,7 @@ AC_MSG_CHECKING([for special development options])
 if test -f $srcdir/.developing
 then
        # add other debug flags as appropriate, save GAWKDEBUG for emergencies
-       CFLAGS="$CFLAGS -DARRAYDEBUG"
+       CFLAGS="$CFLAGS -DARRAYDEBUG -DYYDEBUG"
        if grep dbug $srcdir/.developing
        then
                CFLAGS="$CFLAGS -DDBUG"
@@ -90,7 +90,7 @@ then
        # enable debugging using macros also
        if test "$GCC" = yes
        then
-               CFLAGS="$CFLAGS -Wall"
+               CFLAGS="$CFLAGS -Wall -fno-builtin -g3 -gdwarf-2"
        fi
        AC_MSG_RESULT([yes])
 else

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

commit fd3c1195711270a001d860770098b8c0d9118c10
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jun 19 20:54:19 2012 +0300

    Delete marked elements from flattened array.

diff --git a/ChangeLog b/ChangeLog
index 820e1cb..0b6f7b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,22 @@
 2012-06-19         Arnold D. Robbins     <address@hidden>
 
+       Remove code duplication in gawkapi.c from msg.c:
+
        * awk.h (err): Add `isfatal' first parameter.
        * awkgram.y (err): Adjust all calls.
        * msg.c (err): Adjust all calls. Move fatal code to here ...
        (r_fatal): From here.
        * gawkapi.c: Remove code duplication and adjust calls to `err'.
 
+       Handle deleting elements of flattened array:
+
+       * awk.h (get_argument): Remove declaration.
+       * ext.c (get_argument): Make static.
+       * gawkapi.h (awk_flat_array_t): Make opaque fields const. Add
+       more descriptive comments.
+       * gawkapi.c (release_flattened_array): Delete elements flagged
+       for deletion. Free the flattened array also.
+
 2012-06-18         Arnold D. Robbins     <address@hidden>
 
        * gawkapi.h (get_array_element): Restore `wanted' paramater.
diff --git a/awk.h b/awk.h
index 4f120d3..eb512f2 100644
--- a/awk.h
+++ b/awk.h
@@ -1506,7 +1506,6 @@ NODE *do_ext(int nargs);
 NODE *load_ext(const char *lib_name, const char *init_func);
 #ifdef DYNAMIC
 awk_bool_t make_builtin(const awk_ext_func_t *);
-NODE *get_argument(int);
 NODE *get_actual_argument(int, bool, bool);
 #define get_scalar_argument(i, opt)  get_actual_argument((i), (opt), false)
 #define get_array_argument(i, opt)   get_actual_argument((i), (opt), true)
@@ -1605,7 +1604,7 @@ extern int mpg_strtoui(mpz_ptr, char *, size_t, char **, 
int);
 /* msg.c */
 extern void gawk_exit(int status);
 extern void final_exit(int status) ATTRIBUTE_NORETURN;
-extern void err(bool isfatal, const char *s, const char *emsg, va_list argp) 
ATTRIBUTE_PRINTF(2, 0);
+extern void err(bool isfatal, const char *s, const char *emsg, va_list argp) 
ATTRIBUTE_PRINTF(3, 0);
 extern void msg (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
 extern void error (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
 extern void warning (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
diff --git a/ext.c b/ext.c
index d0755cc..4945c7c 100644
--- a/ext.c
+++ b/ext.c
@@ -152,7 +152,7 @@ make_builtin(const awk_ext_func_t *funcinfo)
 
 /* get_argument --- get the i'th argument of a dynamically linked function */
 
-NODE *
+static NODE *
 get_argument(int i)
 {
        NODE *t;
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 54bf3f8..8d8cf2b 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,8 @@
+2012-06-19         Arnold D. Robbins     <address@hidden>
+
+       * testext.c (dump_array_and_delete): Renamed from dump_array.
+       Get second parameter which is index to delete. Update awk test.
+
 2012-06-18         Arnold D. Robbins     <address@hidden>
 
        * filefuncs.c (do_chdir): Change element use to match change types.
diff --git a/extension/testext.c b/extension/testext.c
index f5e16ba..0a7594a 100644
--- a/extension/testext.c
+++ b/extension/testext.c
@@ -84,25 +84,29 @@ valrep2str(const awk_value_t *value)
 BEGIN {
        n = split("blacky rusty sophie raincloud lucky", pets)
        printf "pets has %d elements\n", length(pets)
-       ret = dump_array("pets")
-       printf "dump_array(pets) returned %d\n", ret
+       ret = dump_array_and_delete("pets", "3")
+       printf "dump_array_and_delete(pets) returned %d\n", ret
+       if ("3" in pets)
+               printf("dump_array_and_delete() did NOT remove index \"3\"!\n")
+       else
+               printf("dump_array_and_delete() did remove index \"3\"!\n")
        print ""
 }
 */
 static awk_value_t *
-dump_array(int nargs, awk_value_t *result)
+dump_array_and_delete(int nargs, awk_value_t *result)
 {
-       awk_value_t value, value2;
+       awk_value_t value, value2, value3;
        awk_flat_array_t *flat_array;
        size_t count;
-       int i;
        char *name;
+       int i;
 
        assert(result != NULL);
        make_number(0.0, result);
 
-       if (nargs != 1) {
-               printf("dump_array: nargs not right (%d should be 1)\n", nargs);
+       if (nargs != 2) {
+               printf("dump_array_and_delete: nargs not right (%d should be 
2)\n", nargs);
                goto out;
        }
 
@@ -110,45 +114,56 @@ dump_array(int nargs, awk_value_t *result)
        if (get_argument(0, AWK_STRING, & value)) {
                name = value.str_value.str;
                if (sym_lookup(name, AWK_ARRAY, & value2))
-                       printf("dump_array: sym_lookup of %s passed\n", name);
+                       printf("dump_array_and_delete: sym_lookup of %s 
passed\n", name);
                else {
-                       printf("dump_array: sym_lookup of %s failed\n", name);
+                       printf("dump_array_and_delete: sym_lookup of %s 
failed\n", name);
                        goto out;
                }
        } else {
-               printf("dump_array: get_argument(0) failed\n");
+               printf("dump_array_and_delete: get_argument(0) failed\n");
                goto out;
        }
 
        if (! get_element_count(value2.array_cookie, & count)) {
-               printf("dump_array: get_element_count failed\n");
+               printf("dump_array_and_delete: get_element_count failed\n");
                goto out;
        }
 
-       printf("dump_array: incoming size is %lu\n", (unsigned long) count);
+       printf("dump_array_and_delete: incoming size is %lu\n", (unsigned long) 
count);
 
        if (! flatten_array(value2.array_cookie, & flat_array)) {
-               printf("dump_array: could not flatten array\n");
+               printf("dump_array_and_delete: could not flatten array\n");
                goto out;
        }
 
        if (flat_array->count != count) {
-               printf("dump_array: flat_array->count (%lu) != count (%lu)\n",
+               printf("dump_array_and_delete: flat_array->count (%lu) != count 
(%lu)\n",
                                (unsigned long) flat_array->count,
                                (unsigned long) count);
                goto out;
        }
 
+       if (! get_argument(1, AWK_STRING, & value3)) {
+               printf("dump_array_and_delete: get_argument(1) failed\n");
+               goto out;
+       }
+
        for (i = 0; i < flat_array->count; i++) {
                printf("\t%s[\"%.*s\"] = %s\n",
                        name,
                        (int) flat_array->elements[i].index.str_value.len,
                        flat_array->elements[i].index.str_value.str,
                        valrep2str(& flat_array->elements[i].value));
+
+               if (strcmp(value3.str_value.str, 
flat_array->elements[i].index.str_value.str) == 0) {
+                       flat_array->elements[i].flags |= AWK_ELEMENT_DELETE;
+                       printf("dump_array_and_delete: marking element \"%s\" 
for deletion\n",
+                               flat_array->elements[i].index.str_value.str);
+               }
        }
 
        if (! release_flattened_array(value2.array_cookie, flat_array)) {
-               printf("dump_array: could not release flattened array\n");
+               printf("dump_array_and_delete: could not release flattened 
array\n");
                goto out;
        }
 
@@ -504,7 +519,7 @@ static void at_exit2(void *data, int exit_status)
 }
 
 static awk_ext_func_t func_table[] = {
-       { "dump_array", dump_array, 1 },
+       { "dump_array_and_delete", dump_array_and_delete, 2 },
        { "var_test", var_test, 1 },
        { "test_errno", test_errno, 0 },
        { "test_array_size", test_array_size, 1 },
diff --git a/gawkapi.c b/gawkapi.c
index 92403dc..5eb1688 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -637,15 +637,24 @@ api_release_flattened_array(awk_ext_id_t id,
 
        list = (NODE **) data->opaque2;
 
-       /* FIXME: Delete items flagged for delete. */
+       /* Delete items flagged for delete. */
+       for (i = 0; i < data->count; i++) {
+               if ((data->elements[i].flags & AWK_ELEMENT_DELETE) != 0) {
+                       /* let the other guy do the work */
+                       (void) api_del_array_element(id, a_cookie,
+                                       & data->elements[i].index);
+               }
+       }
 
        /* free index nodes */
-       for (i = 0; i < 2 * array->table_size; i += 2)
+       for (i = 0; i < 2 * array->table_size; i += 2) {
                unref(list[i]);
+       }
 
        efree(list);
+       efree(data);
 
-       return true;    /* for now */
+       return true;
 }
 
 gawk_api_t api_impl = {
diff --git a/gawkapi.h b/gawkapi.h
index 8102f70..7973d7a 100644
--- a/gawkapi.h
+++ b/gawkapi.h
@@ -131,7 +131,8 @@ typedef struct {
 } awk_value_t;
 
 /*
- * A "flattened" array element. Gawk produces an array of these.
+ * A "flattened" array element. Gawk produces an array of these
+ * inside the awk_flattened_array_t.
  * ALL memory pointed to belongs to gawk. Individual elements may
  * be marked for deletion. New elements must be added individually,
  * one at a time, using the separate API for that purpose.
@@ -149,15 +150,20 @@ typedef struct awk_element {
        awk_value_t     value;
 } awk_element_t;
 
+/* This is used to keep the extension from modifying certain fields. */
 #ifdef GAWK
 #define awk_const
 #else
 #define awk_const const
 #endif
 
+/*
+ * A "flattened" array. See the description above for how
+ * to use the elements contained herein.
+ */
 typedef struct awk_flat_array {
-       void *opaque1;                  /* private data for use by gawk */
-       void *opaque2;                  /* private data for use by gawk */
+       awk_const void *opaque1;        /* private data for use by gawk */
+       awk_const void *opaque2;        /* private data for use by gawk */
        awk_const size_t count;         /* how many elements */
        awk_element_t elements[1];      /* will be extended */
 } awk_flat_array_t;
diff --git a/test/ChangeLog b/test/ChangeLog
index f8fc382..44af605 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,7 @@
+2012-06-19         Arnold D. Robbins     <address@hidden>
+
+       * testext.ok: Update contents.
+
 2012-06-18         Arnold D. Robbins     <address@hidden>
 
        * Makefile.am (testext): New test.
diff --git a/test/testext.ok b/test/testext.ok
index 83711a7..2f54668 100644
--- a/test/testext.ok
+++ b/test/testext.ok
@@ -1,12 +1,14 @@
 pets has 5 elements
-dump_array: sym_lookup of pets passed
-dump_array: incoming size is 5
+dump_array_and_delete: sym_lookup of pets passed
+dump_array_and_delete: incoming size is 5
        pets["1"] = "blacky"
        pets["2"] = "rusty"
        pets["3"] = "sophie"
+dump_array_and_delete: marking element "3" for deletion
        pets["4"] = "raincloud"
        pets["5"] = "lucky"
-dump_array(pets) returned 1
+dump_array_and_delete(pets) returned 1
+dump_array_and_delete() did remove index "3"!
 
 var_test: sym_lookup of ARGC passed - did not get a value
 var_test: sym_update("testvar") succeeded

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

commit 3a40be8a79f9d4e4bb205cca4eb15b1ee811f60c
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jun 19 20:42:51 2012 +0300

    Fix code duplication in gawkapi.c from msg.c.

diff --git a/ChangeLog b/ChangeLog
index 2e4c8cb..820e1cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2012-06-19         Arnold D. Robbins     <address@hidden>
+
+       * awk.h (err): Add `isfatal' first parameter.
+       * awkgram.y (err): Adjust all calls.
+       * msg.c (err): Adjust all calls. Move fatal code to here ...
+       (r_fatal): From here.
+       * gawkapi.c: Remove code duplication and adjust calls to `err'.
+
 2012-06-18         Arnold D. Robbins     <address@hidden>
 
        * gawkapi.h (get_array_element): Restore `wanted' paramater.
diff --git a/awk.h b/awk.h
index 6c1e706..4f120d3 100644
--- a/awk.h
+++ b/awk.h
@@ -1605,7 +1605,7 @@ extern int mpg_strtoui(mpz_ptr, char *, size_t, char **, 
int);
 /* msg.c */
 extern void gawk_exit(int status);
 extern void final_exit(int status) ATTRIBUTE_NORETURN;
-extern void err(const char *s, const char *emsg, va_list argp) 
ATTRIBUTE_PRINTF(2, 0);
+extern void err(bool isfatal, const char *s, const char *emsg, va_list argp) 
ATTRIBUTE_PRINTF(2, 0);
 extern void msg (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
 extern void error (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
 extern void warning (const char *mesg, ...) ATTRIBUTE_PRINTF_1;
diff --git a/awkgram.c b/awkgram.c
index 7836dbe..bef9a30 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -4704,7 +4704,7 @@ warning_ln(int line, const char *mesg, ...)
        sourceline = line;
        print_included_from();
        va_start(args, mesg);
-       err(_("warning: "), mesg, args);
+       err(false, _("warning: "), mesg, args);
        va_end(args);
        sourceline = saveline;
 }
@@ -4722,9 +4722,9 @@ lintwarn_ln(int line, const char *mesg, ...)
        print_included_from();
        va_start(args, mesg);
        if (lintfunc == r_fatal)
-               err(_("fatal: "), mesg, args);
+               err(true, _("fatal: "), mesg, args);
        else
-               err(_("warning: "), mesg, args);
+               err(false, _("warning: "), mesg, args);
        va_end(args);
        sourceline = saveline;
        if (lintfunc == r_fatal)
@@ -4744,7 +4744,7 @@ error_ln(int line, const char *m, ...)
        print_included_from();
        errcount++;
        va_start(args, m);
-       err("error: ", m, args);
+       err(false, "error: ", m, args);
        va_end(args);
        sourceline = saveline;
 }
@@ -4822,7 +4822,7 @@ yyerror(const char *m, ...)
                *bp++ = ' ';
        }
        strcpy(bp, mesg);
-       err("", buf, args);
+       err(false, "", buf, args);
        va_end(args);
        efree(buf);
 }
diff --git a/awkgram.y b/awkgram.y
index f7ea5d4..dceca6d 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -1984,7 +1984,7 @@ warning_ln(int line, const char *mesg, ...)
        sourceline = line;
        print_included_from();
        va_start(args, mesg);
-       err(_("warning: "), mesg, args);
+       err(false, _("warning: "), mesg, args);
        va_end(args);
        sourceline = saveline;
 }
@@ -2002,9 +2002,9 @@ lintwarn_ln(int line, const char *mesg, ...)
        print_included_from();
        va_start(args, mesg);
        if (lintfunc == r_fatal)
-               err(_("fatal: "), mesg, args);
+               err(true, _("fatal: "), mesg, args);
        else
-               err(_("warning: "), mesg, args);
+               err(false, _("warning: "), mesg, args);
        va_end(args);
        sourceline = saveline;
        if (lintfunc == r_fatal)
@@ -2024,7 +2024,7 @@ error_ln(int line, const char *m, ...)
        print_included_from();
        errcount++;
        va_start(args, m);
-       err("error: ", m, args);
+       err(false, "error: ", m, args);
        va_end(args);
        sourceline = saveline;
 }
@@ -2102,7 +2102,7 @@ yyerror(const char *m, ...)
                *bp++ = ' ';
        }
        strcpy(bp, mesg);
-       err("", buf, args);
+       err(false, "", buf, args);
        va_end(args);
        efree(buf);
 }
diff --git a/gawkapi.c b/gawkapi.c
index b1fba48..92403dc 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -83,7 +83,6 @@ awk_value_to_node(const awk_value_t *retval)
 }
 
 /* Functions to print messages */
-/* FIXME: Code duplicate from msg.c. Fix this. */
 
 /* api_fatal --- print a fatal message and exit */
 
@@ -95,12 +94,8 @@ api_fatal(awk_ext_id_t id, const char *format, ...)
        (void) id;
 
        va_start(args, format);
-       err(_("fatal: "), format, args);
+       err(true, _("fatal: "), format, args);
        va_end(args);
-#ifdef GAWKDEBUG
-       abort();
-#endif
-       gawk_exit(EXIT_FATAL);
 }
 
 /* api_warning --- print a warning message and exit */
@@ -113,7 +108,7 @@ api_warning(awk_ext_id_t id, const char *format, ...)
        (void) id;
 
        va_start(args, format);
-       err(_("warning: "), format, args);
+       err(false, _("warning: "), format, args);
        va_end(args);
 }
 
@@ -128,14 +123,10 @@ api_lintwarn(awk_ext_id_t id, const char *format, ...)
 
        va_start(args, format);
        if (lintwarn == r_fatal) {
-               err(_("fatal: "), format, args);
+               err(true, _("fatal: "), format, args);
                va_end(args);
-#ifdef GAWKDEBUG
-               abort();
-#endif
-               gawk_exit(EXIT_FATAL);
        } else {
-               err(_("warning: "), format, args);
+               err(false, _("warning: "), format, args);
                va_end(args);
        }
 }
diff --git a/msg.c b/msg.c
index b94e840..bc446a1 100644
--- a/msg.c
+++ b/msg.c
@@ -39,7 +39,7 @@ bool fatal_tag_valid = false;
 
 /* VARARGS2 */
 void
-err(const char *s, const char *emsg, va_list argp)
+err(bool isfatal, const char *s, const char *emsg, va_list argp)
 {
        char *file;
        const char *me;
@@ -89,6 +89,13 @@ err(const char *s, const char *emsg, va_list argp)
        vfprintf(stderr, emsg, argp);
        (void) fprintf(stderr, "\n");
        (void) fflush(stderr);
+
+       if (isfatal) {
+#ifdef GAWKDEBUG
+               abort();
+#endif
+               gawk_exit(EXIT_FATAL);
+       }
 }
 
 /* msg --- take a varargs error message and print it */
@@ -98,7 +105,7 @@ msg(const char *mesg, ...)
 {
        va_list args;
        va_start(args, mesg);
-       err("", mesg, args);
+       err(false, "", mesg, args);
        va_end(args);
 }
 
@@ -109,7 +116,7 @@ warning(const char *mesg, ...)
 {
        va_list args;
        va_start(args, mesg);
-       err(_("warning: "), mesg, args);
+       err(false, _("warning: "), mesg, args);
        va_end(args);
 }
 
@@ -118,7 +125,7 @@ error(const char *mesg, ...)
 {
        va_list args;
        va_start(args, mesg);
-       err(_("error: "), mesg, args);
+       err(false, _("error: "), mesg, args);
        va_end(args);
 }
 
@@ -141,12 +148,8 @@ r_fatal(const char *mesg, ...)
 {
        va_list args;
        va_start(args, mesg);
-       err(_("fatal: "), mesg, args);
+       err(true, _("fatal: "), mesg, args);
        va_end(args);
-#ifdef GAWKDEBUG
-       abort();
-#endif
-       gawk_exit(EXIT_FATAL);
 }
 
 /* gawk_exit --- longjmp out if necessary */

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

Summary of changes:
 ChangeLog           |   24 ++++++++++++++++++++++++
 awk.h               |    3 +--
 awkgram.c           |   10 +++++-----
 awkgram.y           |   10 +++++-----
 configure           |    4 ++--
 configure.ac        |    4 ++--
 ext.c               |    2 +-
 extension/ChangeLog |    5 +++++
 extension/testext.c |   47 +++++++++++++++++++++++++++++++----------------
 gawkapi.c           |   32 ++++++++++++++++----------------
 gawkapi.h           |   12 +++++++++---
 msg.c               |   21 ++++++++++++---------
 test/ChangeLog      |    4 ++++
 test/testext.ok     |    8 +++++---
 14 files changed, 122 insertions(+), 64 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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