summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorzoorat2023-11-11 18:02:53 +0600
committerzoorat2023-11-11 18:02:53 +0600
commit65705acda2ecb99889393344305be5069def3583 (patch)
tree2b6eb1820bbfb75fab068f3a0e7e5f28395285a4
parent5c18b292f941176622b32d95ccc9621cb3f721d3 (diff)
downloadaur-65705acda2ecb99889393344305be5069def3583.tar.gz
adding better tooling
-rw-r--r--.SRCINFO6
-rw-r--r--.gitignore2
-rw-r--r--Makefile81
-rw-r--r--PKGBUILD10
-rw-r--r--changelog.txt1088
5 files changed, 1182 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index d21589bf89f8..1dafa7503079 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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"
diff --git a/PKGBUILD b/PKGBUILD
index 5ecb42dc564a..8d7e1c7a0e98 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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