diff options
author | zoorat | 2023-11-11 18:02:53 +0600 |
---|---|---|
committer | zoorat | 2023-11-11 18:02:53 +0600 |
commit | 65705acda2ecb99889393344305be5069def3583 (patch) | |
tree | 2b6eb1820bbfb75fab068f3a0e7e5f28395285a4 | |
parent | 5c18b292f941176622b32d95ccc9621cb3f721d3 (diff) | |
download | aur-65705acda2ecb99889393344305be5069def3583.tar.gz |
adding better tooling
-rw-r--r-- | .SRCINFO | 6 | ||||
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | Makefile | 81 | ||||
-rw-r--r-- | PKGBUILD | 10 | ||||
-rw-r--r-- | changelog.txt | 1088 |
5 files changed, 1182 insertions, 5 deletions
@@ -1,12 +1,16 @@ pkgbase = mawk pkgdesc = An interpreter for the AWK Programming Language pkgver = 1.3.4_20231102 - pkgrel = 1 + pkgrel = 2 url = http://invisible-island.net/mawk/ + changelog = changelog.txt arch = i686 arch = x86_64 license = GPL depends = glibc + options = strip + options = emptydirs + options = zipman source = https://invisible-island.net/archives/mawk/mawk-1.3.4-20231102.tgz b2sums = c423381900be429dcfb117df3ceb72dc942aec6e85ea94e59b2fef1b92445620cff3205fb55be1ddee2bfba9597a1c68ed2f41bb155a1cc6791df0f6de75b44b diff --git a/.gitignore b/.gitignore index f71c635dafda..6f29b0abf773 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ * !.gitignore +!Makefile !PKGBUILD !.SRCINFO +!changelog.txt diff --git a/Makefile b/Makefile new file mode 100644 index 000000000000..6ee1a3dc8e82 --- /dev/null +++ b/Makefile @@ -0,0 +1,81 @@ +MAKEFLAGS += --warn-undefined-variables +SHELL=/bin/bash + +VERSION = $(shell grep pkgver .SRCINFO | cut -d '=' -f 2 | tr -d '[:space:]') +TRASH = $(shell git check-ignore * | tr '\n' ' ') + +# DEFAULT +all: clean log sum build check pre clean + +# just build the package +build: + makepkg -sfr + +# build and install the package +install: + makepkg --install + +# update checksums +sum: + updpkgsums + +# check/lint +check: + @echo "shellcheck: " + shellcheck -e SC2148 -e SC2034 PKGBUILD || exit 0 + + @echo "shell formate: " + shfmt -d PKGBUILD || exit 0 + + @echo "checking PKGBUILD: " + namcap -i PKGBUILD + + @echo "checking build: " + namcap -i *.pkg.* + +# clean up the mess +clean: +ifeq ($(strip $(TRASH)),) + @echo "nothing to clear" +else + file $(TRASH) + @echo -n "Are you sure? [Y/n] " && read ans && if [ $${ans:-'Y'} = 'Y' ]; then \ + trash-put -v $(TRASH) ; \ + exit 0 ; \ + fi +endif + +# generate `changelog.md` +log: + @echo "wait, it will take some time" + curl "https://invisible-island.net/mawk/CHANGES" --output changelog.txt + +# prepare for commit +pre: + shfmt -w PKGBUILD + makepkg --printsrcinfo > .SRCINFO + + git diff + + git add PKGBUILD + git add changelog.txt + git add .SRCINFO + git add .gitignore + git add Makefile + +# commit with version bump message +commit: + $(eval VERSION := $(shell read -p "enter version (pkgver=$(VERSION)): " enter ; echo $${enter})) + @echo "commit message: \"updating to v$(VERSION)\"" + + @echo -n "Are you sure? [Y/n] " && read ans && if [ $${ans:-'Y'} = 'Y' ]; then \ + git diff --cached ; \ + exit 0 ; \ + fi + + @echo -n "Are you sure? [Y/n] " && read ans && if [ $${ans:-'Y'} = 'Y' ]; then \ + git commit -m "updating to v$(VERSION)" ; \ + exit 0 ; \ + fi + + @echo "recheck everything before pushing to AUR" @@ -5,7 +5,7 @@ pkgname=mawk pkgver=1.3.4_20231102 -pkgrel=1 +pkgrel=2 pkgdesc="An interpreter for the AWK Programming Language" arch=('i686' 'x86_64') @@ -13,20 +13,22 @@ url="http://invisible-island.net/mawk/" license=('GPL') depends=('glibc') +options=(strip emptydirs zipman) +changelog="changelog.txt" source=("https://invisible-island.net/archives/$pkgname/$pkgname-${pkgver//_/-}.tgz") b2sums=('c423381900be429dcfb117df3ceb72dc942aec6e85ea94e59b2fef1b92445620cff3205fb55be1ddee2bfba9597a1c68ed2f41bb155a1cc6791df0f6de75b44b') build() { - cd $pkgname-${pkgver/_/-} + cd $pkgname-${pkgver/_/-} || exit sed -ie 's|log()|log(1.0)|g' configure sed -ie "s|trap *0|trap 'exit 0' 0|g" test/* ./configure - make -j1 + make } package() { - cd $pkgname-${pkgver/_/-} + cd $pkgname-${pkgver/_/-} || exit install -d "$pkgdir"/usr/bin install -d "$pkgdir"/usr/share/man/man1 make BINDIR="$pkgdir"/usr/bin MANDIR="$pkgdir"/usr/share/man/man1 install diff --git a/changelog.txt b/changelog.txt new file mode 100644 index 000000000000..1510417f127c --- /dev/null +++ b/changelog.txt @@ -0,0 +1,1088 @@ +-- $MawkId: CHANGES,v 1.366 2023/11/02 23:27:07 tom Exp $ + +20231102 + + environment-fixes for building with Solaris 10. + +20231101 + + repair parsing for comma-separated -W options used in "#" lines + (report by Leif Baron). + + updated makedeps.sh and examples/deps.awk, to update Makefile.in + + remove obsolete/incorrect zero-termination assignment from fillbuff() + (Original-Mawk #71). + + updated configure macros + + update config.guess and config.sub + +20230816 + + start work on _CALLX + + da.c: replace most of the string-literals in fprintf's with result + from da_op_name() + + da.c, mawk.h: simplify ifdef for da_op_name(), to reuse in + refactoring of _CALL + + da.c: dumping the function name in front of the offset is + distracting, use just "@" + + da.c: make the trace show offsets like the -Wdump option + + da.c: add traces to show which function is being dumped (and + possibly patched). this improves on the fix for dump_funcs() as well, + freeing the linked-list + + code.c: fix a use-after-free when no-leaks and traces are combined. + + code.c: add trace to be_setup() + + parse.y: make trace message consistent with fcall.c + + execute.c: eliminate a couple of comparisons + + change SYMTAB_TYPES to mixed enum/masks, to reduce comparisons for + array types. + + some cleanup, using NUM_ARGS and SYM_TYPE typedefs. + +20230808 + + modify input buffer-resizing to improve performance with very long + longs (report/testcase by Leif LeBaron). + +20230804 + > fixes for nulls (patches by Miguel Pineiro Jr). + + support nulls in toupper() and tolower(). + + modify str_str() to ensure lengths for key/target are large enough + for the memcmp() call. + + treat special case of failure to open input file due to too many open + files as a fatal error (report/testcase by Christoph Brunhuber). + + fix a shift/reduce conflict for length vs length() + + quote string-parameter in a few error-messages + + add MinGW-code for system() calls (Original-Mawk #51). + +20230730 + + rexp.c: do not unroll repetition into loops if the repetition applies + to more than one character. + + rexp3.c: increment machine on completing M_2JC step to fix a case + with infinite loop. + + print.c: improve parameter-passing, eliminating a duplicate check. + +20230726 + + modify makefile to install mawk-array and mawk-code manpages. + +20230725 + + use da_string more consistently in dumps. + + improve scanner to some type-checks of arrays versus scalars by + deferring this into the runtime execution (report by Rajeev V Pillai). + +20230716 + + modify scanner to accommodate scripts which use the same name for + some function-parameters as for a function (report by Kaz Kylheku). + + amend/limit special case optimization for redundant wildwards + (Original-Mawk #36). + + regenerate parse.c using byacc 20230521 + +20230525 + + fix a regression for big-endian machines caused by mismatch between + printf/sprintf format and long integer types (Original-Mawk #69, cf: + 20200731). + +20230404 + + add a null-pointer check in bi_mktime() (Original-Mawk #57). + + cast parameter of srand() to double if it is not already (patch by + "q3cpma", Original-Mawk #66). + + manpage fixes (report/suggested by David Apps). + + fix parsing of "--" token on command-line, from 20200828 changes + (report by Pavel Vinogradov). + + add a null-pointer check in the case for "-W" when parsing command + options (Original-Mawk #68). + + improve CF_XOPEN_SOURCE configure macro to avoid clearing the host's + definition for _XOPEN_SOURCE if _POSIX_C_SOURCE is defined (report + by A. Wilcox). + + modify makefile "clean" rule to remove ".i" files. + + modify configure script to allow for using clock_gettime vs + gettimeofday. + +20230322 + + remove an unwanted string/number conversion in print.c, from changes + in 20200717 (report by Jan Psota). + + reduce compiler-warnings in configure script checks. + +20230215 + + update URLs, changing ftp to https + + modify configure.in, moving checks for standard headers before the + options, to improve check for arc4random (Redhat #2167291). + +20230203 + + split up do_printf to fix build with fortified mingw stdio.h + + reduce compiler-warnings in configure script checks. + +20221229 + + fix shellcheck warnings in test-scripts. + + updated configure macros + + update config.guess, config.sub, and install-sh + +20210824 + + updated configure macros + + update config.guess and config.sub + +20210528 + + add FreeBSD build-scripts, for test-builds + + updated configure macros + + update config.guess and config.sub + +20201023 + + start work on experimental approach to interval-expressions which + does not involve loop-unrolling. + + improve type-checking for builtin-regex's by using PTR only for the + external-regex's. + + improve dump format, showing intervals in curly-brace format. + +20201016 + + improve dump format, showing the jump-targets rather than offsets. + +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 + only escaping backslash with itself if those backslashes happen to + precede a "&", e.g., "\\&" vs "\\" (Original-Mawk #14). + + fix a regression in recent command-line option parsing. + + modify configure/makefile to use .PHONY if available. + + review/improve example-scripts + +20200918 + + build-fix for HP-UX 11.23, which lacks #define's for maximum of + int64_t and uint64_t + + build-fix for OpenBSD, which mis-types int64_t, just like macOS. + + build-fix for macOS, which mis-types int64_t + +20200911 + + improve range of printf/sprintf for decimal formats by using the + unsigned limit if the value is positive. + + improve checks for command-line numeric options. + + allow long-options to be abbreviated. + +20200828 + + modify configure script to move gcc -Werror flags to EXTRA_CFLAGS + to avoid breaking configure-checks. + + use sprintf-buffer for intermediate output of strftime, to handle + extra-long format strings. + + modify MAWK_LONG_OPTIONS "ignore" to limit that to the "-xxx" options + in this set of changes, plus the existing --lint/--lint-old options. + + allow -Wxxx options to use long-option format as -xxx, for better + script-compatibility with gawk. + + use standard output for -Whelp, but show usage message in standard + error when no command arguments are given. + + print version for -Wversion consistently in standard output. + + improve use of const for making tables readonly. + + change -W compat to -W traditional for better script-compatibility + with gawk. + +20200821 + + completed first draft of mawk-code.7 + +20200807 + + begin man/mawk-code.7 + + drop noweb dependency, move docs to man/mawk-arrays.7 + +20200731 + + amend fix for Debian #303825 to more closely match gawk and BWK. + Those use larger data types, e.g., long vs int, for limits, and also + provide for using int64_t and uint64_t. Internally, mawk now uses + long long's where those are supported. + + add --help and --version options + +20200724 + + modify logic for "{0}" in rexp.c so that a left-parenthesis is not + trimmed when cancelling the previous token. + + modify RE_cat to add a dummy M_ACCEPT as a workaround for logic in + the new RE_init_it_cnt and RE_set_limit functions. + + modify regexp_system.c to work with interval-expressions. + + recognize gawk's --traditional and --posix as aliases for mawk's + -W options, as well as -r and --re-interval to improve scripting + compatibility. + + add -W compat and -W posix, using the former to replace + -W repetitions and the latter to replace -W posix_space + + enable interval-expressions by default. + +20200717 + + add configure option "--disable-interval-expr" + > integrated/adapted changes by James Parkinson (jlp765): + + add regexp intervals, + + add tests for intervals to test/mawktest and associated + test/repetitions files, + + add -W repetitions to enable r{m,n} + + add man page updates to man/mawk.1 + +20200708 + + update manpage comment about "nextfile" (AustinGroup #607). + + amend manpage comment about "fflush" (AustinGroup #634). + + amend manpage comment about "delete array" (AustinGroup #544). + + updated configure macros + + update config.guess and config.sub + +20200120 + + resync with my-autoconf. + + fix typos found with codespell. + + when reading input in interactive mode, provide for extending the + buffer size for very long lines (Original-Mawk #59). + +20200106 + + correct line-number shown in too-many-arguments error message for + the case where the function is a forward reference (report by + "mukti"). + + fix install for manpage when configure --srcdir option is used + (report by Rajeev V Pillai). + + use both CFLAGS/LDFLAGS when linking in makefile (report by + Rajeev V Pillai). + + fix clang-9 warning in bi_funct.c (report by Rajeev V Pillai). + + minor improvement to gcc warning options, from vile + +20191231 + + updated configure macros + + update config.guess and config.sub + +20190203 + + improve manpage formatting, e.g., for man2html + + improve debug-traces + +20190129 + + eliminate non-portable tdestroy() from zmalloc no-leaks code. + + updated configure macros + + update config.guess and config.sub + +20181114 + + revert a change for memory-leaks which made the forced-exit via a + user function inconsistent with earlier versions (report by Andre + Sihera). + + amend a change for memory-leaks to avoid a double-free (Original-Mawk + #56). + +20171017 + + add Debian compile/link flags to test-package. + + cleanup spurious warnings from latest gcc. + + changes for Original-Mawk #48: + + add checks for stack overflow and underflow + + increase stack limit to 1024 + + updated configure macros + + update config.guess and config.sub + +20161120 + + add runtime check for assignments to OFMT and CONVFMT to ensure + they use a single parameter (Original-Mawk #47). + + repair build for --with-valgrind, broken in 20160930 const-fixes. + +20161107 + + correct sign-extension from 20160615 change to rand() (report by + Christian Neukirchen). + +20160930 + + optimize closes on regular expressions to filter out redundant + wildcards, fixing a special case leftover by changes in 20100224 + (Original-Mawk #34). + + add regular-expressions to the -Wdump option when using mawk's + built-in regular expressions. + + fix a sign-extension in character-class parser (Original-Mawk #46). + + minor optimizations. + + improve use of const in tables. + +20160927 + + allow single-quote as a flag in printf, to complete the change + for LC_NUMERIC in 20121129 (report by Graham Monteith). + + revert one of the fixes made for a Coverity warning about loss of + precision in 20121209, which unnecessarily exposed a different + problem (Original-Mawk #45). + +20160918 + + simplify "system()" function by calling C "system()" function, and + use POSIX macros for wait-status to provide a less-ambiguous return + value (suggested by Aharon Robbins). + + add a null-pointer check in bi_mktime (patch by Ismael Luceno). + +20160905 + + escape '/' in range for test/reg4.awk to allow test-comparison with + gawk and BWK. + + updated configure macros, e.g., for compiler warnings and static + analysis: + + CF_CC_ENV_FLAGS + + CF_GNU_SOURCE + + CF_PROG_LINT + + CF_RAND + + CF_XOPEN_SOURCE + + minor build-fix for HPUX 11.11 "make", which is confused by the + recursive use of "make" in clean/distclean rules. + + amend fix for Gentoo #424137 to eliminate a memory leak when opening + files (Original-Mawk #44). + + update config.guess and config.sub + +20160615 + + correct range when using system rand() function, which was 0..2 + rather than 0..1 on BSD systems (report/patch by Masaki Waga). + +20160313 + + correct order of checks for machine state in REtest which caused an + out-of-bounds reference (Original-Mawk #36). + +20160226 + + update COPYING from + https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt + (Original-Mawk #38). + + minor updates to configure script macros + + update config.guess and config.sub + +20150503 + + add --with-man2html configure option + + improve description of -W options and how they can be combined into + a comma-separated list (adapted from Leif LeBaron). + + modify parsing for -Wexec to permit its value to be separated by '=' + in addition to a space, for consistency with the other -W options. + + cosmetic changes to configure script macros, from work on xterm. + + update config.guess and config.sub + +20141206 + + Mawk behaves incorrectly when using the nextfile statement. It marks + the file as dead, but does not check such state and thus ends reading + from a closed fd (patch by Ismael Luceno). + +20141027 + + remove a special check for anchored regular expressions in gsub3 + which did not handle expressions with "|" alternation (report by + "Ypnose"). + +20140914 + + rename vs6.mak / vs6.h to vs2008 for Visual Studio 2008 compiles. + + remove MS-DOS support. + + add a check in split for empty regex, treating that the same as an + empty string (Original-Mawk #9). + + correct inconsistently-ifdef'd reset of errno in check_strnum() + function, which caused some values to be internally classified as + strings rather than strnums (Original-Mawk #26). + + add parameter to REmatch to control use of REG_NOTBOL and its + equivalent in mawk (prompted by discussion with Mike Brennan, + Original-Mawk #24). + + settle on "gsub3" implementation (suggested by Mike Brennan, + Original-Mawk #11). + + change default for configure option --enable-init-srand to enable + this (discussion with Mike Brennan). + + add -W random option to set initial srand() seed. + + add TraceVA, use to provide debug-traces for errmsg(). + + add note in manpage about "nextfile", see for example: + http://www.opengroup.org/austin/docs/austin_578.txt + http://austingroupbugs.net/view.php?id=607 + + make it possible to build with "bsd" library ported to Linux by + setting LIBS=-lbsd before running configure script. + + show random-function names in version message, as well as maximum + integer-value. + + modify initialization of srand default seed from time of day to use + gettimeofday, etc., so that successive runs of mawk are less likely + to use the same seed value (suggested by Mike Brennan). + + make a further refinement, "gsub3" which uses a single pass. + + change SType and SLen types to improve performance as well as + handling larger regular expressions (suggested by Mike Brennan). + + fix some minor issues reported by Coverity. + + regenerate parse.c using byacc 20140422 + + modify makefile-rule for generating parse.c to keep the "#line" + preprocessor lines consistent with the actual filename. This is + needed by lcov. + + add test/reg7.awk to help with recent testing. + + discard intermediate new_gsub used for regression-testing, will do + further improvements based on "gsub2". + + fix a comparison in rexp3.c to work with embedded nulls (patch by + Mike Brennan). + + in-progress changes to implement "gsub2", which will reduce copying. + + discard intermediate old_gsub used for regression-testing, using + original gsub function renamed to "gsub0" for that purpose. + + remove old compiler information from version message. + + remove NF value from version message. + + patches by Mike Brennan: + + changed the intermediate storage of STRINGS used by split. + + cleaned up the xxx_split() functions. + a) removed hand loop unrolling. What was an optimization for + intel 8086/88 is silly today. + b) consequence of a) some macros went away so the code is easier + to read/understand. + c) handles null in input string + Note: re_split() does \x00 null correctly, but it calls + REmatch() which does not. I have examples where REmatch works + with nulls and examples of not working. That needs to be fixed. + + changed field allocation to support no upper limit. + + when comparing two strings, allow for embedded nulls. + + add checks in rexp3.c for infinite loop for testcase noloop.awk + (report by Tibor Palinkas). + + improve test-package for debian by adding postrm script to restore + "mawk-base" to its unalternatized configuration, as well as adding + messages to the other pre/post scripts. + + patches by Mike Brennan: + + increase some limits: NF is now 1048575, sprintf limit is 8192. + + updated array.w; mostly documentation improvements + + add array.pdf generated from array.w + + add -Wu / -Wusage / -Wh / -Whelp to show usage message, like gawk. + If long options are enabled, honor --help and --usage as well. + + if no command-line parameters are given, show usage message like + gawk and BWK (report by Michael Sanders). + + improve configure macros CF_ADD_CFLAGS, CF_ADD_LIBS, CF_XOPEN_SOURCE, + e.g., for Minix3.2 port. + + restore in-progress change to gsub; resolved problem handling its + internal use of vectors for second parameter when "&" marker is used. + + improve configure check for Intel compiler warnings; trim unwanted + -no-gcc option. + + for Solaris suppress the followup check for defining _XOPEN_SOURCE + + update config.guess and config.sub + +20131226 + + add configure check to work around recent breakage in Cygwin's math.h + which declares _LIB_VERSION without allowing it to be updated (report + by Gert Hulselmans). + + minor updates to configure script, for clang and mingw + + update config.guess and config.sub + +20130803 + + minor updates to configure script + + add limit-checks, improve index computation in scan.c to fix old + 1.3.3 problems with very long string-literals in the parsed script + (report by Marcin Krol). + + update config.guess and config.sub + +20130219 + + modify missing-operand check in rexp.c to allow the case of empty + "()", matching behavior of gawk and BWK (report by Arkadiusz + Miskiewicz). + + revert in-progress change to gsub retain ifdef'd for additional + development since it did not handle array as the second parameter + (report by Arkadiusz Miskiewicz). + +20121209 + + build-fix for cygwin in matherr.c, which declares a different type + for _LIB_VERSION + + add missing "-f" option in examples/gdecl.awk + + fix a regression in fflush, ensuring that it returns an error if + the argument does not match any output filename (report by Nathan + Weeks). + + modify wording of configure --help message to make it clear that + the default for --with-builtin-regex uses the builtin regular + expression engine of mawk. + + fix issues reported by Coverity scan. Most of these were minor, + and were addressed by modifying the source to allow Coverity to + improve its analysis of the code. + + amend support for LC_NUMERIC by translating period to the local + decimal separator as needed to work with strtod() which is used + to validate decimal constants when scanning source files. This + fixes an infinite loop with + mawk 'BEGIN { print 1.0 }' + (report by Jan Psota). + + regenerate man/mawk.doc, overlooked in previous updates. + +20121129 + + change behavior if internal fflush call fails: rather than exiting + with an error, propagate the return value to the script as -1, for + consistency with gawk and BWK (discussion with Aharon Robbins and + Nathan Weeks). + + add special case for forward reference to a function using an array + parameter, updating the function's parameter type so that the array + is passed properly. + + support length(array), as done in gawk and BWK awk (Original-Mawk #1). + + support LC_NUMERIC, which will modify the displayed decimal point in + some locales. It does not modify the decimal point used for input, + matching the behavior of nawk and BWK awk (prompted by request from + Yechiel Bardov for thousands-separator). + + add configure option --enable-init-srand to allow choice whether to + initialize random numbers automatically at startup or not. Not doing + this makes programs more predictable (Debian #63843, Original-Mawk + #3). + + add configure option --enable-builtin-srand, use that to deprecate + mawk's builtin srand/rand functions which generally are not as good + as the system-provided functions. + + extend --enable-trace configure option to show builtin functions. + + add systime and mktime functions + + when warning about unrecognized options, do not exit with error + on these gawk options: + --lint + --lint-old + --posix + --re-interval + --traditional + + integrate strftime function (patch by Dominic Letz, Original-Mawk #2). + + correct logic for "/dev/stdin" special device (GenToo #424137, + Original-Mawk #17). + + updates for configure script macros: + + modify configure script and makefile to support cross-compiles. + + remove Turbo C++ and Zortech C++ makefiles. + + remove obsolete function-checks: fmod, memcpy, strchr, strerror, + strtod, vfprintf. + + remove obsolete checks for some headers: math.h, stdarg.h, + stdlib.h, string.h time.h + + support --datarootdir option. + + add 3rd parameter to AC_DEFINE's to allow autoheader to run. + + remove unused macros. + + update config.guess and config.sub + + add icons for webpage artwork + +20120627 + + add "/dev/stdin" name for stdin for consistency with other + implementations of awk (suggested by Aharon Robbins). + + improve overflow check in check_strnum() (Ubuntu #485574). + + implement gawk extension "nextfile" (suggested by Aharon Robbins). + + updates for configure macros CF_ANSI_CC_CHECK, CF_ENABLE_TRACE, + CF_GCC_ATTRIBUTES, CF_GCC_WARNINGS, CF_MAKE_TAGS, CF_MSG_LOG, + CF_REGEX, CF_XOPEN_SOURCE. + + update config.guess and config.sub + +20101210 + + update copyright notices to reflect changes made starting 20080909. + This commit was made in May 2012, updates only copyright notices + needed for project registration on Savannah as discussed in Debian + #554167. However, since current policy on Savannah discriminates + against GPLv2, it will be hosted elsewhere. See + http://invisible-island.net/mawk/ + http://github.com/ThomasDickey + +20101207 + + add configure --enable-trace, to consolidate various debugging + traces which were written to stderr. This writes to Trace.out. + + modify zmalloc.c to make it simpler to use the --disable-leaks + configure script option to analyze memory leaks. The memory pool + which interferes with analysis can be disabled by defining + DEBUG_ZMALLOC. + + (IN-PROGRESS) convert gsub() function from recursive, to + non-recursive to lessen use of program stack (Debian #158481). + + escape some dashes in manpage, to work with groff. + + change section for Debian package to "interpreters" (Debian #442071). + + fix printable token value for SC_MATCH in scan.c (report by Heiner + Marxen). + +20100625 + + correct translation of octal and hex escapes for system regular + expression library. + + modify configure script to support --program-suffix, etc. + + add Debian package scripts, for "mawk-cur". + + add RPM spec-file. + + move release- and patch-level values from version.c to patchlev.h + to simplify packaging scripts. + +20100618 + + correct translation of "^{" pattern for system regular expression + library (report by Elias Pipping). + + fix sentence fragment in README (report by Elias Pipping). + +20100507 + + cleanup gcc warnings for 64-bit platform, e.g., use size_t rather + than unsigned, etc. + + fix warnings from clang --analyze + + update/improve configure script + + modify CF_GCC_VERSION to ignore stderr, e.g., from c89 alias + + modify CF_GCC_WARNINGS, moving -W and -Wall into the list to check, + since c89 alias for gcc complains about these options. + + add --disable-leaks and related options, for testing. + + add lint rule to makefile. + + add configure-check for ctags to work with pkgsrc. + + amend change of array.w, fixes a regression in "delete" (report by + Heiner Marxen). + +20100419 + + modify split() to handle embedded nulls in the string to split, e.g., + BEGIN{s="a\0b"; print length(s); n = split(s,f,""); print n} + (report by Morris Lee). + + + modify array.w to update table pointers in the special case where + an array is known to have string-indices, but is later indexed via + integers. The problem occurs when the array grows large enough to + rehash it, e.g., + BEGIN{a["n"];for(i=1;i<1000;++i)printf "%d\n", a[i]; } + (report by Morris Lee). + + + increase size of reference-count for strings to unsigned. It was an + unsigned short, which prevented using arrays larger than 64k, e.g., + BEGIN{for(i = 1; i <= 65550; ++i){if(i >= 65534 && i<= 65537) print i; s[i] = "a"}; delete s;} + (report by Morris Lee). + + + add special case for Solaris 10 (and up) to configure check + CF_XOPEN_SOURCE + + + refactored configure check CF_REGEX + +20100224 + + add a configure check for large files (report by Sean Kumar). + + + modify check in collect_RE() to show the actual limit value, e.g., + MIN_SPRINTF-2 used for built-in regular expressions. + + + increase MIN_SPRINTF, used as limit on regular-expression size, to + match the MAX_SPLIT value, i.e., slightly more than doubling the size + (report by Markus Gnam). + + + further modify makefile to build outside the source-tree. + + + modify makefile and mawktest to use relative path again, since the + existing script did not work with openSUSE's build (patch by Guido + Berhoerster). + + + fix makefile's .c.i rule, which lacked CPP definition. + + + update mawktest.bat script to more/less correspond with mawktest, + for Win32 console except where echo command does not handle the + required quoting syntax. + + + add vs6.mak, for Visual Studio 6. + + + modify mawktest script to report results from all tests, rather than + halting on the first failure. + + + add limit-check after processing match(test, "[^0-9A-Za-z]") to + ensure the internal trailing null of the test-string is not mistaken + for part of the string, i.e., RSTART, RLENGTH are computed correctly + (report by Markus Gnam). + + + modify parsing of -W option to use comma-separated values, e.g., + "-Wi,e" for "-Winteractive" and "-Werror". + + + add timestamp to scancode.c, to help manage revisions. + + + improve configure macro CF_XOPEN_SOURCE, making it remove possibly + conflicting definitions before adding new ones. + + + update config.guess and config.sub + + > patches by Jan Psota: + + + improve buffering for -Winteractive option. + + + allow multiple single-character flags after -W, e.g., "-Wie" for + "-Winteractive" and "-Werror" to permit these to be passed on a + "#"-line of a shell script, e.g., + #!/usr/bin/mawk -Wie + + > patches by Jonathan Nieder: + + + add new M_SAVE_POS and M_2JC operation codes (states) to the + built-in regular expression engine. Use these to reimplement + m* (closure), to provide a way to avoid infinite looping on + matches against empty strings. This change requires reimplementing + the workaround for gawk's noloop1 testcase from 20090726. + + + improve buffer-overflow check for string_buff. + + + fix collect_RE to treat "[^]]" as a character class (meaning "not a + closing bracket") but "[^^]]" not as one. This also requires + initializing the local "start of character class" variable to NULL + rather than the beginning of the string, to avoid an invalid array + access when collecting expressions such as "^text". + + + within a character class and not followed by a :, ., or ~, a "[" is + just like any other character. This way, you can tell mawk to scan + for a literal [ character with "mawk /[[]/", and you can scan for a [ + or ] with "mawk /[][]/". Also clean up the relevant loop in + do_class() to make it a bit more readable. + + + outside a character class, a "]" is just like any other character. + + + prevent do_class() from scanning past the end, e.g., if the + terminating zero byte was escaped. + + + fix regular-expression parsing when a right parenthesis ")" is + found without a preceding left parenthesis. + + + fix resetting of position stack when backtracking. + + + modify regular-expression engine to avoid exponential running time + for some regular expression matches in which the first match mawk + finds extends to the end of the string. This is a new fix for the + gawk noloop2 test, added here for regression testing. + +20091220 + + bump version to 1.3.4 + + + update INSTALL and README files. + + + improve configure checks for math library. + + + change test for NaN to use sqrt() rather than log() to work around + cygwin's partly broken math functions. + + + add/use isnanf() to work around other breakage in cygwin math + functions. + + + add configure check for _XOPEN_SOURCE, etc., needed to define + proper function pointer for sigaction, e.g., on Tru64. + + + add check for sigaction function pointer, whose POSIX form is + absent from the cygwin header. + + + extend MAWKBINMODE, adding a third bit which when set will suppress + the change for RS or ORS to use CR/LF rather than LF. This is used + for MinGW to make the "check" rule in a build work, for instance. + + + add configure check for functions used for pipe/system calls, e.g., + for MinGW where these are absent. + + + add runtime check for floating-point underflow exceptions + + + fix an old 1.3.3 bug in re_split(), which did not check properly for + the end of buffer; this broke on Tru64. + + + drop obsolete config-user, v7 and atarist subdirectories + + + improve configure checks for sigaction, making the definitions used + in fpe_check.c consistent with matherr.c + + + build fixes for AIX, Tru64. + + + add configure check for 'environ'. + + + remove redundant setlocale() calls; only LC_CTYPE and LC_NUMERIC + are used. + +20091213 + + add makedeps.sh script to aid in updating object dependencies in + Makefile.in + + + use "mkdir -p" rather than mkdirs.sh (suggested by Aleksey Cheusov). + + + reformatted this file, to simplify extraction of contributor names. + + + update config.guess and config.sub + + > patches by Jonathan Nieder: + + + modify CF_DISABLE_ECHO autoconf macro to ensure that command lines + in Makefile.in begin with a tab. + + + the makefile does not use $(MAKE); remove the SET_MAKE substitution. + + + add some files to the "make clean" rule, in case make gets + interrupted in the middle of a rule. + + + add a maintainer-clean rule to the makefile, to remove files which + could be regenerated. + + + fix an unescaped "-" in man/mawk.1 + + + remove an unneeded cast in bi_funct.c + + + fix an unused parameter warning in matherr.c + + + drop unused line_no parameter from compile_error() and its callers. + + + convert makescan.c to ANSI C, do further cleanup of that file. + + + split-out scancode.h from scan.h + +20090920 + + improve hash function by using FNV-1 algorithm (patch/analysis by + Jim Mellander). This greatly improves speed for accessing arrays + with a large number of distinct keys; however the unsorted order in + "for" loops will differ. + + + add "internal regex" or "external regex" string to version message to + allow scripting based on support for embedded nulls. + + + drop obsolete CF_MAWK_PROG_GCC and CF_MAWK_PROG_YACC macros from + configure script (report by Mike Frysinger). + + + fixes to allow build outside source-tree (report by Mike Frysinger). + + + correct logic in scan.c to handle expression "[[]" (report by Aleksey + Cheusov). + + + add MAWK_LONG_OPTIONS feature to allow mawk to ignore long options + which are not implemented. + + + two changes for embedded nulls, allows FS to be either a null or + contain a character class with null, e.g., '\000' or '[ \000]': + + + modify built-in regular expression functions to accept embedded + nulls. + + + modify input reader FINgets() to accept embedded nulls in data read + from files. Data read from standard input is line-buffered, and is + still null-terminated. + + + update config.guess and config.sub + +20090820 + + minor portability/standards fixes for examples/hical + + + add WHINY_USERS sorted-array feature, for compatibility with gawk + (patch by Aharon Robbins). + + + correct lower-limit for d_to_U() function, which broke conversion of + zero in "%x" format, added in fix for Debian #303825 (report by + Masami Hiramatsu). + + + modify "%s" and "%c" formatting in printf/sprintf commands to ensure + that "%02s" does not do zero-padding, for standards conformance + (discussion with Aharon Robbins, Mike Brennan, prompted by Debian + #339799). + +20090728 + + add fallback definitions for GCC_NORETURN and GCC_UNUSED to build + with non-gcc compilers (report by Jan Wells). + +20090727 + + add check/fix to prevent gsub from recurring to modify on a substring + of the current line when the regular expression is anchored to the + beginning of the line; fixes gawk's anchgsub testcase. + + + add check for implicit concatenation mistaken for exponent; fixes + gawk's hex testcase. + + + add character-classes to built-in regular expressions. + + + add 8-bit locale support + +20090726 + + improve configure checks for MAX__UINT. + + + add a check for infinite loop in REmatch(), to work with gawk's + noloop1 testcase. + + + modify logic to allow setting RS to an explicit null character, e.g., + RS="\0" + (Ubuntu #400409). + + + modify workaround for (incorrect) scripts which use a zero-parameter + for substr to ensure the overall length of the result stays the same. + For example, from makewhatis: + filename_no_gz = substr(filename, 0, RSTART - 1); + + + move regular-expression files into main directory to simplify + building using configure --srcdir and VPATH. + + + modify internal functions for gsub() to handle a case from makewhatis + script from man 1.6f which substitutes embedded zero bytes to a + different value (report by Gabor Z Papp). + + + change default for configure --with-builtin-regex to prefer the + builtin regular expressions. They are incomplete, but POSIX regular + expressions cannot match nulls embedded in strings. + + + require standard C compiler; converted to ANSI C. + + + rename #define'd SV_SIGINFO to MAWK_SV_SIGINFO to avoid predefined + name on Mac OS X (report on comp.lang.awk). + + + revise configure script to use conventional scheme for generating + config.h + +20090721 + + port to cygwin, modifying test-script to work with executable-suffix + and fp-exception code to allow const in declaration. + +20090712 + + bump patch-date. + + + fix Debian #127293 "mawk does not understand unescaped '/' in + character classes", noting that gawk 3.1.6 also has problems with + this area. + + + drop support for varargs; use stdarg only. + + + add tags rule to makefile. + + + rename configure option "--with-local-regexp" to + "--with-builtin-regex" + + + add build-fix from NetBSD port: enable vax FP support when + defined(__vax__) as well as BSD43_VAX. from ragge. + + + add configure --disable-echo option + + + identify updated files with "MawkId" keywords, retaining old log + comments for reference. Ongoing changes are recorded here. + + + change maintainer email address to my own. + +20090711 + + use conventional install/uninstall rules in makefile. + + + add install-sh script, mkdirs.sh, config.guess and config.sub + + + add $DESTDIR support to makefile + + + add uninstall make-target + + + add configure --enable-warnings option (fixed some warnings...) + + + change configure script to autoconf 2.52 to permit cross-compiles. + + + drop config.user file; replace with conventional autoconf --prefix, + etc. + + + fill-in CA_REC.type in two places in parse.y which weren't + initialized. + + + fix Debian #38353 (absent expression on last part of "for" statement + caused core-dump). + + + fix Debian #303825 (printf %x clamps numbers to signed range rather + than unsigned range). + + + apply fix from Debian #355966 (null-pointer check in + is_string_split()) + + + apply fix from Debian #391051 (limit-check in scan.c) + +20090709 + + add support for external regexp libraries (patch by Aleksey Cheusov) + (originally comp.lang.awk June 15 2005, also cited in Debian #355442 + March 6, 2006). + +20090705 + + fixes to build on BeOS (if LIBS is set to -lroot), and QNX + (redefinition of setmode). + +20080909 + + fix gcc 4.3.1 -Wall warnings + + + transform mawk.ac.m4 to aclocal.m4, renaming macros to use "CF_" or + "CF_MAWK_" prefixes depending on their reusability. Modified macros + to use quoting consistent with recent autoconf versions. + + + regenerate configure with autoconf version 2.13.20030927 + + + regenerate parse.c with byacc - 1.9 20080827 + + + ifdef'd prototypes in nstd.h which belong to stdlib.h, string.h to + use standard C by default. + + + source-in Debian patches 01-08 (see below). Changes for 20080909 fix + Debian #496980 as well. + +------------------------------------------------------------------------------- +Debian patches: + +(Peter Eisentraut <petere@debian.org> Sat, 05 Apr 2008 17:11:11 +0200) + +08_fix-for-gcc3.3 + Debian #195371 + +(James Troup <james@nocrew.org> Fri, 30 May 2003 15:24:50 +0100) + +07_mawktest-check-devfull + Debian #51875 + +06_parse.y-semicolons + Debian #170973 + +05_-Wall-fixes + +04_mawk.1-fix-pi + Debian #103699 + +03_read-and-close-redefinition + Debian #104124 + +02_fix-examples + Debian #36011 + +01_error-on-full-fs + Debian #28249 + Debian #4293 + +------------------------------------------------------------------------------- +1.3.1 -> 1.3.2 Sep 1996 + +1) Numeric but not integer indices caused core dump in new array scheme. + Fixed bug and fired test division. + +2) Added ferror() checks on writes. + +3) Added some static storage specs to array.c to keep non-ansi + compilers happy. + +1.3 -> 1.3.1 Sep 1996 +Release to new ftp site ftp://ftp.whidbey.net. + +1) Workaround for overflow exception in strtod, sunos5.5 solaris. + +2) []...] and [^]...] put ] in a class (or not in a class) without + having to use back-slash escape. + +1.2.2 -> 1.3 Jul 1996 +Extensive redesign of array data structures to support large arrays and +fast access to arrays created with split. Many of the ideas in the +new design were inspired by reading "The Design and Implementation of +Dynamic Hashing Sets and Tables in Icon" by William Griswold and +Gregg Townsend, SPE 23,351-367. + +1.2.1 -> 1.2.2 Jan 1996 + +1) Improved autoconfig, in particular, fpe tests. This is far from + perfect and never will be until C standardizes an interface to ieee754. + +2) Removed automatic error message on open failure for getline. + +3) Flush all output before system(). Previous behavior was to only + flush std{out,err}. + +4) Explicitly fclose() all output on exit to work around AIX4.1 bug. + +5) Fixed random number generator to work with longs larger than + 32bits. + +6) Added a type Int which is int on real machines and long on dos machines. + Believe that all implicit assumptions that int=32bits are now gone. + +------------------------------------------------------------------------------- +Changes from version 1.1.4 to 1.2: + +1) Limit on code size set by #define in sizes.h is gone. + +2) A number of obscure bugs have been fixed such as, + you can now make a recursive function call inside a for( i in A) loop. + Function calls with array parameters in loop expressions sometimes + generated erroneous internal code. + + See RCS log comments in code for details. + + Reported bugs are fixed. + +3) new -W options + + + -We file : reads commands from file and next argument, regardless + of form, is ARGV[1]. Useful for passing -v , -f etc to + an awk program started with #!/.../mawk + + + #!/usr/local/bin/mawk -We + + myprogram -v works, while + + #!/usr/local/bin/mawk -f + + myprogram -v gives error message + mawk: option -v lacks argument + + This is really a posix bozo. Posix says you end arguments with + "--" , but this doesn't work with the "#!" convention. + + -W interactive : forces stdout to be unbuffered and stdin to + be line buffered. Records from stdin are lines regardless of + the value of RS. Useful for interaction with a mawk on a pipe. + + -W dump, -Wd : disassembles internal code to stdout (used to be + stderr) and exits 0. + +4) FS = "" causes each record to be broken into characters and placed + into $1,$2 ... + + same with split(x,A,"") and split(x,A,//) + +5) print > "/dev/stdout" writes to stdout, exactly the same as + print + + This is useful for passing stdout to + + function my_special_output_routine(s, file) + { + # do something fancy with s + print s > file + } + +6) New built-in function fflush() -- copied from the lastest att awk. + + fflush() : flushes stdout and returns 0 + fflush(file) flushes file and returns 0; if file was not an + open output file then returns -1. + +7) delete A ; -- removes all elements of the array A + + intended to replace: + + for( i in A) delete A[i] + +8) mawk errors such as compilation failure, file open failure, etc. + now exit 2 which reserves exit 1 for the user. + +9) No program now silently exits 0, prior behavior was to exit 2 with + an error message |