snapshot of project "mawk", label t20201009

This commit is contained in:
Thomas E. Dickey 2020-10-03 10:57:03 +00:00
parent 5e9fb68cc4
commit c8dc1a6faf
9 changed files with 62 additions and 26 deletions

View File

@ -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

View File

@ -1,4 +1,4 @@
MANIFEST for mawk, version t20200925
MANIFEST for mawk, version t20201009
--------------------------------------------------------------------------------
MANIFEST this file
ACKNOWLEDGMENT acknowledgements

View File

@ -1,3 +1,15 @@
mawk-cur (1.3.4-20201009) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 03 Oct 2020 04:29:49 -0400
mawk-cur (1.3.4-20201002) unstable; urgency=low
* maintenance updates
-- Thomas E. Dickey <dickey@invisible-island.net> Sat, 26 Sep 2020 04:56:07 -0400
mawk-cur (1.3.4-20200925) unstable; urgency=low
* maintenance updates

View File

@ -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}

View File

@ -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"

33
rexp.c
View File

@ -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);
}

5
rexp.h
View File

@ -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);

View File

@ -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)

10
sizes.h
View File

@ -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