From c8dc1a6fafec87f187e379a92df4eacf4abc83c5 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sat, 3 Oct 2020 10:57:03 +0000 Subject: [PATCH] snapshot of project "mawk", label t20201009 --- CHANGES | 6 +++++- MANIFEST | 2 +- package/debian/changelog | 12 ++++++++++++ package/mawk.spec | 4 ++-- patchlev.h | 4 ++-- rexp.c | 33 +++++++++++++++++++++++---------- rexp.h | 5 ++--- rexpdb.c | 12 ++++++++++-- sizes.h | 10 +++++----- 9 files changed, 62 insertions(+), 26 deletions(-) diff --git a/CHANGES b/CHANGES index a165234..32ca642 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,8 @@ --- $MawkId: CHANGES,v 1.313 2020/09/25 00:25:17 tom Exp $ +-- $MawkId: CHANGES,v 1.316 2020/10/03 10:57:03 tom Exp $ + +20201009 + + show limits for brace-expressions in dump. + + change RE_panic to stdarg, and log its message in trace file 20200925 + improve compatibility vs gawk/bwk in gsub handling of backslash by diff --git a/MANIFEST b/MANIFEST index de96211..fac720f 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1,4 +1,4 @@ -MANIFEST for mawk, version t20200925 +MANIFEST for mawk, version t20201009 -------------------------------------------------------------------------------- MANIFEST this file ACKNOWLEDGMENT acknowledgements diff --git a/package/debian/changelog b/package/debian/changelog index d9c5928..8e41d5e 100644 --- a/package/debian/changelog +++ b/package/debian/changelog @@ -1,3 +1,15 @@ +mawk-cur (1.3.4-20201009) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Sat, 03 Oct 2020 04:29:49 -0400 + +mawk-cur (1.3.4-20201002) unstable; urgency=low + + * maintenance updates + + -- Thomas E. Dickey Sat, 26 Sep 2020 04:56:07 -0400 + mawk-cur (1.3.4-20200925) unstable; urgency=low * maintenance updates diff --git a/package/mawk.spec b/package/mawk.spec index fc2bbbe..6393c92 100644 --- a/package/mawk.spec +++ b/package/mawk.spec @@ -1,8 +1,8 @@ Summary: mawk - pattern scanning and text processing language %define AppProgram mawk %define AppVersion 1.3.4 -%define AppRelease 20200925 -# $MawkId: mawk.spec,v 1.85 2020/09/19 08:27:08 tom Exp $ +%define AppRelease 20201009 +# $MawkId: mawk.spec,v 1.87 2020/10/03 10:57:03 tom Exp $ Name: %{AppProgram} Version: %{AppVersion} Release: %{AppRelease} diff --git a/patchlev.h b/patchlev.h index c584aff..b5a6d04 100644 --- a/patchlev.h +++ b/patchlev.h @@ -11,9 +11,9 @@ the GNU General Public License, version 2, 1991. */ /* - * $MawkId: patchlev.h,v 1.111 2020/09/19 08:27:08 tom Exp $ + * $MawkId: patchlev.h,v 1.113 2020/10/03 10:57:03 tom Exp $ */ #define PATCH_BASE 1 #define PATCH_LEVEL 3 #define PATCH_STRING ".4" -#define DATE_STRING "20200925" +#define DATE_STRING "20201009" diff --git a/rexp.c b/rexp.c index 6b77805..24a72c5 100644 --- a/rexp.c +++ b/rexp.c @@ -11,7 +11,7 @@ the GNU General Public License, version 2, 1991. ********************************************/ /* - * $MawkId: rexp.c,v 1.27 2020/07/29 19:19:24 tom Exp $ + * $MawkId: rexp.c,v 1.29 2020/10/03 08:26:11 tom Exp $ */ /* op precedence parser for regular expressions */ @@ -249,7 +249,7 @@ REcompile(char *re, size_t len) return (PTR) m_ptr->start; } else { /* machines still on the stack */ - RE_panic2("values still on machine stack for ", re); + RE_panic("values still on machine stack for %s", re); } } /* FALLTHRU */ @@ -365,16 +365,29 @@ REdestroy(PTR ptr) /* getting here means a logic flaw or unforeseen case */ void -RE_panic(const char *s) +RE_panic(const char *format, ...) { - fprintf(stderr, "REcompile() - panic: %s\n", s); - mawk_exit(100); -} + const char *where = "REcompile() - panic: "; + va_list args; + + fflush(stdout); + +#if OPT_TRACE > 0 + va_start(args, format); + Trace("?? %s", where); + TraceVA(format, args); + Trace("\n"); + va_end(args); +#endif + + fputs(where, stderr); + + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + + fprintf(stderr, "\n"); -void -RE_panic2(const char *s1, char *s2) -{ - fprintf(stderr, "REcompile() - panic: %s %s\n", s1, s2); mawk_exit(100); } diff --git a/rexp.h b/rexp.h index d5fc462..f9651f8 100644 --- a/rexp.h +++ b/rexp.h @@ -12,7 +12,7 @@ the GNU General Public License, version 2, 1991. ********************************************/ /* - * $MawkId: rexp.h,v 1.33 2020/09/25 23:28:44 tom Exp $ + * $MawkId: rexp.h,v 1.34 2020/10/02 23:25:24 tom Exp $ */ #ifndef REXP_H @@ -162,8 +162,7 @@ extern void RE_or(MACHINE *, MACHINE *); extern void RE_close(MACHINE *); extern void RE_poscl(MACHINE *); extern void RE_01(MACHINE *); -extern void RE_panic(const char *) GCC_NORETURN; -extern void RE_panic2(const char *, char *) GCC_NORETURN; +extern void RE_panic(const char *, ...) GCC_NORETURN GCC_PRINTFLIKE(1,2); #ifndef NO_INTERVAL_EXPR extern void RE_close_limit(MACHINE *, Int); diff --git a/rexpdb.c b/rexpdb.c index b62d588..1636040 100644 --- a/rexpdb.c +++ b/rexpdb.c @@ -11,7 +11,7 @@ the GNU General Public License, version 2, 1991. ********************************************/ /* - * $MawkId: rexpdb.c,v 1.17 2020/08/25 19:52:24 tom Exp $ + * $MawkId: rexpdb.c,v 1.18 2020/10/03 10:50:44 tom Exp $ */ #include "rexp.h" @@ -71,8 +71,14 @@ REmprint(PTR m, FILE *f) case M_1J: case M_2JA: case M_2JB: + fprintf(f, "\t%d", p->s_data.jump); + break; case M_2JC: fprintf(f, "\t%d", p->s_data.jump); +#ifndef NO_INTERVAL_EXPR + if (p->it_max != MAX__INT) + fprintf(f, "," INT_FMT, p->it_max); +#endif break; case M_CLASS: { @@ -103,7 +109,9 @@ REmprint(PTR m, FILE *f) } break; } - fprintf(f, "\t%s\n", end_on_string); + if (end_on_string[0]) + fprintf(f, "\t%s", end_on_string); + fprintf(f, "\n"); if (end_on_string[0]) p->s_type = (SType) (p->s_type + END_ON); if (p->s_type == M_ACCEPT) diff --git a/sizes.h b/sizes.h index 69fdab6..4a7d5ba 100644 --- a/sizes.h +++ b/sizes.h @@ -11,7 +11,7 @@ the GNU General Public License, version 2, 1991. ********************************************/ /* - * $MawkId: sizes.h,v 1.21 2020/09/13 17:24:05 tom Exp $ + * $MawkId: sizes.h,v 1.22 2020/10/03 10:49:28 tom Exp $ */ /* sizes.h */ @@ -38,17 +38,17 @@ the GNU General Public License, version 2, 1991. #if defined(INT64_MAX) #define MAX__INT INT64_MAX #elif defined(LLONG_MAX) -#define MAX__INT LLONG_MAX +#define MAX__INT LLONG_MAX #elif defined(LONG_LONG_MAX) -#define MAX__INT LONG_LONG_MAX +#define MAX__INT LONG_LONG_MAX #endif #if defined(UINT64_MAX) #define MAX__UINT UINT64_MAX #elif defined(LLONG_MAX) -#define MAX__UINT ULLONG_MAX +#define MAX__UINT ULLONG_MAX #elif defined(LONG_LONG_MAX) -#define MAX__UINT ULONG_LONG_MAX +#define MAX__UINT ULONG_LONG_MAX #endif #define MAX__LONG MAX__INT