m4-commit
[Top][All Lists]
Advanced

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

[SCM] GNU M4 source repository branch, include-dso, created. cvs-readonl


From: Eric Blake
Subject: [SCM] GNU M4 source repository branch, include-dso, created. cvs-readonly-108-gc2a2811
Date: Tue, 06 May 2008 19:40:08 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU M4 source repository".

http://git.sv.gnu.org/gitweb/?p=m4.git;a=commitdiff;h=c2a2811a8b81dac7b090dcd6f584742fed6dd085

The branch, include-dso has been created
        at  c2a2811a8b81dac7b090dcd6f584742fed6dd085 (commit)

- Log -----------------------------------------------------------------
commit c2a2811a8b81dac7b090dcd6f584742fed6dd085
Author: Eric Blake <address@hidden>
Date:   Sat May 3 15:22:23 2008 -0600

    Stage 22: allow builtin token concatenation outside address@hidden
    
    * m4/m4module.h (m4_is_arg_composite): New prototype.
    (m4_symbol_value_copy): Change return type.
    (m4_arg_text): Add parameter.
    (M4ARG): Adjust callers.
    * m4/m4private.h: Adjust comments.
    * m4/symtab.c (m4_symbol_value_copy): Detect when builtins are
    flattened.
    * m4/input.c (init_builtin_token): Add parameter, and allow
    concatenating builtins.
    (m4__next_token): Adjust caller.
    * m4/macro.c (m4_is_arg_composite): New function.
    (expand_argument): Allow builtin concatenation.
    (m4_arg_text): Add parameter.
    (m4__arg_adjust_refcount, m4__arg_print): Adjust callers.
    (m4_arg_equal): Fix comparison of builtin tokens.
    * modules/m4.c (define, pushdef): Warn when flattening builtins.
    * doc/m4.texinfo (Define): Remove dead comment.
    (Defn): Update to reflect code changes.
    * tests/builtins.at (defn): Remove xfail.
    * NEWS: Document this change.
    
    Signed-off-by: Eric Blake <address@hidden>

commit bc9b4d7bf16c7571efe03debaf2c6f1d52a6a08d
Author: Eric Blake <address@hidden>
Date:   Sat May 3 13:31:14 2008 -0600

    Document define_blind.
    
    * doc/m4.texinfo (Ifelse): Add a new composite macro.
    * THANKS: Update.
    Suggested by Mike R.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 1dd98ea10e065300cfa110b7305362c1f12ed00f
Author: Eric Blake <address@hidden>
Date:   Thu May 1 12:05:03 2008 -0600

    Avoid -Wshadow compiler warnings.
    
    * m4/output.c (threshold_diversion_CB): s/div/diversion/.
    * m4/macro.c (make_argv_ref, arg_symbol, m4_arg_symbol)
    (m4_is_arg_text, m4_is_arg_func, m4_arg_text, m4_arg_empty)
    (m4_arg_len, m4_arg_func, m4__arg_print, m4_make_argv_ref)
    (m4_push_arg, m4__push_arg_quote): s/index/arg/.
    * modules/format.c (format): Likewise.
    * modules/m4.c (ifelse): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 6abccf89a8f468530209cf5b2f6178ab343af2a4
Author: Eric Blake <address@hidden>
Date:   Thu May 1 08:53:18 2008 -0600

    Improve debugmode testing, based on recent branch-1.6 regressions.
    
    * doc/m4.texinfo (Debugmode): Enhance tests.
    * tests/generate.awk: Run tests from stdin, not input.m4.  Support
    stderr munging when using -I examples.
    
    Signed-off-by: Eric Blake <address@hidden>

commit c3e7dc183995ae374f6aedec21893b23196a5b39
Author: Eric Blake <address@hidden>
Date:   Thu May 1 06:53:47 2008 -0600

    Fix regression in define from 2008-02-22.
    
    * m4/m4module.h (m4_symbol_value_copy): Add parameter.
    * m4/symtab.c (m4_symbol_value_copy): Support copying $@
    back-references.
    * m4/macro.c (expand_argument): Update callers.
    * modules/m4.c (define, pushdef): Likewise.
    * tests/builtins.at (define): Enhance test to catch this.
    
    Signed-off-by: Eric Blake <address@hidden>

commit e6db1ee757abb49a7e739dc70a34dc8a14562e87
Author: Eric Blake <address@hidden>
Date:   Mon Apr 21 20:57:45 2008 -0600

    Simplify previous patch.
    
    * tests/m4.in: Compress assignment.
    Suggested by Gary V. Vaughan.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 118acde8f302a12d6d11cd8fb63a79e221aaf8bb
Author: Eric Blake <address@hidden>
Date:   Mon Apr 21 14:57:23 2008 -0600

    Fix --disable-shared testsuite regression from previous patch.
    
    * tests/m4.in: Export M4MODPATH, so that recursive m4 invocations
    will also work.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 5b54035664c95dbd4adbce0bdefd48eb3aa7bdd3
Author: Eric Blake <address@hidden>
Date:   Mon Apr 21 16:27:01 2008 -0600

    Fix spelling of attribution to Christopher Strachey.
    
    * doc/m4.texinfo (History, Inhibiting Invocation): Fix typo.
    * THANKS: Update.
    Reported by Fernando Carrijo.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 05528e98e0257bcccbb5001b8ff09293e42d19b6)

commit 97a7769765cde8e9bbff022001e475b07f7bbaf2
Author: Eric Blake <address@hidden>
Date:   Thu Apr 17 09:06:12 2008 -0600

    Fix testsuite bug when SIGPIPE is ignored.
    
    * tests/builtins.at (divert): Consume all of m4's output, to avoid
    spurious write failure.
    * src/main.c (main): In batch mode, restore default handling of
    SIGPIPE.
    * doc/m4.texinfo (Operation modes): Document SIGPIPE behavior.
    * THANKS: Update.
    Reported by Bob Proulx, via his autobuilder.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 693e6ecc7448f782c2db9fc148c6876178d8b199
Author: Eric Blake <address@hidden>
Date:   Tue Apr 15 22:19:00 2008 -0600

    Fix 'make installcheck' after './configure --prefix-progname'.
    
    * tests/testsuite.at (AT_CHECK_M4): Allow overriding the m4
    program name.
    (HELP_OTHER, PREPARE_TESTS): Document and use $M4.
    * tests/builtins.at (patsubst): Avoid space-tab.
    (divert, mkdtemp, mkstemp): Adjust tests to use $M4.
    * tests/options.at (--debugfile): Likewise.
    * tests/others.at (stdin seekable): Likewise.
    (fstab): Avoid space-tab.
    * Makefile.am (installcheck-local): Accomodate transformed name.
    (DISTCHECK_CONFIGURE_FLAGS): Ensure no regressions, by using gm4
    during 'make distcheck'.
    * cfg.mk: New file, borrowed from branch.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 404e78ea543a099810bd61e42fe5623c50cff370
Author: Eric Blake <address@hidden>
Date:   Tue Apr 15 13:41:21 2008 -0600

    Update prerequisite tools to match recent releases.
    
    * configure.ac (AC_PREREQ): Rely on released autoconf.
    (LT_PREREQ): Rely on released libtool.
    * tests/testsuite.at (m4_version_prereq): Update dependence.
    * bootstrap: Mention prerequisites.
    
    Signed-off-by: Eric Blake <address@hidden>

commit ce0c0b372d8f63ba391fe099a7f145d3c7b2ed2b
Author: Eric Blake <address@hidden>
Date:   Tue Apr 15 11:20:30 2008 -0600

    Work around OS/2 limitation of printf(1).
    
    * tests/null.m4: Use m4, not printf, to generate NUL byte.
    * tests/null.out: Check for esyscmd failure.
    Reported by Elbert Pol.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 0fe33c9c7dbdbbf98255a8779bf179854753df61
Author: Eric Blake <address@hidden>
Date:   Mon Apr 14 17:02:36 2008 -0600

    Stage 21b: $@ concatenates builtins, m4wrap takes builtins.
    
    * m4/m4module.h (m4_push_builtin): Add parameter.
    (m4_builtin_print, m4_push_wrapup_init, m4_push_wrapup_finish)
    (m4_arg_print, m4_symbol_value_print): Rename and reduce scope...
    * m4/m4private.h (m4__builtin_print, m4__push_wrapup_init)
    (m4__push_wrapup_finish, m4__arg_print, m4__symbol_value_print):
    ...to these, in some cases adding a parameter.
    (m4__append_builtin): New prototype.
    * m4/builtin.c (m4_builtin_print): Alter signature to print
    builtin to a growing symbol chain.
    * m4/symtab.c (m4__symbol_value_print): Alter signature.
    (m4_symbol_print, dump_symbol_CB): Adjust callers.
    * m4/input.c (builtin_peek, builtin_read, builtin_unget)
    (builtin_print, builtin_funcs): Delete, handled via composite
    blocks now.
    (struct m4_input_block): Delete u.builtin member.
    (init_builtin_token): Only use composite block.
    (m4__append_builtin): New function.
    (m4_push_builtin, m4__push_wrapup_init): Alter signature.
    (m4__push_symbol): Allow builtin tokens.
    (m4__push_wrapup_finish): Rename.
    (composite_print, m4_print_token): Adjust callers.
    * m4/macro.c (m4_wrap_args, collect_arguments): Allow builtin
    tokens.
    (m4__arg_print): Alter signature.
    (trace_prepre, trace_pre, m4_arg_text, m4_arg_equal): Adjust
    callers.
    * modules/m4.c (m4wrap): Allow builtin tokens.
    (defn, errprint): Adjust callers.
    * modules/gnu.c (builtin): Likewise.
    * doc/m4.texinfo (M4wrap): New test.
    (Debuglen): Adjust expected output.
    
    Signed-off-by: Eric Blake <address@hidden>

commit b6964b5f0e6b81833bfbf1aee8bb49c35b09c3f3
Author: Eric Blake <address@hidden>
Date:   Mon Apr 14 08:16:32 2008 -0600

    Stage 21a: Optimize checks for end of input.
    
    * m4/input.c (eof_funcs, input_eof): New objects.
    (eof_peek, eof_read, eof_unget): New functions.
    (file_clean, m4_push_string_init, pop_input, m4_push_wrapup_init)
    (m4_pop_wrapup, next_char, peek_char, unget_input, m4_input_init)
    (m4_input_exit): Use placeholder to guarantee non-NULL isp and
    wsp.
    (next_char): Rename retry to allow_unget, and change sense for
    easier manipulation.  All callers changed.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 03c4e545afedafff51cce3a73aec5172482c0120
Author: Eric Blake <address@hidden>
Date:   Mon Apr 14 17:14:33 2008 -0600

    Improve OS/2 detection.
    
    * modules/gnu.c (m4_macro_table): Ensure all possible identifiers
    are defined, not just the first.  The testsuite ensures that
    exactly one gets defined.
    * m4/system_.h [__EMX__]: OS/2 is not Unix-compatible, no matter
    what other pre-defined macros it has.
    * THANKS: Update.
    Reported by Elbert Pol.
    
    Signed-off-by: Eric Blake <address@hidden>

commit eef195f8cdc361d819914e82fcf2b0bdf559000c
Author: Eric Blake <address@hidden>
Date:   Thu Apr 10 16:27:47 2008 -0600

    Ensure __m4_version__ is unquoted.
    
    * tests/builtins.at (__m4_@&address@hidden): Augment test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 49e254060b37619143095d979c9ad087ca57bd05
Author: Eric Blake <address@hidden>
Date:   Mon Apr 14 06:31:13 2008 -0600

    Avoid GNU make failure on tarball.
    
    * Makefile.am (EXTRA_DIST): Distribute cfg.mk and maint.mk.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 38f06945a35f382d5f7ab12d8d32184d544ba234
Author: Eric Blake <address@hidden>
Date:   Thu Apr 10 11:51:27 2008 -0600

    Allow back-referenced macro names; fixes 2008-03-13 regression.
    
    * m4/m4module.h (m4_symbol_value_lookup): Change prototype.
    * m4/utility.c (m4_symbol_value_lookup): Change signature.
    * modules/m4.c (undefine, popdef, ifdef, m4_dump_symbols, defn):
    Adjust all callers.
    * tests/others.at (ifndef): New test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit e098cd5590ef999997130522698cbccc9e083930
Author: Eric Blake <address@hidden>
Date:   Thu Apr 10 11:09:03 2008 -0600

    Be namespace clean for M4 version; fixes 2008-04-08 regression.
    
    * configure.ac (version): Rename...
    (M4_VERSION): ...to this, since using 'version' broke po.m4.
    
    Signed-off-by: Eric Blake <address@hidden>

commit d77ce2bf23c81091d9844c7052f50ba80005e6f6
Author: Eric Blake <address@hidden>
Date:   Wed Apr 9 16:51:52 2008 -0600

    Mention 1.4.11 release.
    
    * doc/m4.texinfo (History, Defn, Ifdef, Ifelse, M4wrap)
    (Extensions, Improved foreach): Distinguish 1.4.11 and 1.6.
    (Format): Add test of C99 hex-float parsing.
    * NEWS: Mention 1.4.11 release.
    * tests/builtins.at (divert): Add additional test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 0b8410450c789102f46f2ee21aaeb304737e828b
Author: Eric Blake <address@hidden>
Date:   Tue Apr 8 12:12:53 2008 -0600

    Overhaul inter-version releases to work with git.
    
    * configure.ac (version): New variable, which has nicer version
    contents when using git 1.5.5+, hardcoded to 1.9a otherwise.
    (TIMESTAMP): Delete, since CVS id expansion died with transition
    to git.
    (AM_INIT_AUTOMAKE): Use version to decide gnu vs. gnits.
    * build-aux/mkstamp: Delete, no longer used.
    * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Kill, to speed up
    rebuilds when timestamps don't matter.
    (MKSTAMP): Delete, no longer used.
    (EXTRA_DIST): No longer worry about mkstamp.
    (.version): New rule and distributed file.
    (doc/m4.1, tests/package.m4): Depend on .version, not
    configure.ac, for timestamp.
    * ltdl/m4/gnulib-cache.m4: Import git-version-gen module.
    * modules/gnu.c (__m4_version__): TIMESTAMP no longer exists.
    * src/main.c (main): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 359f9f0c4c790aeceedb395eb11813b388cfe60c
Author: Eric Blake <address@hidden>
Date:   Fri Mar 28 06:44:20 2008 -0600

    Use GNUmakefile module.
    
    * ltdl/m4/gnulib-cache.m4: Import gnumakefile module.
    * Makefile.am: Split off maintainer rules...
    * maint.mk: ...into this new file.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 6608fa6d084d320401f049b259adcf6b383eaa43
Author: Eric Blake <address@hidden>
Date:   Tue Mar 18 14:00:39 2008 -0600

    Stage 20b: make m4wrap obey POSIX fifo ordering.
    
    * m4/m4module.h (m4_wrap_args): Add prototype.
    * m4/m4private.h (enum m4__symbol_chain_type): Add M4__CHAIN_LOC.
    (struct m4__symbol_chain): Add struct u_l.
    * m4/input.c (m4_push_wrapup_init, m4_push_wrapup_finish): Use
    new link type.
    (composite_peek, composite_read, composite_clean): Handle location
    link.
    * m4/macro.c (m4_wrap_args): New function.
    * modules/m4.c (m4wrap): Use it.
    * doc/m4.texinfo (M4wrap): Sync with branch and POSIX.
    (Extensions): Document extension of multiple arguments.
    (Location, Improved m4wrap): Adjust example to match FIFO order.
    * tests/builtins.at (wrap): Likewise.
    * NEWS: Document this change.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 1761b0d68f12c701abfdcf0a36d955f787849e3c
Author: Eric Blake <address@hidden>
Date:   Mon Mar 17 16:03:57 2008 -0600

    Stage 20a: reduce unget's in input engine.
    
    * m4/input.c (struct input_funcs): Alter read_func prototype.
    (next_char, file_read, buildin_read, string_read, composite_read):
    Add allow_argv parameter.
    (init_builtin_token, init_argv_symbol): Require all prior input to
    be consumed.
    (m4_skip_line, match_input, consume_syntax): Adjust callers.
    (m4__next_token): Consume first byte without peek.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 44c6706b4fa8c438df0f1ff44a5da6e2b3f8b294
Author: Eric Blake <address@hidden>
Date:   Mon Mar 17 08:16:45 2008 -0600

    Update for fresh bootstrap.
    
    * ltdl/m4/gnulib-cache.m4: Updated copyright from upstream.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 6b1c5a2cbd84a5eb48fe352b7bc8c0568a020d62
Author: Eric Blake <address@hidden>
Date:   Sat Mar 15 20:52:36 2008 -0600

    Document join, in order to fix bug in m4wrap example.
    
    * examples/join.m4: New file.
    * examples/wraplifo2.m4: Likewise.
    * Makefile.am (EXTRA_DIST): Add new files.
    * doc/m4.texinfo (Improved m4wrap): New node.
    (Defn, Location): Enhance tests.
    (Shift): Document the composit macro join.
    (Incompatibilities): Move documentation of LIFO vs. FIFO...
    (M4wrap): ...here, to match improved example.
    
    Signed-off-by: Eric Blake <address@hidden>

commit a2df6b461c098df5a505d79d119538b3a294e301
Author: Eric Blake <address@hidden>
Date:   Thu Mar 13 21:01:39 2008 -0600

    Stage 19c: allow builtin tokens in more macros.
    
    * m4/m4module.h (m4_symbol_value_lookup, m4_builtin_print): New
    prototypes.
    * m4/m4private.h (enum m4__symbol_chain_type): Add
    M4__CHAIN_FUNC.
    (struct m4__symbol_chain): Add builtin member.
    * m4/utility.c (m4_symbol_value_lookup): New method.
    * m4/builtin.c (m4_builtin_print): New function.
    * m4/symtab.c (m4_symbol_value_print): Use it.
    * m4/input.c (builtin_print): Likewise.
    (m4__push_symbol): Allow pushing builtin tokens.
    (composite_peek, composite_read, composite_unget, composite_clean)
    (composite_print): Handle builtin tokens.
    (init_builtin_token): Allow builtin tokens from composite input.
    (m4__next_token): Flatten builtins inside comment or string.
    * m4/macro.c (expand_argument): Strengthen assertion.
    (collect_arguments, m4_arg_equal, m4_arg_print, m4_push_args):
    Handle builtin tokens.
    (arg_symbol): Add parameter, and allow NULL level.
    (m4_arg_symbol, m4__push_arg_quote): Adjust callers.
    (m4_arg_text): Ensure all builtins have been flattened.
    * modules/m4.c (defn, dumpdef, popdef, traceoff, traceon)
    (undefine, m4_dump_symbols): Warn on invalid macro names.
    (ifdef, ifelse, shift): Handle builtin tokens.
    * modules/gnu.c (m4symbols): Likewise.
    * doc/m4.texinfo (Defn, Ifdef, Ifelse): Document and test the new
    behavior.
    (Debuglen): Likewise, and remove xfail.
    * NEWS: Mention the change.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 2f49d755e50a574e5a772893f3f5d683495084bc
Author: Eric Blake <address@hidden>
Date:   Thu Mar 13 13:48:49 2008 -0600

    Stage 19b: invert sense of bit for handling builtin tokens.
    
    * m4/m4module.h (M4BUILTIN_ENTRY): New convenience macro.
    (M4_BUILTIN_GROKS_MACRO): Rename...
    (M4_BUILTIN_FLATTEN_ARGS): ...and invert sense.
    (m4_symbol_value_groks_macro, m4_symbol_groks_macro): Likewise...
    (m4_symbol_value_flatten_args, m4_symbol_flatten_args): ...to
    this.
    * m4/m4private.h (VALUE_MACRO_ARGS_BIT)
    (m4_symbol_value_groks_macro): Likewise...
    (VALUE_FLATTEN_ARGS_BIT, m4_symbol_value_flatten_args): ...to
    this.
    * m4/symtab.c (m4_symbol_value_groks_macro): Likewise...
    (m4_symbol_value_flatten_args): ...to this.
    * m4/macro.c (collect_arguments): Accomodate changed sense.
    * m4/module.c (m4__module_open): Require arguments if flattening
    is requested.
    * m4/input.c (m4_push_string_finish): For now, flatten all
    builtins pushed as back-references.
    * modules/gnu.c (m4_builtin_table, builtin): Adjust all clients.
    * modules/import.c (m4_builtin_table): Likewise.
    * modules/load.c (m4_builtin_table): Likewise.
    * modules/modtest.c (m4_builtin_table): Likewise.
    * modules/mpeval.c (m4_builtin_table): Likewise.
    * modules/perl.c (m4_builtin_table): Likewise.
    * modules/shadow.c (m4_builtin_table): Likewise.
    * modules/stdlib.c (m4_builtin_table): Likewise.
    * modules/time.c (m4_builtin_table): Likewise.
    * modules/m4.c (m4_builtin_table): Likewise.
    (mkstemp): Undo #undef hack from 2006-10-23, now that macro names
    are stringized without preprocessor expansion.
    * doc/m4.texinfo (Defn): Update comments to match reality.
    (Debuglen): Update test now that user macros pass builtin tokens.
    
    Signed-off-by: Eric Blake <address@hidden>

commit d621af1bae17e8f6dc2384b71acab9ef21ef51bd
Author: Eric Blake <address@hidden>
Date:   Thu Mar 13 13:43:15 2008 -0600

    Stage 19a: sort and cache builtins loaded by a module.
    
    * m4/m4module.h (m4_set_symbol_value_builtin): Delete.  Use
    m4_builtin_find_by_* instead.
    (m4_builtin_find_by_func): Change return type.
    * m4/m4private.h (m4__builtin): New struct.
    (m4_module): Add sorted list of loaded builtins.
    (struct m4_symbol_value): Change type of builtin value.
    (m4__set_symbol_value_builtin): New prototype and fast accessor.
    (m4_get_symbol_value_func, m4_get_symbol_value_builtin): Adjust to
    new field type.
    * m4/symtab.c (m4_set_symbol_value_builtin): Rename...
    (m4__set_symbol_value_builtin): ...and populate additional fields,
    based on new type.
    (m4_get_symbol_value_func, m4_get_symbol_value_builtin): Adjust to
    new field type.
    * m4/module.c (install_builtin_table): Use cached table.
    (compare_builtin_CB): New helper function.
    (m4__module_open): Populate table.
    (module_remove): Free table.
    * m4/builtin.c (compare_builtin_name_CB): New helper function.
    (m4_builtin_find_by_name): Rewrite to use sorted table.
    (m4_builtin_find_by_func): Change return type.
    * m4/input.c (struct m4_input_block): Simplify u_b, since most
    fields can be determined from builtin.
    (builtin_peek, builtin_read, builtin_unget, init_builtin_token)
    (m4__next_token): Alter parsing so that only init_builtin_token
    consumes a builtin.
    (builtin_print, m4_push_builtin): Adjust all users.
    * tests/macros.at (Arity, defn, and freeze): Fix typo.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 951a9ef5bbd7eda50bba0ec8b28d57bfbf85c87e
Author: Eric Blake <address@hidden>
Date:   Thu Mar 13 12:06:23 2008 -0600

    Consistently cast malloc results, for C++ compilation.
    
    * m4/builtin.c (m4_builtin_find_by_name): Add cast.
    * m4/hash.c (m4_hash_new, m4_get_hash_iterator_next, node_new)
    (m4_hash_resize, maybe_grow): Likewise.
    * m4/m4.c (m4_create): Likewise.
    * m4/macro.c (expand_macro): Likewise.
    * m4/output.c (m4_tmpname): Likewise.
    * m4/path.c (search_path_add): Likewise.
    * m4/symtab.c (m4_symtab_create, m4_symbol_value_create)
    (symtab_fetch): Likewise.
    * m4/syntax.c (m4_syntax_create): Likewise.
    * modules/gnu.c (regexp_compile): Likewise.
    * src/main.c (main): Likewise.
    * src/freeze.c (reload_frozen_state): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 2510870d46c28568affaa04f31462cd77fcf36f8
Author: Eric Blake <address@hidden>
Date:   Thu Mar 6 20:56:44 2008 -0700

    Fix nested builtin(`shift',$@) regression from 2008-02-23.
    
    * m4/macro.c (make_argv_ref): Don't output expansion text when
    making wrapper for builtin or indir.
    * tests/builtins.at (builtin): New test.
    * NEWS: Document the fix.
    Reported by Andreas Schwab.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 9eb0ac9c38938db0de84f77b2d062c55cb7817e3
Author: Eric Blake <address@hidden>
Date:   Tue Mar 4 17:22:55 2008 -0700

    The gnulib module free was deprecated.
    
    * ltdl/m4/gnulib-cache.m4: Remove free module.
    
    Signed-off-by: Eric Blake <address@hidden>

commit a3952d3933e72d8bfd77b2fc31b911e9982e7ee0
Author: Eric Blake <address@hidden>
Date:   Fri Feb 29 08:28:17 2008 -0700

    Import news from 1.4.10b.
    
    * NEWS: Update from branch.
    
    Signed-off-by: Eric Blake <address@hidden>

commit cfdd338da41015cee1ec0691fae84607d145e2ac
Author: Eric Blake <address@hidden>
Date:   Fri Feb 22 19:54:48 2008 -0700

    Stage 18: try harder to reuse argv in recursion.
    
    * m4/macro.c (make_argv_ref): Avoid wrapping $@ when possible.
    (m4_push_args): Let make_argv_ref take care of pending data.
    * doc/m4.texinfo (Improved foreach): Tweak wording to match new
    performance capability.
    * tests/others.at (recursion): Add tests to avoid performance
    regression.
    
    Signed-off-by: Eric Blake <address@hidden>

commit ff7e7bf197df21b3e98eb54759ecbc8f8448dc8d
Author: Eric Blake <address@hidden>
Date:   Fri Feb 22 12:57:57 2008 -0700

    Update NEWS.
    
    * NEWS: Document change to __gnu__ on 2008-02-11.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 2cdf327333be152135f021988c8e0eb6f3e10b51
Author: Eric Blake <address@hidden>
Date:   Fri Feb 22 05:43:04 2008 -0700

    Stage 17: pass argv through quoted strings.
    
    * m4/m4module.h (m4_arg_equal, m4_arg_len): Add parameter.
    (M4ARGLEN): Adjust definition.
    * m4/m4private.h (struct m4__symbol_chain): Add has_func member.
    (struct m4_symbol_value): Add wrapper and has_func members.
    (struct m4_macro_args): Add flatten and has_func members.
    * m4/input.c (append_quote_token): Return argv refs inside quoted
    strings.
    (init_argv_symbol): Populate new fields.
    * m4/macro.c (expand_argument, collect_arguments, make_argv_ref)
    (m4_make_argv_ref): Likewise.
    (arg_symbol, arg_mark, m4_is_arg_text, m4_is_arg_func): Use new
    fields.
    (m4_arg_equal, m4_arg_len): Handle quoted argv references, and add
    new parameter.
    * modules/m4.c (ifelse): Adjust caller.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 47f7469edbec86cf88d98f448c58ce1916bab812
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Feb 22 00:15:28 2008 +0800

    Fix regression in argument collection, from 2008-01-21.
    
    * m4/input.c (m4__next_token): When DEBUG_INPUT is defined,
    undo argument collection optimisation for strings, so that
    m4_print_token doesn't abort when it otherwise receives an
    unprintable M4_SYMBOL_VOID type token.

commit def1f82375ed7f310bdd8d8e1ce0c2cd9c64e2c6
Author: Eric Blake <address@hidden>
Date:   Wed Feb 20 21:37:30 2008 -0700

    Stage 16: cache quotes and improve m4_arg_print.
    
    * m4/m4module.h (m4_symbol_value_print, m4_symbol_print)
    (m4_arg_print): Adjust prototypes.
    (m4_dump_args): Delete.
    (m4_push_wrapup): Split...
    (m4_push_wrapup_init, m4_push_wrapup_finish): ...into these
    prototypes.
    * m4/m4private.h (struct m4_syntax_table): Add cached_quote
    member.
    (m4__quote_cache, m4__quote_uncache): New prototypes.
    * m4/syntax.c (m4_syntax_create): Initialize the cache.
    (m4__quote_cache): New function.
    (m4_set_syntax): Update caller.
    * m4/symtab.c (m4_symbol_value_print): Add parameter.
    (m4_symbol_print, dump_symbol_CB): Adjust all callers.
    * m4/utility.c (m4_dump_args): Delete; callers should use
    m4_arg_print instead.
    * m4/input.c (m4_push_wrapup_init, m4_push_wrapup_finish): Split
    implementation, and allow embedded NUL.
    (m4_print_token, pop_input, composite_print, composite_peek):
    (composite_read, append_quote_token): Adjust all callers.
    * m4/macro.c (trace_prepre, m4_arg_text, make_argv_ref):
    Likewise.
    (m4_arg_print): Add parameters.
    (trace_pre): Rewrite in terms of m4_arg_print.
    * modules/m4.c (errprint): Likewise.
    (m4wrap): Rewrite to allow embedded NUL.
    (dumpdef): Adjust caller.
    * doc/m4.texinfo (Debuglen): Enhance debuglen test.
    * tests/null.m4: Test for NUL in m4wrap.
    * tests/null.out: Update expected output.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 50fe32db83b154f2dae2f03a71a1049050a43ebe
Author: Eric Blake <address@hidden>
Date:   Wed Feb 20 20:07:14 2008 -0700

    Revert accidental checkin from previous patch.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 3ec47b1812dfba17c1f34992d74d1ed7c6e7950f
Author: Eric Blake <address@hidden>
Date:   Wed Feb 20 17:11:02 2008 -0700

    Fix out-of-bounds read for sanitized macro names, from 2008-02-06.
    
    * m4/utility.c (m4_verror_at_line): Properly terminate the string.
    Reported by Ralf Wildenhues.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 85a18b6adec624c57168a04f74eca94f5a53d721
Author: Eric Blake <address@hidden>
Date:   Wed Feb 20 07:57:41 2008 -0700

    * doc/m4.texinfo (Debuglen, Changesyntax): Fix typos.
    
    Signed-off-by: Eric Blake <address@hidden>

commit b5b24ec23ec1f242e8d4f3571ec288d9d03fd58d
Author: Eric Blake <address@hidden>
Date:   Tue Feb 19 12:18:05 2008 -0700

    Clean up example on filtering defined symbols.
    
    * doc/m4.texinfo (Foreach, Improved foreach): Document another
    shortcoming in foreach.m4, and improve filter example by using
    foreach2.m4.
    
    Signed-off-by: Eric Blake <address@hidden>

commit daed50d635fad7a37f7d050926dfe04d96af5ebb
Author: Eric Blake <address@hidden>
Date:   Tue Feb 19 08:59:45 2008 -0700

    * src/main.c (usage): Fix typo.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 2e81b080376fcc4f3362a0c4810de084371c87d0
Author: Eric Blake <address@hidden>
Date:   Mon Feb 18 06:24:08 2008 -0700

    Avoid some magic numbers.
    
    * m4/m4private.h (CHAR_EOF, CHAR_BUILTIN, CHAR_QUOTE, CHAR_ARGV)
    (CHAR_RETRY): Define in terms of UCHAR_MAX.
    * m4/syntax.c (m4_syntax_create, set_syntax_set)
    (reset_syntax_set, check_is_single_quotes)
    (check_is_single_comments, check_is_macro_escaped)
    (m4_set_quotes, m4_set_comment): Likewise.
    * modules/gnu.c (regexp_compile): Likewise.
    * modules/m4.c (translit): Likewise.
    * src/freeze.c (produce_syntax_dump): Likewise.
    Reported by Ralf Wildenhues.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 06991b51ef43dcbafa3d878b2beefd1dcc00adc0
Author: Eric Blake <address@hidden>
Date:   Sat Feb 16 14:39:41 2008 -0700

    Add regression test for multi-character quote recursion.
    
    * examples/foreach2.m4: Use $0 rather than spelling out name.
    * examples/foreachq2.m4: Likewise.
    * examples/forloop2.m4: Likewise.
    * examples/hanoi.m4: Likewise.
    * examples/trace.m4: Likewise.
    * doc/m4.texinfo (Improved forloop): Document advantage of $0.
    (Improved foreach): Adjust dump from file.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 5d083e4726ed578b093aaf82e2a5a542f5815dcd
Author: Eric Blake <address@hidden>
Date:   Fri Feb 15 22:12:03 2008 -0700

    Stage 15: return argv refs back to collect_arguments.
    
    * m4/m4private.h (CHAR_ARGV): New input engine sentinel.
    (enum m4__token_type): Add M4_TOKEN_ARGV.
    (struct m4__symbol_chain): Add skip_last member to argv link.
    (m4__next_token): Add parameter.
    * m4/input.c (peek_char, file_peek, builtin_peek, string_peek)
    (composite_peek, m4__next_token): Add new parameter.
    (composite_read, append_quote_token): Support argv in quotes.
    (init_argv_symbol): New function.
    (m4__push_symbol, match_input, consume_syntax)
    (m4__next_token_is_open, m4_print_token): Adjust callers.
    * m4/macro.c (m4_macro_expand_input, m4__arg_adjust_refcount)
    (arg_mark, m4_arg_text, make_argv_ref): Likewise.
    (expand_argument, collect_arguments): Handle new token.
    (arg_symbol): Drill through $@ reference.
    * m4/syntax.c (set_quote_age): Detect disabled comments.
    * m4/symtab.c (dump_symbol_CB) [DEBUG_SYM]: Fix debug code.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 7f0b47b96e8872513aae3a4e3819aef6d799e6bd
Author: Eric Blake <address@hidden>
Date:   Fri Feb 15 16:46:50 2008 -0700

    * modules/gnu.c (regexp_compile): Use a fastmap for regex speed.
    
    Signed-off-by: Eric Blake <address@hidden>

commit e3dce8bbfdf9b917089814b081c80fb40958e1a9
Author: Eric Blake <address@hidden>
Date:   Wed Feb 13 19:02:33 2008 -0700

    Fix texinfo grammar.
    
    * doc/m4.texinfo (Eval, Incompatibilities): Use @. after capital.
    (History): Use @: after abbreviations.
    (M4exit): Use correct Latin abbreviation.
    (Dumpdef, Debugmode, Frozen file format 2): Use correct spacing
    between sentences.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 4af40c4d6f65e3d311ef4643b6b3bdb9729a9db6
Author: Eric Blake <address@hidden>
Date:   Mon Feb 11 07:14:20 2008 -0700

    Allow builtin text macros to specify number of arguments.
    
    * m4/m4module.h (struct m4_macro): Add argument limits to builtin
    text macros.
    * m4/module.c (install_macro_table): Allow text macros to warn on
    extra arguments.
    * modules/gnu.c (m4_macro_table): Update all clients.
    * modules/load.c (m4_macro_table): Likewise.
    * modules/mpeval.c (m4_macro_table): Likewise.
    * modules/perl.c (m4_macro_table): Likewise.
    * modules/shadow.c (m4_macro_table): Likewise.
    * modules/traditional.c (m4_macro_table): Likewise.
    * modules/modtest.c (m4_macro_table): Likewise.  Also add text
    macros, for testing this.
    * doc/m4.texinfo (Standard Modules): Update text, and enhance
    test.
    * tests/modules.at (modules: text): New test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 7a7a1413755c74b416295b13fe90eef3bffa7345
Author: Eric Blake <address@hidden>
Date:   Mon Feb 11 11:32:12 2008 -0700

    Fix regression in command line -D option, from 2006-08-25.
    
    * m4/m4private.h (m4_symbol_value_create): Delete fast accessor.
    * m4/m4module.h: Fix typo.
    * m4/symtab.c (m4_symbol_value_create): Prime the maximum number
    of arguments.
    * tests/macros.at (Command line define): Enhance test.
    * tests/others.at (nul character): Enhance test.
    * tests/null.m4: Likewise.
    * tests/null.out: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 5e49a742b46299c471ad3d54faa487f073a51538
Author: Eric Blake <address@hidden>
Date:   Mon Feb 11 11:19:18 2008 -0700

    Use gnulib's git-merge-changelog driver when available.
    
    * .gitattributes: Add merge attributes for ChangeLog.
    * bootstrap: Install driver, if not already present.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 4f1f438e49632dbd5c5061d8992498acea8cf4b3
Author: Eric Blake <address@hidden>
Date:   Wed Feb 6 12:01:29 2008 -0700

    Fix security hole introduced 2007-11-23.
    
    * m4/utility.c (m4_verror_at_line): Properly escape macro names.
    * src/main.c (main): Manage quoteargs defaults.
    * doc/m4.texinfo (Indir): Document and test this.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 74f73804d6c375516ad834a9db980afea286fa4c
Author: Eric Blake <address@hidden>
Date:   Wed Feb 6 11:17:29 2008 -0700

    Using raw strtod is not portable.
    
    * ltdl/m4/gnulib-cache.m4: Import the strtod module.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 9123df1a730177cdfcd9cbbe17c5275c9473bccf
Author: Eric Blake <address@hidden>
Date:   Sat Feb 2 14:55:08 2008 -0700

    Consistently use size_t for number of arguments.
    
    * m4/m4module.h (m4_builtin_func): Alter prototype.
    (struct m4_builtin): Adjust type of min_args, max_args.
    (M4BUILTIN, M4BUILTIN_HANDLER): Adjust all builtins.
    (m4_bad_argc, m4_dump_args, m4_macro_call, m4_arg_argc)
    (m4_arg_symbol, m4_is_arg_text, m4_is_arg_func, m4_arg_text)
    (m4_arg_equal, m4_arg_empty, m4_arg_len, m4_arg_func)
    (m4_arg_print, m4_push_arg): Adjust all clients.
    * m4/m4private.h (struct m4__symbol_chain, m4_symbol_value)
    (m4_macro_args): Adjust type of various fields.
    (m4__push_arg_quote): Adjust all clients.
    * m4/input.c (m4_pop_wrapup): Likewise.
    * m4/macro.c (m4_macro_call, trace_pre, make_argv_ref)
    (arg_symbol, m4_arg_symbol, m4_is_arg_text, m4_is_arg_func)
    (m4_arg_text, m4_arg_equal, m4_arg_empty, m4_arg_len)
    (m4_arg_func, m4_arg_print, m4_make_argv_ref, m4_push_arg)
    (m4__push_arg_quote, m4_push_args, m4_arg_argc): Likewise.
    * m4/utility.c (m4_bad_argc, m4_dump_args): Likewise.
    * modules/evalparse.c (m4_evaluate): Likewise.
    * modules/gnu.c (changesyntax): Likewise.
    * modules/m4.c (m4_dump_symbols, undefine, popdef, ifelse, defn)
    (undivert, traceon, traceoff): Likewise.
    * modules/m4.h (m4_dump_symbols_func): Likewise.
    * modules/perl.c (perleval): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 7fe816278fe35846cf4f02e8ca38e050fd10506c
Author: Eric Blake <address@hidden>
Date:   Sat Feb 2 07:34:08 2008 -0700

    Stage 14b: allow pushing argv references.
    
    * m4/m4private.h (struct m4__symbol_chain): Add comma and quotes
    fields.
    (struct m4_macro_args): Add level field.
    (m4__arg_adjust_refcount, m4__push_arg_quote): New prototypes.
    * m4/input.c (m4__push_symbol, composite_peek, composite_read)
    (composite_unget, composite_clean, composite_print): Support $@
    refs.
    * m4/macro.c (collect_arguments): Populate new field.
    (expand_macro): Move argv cleanup...
    (m4__arg_adjust_refcount): ...to this new function.
    (m4_arg_symbol, m4_make_argv_ref, m4_push_arg): Factor...
    (arg_symbol, make_argv_ref, m4__push_arg_quote): ...to these new
    helper functions, to add parameters.
    (m4_push_args): Adjust caller.
    * m4/symtab.c (m4_symbol_value_print): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 89ceca3d1d57ea666822040018b5036d84c087cc
Author: Eric Blake <address@hidden>
Date:   Sat Feb 2 07:33:34 2008 -0700

    Stage 14a: allow printing argv references.
    
    * m4/m4module.h (m4_arg_print): New prototype.
    (m4_symbol_value_print): Alter prototype.
    * m4/input.c (struct input_funcs): Add parameter to peek_func.
    (file_peek, builtin_peek, string_peek): Ignore new parameter.
    (composite_peek): Ignore new parameter, for now.
    (composite_clean, pop_input): Rework to minimize indirection, and
    to avoid infinite recursion in next patch.
    * m4/macro.c (trace_prepre, trace_pre): Adjust callers.
    (m4_arg_print): New function.
    * m4/symtab.c (m4_symbol_value_print): Update signature.
    (m4_symbol_print): Update caller.
    * m4/output.c (m4_shipout_string_trunc): Update comments.
    * m4/syntax.c (set_quote_age): Require comma as argument separator
    when dealing with $@ as a unit.
    * tests/builtins.at (ifelse): Augment test.
    * doc/m4.texinfo (Changesyntax): Document changesyntax deficiency.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 410176a44990a565e22770e7d66bbc739cf0dcb4
Author: Eric Blake <address@hidden>
Date:   Thu Jan 31 22:22:32 2008 -0700

    Kill hack for M4 1.4.4.
    
    * configure.ac (AM_GNU_GETTEXT_INTL_SUBDIR): Delete, now that
    we require new enough autoconf which in turn requires M4 1.4.5.
    
    Signed-off-by: Eric Blake <address@hidden>

commit fdc33823e6a6e77d38d44c31a3ff3072509a2445
Author: Eric Blake <address@hidden>
Date:   Thu Jan 31 21:44:38 2008 -0700

    Depend on new libtool to use non-recursive build.
    
    * configure.ac (LT_PREREQ): Bump to alpha release version.
    (LTDL_INIT): Choose nonrecursive mode.  Perform sanity check that
    installed libtool has correct symbols.
    * Makefile.am (SUBDIRS): Drop ltdl, now that it is built from the
    top level.
    (AM_CPPFLAGS): Drop directories covered by libtool.
    (AM_LDFLAGS): Drop -no-undefined, covered by libtool.
    (include_HEADERS, noinst_LTLIBRARIES, EXTRA_LTLIBRARIES): New
    macros, used by libtool.
    (lib_LTLIBRARIES): Also used by libtool.
    (ltdl/libltdlc.la): Delete, now that libtool does this.
    * bootstrap: Mention new requirements.
    (LIBTOOLIZE): Provide default program, and run libtoolize prior to
    autoreconf.
    (autoreconf): Also neutralize libtoolize, since it is run early.
    * HACKING: Mention updated prerequisites.
    
    Signed-off-by: Eric Blake <address@hidden>

commit c2f1e561a36e39a2fad6655cfc3ca7a87782934a
Author: Eric Blake <address@hidden>
Date:   Thu Jan 31 21:35:27 2008 -0700

    Fix whitespace.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 7716bd11c4d8c59919568c5dc9f787c3a1c0eb40
Author: Ralf Wildenhues <address@hidden>
Date:   Mon Jan 28 19:23:19 2008 -0700

    Fix build failure if installed libltdl is used.
    
    * Makefile.am (m4_libm4_la_DEPENDENCIES): Use $(LTDLDEPS).

commit 71c6a7d82b7519b73b43671187419c9d5d0a7676
Author: Eric Blake <address@hidden>
Date:   Mon Jan 28 08:03:16 2008 -0700

    Depend on newer autoconf, for testsuite -C dir.
    
    * Makefile.am (CD_TESTDIR): Delete, no longer required.
    (check-local, installcheck-local, clean-local-tests): Use new -C
    option from autotest.
    * configure.ac (AC_PREREQ): Bump to 2.61a.347.
    * bootstrap: Mention new dependency.
    * HACKING: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit ccc250d2238b57b313c54921b57fc078e5bb8220
Author: Eric Blake <address@hidden>
Date:   Sat Jan 26 21:39:25 2008 -0700

    Stage 13: push composite text tokens.
    
    * m4/m4private.h (m4__push_symbol): Adjust prototype.
    * m4/input.c (m4__push_symbol): Add parameter, and support
    composite tokens.
    (append_quote_token): Add parameter, and support inlining of short
    text.
    (m4__next_token): Adjust caller.
    * m4/macro.c (m4_push_arg, m4_push_args): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 88382ff9ef2efddf6279fb8af908ddd07210e70c
Author: Eric Blake <address@hidden>
Date:   Sat Jan 26 00:08:48 2008 -0700

    Stage 12c: add macro for m4_arg_len.
    
    * m4/m4module.h (M4ARGLEN): New macro.
    * m4/macro.c (process_macro): Adjust all callers.
    * m4/utility.c (m4_dump_args): Likewise.
    * modules/m4.c (divert, maketemp, mkstemp, m4wrap, len, index)
    (substr): Likewise.
    * modules/gnu.c (builtin, indir, mkdtemp, patsubst, regexp)
    (renamesyms): Likewise.
    * modules/stdlib.c (setenv): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 726430fec6c0f3807f8f9e4d2c681f5300dc7694
Author: Eric Blake <address@hidden>
Date:   Fri Jan 25 23:49:38 2008 -0700

    Stage 12b: add m4_string_pair.
    
    * m4/m4module.h (m4_string_pair): New type.
    (m4_get_syntax_quotes, m4_get_syntax_comments): New prototypes.
    (m4_symbol_value_print, m4_symbol_print, m4_shipout_string_trunc):
    Alter signature.
    * m4/m4private.h (struct m4_string): Delete.
    (struct m4_syntax_table): Combine quote and comment members.
    (m4_get_syntax_lquote, m4_get_syntax_rquote, m4_get_syntax_bcomm)
    (m4_get_syntax_ecomm): Adjust accessors.
    (m4_get_syntax_quotes, m4_get_syntax_comments): New fast
    accessors.
    * m4/symtab.c (m4_symbol_value_print, m4_symbol_print):
    Alter signatures.
    * m4/input.c (string_print, composite_print, m4_input_print):
    All callers updated.
    * m4/syntax.c (m4_syntax_delete, m4_set_syntax)
    (check_is_single_quotes, m4_set_quotes, set_quote_age)
    (m4_get_syntax_lquote, m4_get_syntax_rquote)
    (m4_get_syntax_quotes, check_is_single_comments, m4_set_comment)
    (m4_get_syntax_bcomm, m4_get_syntax_ecomm)
    (m4_get_syntax_comments): Likewise.
    * m4/macro.c (trace_prepre, trace_pre, m4_push_args): Likewise.
    * m4/output.c (m4_shipout_string, m4_shipout_string_trunc):
    Likewise.
    * modules/m4.c (dumpdef, m4_make_temp): Likewise.
    * src/freeze.c (produce_frozen_state): Likewise.
    * tests/freeze.at (reloading unknown builtin): Update test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 29a7a47303ce73626300a1e3fd09f623bbd57e60
Author: Eric Blake <address@hidden>
Date:   Fri Jan 25 22:45:17 2008 -0700

    Stage 12a: make m4_symbol_chain a union.
    
    * m4/m4private.h (enum m4__symbol_chain_type): New enum.
    (struct m4_symbol_chain): Rename...
    (struct m4__symbol_chain): ...to this, since it is internal.
    * m4/symtab.c (m4_symbol_value_copy, m4_symbol_value_print): All
    callers updated.
    * m4/input.c (struct m4_input_block, m4__push_symbol)
    (composite_peek, composite_read, composite_unget)
    (composite_clean, m4__make_text_link, append_quote_token): Likewise.
    * m4/macro.c (expand_macro, arg_mark, m4_arg_symbol, m4_arg_text)
    (m4_arg_equal, m4_arg_len, m4_make_argv_ref, m4_push_arg)
    (m4_push_args): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 12bef65fbdfe4bca86718273e61a70e4828c620f
Author: Eric Blake <address@hidden>
Date:   Wed Jan 23 18:10:40 2008 -0700

    Adjust to recent libtool interface change.
    
    * configure.ac (LT_PREREQ): Require bleeding-edge libtool.
    (LT_WITH_LTDL): Delete, now that it is obsolete.
    (LTDL_INIT): Use new libtool macro.
    
    Signed-off-by: Eric Blake <address@hidden>

commit bf389f4092e0b674a521291b2c6f5862fd14072f
Author: Eric Blake <address@hidden>
Date:   Tue Jan 22 13:35:00 2008 -0700

    Rely on newer automake.
    
    * configure.ac (AM_INIT_AUTOMAKE): Require 1.10.1, and add lzma
    distribution.
    * bootstrap: Update automake requirement.
    (func_version): Fix --version output, broken since 2007-08-06.
    * HACKING: Likewise.  Add lzma requirement.
    * Makefile.am (clean-local-src): Not needed any more with newest
    Automake.
    (clean-local): Adjust.
    * TODO: Remove completed item.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 28cd2024b5c84141f2c3cf08602141b33eadd85a
Author: Eric Blake <address@hidden>
Date:   Tue Jan 22 11:53:46 2008 -0700

    Doc tweak.
    
    * doc/m4.texinfo (Renamesyms): Avoid underfull hbox, and improve
    example.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 5307d448bacdf7f588a95f7bc44c520ce80827a6
Author: Eric Blake <address@hidden>
Date:   Mon Jan 21 12:04:45 2008 -0700

    Stage 11: full circle for single argument references.
    
    Pass quoted strings through to argument collection in a single
    action, so that an argument can be reused throughout macro
    recursion if it remains unchanged.
    Memory impact: noticeable improvement, due to more reuse in
    argument collection stacks.
    Speed impact: noticeable improvement, due to less copying.
    * m4/m4module.h (m4_arg_text): Add parameter.
    (M4ARG): Adjust.
    * m4/m4private.h (CHAR_QUOTE): New input engine sentinel.
    (m4__make_text_link): New prototype.
    (struct m4_symbol_chain): Add quote_age member.
    (struct m4_symbol_value): Add end member to chained symbol.
    (struct m4_macro_args): Add wrapper member.
    * m4/symtab.c (m4_symbol_value_print): Print composite tokens.
    (m4_symbol_value_copy, m4_symbol_value_delete): Recognize
    composite tokens.
    * m4/input.c (make_text_link): Rename...
    (m4__make_text_link): ...to this, and export.
    (m4_push_string_finish): Adjust caller.
    (make_text_link, m4__push_symbol): Update new field.
    (file_read, builtin_read, string_read, composite_read, next_char):
    Add parameter.
    (m4_skip_line, match_input, consume_syntax): Adjust callers.
    (append_quote_token): New function.
    (m4__next_token): Pass quoted strings onto argument collection.
    (m4_print_token) [DEBUG_INPUT]: Update.
    * m4/macro.c (expand_argument): Collect composite arguments.
    (collect_arguments): Update new field.
    (expand_macro): Reduce ref-count of back-references after use.
    (arg_mark, m4_arg_symbol, m4_make_argv_ref): Adjust to new member
    names.
    (m4_is_arg_text): Also recognize composite symbols as text.
    (m4_arg_text, m4_arg_len): Merge composite symbols as needed.
    (m4_arg_equal): Compare composite symbols.
    (m4_push_arg, m4_push_args): Handle composite symbols.
    (m4_arg_symbol): Relax assertion.
    (process_macro): Use single-argument references.
    * m4/output.c (m4_shipout_string_trunc): Update comment.
    * tests/macros.at (Rescanning macros): Augment test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 782e3ac755755787d87a5057a6631329661be3ed
Author: Eric Blake <address@hidden>
Date:   Wed Jan 16 07:28:32 2008 -0700

    Stage 10: avoid extra copying of strings and comments.
    
    * ltdl/m4/gnulib-cache.m4: Import intprops and vasnprintf-posix
    modules.
    * m4/m4private.h (m4__token_type): Adjust prototype.
    * m4/input.c (m4__next_token): Support new parameter.
    * m4/macro.c (m4_macro_expand_input, expand_token)
    (expand_argument, collect_arguments): Adjust callers.
    * modules/m4.c (ntoa): Tighten buffer size.
    * m4/output.c (m4_tmpname): Guarantee no buffer overflow.
    * modules/format.c (arg_int, arg_long, arg_double): New helper
    functions, to detect overflow or unparsed characters.
    (ARG_INT, ARG_LONG, ARG_STR, ARG_DOUBLE): Adjust to check for
    missing or excess arguments.
    (format): Likewise, and also output directly into obstack if there
    is room.
    * doc/m4.texinfo (History): Update for new year.
    (Format): Test for new warnings.
    
    Signed-off-by: Eric Blake <address@hidden>

commit e173b6eba5a368103502f281805dd38489475447
Author: Eric Blake <address@hidden>
Date:   Mon Jan 14 21:55:45 2008 -0700

    * TODO: Update with some newer URLs.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 1cb7815415079b947f6974d7708d6da4a659783a
Author: Eric Blake <address@hidden>
Date:   Mon Jan 14 21:43:02 2008 -0700

    Verify linear `index'.
    
    * tests/builtins.at (index): New test.
    (translit): Make test take longer, to make quadratic algorithms
    more apparent.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 0706b4d0de3ff3d43661911899f8eaf25498adb7
Author: Eric Blake <address@hidden>
Date:   Wed Jan 9 09:37:50 2008 -0700

    Give better summaries of StageN patches in ChangeLog.
    
    Signed-off-by: Eric Blake <address@hidden>

commit e38bf1ca50e3c5038fab27266ecb3ce3d1a0296f
Author: Eric Blake <address@hidden>
Date:   Thu Dec 20 10:56:29 2007 -0700

    Stage 9: share rather than copy single-arg refs.
    
    * ltdl/m4/gnulib-cache.m4: Import memmem and quote modules.
    * m4/m4module.h (m4_arg_scratch): New prototype.
    * m4/m4private.h (m4__push_symbol): Add parameter.
    (m4_arg_scratch): Add fast accessor.
    (struct m4): Add expansion_level member, taken...
    * m4/macro.c (expansion_level): ...from here.  Adjust all users.
    (expand_argument): Minor cleanup.
    (expand_macro): Track scratch space per macro call.
    (m4_arg_scratch): New function.
    (m4_make_argv_ref): Call new function.
    (m4_push_arg): Push reference to $0.
    (m4_push_args): Rework separator usage, since separators will
    usually be inlined.
    (process_macro): Allow embedded NUL.
    * m4/input.c (INPUT_INLINE_THRESHOLD): New define.
    (m4__push_symbol): Add parameter.  Inline short strings, and save
    references through rescanning.
    * m4/symtab.c (m4_set_symbol_value_text): Weaken assertion.
    * modules/m4.c (errprint, index): Handle NUL transparently.
    (dumpdef, translit): Use scratch space, rather than expansion
    stack.
    * modules/gnu.c (renamesyms, m4symbols): Likewise.
    * tests/others.at (nul character): New test.
    (iso8859): Quote absolute file name, remove XFAIL.
    * tests/iso8859.m4: Avoid raw NUL in output.
    * tests/null.m4: New file.
    * tests/null.out: Likewise.
    * tests/null.err: Likewise.
    * Makefile.am (OTHER_FILES): Distribute new files.
    * .gitattributes: Treat new files as text.
    
    Signed-off-by: Eric Blake <address@hidden>

commit fa34c3f77687fac1d5264955e11a7c704a89e875
Author: Eric Blake <address@hidden>
Date:   Mon Dec 17 09:28:39 2007 -0700

    Stage 8: extend life of references into argv.
    
    * m4/system_.h (obstack_regrow): Delete.
    * m4/m4private.h (struct m4_symbol_chain): Add level field.
    (m4__push_symbol): Adjust prototype.
    (m4__adjust_refcount): New prototype.
    (DEBUG_MACRO) [DEBUG]: New debug control.
    (struct m4__macro_arg_stacks): New structure.
    (struct m4): Add arg_stacks, stacks_count fields.
    * m4/m4module.h (m4_make_argv_ref): Add parameter.
    * m4/macro.c (argc_stack, argv_stack): Delete, replaced by
    context->arg_stacks.
    (m4_macro_expand_input) [DEBUG_MACRO]: Add debug hooks,
    conditional on M4_DEBUG_MACRO envvar.
    (collect_arguments): Adjust signature.
    (expand_macro): Rework obstack handling.
    (m4__adjust_refcount, arg_mark): New functions.
    (m4_make_argv_ref): Populate new field.
    (m4_push_arg, m4_push_args): Track inuse.
    (process_macro): One less cast.
    * m4/m4.c (m4_delete): Clean up arg_stacks.
    * m4/input.c (make_text_link): Use new field.
    (m4__push_symbol, file_clean): Update signature.
    (composite_read): Bump refcount when done with reference.
    (composite_clean): New function.
    (pop_input): Adjust caller.
    * m4/debug.c (m4_debug_message): Make assertion match comment.
    * modules/gnu.c (builtin, indir): Adjust callers.
    * tests/builtins.at (ifelse): New test.
    (exp): Move and rename...
    * tests/others.at (countdown): ...to this.
    * doc/m4.texinfo (Improved foreach): Fix tracing usage in
    example.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 81c857b17c954573a75f702ee38fb9b45e799942
Author: Eric Blake <address@hidden>
Date:   Thu Dec 13 11:47:55 2007 -0700

    Yet more rewording.
    
    * doc/m4.texinfo (Inhibiting Invocation): Missed one instance in
    the previous patch.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit da38cc2a2e8272f41366ed87aee5abe64e81c3f9)

commit 73b09111770c4e712b08e08f412ccbdc4e476139
Author: Eric Blake <address@hidden>
Date:   Thu Dec 13 10:53:26 2007 -0700

    * THANKS: Update.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 4167d5ca75e32eef51c7ad7d3efececdbe394d93)

commit 47601130776e37dde6f06d9891a1b3d8179cf423
Author: Paolo Bonzini <address@hidden>
Date:   Thu Dec 13 10:53:14 2007 -0700

    * doc/m4.texinfo: Fix quoting of a quoting example.
    
    Reported by Giovanni Toffetti.
    (cherry picked from commit ba5c56ec45729eefb5687f4f272c6b08baa44030)

commit 8f276ee65769eae767a638b98d354fe1c3b2700d
Author: Eric Blake <address@hidden>
Date:   Tue Dec 11 09:36:08 2007 -0700

    Stage 7: use chained input support in input parser.
    
    * m4/m4private.h (m4__push_symbol): New prototype.
    (struct m4_symbol_chain): Add const-safety.
    * m4/symtab.c (m4_symbol_value_print): Simplify.
    (dump_symbol_CB): Update caller.
    * m4/input.c (struct m4_input_block): Alter u_c member, first
    introduced 2006-10-25, but unused until now.
    (composite_peek, composite_read, composite_unget)
    (composite_print, init_builtin_token): Rewrite accordingly.
    (m4_push_wrapup): No longer need trailing NUL.
    (m4__push_symbol, make_text_link): New functions.
    (m4_push_string_finish): Use them.
    * m4/macro.c (m4_push_arg, m4_push_args): Likewise.
    (expand_macro): Simplify logic of nesting_limit.
    * src/main.c (main): Likewise.
    * doc/m4.texinfo (Dumpdef): Augment test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit a9d31f373b211f8790ee4b79c5e85943bf9fab9e
Author: Eric Blake <address@hidden>
Date:   Sat Dec 8 21:05:11 2007 -0700

    Stage 6: convert builtins to push arg at a time.
    
    * m4/m4module.h (m4_shipout_text): Rename...
    (m4_divert_text): ...to this, to avoid confusion with m4_shipout_*
    that does not worry about sync lines.
    (m4_shipout_string_trunc): New prototype.
    * m4/output.c (m4_shipout_text): Rename...
    (m4_divert_text): ...to this.
    (m4_shipout_string): Move guts...
    (m4_shipout_string_trunc): ...to this new function.
    * m4/macro.c (m4_push_arg, m4_push_args): New functions.
    (expand_token, process_macro): Update callers.
    * m4/input.c (string_print): Likewise.
    * modules/m4.c (ifdef, ifelse, shift, substr, translit, divert):
    Likewise.
    * modules/gnu.c (patsubst): Likewise.
    (debuglen): Use SIZE_MAX for unlimited debug length.
    * src/main.c (main): Likewise.
    * m4/m4.c (m4_create): Default max_debug_length to SIZE_MAX, not
    zero.
    
    Signed-off-by: Eric Blake <address@hidden>

commit b8122b55893c4f55a4a64d65744ee78b67b5b6a5
Author: Eric Blake <address@hidden>
Date:   Fri Dec 7 14:11:21 2007 -0700

    Minor security fix: Quote output of mkstemp.
    
    * modules/m4.c (m4_make_temp): Produce quoted output.
    * doc/m4.texinfo (Mkstemp, Mkdtemp): Update the documentation and
    tests.
    
    Signed-off-by: Eric Blake <address@hidden>

commit bcb92cf23ae09a5e3a0c8f5f8d2a991245918ede
Author: Eric Blake <address@hidden>
Date:   Thu Dec 6 22:14:22 2007 -0700

    Stage 5: add notion of quote age.
    
    * m4/m4module.h (m4_get_symbol_value_quote_age): New prototype.
    (m4_set_symbol_value_text): Adjust prototype.
    (m4_has_syntax): Factor out the unsigned char cast.
    * m4/m4private.h (struct m4_syntax_table): Add syntax_age and
    quote_age members.
    (m4__quote_age, m4__safe_quotes): New accessor macros, no need for
    functions at this point.
    (struct m4_symbol_value, struct m4_macro_args): Add quote_age
    member.
    (m4_set_symbol_value_text): Adjust fast accessor.
    (m4_get_symbol_value_quote_age): New fast accessor.
    * m4/symtab.c (m4_set_symbol_value_text): Add parameter.
    (m4_get_symbol_value_quote_age): New function.
    (m4_symbol_value_copy): Adjust callers.
    * m4/macro.c (expand_token): Add parameter, and track quote age.
    (expand_argument, collect_arguments): Track quote age.
    (m4_macro_expand_input, process_macro, m4_make_argv_ref)
    (m4_macro_expand_input): Update callers.
    (m4_arg_text, m4_arg_len, m4_arg_func): Abort on type mismatch.
    * m4/input.c: Comment cleanups.
    (struct m4_input_block): Reduce size.
    (m4__next_token): Report quote age.
    (m4_push_builtin, init_builtin_token): Update callers.
    * m4/utility.c (skip_space): Adjust callers.
    * m4/module.c (install_macro_table): Likewise.
    * m4/syntax.c (m4_set_syntax): Initialize and update quote age.
    (m4_set_quotes, m4_set_comment): Detect no-op changes, and update
    quote age.
    (set_quote_age): New helper function.
    (check_is_single_quotes, check_is_single_comments): Adjust
    callers.
    * src/freeze.c (reload_frozen_state): Likewise.
    * src/main.c (main): Likewise.
    * modules/m4.c (define, pushdef): No need to set macro text.
    * tests/builtins.at (changequote, defn): New tests.
    * examples/wrapfifo.m4: New file.
    * examples/wraplifo.m4: New file.
    * Makefile.am (dist_pkgdata_DATA): Distribute new examples.
    
    Signed-off-by: Eric Blake <address@hidden>

commit edff3edfb0438a3047fb7208a34404c3b76513e5
Author: Eric Blake <address@hidden>
Date:   Tue Dec 4 09:00:30 2007 -0700

    gnulib-tool doesn't recognize config.*.
    
    * build-aux/.cvsignore: Explicitly ignore config.rpath, for gnulib-tool.
    * build-aux/.gitignore: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 38cd6cb274a8766048373d37b89163fb5d4176ff
Author: Eric Blake <address@hidden>
Date:   Tue Dec 4 06:43:29 2007 -0700

    Fix builds with OpenBSD make.
    
    * Makefile.am (HELP2MAN): New macro.
    (dist_man_MANS, doc/m4.1): Fix rules for building m4.1 into
    srcdir.
    * README: Update copyright.
    * HACKING: Mention help2man and makeinfo dependencies.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 6128996ce3111b5fe1f7d879e11af37c44ee3a92
Author: Eric Blake <address@hidden>
Date:   Thu Nov 29 21:26:22 2007 -0700

    Stage 4: route indir, builtin through ref; make argv opaque.
    
    * m4/system_.h (obstack_regrow): Fix precedence.
    * m4/m4module.h (m4_arg_equal, m4_arg_empty, m4_make_argv_ref):
    New prototypes.
    (struct m4_macro_args): Move...
    * m4/m4private.h (struct m4_macro_args): ...here, making it opaque
    to modules.  Add has_ref member.
    (bool_bitfield): New helper typedef.
    (struct m4_symbol_chain): Add flatten and len members.
    * m4/macro.c (empty_symbol): New placeholder, for optimizing
    comparison with empty string.
    (m4_macro_expand_input): Initialize it.
    (collect_arguments): Alter signature, and populate new fields.
    (trace_pre, trace_post): Remove redundant parameter.
    (expand_macro): Alter handling of obstacks.
    (m4_arg_symbol): Account for wrapped argv.
    (m4_arg_equal, m4_arg_empty, m4_make_argv_ref): New methods.
    (m4_arg_text, m4_arg_len, m4_arg_func): Use new methods.
    * modules/m4.c (ifelse, syscmd): Likewise.
    * modules/evalparse.c (m4_evaluate): Likewise.
    (undefine, popdef, m4_dump_symbols): Optimize.
    * modules/gnu.c (builtin, indir, esyscmd, debugfile): Use new
    methods.
    (changesyntax, regexp): Optimize.
    * m4/output.c (diversion_storage): Use typedef.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 17a806c25764db643660d374bc6263a7e42d93ab
Author: Eric Blake <address@hidden>
Date:   Wed Nov 28 14:03:48 2007 -0700

    Stage 3b: cache length, rather than computing it, in modules.
    
    * m4/hash.c (m4_hash_remove): Avoid double free on remove
    failure.
    * m4/output.c (m4_shipout_string): Change semantics of len param.
    (m4_shipout_int): Use cached length.
    * m4/input.c (m4_push_string_finish): Likewise.
    * modules/m4.h (m4_make_temp_func): Add parameter.
    * m4/macro.c (expand_token, m4_arg_len): Use cached length.
    (collect_arguments, expand_macro): Alter signature.
    (trace_format): Don't use out-of-scope buffer.
    (process_macro): All callers changed.
    * m4/utility.c (m4_dump_args): Likewise.
    * m4/symtab.c (m4_symbol_value_print): Likewise.
    * modules/gnu.c (__file__, __program__, builtin, indir)
    (m4symbols, mkdtemp, regexp_compile, regexp_substitute,
    renamesyms, patsubst, regexp, regexp_compile): Likewise.
    * modules/load.c (m4modules): Likewise.
    * modules/m4.c (defn, m4wrap, maketemp, m4_make_temp)
    (numb_obstack, ifdef, ifelse, divert, len, substr): Likewise.
    * modules/perl.c (perleval): Likewise.
    * modules/stdlib.c (getcwd, getenv, getlogin, getpwnam, getpwuid)
    (hostname, uname, setenv): Likewise.
    * modules/mpeval.c (numb_obstack): Likewise.
    * src/freeze.c (dump_symbol_CB): Likewise.
    * doc/m4.texinfo (Renamesyms, Dumpdef, Changesyntax): Adjust test.
    * tests/builtins.at (mkstemp): Likewise.
    * tests/others.at (iso8859): XFAIL this test, now that
    length-based handling allows NUL through part but not all of M4.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 8e1fad3c14b6308edd5f61c1f8f0d5a0e6591547
Author: Eric Blake <address@hidden>
Date:   Wed Nov 28 06:45:20 2007 -0700

    Stage 3a: cache length, rather than computing it, in libm4.
    
    * m4/m4module.h (struct m4_macro_args): Cache length.
    (m4_get_symbol_len, m4_get_symbol_value_len): New accessors.
    (m4_set_symbol_value_text): Change signature.
    * m4/m4private.h (struct m4_symbol_value): Store string length.
    (m4_get_symbol_value_text, m4_get_symbol_value_placeholder)
    (m4_set_symbol_value_placeholder): Update accordingly.
    (m4_set_symbol_value_text): Change signature.
    (m4_get_symbol_value_len): New accessor.
    * m4/input.c (struct m4_input_block, string_peek, string_read)
    (string_unget, string_print, m4_push_string_finish)
    (m4_push_wrapup): Track length of string input.
    (m4__next_token): Adjust all users of symbol text to track length,
    too.
    * m4/macro.c (expand_argument, collect_arguments): Likewise.
    * m4/module.c (install_macro_table): Likewise.
    * modules/gnu.c (builtin, indir): Likewise.
    * modules/m4.c (define, pushdef): Likewise.
    * src/main.c (main): Likewise.
    * src/freeze.c (reload_frozen_state): Likewise.
    * m4/symtab.c (m4_symbol_value_copy): Likewise.
    (m4_get_symbol_value_len): New function.
    (m4_get_symbol_value_text, m4_get_symbol_value_placeholder)
    (m4_set_symbol_value_text, m4_set_symbol_value_placeholder):
    Adjust implementation.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 5d2ce0f461d5d77cf098fefddaa2ac9c15a95a4b
Author: Eric Blake <address@hidden>
Date:   Tue Nov 27 10:15:48 2007 -0700

    Stage 2: use accessors, not direct reference, into argv.
    
    * m4/m4private.h (m4_arg_argc): New fast accessor.
    * m4/m4module.h (m4_arg_argc, m4_arg_symbol, m4_is_arg_text)
    (m4_is_arg_func, m4_arg_text, m4_arg_len, m4_arg_func): New
    prototypes.
    (m4_builtin_func, M4BUILTIN, M4BUILTIN_HANDLER, m4_dump_args)
    (m4_macro_call): Make argc unsigned.
    (M4ARG): Use new accessors.
    * modules/m4.c (define, pushdef): Likewise.
    (undefine, popdef, ifelse, m4_dump_symbols, defn, undivert)
    (traceon, traceoff): Make argc unsigned.
    * modules/m4.h (m4_dump_symbols_func): Likewise.
    * modules/evalparse.c (m4_evaluate): Likewise.
    * modules/gnu.c (builtin, indir): Use new accessors.
    (changesyntax): Make argc unsigned.
    * modules/perl.c (perleval): Likewise.
    * m4/utility.c (m4_dump_args): Use new accessors.
    * m4/macro.c (trace_pre): Likewise.
    (m4_arg_symbol, m4_arg_argc, m4_is_arg_text, m4_is_arg_func)
    (m4_arg_text, m4_arg_len, m4_arg_func): New functions.
    (expand_macro, trace_pre, trace_post, m4_macro_call): Update argc
    usage.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 14b2ffbb82eb22cd36b1703a5501ee87ea51c45c
Author: Eric Blake <address@hidden>
Date:   Sat Nov 24 16:23:47 2007 -0700

    Stage 1: convert m4_symbol_value** into new object.
    
    * ltdl/m4/gnulib-cache.m4: Import flexmember module.
    * m4/m4module.h (m4_macro_args): New type, will be opaque to
    modules later.
    (m4_builtin_func, M4BUILTIN, M4BUILTIN_HANDLER, m4_dump_args)
    (m4_macro_call): Alter signature to use m4_macro_args object.
    (M4ARG): Redefine to access new struct.
    * m4/m4private.h (M4_SYMBOL_COMP): New enumerator.
    (struct m4_symbol_chain): New type.
    (struct m4_symbol_value): Add chain alternative.
    * m4/macro.c (collect_arguments): Build new struct.
    (expand_macro, m4_macro_call, process_macro, trace_pre)
    (trace_post): Adjust implementation to use it.
    * m4/utility.c (m4_dump_args): Likewise.
    * modules/gnu.c (builtin, indir): Likewise.
    * modules/format.c (format): Likewise.
    * modules/m4.h (m4_dump_symbols_func): Likewise.
    * modules/m4.c (m4_dump_symbols, define, pushdef, defn, ifelse)
    (shift, include, errprint, m4wrap): Likewise.
    * modules/evalparse.c (m4_evaluate): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 32ab6f9f819643ec7187bf1680d582eb8f131774
Author: Eric Blake <address@hidden>
Date:   Sat Nov 24 07:04:18 2007 -0700

    Pass only macro name to utility functions.
    
    * m4/m4module.h (m4_bad_argc, m4_numeric_arg): Adjust signature.
    * m4/utility.c (m4_bad_argc, m4_numeric_arg): Adjust
    implementation.
    * m4/macro.c (m4_macro_call): Adjust callers.
    * modules/gnu.c (builtin, debuglen): Likewise.
    * modules/m4.c (ifelse, incr, decr, divert, undivert, m4exit)
    (substr): Likewise.
    * modules/evalparse.c (m4_evaluate): Likewise.
    * modules/stdlib.c (setenv, getpwuid, srand): Likewise.
    * modules/time.c (ctime, gmtime, localtime, mktime, strftime):
    Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit b6c03a0e43954549ed8724b770648678d6cf4edb
Author: Eric Blake <address@hidden>
Date:   Fri Nov 23 16:14:17 2007 -0700

    Add macro name to debugfile messages.
    
    * m4/m4module.h (m4_debug_set_output): Add parameter.
    * m4/debug.c (m4_debug_set_output, set_debug_file): Pass macro
    name through.
    * modules/gnu.c (debugfile): Adjust caller.
    * modules/m4.c (m4exit): Likewise.
    * src/main.c (main): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit f6e28cf9c7345716927f6279f22f085ccfbcde77
Author: Eric Blake <address@hidden>
Date:   Fri Nov 23 15:18:40 2007 -0700

    Factor out handling of macro name in error messages.
    
    * m4/m4module.h (m4_error, m4_error_at_line, m4_warn)
    (m4_warn_at_line): Add new parameter.
    * m4/utility.c (m4_verror_at_line): New helper method.
    (m4_error, m4_error_at_line, m4_warn, m4_warn_at_line): Add new
    parameter.
    (m4_bad_argc, m4_numeric_arg, m4_parse_truth_arg): All callers
    changed.
    * m4/debug.c: Likewise.
    * m4/input.c: Likewise.
    * m4/macro.c: Likewise.
    * m4/module.c: Likewise.
    * m4/output.c: Likewise.
    * m4/path.c: Likewise.
    * modules/evalparse.c: Likewise.
    * modules/format.c: Likewise.
    * modules/gnu.c: Likewise.
    * modules/load.c: Likewise.
    * modules/m4.c: Likewise.
    * modules/mpeval.c: Likewise.
    * src/freeze.c: Likewise.
    * src/main.c: Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 969296fe02fb61b739d606b3144d6410ed5cd793
Author: Eric Blake <address@hidden>
Date:   Wed Nov 14 16:39:43 2007 -0700

    Handle some defn corner cases differently.
    
    * doc/m4.texinfo (Defn): Update documentation; although this still
    doesn't match the branch, since it may be changed before 2.0.
    * m4/macro.c (expand_argument): Consistently ignore builtins in
    concatenation contexts.
    * m4/m4private.h (m4__symbol_type): Fix C89 compliance bug.
    
    Signed-off-by: Eric Blake <address@hidden>

commit b4a3bec5f9cfec145db6f4cb281ba1673ca6bfc6
Author: Eric Blake <address@hidden>
Date:   Tue Nov 13 14:08:16 2007 -0700

    Fix memory leak in tail recursion.
    
    * m4/input.c (pop_input): Add flag parameter and return type.
    (next_char): Adjust caller.
    (m4_push_string_init): Let go of memory earlier.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 6bfe1ba306cacd8d9316647f3b9f276cf56b31a8)

commit e339c7dd5269ea4f5da63606ec6348ee3e6fe7c8
Author: Eric Blake <address@hidden>
Date:   Wed Nov 7 08:13:43 2007 -0700

    More corner case testing.
    
    * tests/macros.at (Rescanning macros): Test more corner cases.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 5318dab180e2d652f64f928a405ede32539c7f57
Author: Eric Blake <address@hidden>
Date:   Tue Nov 6 06:29:27 2007 -0700

    * build-aux/mkstamp: Rename from ltdl/config/mkstamp.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 67f198b7abacaa5e7958ad8892b82de32d7c75cd
Author: Eric Blake <address@hidden>
Date:   Tue Nov 6 06:14:37 2007 -0700

    * Makefile.am (tests/package.m4): Work around bash bug.
    
    Reported by Ralf Wildenhues.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 639eaea0351edb82552a5ddce2103207b5e40e08
Author: Eric Blake <address@hidden>
Date:   Mon Nov 5 13:14:03 2007 -0700

    Ignore bootstrap leftovers.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 270995012df7ec0ba36116e760ea5e08a65db4ff
Author: Eric Blake <address@hidden>
Date:   Mon Nov 5 13:11:17 2007 -0700

    For consistency with other GNU projects, use build-aux directory.
    
    * configure.ac (AC_CONFIG_AUX_DIR): Change ltdl/config to
    build-aux.
    * bootstrap (config_aux_dir): Likewise.
    * Makefile.am (config_aux_dir): Likewise.
    * ltdl/m4/gnulib-cache.m4: Use --aux-dir option.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 4ccde147dd426daa27b2bbaa9bfc6d3587e9ddd4
Author: Eric Blake <address@hidden>
Date:   Fri Nov 2 18:42:16 2007 -0600

    Update some documentation about version control.
    
    * NEWS: M4 is now stored in git.
    * HACKING: Likewise.
    * README: Likewise.
    * bootstrap: Likewise.
    * commit: Delete, now that CVS commits are no longer necessary.
    * ltdl/config/mailnotify: No longer necessary; git's patch
    generation and mail capability is more powerful.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 0f7701a19187152180a0b9907fab29d152fc534a)

commit 26e81bffc9145212893274b1c55779d395bb16cf
Author: Eric Blake <address@hidden>
Date:   Fri Nov 2 17:03:01 2007 -0600

    Update to recent gnulib changes.
    
    * ltdl/m4/gnulib-cache.m4: Replace fprintf-posix, vasprintf-posix,
    xprintf, and xvasprintf with xprintf-posix and xvasprintf-posix.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 7c180fa335356cd55727a75979554b0d6f1e2c2c
Author: Eric Blake <address@hidden>
Date:   Thu Nov 1 07:08:35 2007 -0600

    Improve error message when early end of file occurs.
    
    * doc/m4.texinfo (Macro Arguments, Changequote, Changecom)
    (M4wrap): Adjust to new messages.
    (Improved capitalize): Enhance test.
    * m4/m4private.h (m4__next_token): Adjust prototype.
    * m4/input.c (m4__next_token): Add new parameter, and improve
    error message.
    * m4/macro.c (m4_macro_expand_input, collect_arguments): Adjust
    callers.
    (expand_argument): Likewise, and add parameter.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 8cf99d7ccdace1cddb3db6a127634afc6dcf06b5
Author: Eric Blake <address@hidden>
Date:   Wed Oct 31 08:50:30 2007 -0600

    Test more corner cases.
    
    * tests/macros.at (Rescanning macros): Beef up test.
    * doc/m4.texinfo (Changecom): Beef up test.
    (Improved foreach): Document alternate foreachq style.
    * examples/foreachq3.m4: New file.
    * examples/loop.m4: New file.
    * Makefile.am (dist_pkgdata_DATA): Distribute them.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 91b8f5afc665a8ba0cc2b0f06f371d4ae475809a
Author: Eric Blake <address@hidden>
Date:   Sun Oct 28 21:26:41 2007 -0600

    More test coverage for autoconf usage patterns.
    
    * doc/m4.texinfo (Shift): Document cond macro, and add new test.
    * tests/macros.at (Rescanning macros): New test.
    * tests/builtins.at (include): Augment test.
    
    Signed-off-by: Eric Blake <address@hidden>

commit d9274c9c964e7c610833e77eca4fb9fd37b00200
Author: Ralf Wildenhues <address@hidden>
Date:   Sun Oct 28 18:27:38 2007 -0600

    ChangeLog for previous commit.

commit 63e4aec38e5573ec8a774f5a6e467332826f5d95
Author: Ralf Wildenhues <address@hidden>
Date:   Sun Oct 28 17:20:30 2007 +0100

    * Makefile.am: Adjust getopt handling to latest gnulib layout.

commit 85920dd1b26a268744d8da4d4e6d52843b77a36a
Author: Eric Blake <address@hidden>
Date:   Sat Oct 27 06:15:51 2007 -0600

    Document one use of changequote(`(',`)').
    
    * doc/m4.texinfo (Changequote): Add new test, based on recent
    autoconf addition of m4_expand.
    
    Signed-off-by: Eric Blake <address@hidden>
    (cherry picked from commit 37e491acd84f447920057b1619ebab148adea8b1)

commit e8bf3ba075c1946f66e302f187b9012f26a742a2
Author: Ralf Wildenhues <address@hidden>
Date:   Wed Oct 24 15:43:51 2007 -0600

    Fix 'make distcheck'.
    
    * Makefile.am (dist_pkgdata_DATA): Add examples/capitalize2.m4.

commit f9d8c9ac448afd144085adb30ca5d23c3a0f1351
Author: Eric Blake <address@hidden>
Date:   Mon Oct 22 14:57:28 2007 -0600

    Never let printf failures go undetected.
    
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    xprintf'.
    * m4/system_.h: Include xprintf.h.
    * m4/debug.c (m4_debug_message_prefix, m4_debug_message): Wrap all
    use of printf, xprintf.
    * m4/input.c [DEBUG_INPUT]: Likewise.
    * m4/module.c [DEBUG_MODULES]: Likewise.
    * m4/output.c (m4_shipout_text, m4_shipout_int)
    (m4_freeze_diversions): Likewise.
    * m4/path.c [DEBUG_INCL]: Likewise.
    * m4/symtab.c [DEBUG_SYM]: Likewise.
    * m4/syntax.c [DEBUG_SYNTAX]: Likewise.
    * modules/modtest.c (export_test): Likewise.
    * src/freeze.c (produce_resyntax_dump, produce_syntax_dump)
    (produce_module_dump, dump_symbol_CB, produce_frozen_state):
    Likewise.
    * src/main.c (usage): Likewise.
    * po/POTFILES.in: Adjust to new file.
    * po/Makevars (XGETTEXT_OPTIONS): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 8cdf04b3b237b97163652f52b32ecb17679e2a27
Author: Eric Blake <address@hidden>
Date:   Thu Oct 18 10:45:16 2007 -0600

    Fix 'm4 -F file -t undefined'.
    
    * src/freeze.c (produce_symbol_dump): Skip trace placeholders.
    * src/freeze.c (dump_symbol_CB): Also skip void symbols.
    * tests/freeze.at (reloading unknown builtin): Test for this bug.
    * m4/m4module.h (m4_symtab_apply): Add parameter.
    * m4/symtab.c (m4_symtab_apply): Ignore trace placeholders when
    requested.
    (m4_symtab_delete, symtab_dump): Adjust callers.
    * modules/m4.c (m4_dump_symbols): Likewise.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 394083c7c6df499eedb10173ac838aced7d00a34
Author: Eric Blake <address@hidden>
Date:   Tue Oct 9 13:55:37 2007 -0600

    Fix regexp regression of 2007-09-29.
    
    * modules/gnu.c (substitute): Allow NULL buf when no
    subexpressions were present.
    (regexp): Handle \ escapes even with empty regex.
    * doc/m4.texinfo (Regexp, Patsubst): Catch this bug.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 2243fca7d2467700d05ea05c650115702cb49ab0
Author: Eric Blake <address@hidden>
Date:   Tue Oct 9 12:16:29 2007 -0600

    Cache regex compilation for another autoconf speedup.
    
    * modules/gnu.c     (gnu_buf): Replace...
    (REGEX_CACHE_SIZE, regex_cache): ...with new declarations.
    (m4_pattern_buffer): Add fields.
    (m4_regexp_compile): Rename...
    (regexp_compile): ...to this, and drop no_sub parameter.
    Implement caching.
    (M4FINISH_HANDLER): Clean up entire cache.
    (m4_regexp_search): Rename...
    (regex_search): ...to this, adjust to new struct contents, and add
    no_sub parameter.
    (m4_regexp_substitute): Rename...
    (regexp_substitute): ...to this.
    (substitute, patsubst, regexp, renamesyms): Adjust callers.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 06ff2073f88f397ecdab5f2b095c98f3a4cf9f9f
Author: Eric Blake <address@hidden>
Date:   Sat Oct 6 15:58:57 2007 -0600

    Ignore some more files.
    
    Signed-off-by: Eric Blake <address@hidden>

commit ce70fa8eddb995fbf062bdaec5af83ea92f53b93
Author: Eric Blake <address@hidden>
Date:   Tue Oct 2 14:01:51 2007 -0600

    Document quoting pitfalls in capitalize.
    
    * doc/m4.texinfo (Patsubst): Use the examples directory.  Also
    document shortfall.
    (Improved capitalize): New node.
    * examples/capitalize.m4: Update to match manual.
    * examples/capitalize2.m4: New file.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 22f445f46540022e6251591aa698f8234a14ae83
Author: Eric Blake <address@hidden>
Date:   Mon Oct 1 16:40:12 2007 -0600

    Another Autoconf usage pattern optimization.
    
    * modules/m4.c (m4_index): Optimize search for one byte.
    * doc/m4.texinfo (Index macro, Regexp, Patsubst): Test the new
    code paths.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 7dab2c5188d40c608afbe0df61d893e1019d8bfa
Author: Eric Blake <address@hidden>
Date:   Sat Sep 29 19:31:06 2007 -0600

    Optimize for Autoconf usage pattern.
    
    * modules/gnu.c (regexp, patsubst): Handle empty regex faster.
    
    Signed-off-by: Eric Blake <address@hidden>

commit d42dc52fba1d4afbd47a2cc352d5a1b85bc1241e
Author: Eric Blake <address@hidden>
Date:   Sat Sep 29 13:06:26 2007 -0600

    Borrow idea from autoconf testsuite.
    
    * tests/testsuite.at (AT_CHECK_M4): Slight optimization.
    
    Signed-off-by: Eric Blake <address@hidden>

commit b9ade95dc1cf8145f965d02be379bb4fd2e40b9d
Author: Eric Blake <address@hidden>
Date:   Mon Sep 24 16:36:47 2007 -0600

    Create .gitignore alongside .cvsignore.
    
    * bootstrap (version control): Update to reflect git usage.
    
    Signed-off-by: Eric Blake <address@hidden>

commit 10355982b07e7f20b85f4e9250e72f931db8e85b
Author: Eric Blake <address@hidden>
Date:   Thu Sep 13 14:03:42 2007 +0000

    * AUTHORS: Fix typo.

commit b7604d14c003a7c6ad286ab49f092a014d40d92c
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Sep 12 01:14:47 2007 +0000

    Be consistent about using 'module' for m4_module types and
    'handle' for lt_dlhandle types:
    
    * m4/m4private.h (m4_symbol_value): Rename handle element to
    method.  Changed all references.
    (VALUE_MODULE, SYMBOL_MODULE): Renamed from VALUE_HANDLE and
    SYMBOL_HANDLE respectively.  Changed all references.
    * m4/m4module.h (M4INIT_HANDLER, M4FINISH_HANDLER): Ditto.
    * m4/builtin.c (m4_builtin_find_by_name)
    (m4_builtin_find_by_func): Use module as the parameter name for
    pointers of type 'm4_module'.
    * m4/module.c (module_remove, m4_get_module_name)
    (install_builtin_table, install_macro_table)
    (m4_module_make_resident, m4__module_next, m4_module_refcount):
    Ditto.
    * src/freeze.c (produce_module_dump): Ditto.
    * m4/input.c (m4_input_block): Rename handle element to method.
    Changed all references.
    * m4/symtab.c (m4__symtab_remove_module_references): Ditto.
    * modules/load.c: Use module as the variable name for pointers
    of type 'm4_module'.
    * modules/m4.c: Ditto.
    * modules/perl.c: Ditto.
    * modules/shadow.c: Ditto.

commit 7b41678d9745d1bcab2aa85ef903d805971ef294
Author: Eric Blake <address@hidden>
Date:   Fri Sep 7 22:37:46 2007 +0000

    Add refcount builtin.
    * modules/load.c (refcount): New builtin.
    (m4modules): Use correct type.
    * doc/m4.texinfo (Refcount): New section.
    * m4/m4private.h (struct m4_module): Add refcount member.
    (m4_module_refcount) [NDEBUG]: Add faster accessor macro.
    * m4/module.c (m4_module_load): Add symbols to table on first
    load by m4, regardless of other libltdl loads of same module.
    (m4_module_refcount): Use new struct member, rather than relying
    on libltdl count which might be inflated by unrelated loads.
    (m4__module_interface): Optimize.
    (m4__module_next, m4__module_find): Avoid assertions that could
    trigger with unrelated libltdl loads.
    (m4__module_open): Track m4 load count.
    (m4__module_exit): Only unload what m4 loaded.
    (module_remove): Track m4 unloads.
    * NEWS: Document new builtin.

commit 19e35c91ebd53b2e4caba8e631fef499a3edfd4e
Author: Eric Blake <address@hidden>
Date:   Fri Sep 7 20:59:36 2007 +0000

    More conversion to m4_module*.
    * src/freeze.c (produce_module_dump, dump_symbol_CB)
    (reload_frozen_state): Use correct type.
    * m4/input.c (struct m4_input_block): Likewise.
    * m4/symtab.c (dump_symbol_CB): Likewise.

commit c0e66b058bc953b285e37adf901431507d6c4795
Author: Eric Blake <address@hidden>
Date:   Fri Sep 7 13:07:59 2007 +0000

    * AUTHORS: Simplify, to match libtool and autoconf layout.
    * THANKS: Sync with branch.

commit 4ebe196152aec5144a84dda60ccfcc5422945907
Author: Eric Blake <address@hidden>
Date:   Thu Sep 6 22:58:25 2007 +0000

    Wrap lt_dlhandle in struct m4_module.
    * m4/m4module.h (includes): No longer require clients to know
    about lt_dlhandle.
    (m4_module): New opaque declaration.
    (m4_export): Delete unused type.
    (M4INIT_HANDLER, M4FINISH_HANDLER, m4_module_init_func)
    (m4_module_finish_func, m4_module_load, m4_get_module_name)
    (m4_builtin_find_by_name, m4_builtin_find_by_func): Use new
    wrapper.
    (m4_module_makeresident, m4_module_refcount): New declarations.
    * m4/m4private.h (includes): Move <ltdl.h> here.
    (m4_module): New declaration.  Simple for now, but intended for
    growth.
    (m4__module_open, m4__module_next, m4__module_find)
    (m4__symtab_remove_module_references): Use new wrapper.
    * m4/builtin.c (m4_builtin_find_by_name, m4_builtin_find_by_func):
    Likewise.
    * m4/module.c (m4_get_module_name, m4_module_import)
    (m4_module_load): Likewise.
    (install_builtin_table, install_macro_table): Likewise.  Also,
    change return type since these always returned NULL and no one
    used the result.
    (m4_module_makereside

commit c6e5f016bf148e28dc6907a07b271a080ba4792d
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Sep 3 22:11:41 2007 +0000

    * bootstrap (ltdl/m4/.cvsignore): Add xstrtol module macros.
    * src/m4/.cvsignore: Add xstrtol module sources.

commit b6a37e1a9940fed2e931d5ac51a3077350b947bc
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Sep 3 22:05:12 2007 +0000

    Work around a bug in darwin's awk:
    
    * bootstrap (func_get_translations): Use $AWK instead of raw
    `awk' so that the user can use an alternative implementation
    if the first awk in PATH doesn't behave as expected.
    (func_get_translations): The first awk script mangles the last
    entry passed to it for at least the awk implementation shipped
    with Darwin 8.10.1.  Capture $3 into a variable too to work-
    around that problem.

commit 56353f536d22753ae2c87e0bf947c293a037fe30
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 30 00:51:32 2007 +0000

    As gnulib xstrtol is only used by main, and unconditionally pulls
    in a copy of getopt, undo bootstrap change from 2007-08-11 below,
    and copy the xstrtol code into src/ so that main() can use it
    without pushing the extra code into libm4:
    
    * bootstrap (src_modules): Add getopt and xstrtol modules.
    * Makefile.am (src_m4_SOURCES): Add xstrtol sources.
    * po/POTFILES.in: Move gnu/xstrtol-error.c to src/xstrtol-error.c.

commit dfdfa966bc5608e3987f7227313f79648a2d6bd8
Author: Eric Blake <address@hidden>
Date:   Sat Aug 11 15:50:58 2007 +0000

    Another upstream xstrtol change.
    * po/POTFILES.in: Track changes in files containing messages.
    * bootstrap (src_modules): getopt is now pulled into libgnu.a, no
    need to grab it separately.
    * src/main.c (OPT_STR, LONG_OPT_STR, short_opt_str, OPT_STR_INIT):
    No longer needed.
    (size_opt): Adjust to latest xstrtol interface.

commit 53de61c254851eef36e693c1e25063bf1c3763e5
Author: Eric Blake <address@hidden>
Date:   Fri Aug 10 15:09:45 2007 +0000

    Documentation improvements.
    * doc/m4.texinfo (Defn): Resync with branch.
    (Compatibility, Extensions): Sync with branch.

commit b0812dc1b4b617b289a6cde9f59c219b9c8cb5fc
Author: Eric Blake <address@hidden>
Date:   Tue Aug 7 20:59:23 2007 +0000

    Adjust to gnulib xstrtol changes.
    * src/main.c (size_opt): Adjust signature, so that error strings
    are easier to translate.
    (OPT_STR, LONG_OPT_STR, short_opt_str, OPT_STR_INIT): New macros
    for tracking long options.
    (main): Track which long option was used.
    * tests/options.at (--debuglen, --nesting-limit): Adjust to change
    in error message.
    (deprecated options): Test that --arglength spelling shows up in
    error message.

commit 5ced71a68dc08d609d56db45882d89279df0c9c7
Author: Eric Blake <address@hidden>
Date:   Tue Aug 7 03:15:24 2007 +0000

    Normalize all GPL license notices.
    * m4/COPYING.LIB: Delete - libm4 is not distributed under LGPLv2
    at this time.
    * Makefile.am: Update license wording.
    * bootstrap: Likewise.
    * commit: Likewise.
    * configure.ac: Likewise.
    * ltdl/config/mailnotify: Likewise.
    * ltdl/config/mkstamp: Likewise.
    * ltdl/m4/debug.m4: Likewise.
    * ltdl/m4/gmp.m4: Likewise.
    * ltdl/m4/m4-error.m4: Likewise.
    * ltdl/m4/m4-getopt.m4: Likewise.
    * ltdl/m4/m4-gettext.m4: Likewise.
    * ltdl/m4/m4-obstack.m4: Likewise.
    * ltdl/m4/m4-regex.m4: Likewise.
    * ltdl/m4/stackovf.m4: Likewise.
    * m4/builtin.c: Likewise.
    * m4/debug.c: Likewise.
    * m4/hash.c: Likewise.
    * m4/hash.h: Likewise.
    * m4/input.c: Likewise.
    * m4/m4.c: Likewise.
    * m4/m4module.h: Likewise.
    * m4/m4private.h: Likewise.
    * m4/macro.c: Likewise.
    * m4/module.c: Likewise.
    * m4/output.c: Likewise.
    * m4/path.c: Likewise.
    * m4/resyntax.c: Likewise.
    * m4/symtab.c: Likewise.
    * m4/syntax.c: Likewise.
    * m4/system_.h: Likewise.
    * m4/utility.c: Likewise.
    * modules/evalp

commit 656f1a04a8d5a24697ceb2be6f8d57772715518a
Author: Eric Blake <address@hidden>
Date:   Sun Jul 22 22:53:35 2007 +0000

    Fix diversions on NetBSD, when fopen(name,"a+") seeks to end.
    * m4/output.c (m4_tmpopen): Explicitly seek to beginning.
    * tests/builtins.at (divert): Enhance test to cover this.
    * THANKS: Update.
    Reported by Thomas Klausner.

commit 43a54faa7607e88ea67d6785c36096705f11cde9
Author: Eric Blake <address@hidden>
Date:   Sat Jul 21 03:41:12 2007 +0000

    Fix 'make distcheck' issues.
    * bootstrap: Add more files that might be more up-to-date in
    gnulib.
    * Makefile.am (EXTRA_DIST): No longer distribute removed diff.
    * config/m4/gnulib-cache.m4: Update to latest gnulib.

commit d6dbc1955084bda1426116253da8389bfbece75a
Author: Eric Blake <address@hidden>
Date:   Mon Jul 16 13:09:20 2007 +0000

    * po/POTFILES.in: Track recent translation additions from gnulib
    updates.

commit 3081f29cb6652e38b06df9c71a1ca3750f5b63e9
Author: Eric Blake <address@hidden>
Date:   Sun Jul 15 04:26:45 2007 +0000

    Reflect upstream license .texi changes.
    * doc/m4.texinfo (Copying): Rename node...
    (GNU General Public License): ...to this.
    (GNU Free Documentation License): Adjust node location.
    * local/doc/gpl-3.0.texi.diff: Remove file.

commit 4755abc0ee9919c070345861cefd96380be2e2f6
Author: Eric Blake <address@hidden>
Date:   Tue Jul 10 20:48:06 2007 +0000

    Upgrade to GPLv3, and document 1.4.10.
    * bootstrap: Adjust to GPLv3.
    (func_update): Port from branch.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool
    --local-dir=local --import gpl-3.0'.
    * doc/m4.texinfo (History): Mention 1.4.11.
    (Copying This Package): New appendix.
    * NEWS: Document 1.4.10.
    * local/doc/gpl-3.0.texi.diff: New file.
    * Makefile.am: Update license.
    (doc_m4_TEXINFOS, EXTRA_DIST): Distribute additions.
    * commit: Update license.
    * configure.ac: Likewise.
    * ltdl/config/mailnotify: Likewise.
    * ltdl/config/mkstamp: Likewise.
    * ltdl/m4/debug.m4: Likewise.
    * ltdl/m4/gmp.m4: Likewise.
    * ltdl/m4/m4-error.m4: Likewise.
    * ltdl/m4/m4-getopt.m4: Likewise.
    * ltdl/m4/m4-gettext.m4: Likewise.
    * ltdl/m4/m4-obstack.m4: Likewise.
    * ltdl/m4/m4-regex.m4: Likewise.
    * ltdl/m4/stackovf.m4: Likewise.
    * m4/builtin.c: Likewise.
    * m4/debug.c: Likewise.
    * m4/hash.c: Likewise.
    * m4/hash.h: Likewise.
    * m4/input.c: Likewise.
    * m4/m4.c: Likewise.
    * m4/m4module.h: Likewise.
    * m4/m4private.

commit b72bd79d0b38ccdce3083b6fa4c942b2cbaac8d4
Author: Eric Blake <address@hidden>
Date:   Mon Jul 9 13:21:56 2007 +0000

    * modules/format.c (format): Avoid undefined behavior with %c.

commit 008c842eb846a05ffa714efb084b20be0e9cb7b6
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Jul 1 19:49:40 2007 +0000

    The translation project has moved.
    * bootstrap (func_get_translations): Use the new translation
    project url.
    (TP_URL): Removed.

commit f3859b48dac6236481b3839dace9c1c7372c49d9
Author: Eric Blake <address@hidden>
Date:   Tue Jun 26 11:31:54 2007 +0000

    Match Free Software Directory categories.
    * doc/m4.texinfo (dircategory): Update.

commit 4f82b1e37666722c57e9e6fd2495d9c1cd694db8
Author: Eric Blake <address@hidden>
Date:   Thu May 31 13:26:38 2007 +0000

    Add extension to divert builtin.
    * modules/m4.c (builtin_divert): Immediately divert second
    argument.
    * m4/output.c (m4_output_text): Allow 0 length.  Fixes regression
    from two days ago.
    (m4_shipout_text): Short-circuit on zero length.
    * tests/freeze.at (loading format 2): Expand test to catch
    regression.  Also check out-of-range version.
    * tests/builtins.at (divert): Expand test to check corner cases
    of extension.
    * NEWS: Document the extension.
    Reported by Daniel Richard G.

commit e12ff51c9cfbc0966d680a2805c596182dc4f84a
Author: Eric Blake <address@hidden>
Date:   Wed May 30 13:36:58 2007 +0000

    Port format improvements from branch.
    * doc/m4.texinfo (History): Mention upcoming 1.4.10 release.
    (Format): Enhance section.
    * modules/format.c (format): Accept %'hhd, and issue warnings on
    unrecognized specifiers.
    * modules/gnu.c (builtin_format): Adjust how format is called.

commit 5cf38c3f50ff7aa62e3951276ded232069d5f400
Author: Eric Blake <address@hidden>
Date:   Mon May 28 22:08:44 2007 +0000

    * tests/options.at (--syncoutput): Add xfailed test.

commit 68e5fa96a5a8965b49141f877a4d162f7b0a5a52
Author: Eric Blake <address@hidden>
Date:   Mon May 28 21:48:40 2007 +0000

    Fix sync line interaction with multiline comments.
    * doc/m4.texinfo (Preprocessor features): Improve documentation.
    (Syncoutput): Improve testsuite.
    (Incompatibilities): Add testcase, and document bug.
    * src/freeze.c (reload_frozen_state): Don't interfere with
    synclines when reloading state.
    * m4/input.c (m4__next_token): Report line where multiline tokens
    start.
    * m4/m4private.h (m4__token_type): Add parameter.
    * m4/m4module.h (m4_output_text): Export.
    (m4_shipout_text): Add parameter.
    * src/macro.c (m4_macro_expand_input, expand_token)
    (expand_argument): Adjust callers so that line is passed from
    input to output.
    * m4/output.c (output_text): Rename...
    (m4_output_text): ...to this, and export.
    (m4_insert_file, insert_diversion_helper): Update callers.
    (m4_shipout_text): Take new parameter for start line of token.
    Output at most one syncline per token.
    Reported by Sergey Poznyakoff.

commit 0d558ad94060c4573d2c2640444d6dc82103ff52
Author: Eric Blake <address@hidden>
Date:   Mon May 28 20:10:01 2007 +0000

    Fix large diversion corner cases.
    * tests/freeze.at (large diversion): New test.
    * m4/output.c (m4_tmpfile, m4_tmpopen): Simplify use of errno.
    (make_room_for): Use NULL, not 0, for pointers.
    (m4_freeze_diversions): Allow freezing large diversions.
    (insert_diversion_helper): Avoid using rewind.

commit 971da169f5773ac79913f1abc8092058d839a276
Author: Eric Blake <address@hidden>
Date:   Mon May 28 18:52:41 2007 +0000

    Also run gnulib unit tests during make check.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool
    --tests-base=tests/gnu --with-tests'.
    * configure.ac (AC_CONFIG_FILES): Build tests/gnu testdir.
    * Makefile.am (SUBDIRS): Run gnulib tests before ours.

commit 604065529af5ca84448f4c15ef31b0e279ccddeb
Author: Eric Blake <address@hidden>
Date:   Sat May 26 02:47:06 2007 +0000

    * m4/system_.h: Include <stdint.h>, for intmax_t.
    * THANKS: Update.
    Reported by Daniel Richard G.

commit fa8768bc7aa3153979a6a5295baa84f138fd0d9c
Author: Eric Blake <address@hidden>
Date:   Thu May 24 20:13:44 2007 +0000

    Provide consistent shift semantics regardless of hardware.
    * modules/m4.c (numb_lshift, numb_rshift, numb_urshift): Mask
    before shifting.
    (number, unumber): Always use [u]intmax_t.
    Reported by Gary V. Vaughan.

commit 65bedc1cbd322db74e0f81f73d6a246ba709d97c
Author: Eric Blake <address@hidden>
Date:   Thu May 24 18:02:54 2007 +0000

    Support POSIX flush semantics on all platforms.
    * modules/m4.c (m4_sysval_flush): Rely on gnulib.
    * ltdl/m4/gnulib-cache.m4: Fix typo in previous commit.

commit 4d05335d92712013aab2010fd8bd85be1d41a3bf
Author: Eric Blake <address@hidden>
Date:   Thu May 24 12:54:12 2007 +0000

    Work around cygwin and mingw fseeko bugs.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    fseeko'.
    * modules/m4.c (m4_sysval_flush): Prefer fseeko over fseek.

commit 39cb0bba1e8c57b0f74c3431964be154b981cf45
Author: Eric Blake <address@hidden>
Date:   Wed Apr 25 14:16:21 2007 +0000

    Test that regression in 1.4.9's eval doesn't recur.
    * doc/m4.texinfo (Eval): Check negative division.
    * THANKS: Update.

commit 4e7e4b8be694e3437dc9473d590711f617ce4b4a
Author: Eric Blake <address@hidden>
Date:   Thu Apr 12 17:41:34 2007 +0000

    Allow for running test in sticky or setgid directory.
    * tests/builtins.at (mkdtemp): Adjust test.

commit f6938754a664d2a924d0b01858ebe188ddeb49e8
Author: Eric Blake <address@hidden>
Date:   Thu Apr 12 17:38:28 2007 +0000

    Don't test for broken sed too soon.
    * tests/others.at (stdin seekable): Rearrange subtests.

commit fb204c39c80adf990facdb514781269f70166ad6
Author: Eric Blake <address@hidden>
Date:   Thu Apr 12 16:27:20 2007 +0000

    Work around 'stdin seekable' shortcoming on glibc.
    * ltdl/m4/gnulib-cache.m4: Use closein instead of closeout.
    * tests/others.at (stdin closed): Adjust to new output.
    * src/main.c (process_file): No need to return anything.
    (main): Use close_stdin instead of close_stdout.
    Reported by Ralf Wildenhues.

commit ca610f04659f5f33e8a883b929dac2f52f1e8eee
Author: Eric Blake <address@hidden>
Date:   Thu Apr 12 12:30:20 2007 +0000

    Enable autobuild usage.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    autobuild'.
    * configure.ac (AB_INIT): Output autobuild information.

commit 84bda7dcc6e07958de84fbe494af9b48e5310aeb
Author: Eric Blake <address@hidden>
Date:   Wed Apr 11 15:48:09 2007 +0000

    Address testsuite shortcoming in 'stdout full' on glibc.
    * tests/others.at (stdout full): Adjust expected output when more
    than 1k text is printed to /dev/full.
    Reported by Ralf Wildenhues.

commit 9ea788db76b1c638edc23529d970066ec712de6a
Author: Eric Blake <address@hidden>
Date:   Tue Apr 10 14:39:40 2007 +0000

    * HACKING: Document policy behind 2007-04-07 patch.

commit 4c05d5643442a9fa6ad02ce7b62bc8bf032caa26
Author: Eric Blake <address@hidden>
Date:   Tue Apr 10 13:56:20 2007 +0000

    * tests/macros.at (Arity and defn): Fix quoting.

commit 374ac63e113433bdc1fb02e2b9c0b283a54b8255
Author: Eric Blake <address@hidden>
Date:   Tue Apr 10 03:45:23 2007 +0000

    Address failure of 'seekable stdin' on Mac OS X.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    fflush.

commit 3cad9b0aaa0c2343d37ba52ee5dd0ff228693ed5
Author: Eric Blake <address@hidden>
Date:   Sun Apr 8 05:06:42 2007 +0000

    Include <config.h> first in all C files, and not in headers.
    Fixes regression for --disable-assert builds from 2007-04-02.
    * src/m4.h (includes): Don't include config.h here.
    * m4/m4private.h (includes): Likewise.
    * m4/builtin.c: Include config.h before anything else.
    * m4/debug.c: Likewise.
    * m4/hash.c: Likewise.
    * m4/input.c: Likewise.
    * m4/m4.c: Likewise.
    * m4/macro.c: Likewise.
    * m4/module.c: Likewise.
    * m4/symtab.c: Likewise.
    * m4/syntax.c: Likewise.
    * m4/utility.c: Likewise.
    * src/freeze.c: Likewise.
    * src/stackovf.c: Likewise.

commit 0272fa99f3cfa800daa5b8a8222611ad8d315937
Author: Eric Blake <address@hidden>
Date:   Tue Apr 3 21:06:16 2007 +0000

    * modules/m4.c (numb_ratio, numb_divide, numb_modulo): Avoid
    SIGFPE on x86 architectures.
    Reported by Ralf Wildenhues.

commit 8b29cfdba57ed8308fcf6cebe8fafffe5f483d9d
Author: Eric Blake <address@hidden>
Date:   Tue Apr 3 11:38:01 2007 +0000

    Fix warnings from last commit.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    fprintf-posix sprintf-posix'.
    * m4/macro.c (expand_macro, trace_format): Use correct specifier
    for size_t.
    (process_macro): Avoid negative array index.
    * src/freeze.c (produce_resyntax_dump, produce_module_dump)
    (dump_symbol_CB, produce_frozen_state): Use correct specifier for
    size_t.

commit 5b76db460e57b65caa2ad5ebf52817cfe50524e4
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Apr 2 12:28:08 2007 +0000

    Get rid of the last 'differs in signedness' compiler warnings:
    
    * m4/macro.c (process_macro): m4_get_symbol_value_text() returns
    a regular 'char *', so variables to store the return address,
    and iterate through it should be regular 'char *' too.
    * m4/input.c (m4_input_block): The start and current members of
    the string part of this union store regular 'char *' types, so
    they should be regular 'char *' types too.

commit 1722215a83e85c5d0edf5e5431925b0a08d1a334
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Apr 2 12:06:23 2007 +0000

    M4 was designed to have a small number of header files defining
    the interfaces to several source files each.  Keeping this in
    mind allows us to tidy things up considerably.  Having done this,
    it becomes clear that some of the installed headers reference
    other headers which are not installed (but that's another patch):
    
    * m4/m4private.h (stdio--.h, stdlib--.h, unistd--.h): Moved from
    here...
    * m4/system_.h (gnu/stdio--.h, gnu/stdlib--.h, gnu/unistd--.h):
    ...to here, so client modules can benefit too.
    (assert.h, errno.h, limits.h, sys/stat.h): Include one here at the
    lowest level to save doing it multiple times elsewhere.
    * m4/debug.c (stdio.h): Removed.  The portable <gnu/stdio--.h>
    is already included via m4private.h.
    * modules/time.c (stdio.h): Ditto.
    * modules/gnu.c (stdlib.h): Ditto resp <gnu/stdlib--.h>.
    * modules/stdlib.c (stdlib.h, unistd.h): Ditto resp <gnu/stdlib--.h>
    and <gnu/unistd--.h>,
    * m4/m4private.h (m4module.h): Use angle brackets for an installed
    file.
    * m4/hash.h (system.h): Ditto.
    * modules/gnu.c (progname.h): Removed.
    * src/freeze.c (m4/system.h, m4private.h): Already included vi m4.h.
    * m4/m4private.h (assert.h, errno.h): Already included via
    m4/m4module.h.
    * m4/input.c (ctype.h): Ditto.
    * m4/module.c (ltdl.h): Ditto.
    * m4/output.c (errno.h, limits.h, stdio.h, sys/types.h, sys/stat.h)
    (unistd.h): Ditto.
    * m4/path.c (config.h, stdlib.h): Ditto.
    * m4/utility.c (config.h): Ditto.
    * modules/evalparse.c (assert.h, ctype.h): Ditto.
    * modules/gnu.c (assert.h, ctype.h, errno.h): Ditto.
    * modules/import.c (assert.h): Ditto.
    * modules/m4.c (assert.h, errno.h): Ditto.
    * modules/modtest.c (assert.h): Ditto.
    * modules/stdlib.c (sys/types.h): DittAo.
    * src/m4.h (ctype.h, errno.h, string.h, sys/types.h, ltdl.h):
    Ditto.
    * src/stackovf.c (assert.h): Ditto.
    * modules/gnu.c (m4/m4module.h, m4private.h): Build using the faster
    private interfaces when NDEBUG is defined.
    * modules/import.c (m4/m4module.h, m4private.h): Ditto.
    * modules/load.c (m4/m4module.h, m4private.h): Ditto.
    * modules/m4.c (m4/m4module.h, m4private.h): Ditto.
    * modules/modtest.c (m4/m4module.h, m4private.h): Ditto.
    * modules/mpeval.c (m4/m4module.h, m4private.h): Ditto.
    * modules/perl.c (m4/m4module.h, m4private.h): Ditto.
    * modules/shadow.c (m4/m4module.h, m4private.h): Ditto.
    * modules/time.c (m4/m4module.h, m4private.h): Ditto.
    * modules/traditional.c (m4/m4module.h, m4private.h): Ditto.
    * src/m4.h (locale.h): Moved from here...
    * src/main.h: ...to here.
    (m4private.h): Already included via m4.h.
    * src/stackovf.c (m4private.h): Ditto.

commit 777142456c1f3fac259fb25af6514980229af818
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Mar 28 14:37:33 2007 +0000

    * Makefile.am (stamp-vcl): Removed.
    (CONFIG_STATUS_DEPENDENCIES): Depend directly on ChangeLog.

commit fb9bcc1c7c289acd124d4aa6d6ffbb86d2490791
Author: Eric Blake <address@hidden>
Date:   Wed Mar 28 12:19:35 2007 +0000

    * src/main.c (usage): Improve note to TRANSLATORS.
    * m4/system_.h (EXIT_FAILURE): Reflect gnulib changes.

commit cac684add6ead8a4e36ac45435a7bfbc53c0fc88
Author: Eric Blake <address@hidden>
Date:   Wed Mar 28 11:42:04 2007 +0000

    * tests/builtins.at (__m4_version__): Fix bug when TIMESTAMP is
    empty.

commit 66497f41ef08e7571b6581a6938494ed2ac4ba70
Author: Eric Blake <address@hidden>
Date:   Sat Mar 24 21:29:41 2007 +0000

    * m4/output.c (m4_output_init): Update to latest gnulib.
    * bootstrap (ltdl/m4/.cvsignore): No longer track generated
    .cvsignore in CVS.
    * NEWS: Reflect release of 1.4.9.
    * THANKS: Update.

commit 23510d8e6f3cbddcdd85cd6b2bcc3919069c2fbf
Author: Eric Blake <address@hidden>
Date:   Wed Mar 7 15:46:52 2007 +0000

    * AUTHORS: Update

commit 2654772eff9c05fae432b715dd4ff5a1d9b42f2b
Author: Eric Blake <address@hidden>
Date:   Wed Mar 7 15:34:07 2007 +0000

    * ltdl/m4/.cvsignore: Update to latest gnulib.

commit c7bd39310be5c6008087faec8809d2ec675f5c3a
Author: Eric Blake <address@hidden>
Date:   Wed Mar 7 15:31:14 2007 +0000

    Exercise gnulib's new POSIX *printf modules.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    vasprintf-posix'.
    * modules/format.c (format): Support %a and %A.
    * doc/m4.texinfo (Format): Test this addition.
    * NEWS: Document this addition.

commit c4f02fd49a2c86eaa0dc5707936c112d31efe908
Author: Eric Blake <address@hidden>
Date:   Sat Mar 3 21:10:24 2007 +0000

    * m4/input.c (m4__next_token): Fix synclines when in batch mode.
    * doc/m4.texinfo (M4exit): Synch another section.
    (Syncoutput): Make similar to other sections.

commit 90bf006c65e0fb7d07d5f01df855ce97e9b4d1dd
Author: Eric Blake <address@hidden>
Date:   Fri Mar 2 03:26:30 2007 +0000

    * doc/m4.texinfo: Improve the indices.
    (Concept index): Rearrange to be last.
    (Sysval): Merge from branch.

commit dcf969ac068b2082c3f524c468bb37cba4739201
Author: Eric Blake <address@hidden>
Date:   Thu Mar 1 14:30:24 2007 +0000

    * doc/m4.texinfo (Syscmd, Esyscmd): Merge more doc sections.

commit 37cb2a3e79c237941583ef92d7ffe834c31967b2
Author: Eric Blake <address@hidden>
Date:   Wed Feb 28 21:31:12 2007 +0000

    POSIX XCU ERN 137 was approved.
    * modules/mpeval.c (numb_extension): Delete.
    * modules/m4.c (numb_extension): Likewise.
    * modules/evalparse.c (comma_term, condition_term): Always
    implement ?: and , operators.
    * m4/symtab.c: Update comment to match reality.
    * src/freeze.c (produce_frozen_state, reload_frozen_state): Avoid
    dereferencing context directly when accessor exists.
    * src/main.c (usage): Prefer GNU_M4 over EMACS.
    (struct macro_definition): Rename...
    (struct deferred): ...to match usage.  All uses changed.
    * doc/m4.texinfo (Eval): Document this change.
    (Operation modes, Changeresyntax): Fix wording to prefer GNU_M4
    over emacs.
    (Preprocessor features, Changesyntax): Fix inaccuracies.
    * NEWS: Import branch NEWS items for 1.4.x series.  Document
    change in eval.

commit 083f98f05fadf5b6256b7facb37a120955f58c00
Author: Eric Blake <address@hidden>
Date:   Wed Feb 28 14:36:22 2007 +0000

    POSIX XCU ERN 118 was approved.
    * modules/m4.c (define): Kill posixly_correct distinction in
    define behavior, since POSIX says GNU behavior complies.
    * tests/builtins.at (define): Restore original semantics.
    * doc/m4.texinfo (Pushdef): Document portability issues with
    define.
    (Incompatibilities): Clean up wording of what POSIX requires.
    * NEWS: Document this.

commit 99b4464c8106a77ab67bea43f5935eb736f13efb
Author: Eric Blake <address@hidden>
Date:   Mon Feb 26 21:44:10 2007 +0000

    Re-enable clean bootstrap on cygwin.
    * Makefile.am (AM_LDFLAGS): For now, export all symbols from
    modules, since otherwise we run afoul of current libtool
    limitations on cygwin and mingw.

commit f86e50deb0aa0c476e214b83f0300a6186e3064f
Author: Eric Blake <address@hidden>
Date:   Sun Feb 25 23:19:32 2007 +0000

    * src/freeze.c (reload_frozen_state): Avoid dereferencing freed
    memory.  Fixes regression introduced 2007-01-20.

commit 9dab356f81833bbd0a28172142876070d80e2ccf
Author: Eric Blake <address@hidden>
Date:   Sun Feb 25 22:43:54 2007 +0000

    * tests/freeze.at (loading format 2): Augment test to catch
    regression introduced on 2007-01-20.
    * THANKS: Update.
    Reported by M. Levinson.

commit 7aaaa77c75ecfb86f2b19eee6aa2b8ece321c7b0
Author: Eric Blake <address@hidden>
Date:   Sun Feb 25 15:56:09 2007 +0000

    * ltdl/config/.cvsignore: Adjust to latest gnulib.
    * ltdl/m4/.cvsignore: Likewise.

commit 5f6ae9178ec9a852aa0ce99e0b1466fb12e0dcac
Author: Eric Blake <address@hidden>
Date:   Sun Feb 25 15:53:39 2007 +0000

    * m4/system_.h (includes, EXIT_SUCCESS, EXIT_FAILURE): Adjust to
    latest gnulib.

commit 64034d1fcb1ec2c24683a1ab0eaaec90a5a5d4c9
Author: Eric Blake <address@hidden>
Date:   Tue Feb 6 13:46:28 2007 +0000

    * ChangeLog: Correct entry.

commit bf051e7ac89c18f003dca9e398b3522b7ed30e1e
Author: Eric Blake <address@hidden>
Date:   Mon Feb 5 17:31:10 2007 +0000

    * tests/options.at (--fatal-warnings): New test.
    * tests/others.at (stdin seekable): Exit on error.
    * m4/m4private.h (M4_OPT_WARN_EXIT_BIT): New bit.
    (m4_get_warnings_exit_opt): Access it.
    * m4/m4module.h (m4_context_opt_bit_table): Access it.
    * m4/utility.c (m4_error, m4_error_at_line): Only force an exit
    on -EE.
    (m4_warn, m4_warn_at_line): Change exit status on -E, and force
    exit on -EE.
    * src/m4.c (usage): Document new -E behavior.
    (main): Make -E an additive option.
    * doc/m4.texinfo (Operation modes): Document the change.
    Reported by Ralf Wildenhues.

commit 7991d700efd5b1418a0c87ecc87e46908be376b7
Author: Eric Blake <address@hidden>
Date:   Mon Feb 5 16:20:25 2007 +0000

    * tests/others.at (stdin seekable): Fix bug in test.
    * ltdl/m4/gnulib-cache.m4: Gnulib module strstr no longer exists.

commit d7983931fcd4575dfdee6bffdb6f02873e6b80e8
Author: Eric Blake <address@hidden>
Date:   Mon Feb 5 13:48:11 2007 +0000

    * m4/input.c (struct m4_input_block): Remove unused field traced.

commit 5cf13a762b6f301cd1b7714042055a8b4f1b9cd2
Author: Eric Blake <address@hidden>
Date:   Sat Feb 3 23:45:43 2007 +0000

    * doc/m4.texinfo (Input processing, Quoting Arguments): Beef up
    the examples.
    Reported by Bruno Haible.

commit 22236e35f60c23622af6b4eeabf5ac9a19f2adcd
Author: Eric Blake <address@hidden>
Date:   Thu Feb 1 05:43:45 2007 +0000

    * ltdl/m4/.cvsignore: Update to latest gnulib.

commit a5ac7a1e6ad3b1c25aa7a4aad8d11e91fa20e298
Author: Eric Blake <address@hidden>
Date:   Thu Feb 1 05:43:09 2007 +0000

    * m4/resyntax.c (m4_regexp_syntax_encode): Detect allocation
    failure.

commit f3190e2350bd9f763bd706b634a8e5a80450644e
Author: Eric Blake <address@hidden>
Date:   Sun Jan 28 02:54:51 2007 +0000

    * ltdl/m4/.cvsignore: Update to latest gnulib.

commit 83328119d273bdee04dc6f0ce628559ddee94b02
Author: Eric Blake <address@hidden>
Date:   Sat Jan 27 00:25:13 2007 +0000

    * m4/symtab.c (includes): Adjust to latest gnulib.
    * modules/m4.c (includes): Likewise.

commit 687cc3733e3a8b8aca58859cddc3f249d7e94abb
Author: Eric Blake <address@hidden>
Date:   Tue Jan 23 14:28:22 2007 +0000

    * m4/m4module.h (M4_SYNTAX_ASSIGN): Delete this unused
    extension to make enough room.
    (M4_SYNTAX_IGNORE): Change value to zero, since the (commented)
    code in input.c special cases this category.
    (M4_SYNTAX_LBRACE, M4_SYNTAX_RBRACE): New values in preparation
    for define(eleventh,${11}) extension.
    * m4/syntax.c: Update comments accordingly.
    (m4_syntax_create, m4_syntax_code): Handle { and }.
    * m4/input.c (m4__next_token): Likewise.
    * src/freeze.c (produce_frozen_state): Support new categories.
    (reload_frozen_state): When loading version 1, disable syntax
    features not present in 1.4.x.
    * tests/freeze.at: Sort and rename existing tests.
    (loading format 1): Ensure we don't break v1 frozen files that
    used raw ${.
    (loading format 2, reloading changecom, reloading changesyntax):
    New tests.
    * doc/m4.texinfo (Changesyntax, Frozen file format 1): Document
    the new syntax categories.
    (Arguments): Update the FIXME comment.
    (M4wrap): Merge examples from branch, before worrying about fixing

commit 515426b6599db6d06cfa8c795644d898475c19cc
Author: Eric Blake <address@hidden>
Date:   Sun Jan 21 04:09:06 2007 +0000

    * src/freeze.c (produce_char_dump): Delete.  Replace with...
    (produce_mem_dump): ...this new function, to encode more strings.
    Also make the coding easier to read and slightly more compact.
    (produce_syntax_dump): Only dump non-default syntax codes.
    (produce_module_dump, dump_symbol_CB, produce_frozen_state):
    Encode non-ASCII characters in user-supplied strings.
    (GET_STRING): Accept escape sequences in version 2.
    * NEWS: Document this change.
    * TODO: Update.

commit 77cb4e9ea0bf6dec8eed1696ec411d54dc4fb434
Author: Eric Blake <address@hidden>
Date:   Thu Jan 18 16:37:45 2007 +0000

    * ltdl/m4/.cvsignore: Update to latest gnulib.

commit 541074d3261d85fd29b6ef0fe94f51548746a878
Author: Eric Blake <address@hidden>
Date:   Tue Jan 16 20:23:32 2007 +0000

    Port patch from branch for stack overflow detection on BSD/OS.
    * ltdl/m4/stackovf.m4 (M4_SYS_STACKOVF): Check for stack_t.ss_sp.
    * src/stackovf.c (setup_stackovf_trap) [HAVE_SIGALTSTACK &&
    ! HAVE_STACK_T_SS_SP]: Use this check.
    Reported by Chris McGuire.

commit 99fd9856fe0051edb4209ae1e6da967df262c051
Author: Eric Blake <address@hidden>
Date:   Mon Jan 15 14:05:30 2007 +0000

    * ltdl/m4/.cvsignore: Update.

commit 9bdb9e740307c63e53217b4ce4ec41405e1ff28f
Author: Eric Blake <address@hidden>
Date:   Mon Jan 15 14:04:26 2007 +0000

    * tests/builtins.at (__m4_version__): New test.
    * modules/traditional.c (m4_macro_table): Provide windows and os2
    macros, as appropriate.  Add __traditional__ macro.
    * modules/mpeval.c (m4_macro_table): Name the macro __mpeval__,
    not __gmp__, to match module name.
    * modules/load.c (m4_macro_table): Name the macro __load__, not
    __modules__, to match module name.
    * doc/m4.texinfo (History, Shell commands, Platform macros): Merge
    from the branch.
    (Standard Modules): Improve wording.
    (Incompatibilities): Move platform macros into their own node.
    (Load, Unload): Use actual examples.
    * NEWS: Document this change.
    * THANKS: Update.

commit 3a5607a0170e0bf784d95b7870d03bb355156d01
Author: Eric Blake <address@hidden>
Date:   Sat Jan 13 13:55:37 2007 +0000

    * doc/m4.texinfo (Mpeval): Add tests.
    * tests/testsuite.at (AT_CHECK_GMP): New filter, factored from...
    * tests/builtins.at (gmp): ...here.  Rename test to...
    (mpeval): ...this.
    * tests/generate.awk (new_test): Filter out mpeval tests when gmp
    is not available.
    * m4/m4module.h (m4_get_no_gnu_extensions_opt): Merge
    no_gnu_extensions with posixly_correct_opt, since they were set in
    sync.
    * m4/m4private.h (struct m4): Remove no_gnu_extensions.
    * src/main.c (main): Update caller.
    * src/freeze.c (reload_frozen_state): Likewise.
    * modules/m4.c (m4wrap): Likewise.

commit 2985bdaf4e577ce8c6f690b8705ea1e57daff01c
Author: Eric Blake <address@hidden>
Date:   Fri Jan 12 23:07:27 2007 +0000

    * m4/syntax.c (m4_set_comment): XCU ERN 131 was approved by
    POSIX, so update the comment.
    * doc/m4.texinfo (Inhibiting Invocation): XCU ERN 130 was
    approved by POSIX, so we can always have blind macros, even when
    POSIXLY_CORRECT.
    (Ifelse): Mention the term `blind builtin'.

commit a51df5185676e4c095603eca3f8d7fbc032167fb
Author: Eric Blake <address@hidden>
Date:   Tue Jan 9 05:10:19 2007 +0000

    * doc/m4.texinfo: Fix a couple of typos.

commit 7fac8ab7fca5d225c592317c598c8e7302cc9b54
Author: Eric Blake <address@hidden>
Date:   Tue Jan 9 05:07:18 2007 +0000

    * ltdl/m4/.cvsignore: Update.

commit b8e2923a3902b7e32cc68db7f3586eb9c2813d08
Author: Eric Blake <address@hidden>
Date:   Tue Jan 9 05:05:20 2007 +0000

    * ltdl/m4/gnulib-cache.m4: Update for new year.
    * ltdl/m4/gmp.m4 (_M4_LIB_GMP): Cover all error cases.
    Reported by Ralf Wildenhues.

commit 99a8d4311ec4c42a4a51a96b29284f8f322ff166
Author: Eric Blake <address@hidden>
Date:   Sat Jan 6 19:56:53 2007 +0000

    * m4/m4private.h (to_uchar): Move...
    * m4/m4module.h: here, so modules can use it.
    * src/main.c (usage, long_options): Support --posix as a synonym
    for --traditional.
    * modules/m4.c (numb_invert): Detect unsupported x**-y.
    (numb_incr, numb_urshift, numb_extension): New macros.
    (numb_obstack): Port patch from branch to support radix 1 output.
    * modules/mpeval.c (numb_obstack): Use  for ratios.
    (numb_incr, numb_urshift, numb_extension): New macros.
    (mpq2mpz): Warn rather than error.
    * modules/evalparse.c (URSHIFT, NEGATIVE_EXPONENT): New
    enumerators.
    (eval_error): Rearrange, so that all ignorable errors are less
    than SYNTAX_ERROR.
    (eval_text, last_text): Obey C++ type safety rules.
    (numb_pow): Change return type.
    (exp_term): Adjust caller.
    (m4_evaluate): Fail on bad exponent.
    (logical_or_term, logical_and_term): Ignore failed ** in short
    circuit.
    (eval_lex): Fix typos when detecting <<= and >>=.  Use  instead
    of : for ratio.  Support >>>, ,, and ?:.  Port patch from branch
    to

commit 34e1ce1d7285d8b94834ad82487c472cac0d6bdc
Author: Eric Blake <address@hidden>
Date:   Fri Jan 5 04:07:51 2007 +0000

    Revert over-large ChangeLog entry

commit 5107f0c95904fb114f96d21e7dffdfdb45f99605
Author: Eric Blake <address@hidden>
Date:   Fri Jan 5 03:00:59 2007 +0000

    * configure.ac (AC_SYS_LARGEFILE): Guarantee large file support.

commit b259fc5dd95613b7fcc052027e60046d3d2b3fdc
Author: Eric Blake <address@hidden>
Date:   Wed Jan 3 14:44:11 2007 +0000

    * doc/m4.texinfo (Format, Incr): More merges.
    (Eval): Ensure C precedence rules are met.
    * modules/evalparse.c (BADOP, INVALID_OPERATOR): New enumerators.
    (not_term, logical_not_term): Delete; these are same precedence
    as other unary operators.
    (equality_term): New; these are lower precedence than relational
    operators.
    (eval_lex, simple_term, m4_evaluate): Recognize forbidden C
    operators for better error messages.
    (logical_or_term, logical_and_term): Short-circuit out the error
    of division by zero.
    (unary_term): Allow consecutive unary operators.
    * modules/m4.c (int2numb, numb2int): Delete; these potentially
    truncate bits.
    (numb_not, numb_eor, numb_ior, numb_and): Update callers.
    * modules/mpeval.c (reduce1, reduce2): Protect macros better.
    * NEWS: Document this change.

commit 9a8f3bd8964c0b6f64a0ee979cd9bafc44eef6ca
Author: Eric Blake <address@hidden>
Date:   Wed Dec 27 14:14:27 2006 +0000

    * doc/m4.texinfo (Substr, Patsubst): Merge more sections from the
    branch.
    * modules/m4.c (substr): Merge from branch.

commit 72832a224019f599522e6c591c6c69fbd44ad677
Author: Eric Blake <address@hidden>
Date:   Tue Dec 26 21:05:53 2006 +0000

    * doc/m4.texinfo (Changesyntax): Check for regressions with
    changesyntax(W=...).

commit bee5be2a294ef7b1b1aea0d6ebf6dddb8de5919a
Author: Eric Blake <address@hidden>
Date:   Sat Dec 23 00:02:20 2006 +0000

    * m4/m4module.h (m4_set_syntax): Change signature.
    * modules/gnu.c (m4_resyntax_encode_safe): Reduce error to
    warning.
    (changesyntax): Likewise, and update caller.
    * m4/m4private.h (m4_syntax_table): Add orig member.
    * m4/syntax.c (m4_set_quotes, m4_set_comment): Merge from branch.
    Don't set is_single_quotes and is_single_comments when the begin
    character is shadowed by another syntax type.
    (m4_syntax_create): Populate default syntax table.
    (add_syntax_attribute): Don't lose quote assignment.
    (remove_syntax_attribute): Only allow removing rquote or ecomm.
    (add_syntax_set, subtract_syntax_set, set_syntax_set)
    (reset_syntax_set): New helper routines.
    (m4_set_syntax): Alter semantics - NUL key reverts entire syntax
    to default, and empty chars reverts that key to default.
    (check_is_single_quotes, check_is_single_comments): New helper
    routines.
    * modules/m4.c (changecom): Merge from branch.
    * m4/input.c (m4__next_token): Rearrange token recognition order
    to macro, quote, comment,

commit 77755394e82a671807791c7bdc031b2b5cb12f5d
Author: Eric Blake <address@hidden>
Date:   Fri Dec 22 21:42:42 2006 +0000

    * doc/m4.texinfo (Operation modes): Avoid underfull hbox.
    (M4wrap, Eval, Errprint): Fix typos.
    (Divnum): Not necessary to redivert in example.

commit 9444270328cd42ec48b62b0cb14290cc62d41cfd
Author: Eric Blake <address@hidden>
Date:   Fri Dec 22 14:18:23 2006 +0000

    * ltdl/m4/.cvsignore: Update to latest gnulib.

commit 63eafb7edcbd96913f40d1ce50da92fb1125ad07
Author: Eric Blake <address@hidden>
Date:   Thu Dec 21 14:17:17 2006 +0000

    * doc/m4.texinfo (Len, Index macro, Regexp): More section merging
    from branch.

commit 36b52dd4b165e7dcfb8e7e32fc5b555aa88e1604
Author: Eric Blake <address@hidden>
Date:   Tue Dec 19 17:23:46 2006 +0000

    * modules/m4.h (m4_sysval_flush_func): Adjust prototype.
    * modules/m4.c (m4_sysval_flush): Add parameter, so that m4exit
    can track write errors without all other callers warning multiple
    times.
    (sysval_flush_helper): New function.
    (dumpdef, syscmd, errprint, m4exit): Adjust callers.
    * modules/gnu.c (esyscmd): Likewise.
    * tests/others.at (stdout closed, stdout full): Error message
    update.

commit d3f0888d5076d781c458812811f4b04d8745afcb
Author: Eric Blake <address@hidden>
Date:   Mon Dec 18 23:11:03 2006 +0000

    * ltdl/m4/.cvsignore: Update.

commit 7261687f93bbde249493e49ceb3d1de2a8c1a226
Author: Eric Blake <address@hidden>
Date:   Sun Dec 17 04:34:32 2006 +0000

    * src/main.c: Fix missing include.

commit c56a755457e1d7e5ce71341e41a1a07f74cd3c25
Author: Eric Blake <address@hidden>
Date:   Sun Dec 17 04:21:15 2006 +0000

    * src/main.c (main): Check for errors when closing stdin.
    * modules/m4.c (m4exit): Missed part of previous patch: flush
    stdin before a successful exit.
    Reported by Ralf Wildenhues.

commit 3015ff90bef2b98f98912d496110ccade8f93cc1
Author: Eric Blake <address@hidden>
Date:   Fri Dec 15 04:23:48 2006 +0000

    * modules/m4.c (m4_sysval_flush): Flush stdin before exiting, as
    required by POSIX.
    * tests/others.at (stdin seekable): New test.

commit 4fded6a134b62b8c1dba38794f66d16cd9151f36
Author: Eric Blake <address@hidden>
Date:   Tue Dec 12 20:19:04 2006 +0000

    * .cvsignore: Prepare for migration to git.
    * ltdl/m4/.cvsignore: Ignore more files.
    * po/.cvsignore: Likewise.
    * src/.cvsignore: Likewise.

commit 9ef2369e3dea5d621ae15e8e4efd3266b5064c62
Author: Eric Blake <address@hidden>
Date:   Sat Dec 9 16:53:27 2006 +0000

    * doc/m4.texinfo: Fix some typos.

commit f98a80a450336eb52478d2a2b8ea3360e668f722
Author: Eric Blake <address@hidden>
Date:   Mon Dec 4 13:57:22 2006 +0000

    * doc/m4.texinfo (Undivert, Divnum, Cleardivert): Merge more doc
    sections.
    (Modules): Make style consistent.

commit 3a7c6db01afdbdd863eb1231c8c33b03aa9f83ed
Author: Eric Blake <address@hidden>
Date:   Fri Dec 1 16:38:32 2006 +0000

    * HACKING: Mention GNU Software Directory update procedure.

commit 40f522121538ba97a1dc3967f19670d37e5be213
Author: Eric Blake <address@hidden>
Date:   Thu Nov 16 19:01:15 2006 +0000

    * bootstrap: Relax m4 requirement, thanks to...
    * configure.ac (Gettext support): ...this workaround to the 1.4.4
    bug.  Undoes restriction added on 2006-11-09.

commit d581871908e0c97c4c912c03de82fb550522610c
Author: Eric Blake <address@hidden>
Date:   Thu Nov 16 14:42:37 2006 +0000

    * tests/builtins.at (esyscmd, syscmd): Redo, since spilled
    diversions are now closed when not active.
    (divert): Remove check now in the manual.
    * tests/others.at (stderr closed): Likewise.
    (stdout closed): Add a check.
    * doc/m4.texinfo (Include, Search Path, Diversions, Divert): Sync
    more docs with branch.

commit 0813dcfc0d5945c80e1440d779e8f7f592a1f0ea
Author: Eric Blake <address@hidden>
Date:   Wed Nov 15 00:45:07 2006 +0000

    Remerge sparse diversion handling from branch.
    * ltdl/m4/gnulib-cache.m4: Replace avltree-list with
    avltree-oset.
    * m4/output.c (diversion_table): Change type to gl_oset_t.
    (m4_output_init, m4_output_exit, cleanup_tmpfile, make_room_for)
    (m4_make_diversion, insert_diversion_helper, m4_insert_diversion)
    (m4_undivert_all, m4_freeze_diversions): Adjust all callers.
    (div0, diversion_storage): New variables.
    (diversions, equal_diversion_CB): Deleted.
    (threshold_diversion_CB): New callback.
    (m4_tmpname, m4_tmpopen, m4_tmpclose, m4_tmpremove): New
    functions.
    (m4_tmpfile): Move cloexec action here.

commit 3f8984a8ae0d36768acf70d9b23db499dd570a3f
Author: Eric Blake <address@hidden>
Date:   Tue Nov 14 19:40:12 2006 +0000

    * m4/resyntax.c (m4_regexp_syntax_encode): Avoid bug with signed
    char.

commit 5e96b6de8f7619592d0bbedeedc0de887f56de1b
Author: Eric Blake <address@hidden>
Date:   Tue Nov 14 05:58:00 2006 +0000

    Add several new command line options.
    * src/main.c (usage): Update.
    (OPTSTRING, long_options): Add --pushdef, --popdef, --gnu,
    --traceon, --traceoff, --syncoutput, --warnings, --unload-module.
    Make --regexp-syntax argument optional.
    (main): Support new options.  Fix regression in interactive
    behavior from Nov 8.
    * m4/m4private.h (M4_OPT_SYNCOUTPUT_BIT): Rename from
    M4_OPT_SYNC_OUTPUT_BIT.
    * m4/m4module.h (m4_context_opt_bit_table): Rename sync_output to
    syncoutput, to match option.
    (m4_parse_truth_arg): New prototype.
    * m4/utility.c (m4_parse_truth_arg): Implement it.
    * m4/output.c (m4_shipout_text): Adjust sync_output caller.
    * modules/gnu.c (syncoutput): Adjust sync_output caller, and use
    m4_parse_truth_arg.
    * doc/m4.texinfo (Operation modes, Dynamic loading features)
    (Preprocessor features, Limits control, Debugging options)
    (Command line files): Update documentation.
    * tests/builtins.at (mkstemp): Simplify.
    * tests/macros.at (Command line pushdef): New test.
    (Command lin

commit e8a13d29c5459b6023c11784647d45fe243afce4
Author: Eric Blake <address@hidden>
Date:   Sat Nov 11 16:21:25 2006 +0000

    One step closer to allowing C++ compilation - don't blindly
    convert between char* and unsigned char*.
    * m4/m4module.h (m4_set_syntax): Change signature.
    * m4/m4private.h (m4_string): Use signed char.
    (m4_get_syntax_lquote, m4_get_syntax_rquote, m4_get_syntax_bcomm)
    (m4_get_syntax_ecomm): No longer a need to cast.
    * m4/syntax.c (m4_set_syntax, m4_syntax_create, m4_set_quotes):
    Reflect this change.
    * m4/macro.c (expand_argument): Simplify.
    (expand_token): Use proper type.
    * src/freeze.c (reload_frozen_state): Likewise.
    * m4/input.c (MATCH, match_input): Likewise.
    * modules/m4.c (translit): Likewise.
    * modules/gnu.c (substitute): Simplify.

commit 23a13c95dfce10efaa9be6f24ef77a1ebce36c4d
Author: Eric Blake <address@hidden>
Date:   Sat Nov 11 14:00:28 2006 +0000

    * m4/macro.c (trace_format): Use canonical type name.
    * m4/output.c (m4_freeze_diversions): Likewise.
    * src/freeze.c (produce_module_dump, dump_symbol_CB)
    (produce_frozen_state): Likewise.
    * m4/m4private.h (to_uchar): Grab from branch.
    * m4/input.c (string_peek, string_read): Use it.
    * m4/utility.c (skip_space): Likewise.
    * src/main.c (main): Likewise.
    * doc/m4.texinfo (Translit): Remerge from branch.
    * tests/builtins.at (translit): Test 8-bit range.
    * modules/m4.c (m4_expand_ranges): Merge from branch.

commit 3c063157247f849f341a8101d5a85d6b1be3001e
Author: Eric Blake <address@hidden>
Date:   Thu Nov 9 16:40:36 2006 +0000

    * HACKING: Update bootstrap requirement.

commit 3ed8e5e7bc3b8919a76c0f3276583e7c0ab53432
Author: Eric Blake <address@hidden>
Date:   Thu Nov 9 16:39:15 2006 +0000

    * bootstrap: Validate that installed M4 is powerful enough.
    Reported by Gary V. Vaughan, analyzed by Stepan Kasal.

commit 3c4c6bcdbe34149a31d3b15ab98e924709241f1d
Author: Eric Blake <address@hidden>
Date:   Wed Nov 8 19:18:26 2006 +0000

    * ltdl/m4/.cvsignore: Update.

commit 1b6af058955698bbe97dab699a208ece8c0493ca
Author: Eric Blake <address@hidden>
Date:   Wed Nov 8 19:06:00 2006 +0000

    Merge deferred handling of -D option from branch.
    * doc/m4.texinfo (Debugging options, Preprocessor features)
    (Dynamic loading features, Operation modes, Invoking m4):
    Document this change.
    * src/main.c (OPTSTRING): Specify in-order processing.
    (process_file): New function.
    (main): Use it to interleave files and deferred options.
    * tests/macros.at (Command line define): New test.
    * tests/generate.awk: Allow '@comment file' as first example
    within a node.
    * tests/options.at (option grouping): Update to reflect actual
    POSIX semantics.
    (file names): New test.

commit d97ac4b809a198cf324beb8f989cb0612b8ec290
Author: Eric Blake <address@hidden>
Date:   Wed Nov 8 05:11:47 2006 +0000

    * m4/output.c (cleanup_tmpfile, m4_insert_diversion_helper): Check
    for failure.

commit 2c7b5e5410536f7fe4c81be2d639ca8a029ebdc3
Author: Eric Blake <address@hidden>
Date:   Wed Nov 8 04:26:53 2006 +0000

    * tests/builtins.at (m4exit): New test; failed on cygwin before
    this patch.
    * m4/output.c (cleanup_tmpfile): Close files before removing
    directory.
    (make_room_for): Ensure that m4_error sees consistent state.

commit acb0cd75c179832886c84eae40fbeb8ac36e2806
Author: Eric Blake <address@hidden>
Date:   Tue Nov 7 19:18:10 2006 +0000

    * doc/m4.texinfo (Errprint): Merge another doc node.
    * tests/builtins.at (dumpdef, errprint): New tests.
    * modules/m4.c (errprint): Merge from branch: flush before
    printing to stderr.

commit 84bb69567e52206981eb490d3214a242299a4afa
Author: Eric Blake <address@hidden>
Date:   Thu Nov 2 13:42:23 2006 +0000

    * bootstrap: Update bootstrap requirement wording.
    Reported by Bruno Haible.

commit 78ac8cc38716d9db8e4347bd779e1ef2d10b3859
Author: Eric Blake <address@hidden>
Date:   Tue Oct 31 14:14:39 2006 +0000

    * ltdl/m4/.cvsignore: Update.

commit 79cd537a49006cc6f768115a62e32c2279b17ddb
Author: Eric Blake <address@hidden>
Date:   Tue Oct 31 14:14:18 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    strstr'.
    * doc/m4.texinfo (Translit): Merge from branch.
    * modules/m4.c (divert, substr): Ignore excess arguments.
    (index, translit): Merge from branch.
    * tests/builtins.at (translit): Add a test.

commit 5843469fff768726ec0dd2fc7d3d6d892c7255c5
Author: Eric Blake <address@hidden>
Date:   Tue Oct 31 02:24:50 2006 +0000

    * m4/m4private.h (m4_get_symbol_value_module): Delete accidental
    checkin.
    * m4/symtab.c (m4_get_symbol_value_module): Likewise.

commit 52f54e3e62b66ae6551df458b87ac8d79f055f65
Author: Eric Blake <address@hidden>
Date:   Tue Oct 31 02:08:55 2006 +0000

    * ltdl/m4/.cvsignore: Update

commit 2d8e4238eaf6c4fa592d02c38aa6c464b1b39e69
Author: Eric Blake <address@hidden>
Date:   Tue Oct 31 02:05:37 2006 +0000

    * modules/m4.c (m4_make_temp): Make safe across libtool.
    * m4/symtab.c (dump_symbol_CB) [DEBUG_SYM]: Avoid warnings.
    * configure.ac (--with-modules): Accomodate changed module
    location when doing './configure --enable-debug'.

commit 43dd548236ee28f5afdc358800eb1dada6d3e770
Author: Eric Blake <address@hidden>
Date:   Sat Oct 28 19:37:47 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    config-h.'

commit d948ee13f9b8920e87da8bc6b108e4d277eaa6eb
Author: Eric Blake <address@hidden>
Date:   Fri Oct 27 21:10:15 2006 +0000

    * bootstrap (gnulib): No longer a need to patch after gnulib-tool
    --update.
    * configure.ac (AM_GNU_GETTEXT_VERSION): Bump requirement to
    0.16, since 0.15 is incompatible with our automake requirement.

commit 36a89bf3c980f13b0c0b76325f9cc69e7b9c8d94
Author: Eric Blake <address@hidden>
Date:   Fri Oct 27 17:03:51 2006 +0000

    * m4/macro.c (expand_argument): Fix missing initialization.
    * m4/m4private.h (struct m4_symbol_value): Store entire
    m4_builtin, not just the func.
    (m4_get_symbol_value_func): Update.
    (m4_get_symbol_value_builtin, m4_set_symbol_value_builtin): New
    fast accessors.
    * m4/m4module.h (m4_get_symbol_value_builtin)
    (m4_get_symbol_builtin): New prototypes.
    (m4_set_symbol_value_func): Delete, replace with...
    (m4_set_symbol_value_builtin): New function.
    (m4_builtin_find_by_name): Change signature.
    * m4/symtab.c (m4_symbol_value_print): Simplify.
    (m4_get_symbol_value_func): Update.
    (m4_get_symbol_value_builtin): New function.
    (m4_set_symbol_value_func): Delete, replace with...
    (m4_set_symbol_value_builtin): New function.
    (dump_symbol_CB) [DEBUG_SYM]: Simplify.
    * m4/builtin.c (m4_builtin_find_by_name): Change signature.
    * m4/input.c (struct m4_input_block): Remove unused trace member.
    (m4_push_builtin, builtin_print, init_builtin_token): Update
    callers.
    * m4/module.c (install_builtin_tab

commit 4941a1a9d20b7c22cfd71df63282770b4e6e58d4
Author: Eric Blake <address@hidden>
Date:   Fri Oct 27 15:17:29 2006 +0000

    * ltdl/m4/.cvsignore: Update

commit 9116ddeaf509835fcc718fd92c3a95076f742719
Author: Eric Blake <address@hidden>
Date:   Fri Oct 27 15:16:31 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    tempname'.
    * modules/m4.c (m4_make_temp): Use it.
    * tests/builtins.at (mkstemp, mkdtemp): Update message wording.

commit fa75682c7754674653971d4b2203827c9eb01c56
Author: Eric Blake <address@hidden>
Date:   Fri Oct 27 12:12:12 2006 +0000

    * Makefile.am (dist_pkgdata_DATA): Distribute recently-added
    files.

commit ff19b729c274364fc4883b338379ee84e33ff2f7
Author: Eric Blake <address@hidden>
Date:   Fri Oct 27 04:03:27 2006 +0000

    Silence -O2 -Wall -Wwrite-strings warnings.
    * m4/m4private.h (m4_symbol_value): Const-ify text.
    * m4/m4module.h (m4_get_symbol_value_text)
    (m4_get_symbol_value_placeholder, m4_set_symbol_value_text)
    (m4_set_symbol_value_placeholder): Likewise.
    * m4/macro.c (expand_token, expand_argument, expand_macro): Fix
    fallout.
    * m4/symtab.c (m4_symbol_value_delete, m4_symbol_value_copy)
    (m4_get_symbol_value_text, m4_get_symbol_value_placeholder)
    (m4_set_symbol_value_text, m4_set_symbol_value_placeholder):
    Likewise.
    * modules/format.c (format): Likewise.
    * src/main.c (main): Likewise.
    * src/freeze.c (produce_symbol_dump, dump_symbol_CB): Likewise.
    * modules/shadow.c (shadow, test): Likewise.
    * m4/output.c (m4_make_diversion): Don't hold on to empty
    diversions.
    (m4_output_init, make_room_for, m4_undivert_all): Don't type-pun.
    (m4_freeze_diversions): Likewise.  Don't use uninitialized
    variable.

commit fb1aef142de0ba4224eb7f4c7fddbe9e96027237
Author: Eric Blake <address@hidden>
Date:   Thu Oct 26 23:19:12 2006 +0000

    Convert diversions to list instead of sparse array, part 2.
    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    avltree-list'.
    * m4/output.c (m4_diversion): Add next pointer and divnum members.
    (diversion_table): Convert to a list instead of a sparse array.
    (free_list): Maintain free list of reclaimed diversions.
    (equal_diversion_CB, cmp_diversion_CB): New functions.
    (m4_output_init): Set up list.
    (m4_output_exit): Tear down list.
    (make_room_for, m4_undivert_all, m4_freeze_diversions): Change
    list iteration.
    (m4_make_diversion): Change creation of new diversions.
    (m4_insert_diversion_helper): New function, to avoid list
    searches.
    * tests/builtins.at (divert): The test now passes.
    * NEWS: Document this improvement.

commit 0b0f9b371728717b30e2c846978441f085000a09
Author: Eric Blake <address@hidden>
Date:   Thu Oct 26 23:11:41 2006 +0000

    Convert diversions to list instead of sparse array, part 1.
    * m4/m4module.h (m4_shipout_text, m4_shipout_string): Use size_t
    for length.
    * m4/output.c (diversion, total_buffer_size, output_unused):
    Track size in size_t.  All users changed.
    (struct diversion): Reduce size now, to compensate for part 2.
    (m4_make_diversion, make_room_for): Avoid malloc overflow.
    (m4_output_exit): Fix typo in assert.
    (m4_output_init, make_room_for, m4_make_diversion)
    (m4_insert_diversion, m4_freeze_diversions): Adjust users of
    struct m4_diversion to disambiguate the new union.
    * tests/builtins.at (divert): Detect this failure.

commit 3883a86295b7f664cdc91e0b39f768b045474ae5
Author: Eric Blake <address@hidden>
Date:   Wed Oct 25 23:19:19 2006 +0000

    * m4/m4module.h (m4_push_builtin): Add parameter.
    * modules/m4.c (defn): Update caller.
    * m4/input.c (file_read_init, string_read_init): No longer
    needed.
    (input_funcs): Change signature of read_func, all callers
    updated.
    (composite_peek, composite_read, composite_unget),
    (composite_print, composite_funcs): New input type.  Not yet
    fully utilized, but one step closer to fixing defn.
    (m4_input_block): Make every input block track current file and
    line.  Rename some members.  Remove unused out_line.  Add support
    for composite input block.
    (input_change): New flag.
    (file_peek, file_read, file_clean, file_unget, file_print):
    Update callers.
    (m4_push_file, m4_push_builtin, m4_push_string_init)
    (m4_push_string_finish, m4_push_wrapup, m4_pop_wrapup)
    (m4_skip_line, pop_input): Track input block changes.
    (m4_pop_wrapup): Avoid overflow.
    (init_builtin_token): Handle composite input.
    (next_char): Handle input block changes.
    * doc/m4.texinfo (Location): Remerge from branch.

commit ed56667ad784ce4652ba68cd318c53cd36f948cb
Author: Eric Blake <address@hidden>
Date:   Wed Oct 25 14:53:23 2006 +0000

    * src/m4.h (includes): Need <locale.h> after all; fixes
    regression from yesterday.

commit d9152785c7f633a05a9d2383c85c644a9ab49787
Author: Eric Blake <address@hidden>
Date:   Wed Oct 25 12:45:45 2006 +0000

    * m4/system_.h (obstack_regrow): New macro.  Hopefully glibc will
    accept it someday.
    * m4/macro.c (expand_macro): Avoid referencing invalid memory.
    Handle nesting the argc obstack.
    (expand_token): Avoid unnecessary malloc.
    (collect_arguments): Copy name before invalidating it.
    (argc_stack, argv_stack): New variables.
    (m4_macro_expand_input): Initialize argc and argv stacks once per
    file, instead of once per macro.

commit 9f53c62bbd3cf89cb5449951ec22e3475dd6076e
Author: Eric Blake <address@hidden>
Date:   Tue Oct 24 14:14:13 2006 +0000

    * src/m4.h (includes): Add gettext.h, for N_.  Assume setlocale.

commit 13545a5380244b5fbf96d1f69316b5db530dccef
Author: Eric Blake <address@hidden>
Date:   Tue Oct 24 03:46:41 2006 +0000

    * doc/m4.texinfo (Macro Arguments, Incompatibilities): Remerge
    from branch regarding stripped leading whitespace.

commit 4376a0a72d5353a006653adf85390ab4a262758a
Author: Eric Blake <address@hidden>
Date:   Mon Oct 23 18:16:08 2006 +0000

    * modules/m4.c (includes): Use safe headers even when configured
    with --enable-assert.
    (m4_builtin_table, m4_make_temp): Work around fact that mkstemp is
    #defined as mkstemp_safer.

commit 935b9801aa256c1e18c54f4cf5c4d9427b124fba
Author: Eric Blake <address@hidden>
Date:   Sat Oct 21 22:15:52 2006 +0000

    * modules/m4.c (m4_make_temp): Change signature.
    (maketemp, mkstemp): Update callers.
    * modules/m4.h (m4_make_temp_func): New export.
    * modules/gnu.c (mkdtemp): New macro.
    * doc/m4.texinfo (Operation modes): Document interaction with
    --safer.
    (Mkdtemp): New node.
    * tests/builtins.at (mkdtemp): New test.
    (mkstemp): Check for umask effect.
    * NEWS: Document new builtin.

commit 0dd37af35595c39e280a0697aaad6773255705dd
Author: Eric Blake <address@hidden>
Date:   Sat Oct 21 15:23:56 2006 +0000

    * tests/generate.awk (normalize): Update recognition of trailing
    spaces in tests.
    * doc/m4.texinfo: Minor formatting fixes from branch.
    (Foreach, Improved foreach): Merge from branch.
    * examples/foreach.m4: Merge from branch.
    * examples/foreachq.m4: New file from branch.
    * examples/foreach2.m4: Likewise.
    * examples/foreachq2.m4: Likewise.

commit 667fcc84189ba8ea098a05271f27db15fbb8b0c3
Author: Eric Blake <address@hidden>
Date:   Sat Oct 21 12:49:57 2006 +0000

    * doc/m4.texinfo (titlepage): Add myself as author.
    * src/main.c (AUTHORS): Likewise.

commit edb550bff4010c3bdb2f79f8e8b182db5b8cba55
Author: Eric Blake <address@hidden>
Date:   Thu Oct 19 23:13:45 2006 +0000

    * modules/m4.c (m4_make_temp, mkstemp): New functions.
    (maketemp): Add POSIX behavior and a warning.
    * tests/others.at (maketemp): Move this test...
    * tests/builtins.at (mkstemp): ...to here, and beef up.
    * tests/options.at (--safer): Update to new warning message.
    * doc/m4.texinfo (Mkstemp): Sync from branch.
    (Extensions): Update maketemp behavior.
    * NEWS: Document that maketemp now always warns.

commit b9d7924e31f56d22f9348c7ea7ee29b9f5feff26
Author: Eric Blake <address@hidden>
Date:   Thu Oct 19 16:19:20 2006 +0000

    * tests/generate.awk: For ease of doc-writing, simplify selection
    of '-Ipath/to/examples' to '@comment examples'.
    * examples/forloop.m4: Simplify.
    * examples/forloop2.m4: New file.
    * examples/quote.m4: New file.
    * doc/m4.texinfo (Improved forloop): New node.
    (Manual): Clarify use of examples directory.
    (Shift, Forloop): Resync from branch.
    (Include, Location): Update to new usage of examples directory.

commit 4f67b8f64e56cca016a57ea7e637417ac9e83a37
Author: Eric Blake <address@hidden>
Date:   Thu Oct 19 13:38:46 2006 +0000

    * m4/system_.h (includes): Pick up <unistd.h> before checking for
    _POSIX_VERSION.
    (gettext_noop): Don't define here, let gettext.h do it instead.
    * po/POTFILES.in: Update entries to reflect gnulib imports.

commit 371443c5734f62ef402725e366cbc667eadc9e83
Author: Eric Blake <address@hidden>
Date:   Mon Oct 16 22:12:07 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
    configmake'.
    * configure.ac (AM_INIT_AUTOMAKE): Bump requirement to 1.10a, for
    pkglibexecdir support.
    * Makefile.am (m4_libm4_la_SOURCES, m4/pathconf.h): No longer
    worry about pathconf.h, now that gnulib does it for us.
    (pkgmodincludedir): Simplify.
    (pkglibexecdir): Delete, now that automake does this.
    * m4/module.c (m4__module_init): Use PKGLIBEXECDIR.
    * src/main.c (usage): Likewise.
    * m4/symtab.c (m4_symbol_value_groks_macro): Fix typo.

commit 54a4df5460f5d5784682f762ad5275d329186842
Author: Eric Blake <address@hidden>
Date:   Mon Oct 16 13:17:50 2006 +0000

    * doc/m4.texinfo: Port some changes from the branch.
    (Invoking m4): Promote to a chapter, instead of a section of
    Preliminaries.
    (Operation modes, Dynamic loading features, Preprocessor features)
    (Limits control Frozen state, Debugging options)
    (Command line files): Subdivide into new sections.
    (Cleardivert): Rename from cleardiv.

commit 3d01c0716c6099c88f59fd787f4d82b6369f0952
Author: Eric Blake <address@hidden>
Date:   Sat Oct 14 16:34:55 2006 +0000

    * tests/others.at (stdin closed): Update to match previous patch.

commit 6d4dc67718ce91c20278f9a31eef1036702c5943
Author: Eric Blake <address@hidden>
Date:   Sat Oct 14 15:23:08 2006 +0000

    * m4/input.c (file_clean): Don't close stdin twice, POSIX says it
    is not portable.
    Reported by Ralf Wildenhues.

commit e36dac4d216476f1e4065a0d01663ffa2342b69d
Author: Eric Blake <address@hidden>
Date:   Sat Oct 14 14:16:23 2006 +0000

    * modules/m4.c (undivert): Merge from branch.
    * doc/m4.texinfo (Improved fatal_error): Fix typo.
    (Improved exch): New node, copied from branch.
    (Improved cleardivert): Update from branch.
    * THANKS: Update.

commit ae3382c886067730fbd1ba674a7bbf41a9ecefdc
Author: Eric Blake <address@hidden>
Date:   Fri Oct 13 16:46:47 2006 +0000

    * configure.ac (AC_CONFIG_HEADERS): Name the template config.hin,
    not config-h.in.
    * modules/gnu.c (builtin, indir): Transparently handle builtin
    tokens from defn.
    * doc/m4.texinfo (Indir, Builtin): Remerge from branch.
    * m4/input.c (m4_pop_wrapup): Display debug message when switching
    to wrapped text.
    (m4_input_init): No need to use empty file any more.
    (file_print): Display correct file name.
    * m4/utility.c (m4_error, m4_warn): Ensure we don't try to
    dereference a NULL file name.
    * m4/m4module.h (m4_pop_wrapup): New parameter.
    (m4_symbol_value_groks_macro, m4_symbol_groks_macro): New
    prototypes.
    * m4/m4private.h (m4_symbol_value_groks_macro): Faster version.
    * m4/symtab.c (m4_symbol_value_groks_macro): New method.
    * src/main.c (main): Adjust caller.
    * tests/options.at (--debugmode): Test more output from -dV.

commit 42c9fc34d5c0345f5955dc33cf1306304829277b
Author: Eric Blake <address@hidden>
Date:   Thu Oct 12 23:21:34 2006 +0000

    * m4/input.c (m4_print_token) [DEBUG_INPUT]: Modernize.

commit 00619f6150e3cc9252725e62fdb231de51e6cf32
Author: Eric Blake <address@hidden>
Date:   Thu Oct 12 21:14:49 2006 +0000

    * m4/m4private.h (m4__next_token_is_open): New prototype.
    * m4/m4module.h (m4_push_single): Delete; push_string is an
    adequate interface, and removing support for this simplifies the
    input engine.
    (m4_push_wrapup): New parameter.
    (m4_is_syntax): Delete; m4_has_syntax is sufficient.
    (M4_SYNTAX_LQUOTE, M4_SYNTAX_BCOMM, M4_SYNTAX_MASKS): Make
    start-quote and start-comment exclusive from other syntax
    categories.
    * m4/syntax.c: Likewise.
    * m4/input.c (input_funcs): Make polymorphic without requiring
    clients to know whether they are located at isp.  All users
    changed.
    (file_names): New variable.
    (m4_input_init): Initialize it.
    (m4_push_file): Use it.
    (m4_input_exit): Free it after use.
    (m4__next_token): Simplify slightly.
    (m4__peek_token): Rename and simplify...
    (m4__next_token_is_open): ... to this.  In particular, this
    allows us to avoid a double ungetc, which POSIX doesn't
    guarantee.
    (struct m4_input_block, m4_push_single, single_peek, single_read):
    Remove support for single ch

commit 45eed86462d9782a359d0873641012a88ca4d085
Author: Eric Blake <address@hidden>
Date:   Thu Oct 12 02:44:26 2006 +0000

    * src/main.c (usage, long_options): Add --debugmode as an alias
    for --debug, to match macro name.
    * tests/options.at (--debugmode): Rename from --debug, and test
    for new alias.
    (--discard-comments): Augment test.
    * doc/m4.texinfo (Invoking m4, Debugmode): Document this.
    * NEWS: Likewise.

commit 987f57d285283881013f7131adb7f2acc020fd54
Author: Eric Blake <address@hidden>
Date:   Tue Oct 10 12:47:23 2006 +0000

    Trace improvements: debugmode(c) was always printing the last two
    lines paired, combine them; and show non-text expansions.
    * m4/macro.c (trace_prepre): Update to show what the macro will
    expand to.
    (trace_pre): No need to special-case on debugmode(c).
    (trace_post): Likewise.  Also, show non-text expansions.
    (expand_macro): Update caller.  Collecting arguments can change
    debug mode, so cache values beforehand.
    (trace_format): Remove support for unused %l%S%r, and fix support
    for %z to match gcc's attribute((printf)).
    (trace_header): Update caller.
    * m4/input.c (struct m4_input_block): Rename from input_block.
    (struct input_funcs): Add print_func member.
    (file_print, builtin_unget, builtin_print, string_print)
    (m4_input_print): New functions.
    (m4_push_string_finish): Change return type.
    (m4_push_file): Fix missing use of close parameter.
    * m4/debug.c (m4_debug_decode): Don't clear pending traces.
    * m4/m4module.h (m4_input_print): New prototype.
    * tests/builtins.at (debug, esy

commit 73d98ea0eb367b894976266ff8d1141cf823b405
Author: Eric Blake <address@hidden>
Date:   Mon Oct 9 21:06:33 2006 +0000

    * m4/path.c (m4_include_env_init): Don't alter result of getenv.
    Reported by Ralf Wildenhues.

commit 23b5e7571c2afd7c168b0718bb86466fbbddfbb9
Author: Eric Blake <address@hidden>
Date:   Mon Oct 9 21:00:32 2006 +0000

    * modules/gnu.c (gnu_buf): Rename from buf to silence -Wshadow.

commit 247aca2de49e7db094601a91bb30b874e9803a8d
Author: Eric Blake <address@hidden>
Date:   Sat Oct 7 17:33:28 2006 +0000

    * m4/m4module.h (m4_set_exit_failure): New prototype.
    * m4/utility.c (m4_set_exit_failure): New function.
    * modules/m4.c (m4exit): Use it to avoid yet another global
    variable export in libm4.

commit b8d3434875a1dfd4d7e6350b9e73694f190fdf11
Author: Eric Blake <address@hidden>
Date:   Sat Oct 7 05:02:56 2006 +0000

    * m4/output.c (cleanup_tmpfile): Exit nonzero on failure to clean
    up.
    * tests/others.at (stdout closed): Fix final check.

commit 2167d449a5adba3f52a380a607c2ed09dcfca903
Author: Eric Blake <address@hidden>
Date:   Fri Oct 6 18:27:19 2006 +0000

    Update .cvsignore

commit 2cb4aa350a1dbaa2073446ae6a9900523ffeb317
Author: Eric Blake <address@hidden>
Date:   Fri Oct 6 18:24:31 2006 +0000

    Replace uses of tmpfile with clean-temp, since tmpfile is
    incompatible with closeout.
    * tests/builtins.at (esyscmd, syscmd): Don't use pipe; it loses
    exit status of m4.
    * tests/others.at (stderr closed): Likewise.
    * tests/testsuite.at (M4_ONE_MEG_DEFN): Actually hit one meg.
    * ltdl/m4/gnulib-cache.m4: Augment with gnulib-tool --import
    clean-temp.
    * m4/output.c [!HAVE_TMPFILE]: Delete dead code.
    (m4_tmpfile, cleanup_tmpfile): New functions.
    (make_room_for, m4_insert_diversion): Use clean-temp module.
    * configure.ac (AC_CHECK_FUNCS_ONCE): No longer check for
    tmpfile.
    * doc/m4.texinfo (Diversions): Document new use of $TMPDIR.

commit 310ea9dc1f946f3486a77b9485d193c685b9494a
Author: Eric Blake <address@hidden>
Date:   Fri Oct 6 15:24:10 2006 +0000

    * m4/utility.c (m4_numeric_arg): Merge from branch.
    * modules/gnu.c (debuglen): New builtin.
    * src/main.c (usage, ARGLENGTH_OPTION, long_options, main):
    Rename --arglength to --debuglen.
    * tests/options.at (--arglength): Rename to --debuglen.
    (deprecated options): Augment test.
    * doc/m4.texinfo (Invoking m4): Document the name change.
    (Debugmode): Rename from Debug Levels.
    (Debugfile): Rename from Debug Output.
    (Debuglen): New node.
    * NEWS: Document these changes.

commit 0836ac002d5603d3de494f7d1e296b22a3337f5e
Author: Eric Blake <address@hidden>
Date:   Fri Oct 6 13:31:41 2006 +0000

    * modules/m4.c (m4exit): Fix typo.  Ensure desired exit status in
    case closing a module exits.

commit b75ce895dac5cddfcc93b76f2a69250dd391b44a
Author: Eric Blake <address@hidden>
Date:   Fri Oct 6 13:13:15 2006 +0000

    * modules/m4.c (m4exit): Merge from branch.
    * m4/m4.c (m4_delete): Avoid assertion triggered by last patch.

commit a7fd1e01f7d6214bf1afc2b600c9be8bf5cba938
Author: Eric Blake <address@hidden>
Date:   Thu Oct 5 23:07:27 2006 +0000

    * m4/gnulib-cache.m4: Update to newer gnulib-tool.
    * src/m4.h (push_file): Change prototype.
    * src/input.c (push_file, peek_input, next_char_1): Only call getc
    once at EOF, to avoid double ^D on terminal stdin; regression from
    2006-09-04.
    (push_file, pop_file): Allow reading stdin twice.
    * src/m4.c (main): Likewise.
    * src/builtin.c (include): Update caller.
    * NEWS: Document this change.
    * doc/m4.texinfo (Invoking m4, Incompatibilities): Likewise.
    (Syscmd): Add a test that failed before this patch.

commit f9382d64c516d723e9f24443de89a3497ba20560
Author: Eric Blake <address@hidden>
Date:   Wed Oct 4 23:30:46 2006 +0000

    * tests/builtins.at: Alphabetize tests.
    * tests/testsuite.at (AT_CHECK_M4): Allow choosing stdin.
    * tests/generate.awk (new_test): Fix underquoting.
    * tests/others.at (maketemp): Rename from misc.
    (stdin closed, stdout closed, stderr closed): New tests.

commit eafe1d634c405999b40d67fffe6d7d61a6af702c
Author: Eric Blake <address@hidden>
Date:   Wed Oct 4 14:32:36 2006 +0000

    Update .cvsignore

commit cb0876cdf638e21274b5d5ccd8c00da9ba73fd46
Author: Eric Blake <address@hidden>
Date:   Wed Oct 4 03:57:00 2006 +0000

    Avoid all global variables in modules, so that --disable-static
    can work on cygwin.
    * examples/incl.m4: New file, from branch.
    * Makefile.am (dist_pkgdata_DATA): Distribute it.
    * doc/m4.texinfo (Location): Merge this section from branch.
    (Include): Update the test.
    * tests/generate.awk (new_test): Allow for VPATH build
    pre-processing of expected __program__ output.
    * m4/m4module.h (m4_current_diversion, m4_output_current_line):
    Avoid global variables.
    (m4_context_field_table): Add current_diversion, output_line.
    (m4_output_init, m4_make_diversion): Add parameter.
    (m4_get_program_name, m4_set_program_name): New accessors.
    * m4/m4private.h (m4_get_current_diversion),
    (m4_set_current_diversion, m4_get_output_line)
    (m4_set_output_line): New accessors.
    * m4/utility.c (m4_get_program_name, m4_set_program_name): New
    methods.
    * modules/m4.c (divnum, divert): Adjust callers.
    * modules/gnu.c (__program__): Likewise.
    * m4/output.c (m4_output_init, m4_make_diversion)
    (m4_freeze_diversio

commit 71fcb4614d75f1afd0babb93e1389077e7e82f97
Author: Eric Blake <address@hidden>
Date:   Tue Oct 3 12:57:18 2006 +0000

    Partially plug memory leak when unloading gnu module.
    * tests/modules.at (unload gnu module): New test.
    * modules/gnu.c (gnu_LTX_m4_finish_module): New function.
    (m4_regexp_compile): Move static storage to module visibility.
    * tests/options.at (--debug): Adjust to new output.

commit 00d057565b6e82886fde7199b70d0337855e9371
Author: Eric Blake <address@hidden>
Date:   Fri Sep 29 18:20:12 2006 +0000

    Even when not the first option, --help can't have side effects.
    * tests/options.at (--debugfile): Detect bugs in this area.
    * tests/testsuite.at (AT_CHECK_M4): Avoid a process when ignoring
    stderr.
    * src/main.c (main): Fix it by deferring debugfile change.  Also,
    defer closing streams until after module tracing is done.
    * modules/gnu.c (debugfile): Make message consistent with command
    line.
    * doc/m4.texinfo (Invoking m4): Touch up the documentation.
    * NEWS: Document this fix.

commit 7591adfe2fbd50dfbefb3debe0e1ccbdf10d4106
Author: Eric Blake <address@hidden>
Date:   Fri Sep 29 15:14:24 2006 +0000

    Update .cvsignore

commit 90c32d31702e770b5a30b786da51178c07015f32
Author: Eric Blake <address@hidden>
Date:   Fri Sep 29 13:33:13 2006 +0000

    * modules/m4.c (dnl): Include macro name in warning message.
    * m4/input.c (m4_skip_line): Add parameter.
    * m4/m4module.h (m4_skip_line): Likewise.
    * src/main.c (usage): Update wording.
    * doc/m4.texinfo (Inhibiting Invocation): Add xfailed test until
    issue of blind macros vs. POSIX is resolved.
    (Dnl): Merge another node from branch.

commit cda2678e0595521a55eef1448842da537d1a67ed
Author: Eric Blake <address@hidden>
Date:   Fri Sep 29 12:26:06 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with gnulib-tool --import
    xstrtol.
    * m4/system_.h (N_): Define.
    * src/main.c (main): Validate numeric arguments.
    (size_opt): New function, idea borrowed from coreutils.
    * m4/macro.c (expand_macro): -L0 implies no limit.
    * doc/m4.texinfo (Invoking m4): Document this change.
    * NEWS: Likewise.
    * tests/options.at: (--arglength, --nesting-limit)
    (--regexp-syntax): New tests of argument validation.

commit eb47b42b8952a9d628cf901c0c756d93475a69a5
Author: Eric Blake <address@hidden>
Date:   Thu Sep 28 16:14:09 2006 +0000

    * tests/options.at: Alphabetize the tests.

commit fcb87931d98c4210f24222066def6ede6e9989ab
Author: Eric Blake <address@hidden>
Date:   Thu Sep 28 04:22:33 2006 +0000

    * m4/m4module.h (m4_symbol_value_print, m4_symbol_print): Add
    another parameter to print module info.
    * m4/macro.c (trace_pre): Adjust caller.
    * modules/m4.c (M4BUILTIN_HANDLER): Likewise.
    * doc/m4.texinfo (Dumpdef, Debug Levels): Document this.
    * NEWS: Document this.

commit 02e9250816ec4677c5446f7a47935bdf2e30d03d
Author: Eric Blake <address@hidden>
Date:   Wed Sep 27 13:21:04 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with gnulib-tool --import
    strnlen.
    * m4/symtab.c (symbol_value_print): Rename to...
    (m4_symbol_value_print): ...this, and...
    (m4_symbol_print): Update to allow -L length truncation.  Now
    truncation also affects dumpdef output and builtin names.
    * m4/m4private.h (nesting_limit, max_debug_argument_length):
    Switch to size_t.
    * m4/m4module.h (m4_symbol_print): Add parameter.
    (m4_symbol_value_print): New function.
    * modules/m4.c (dumpdef): Allow length truncation.
    * m4/macro.c (trace_pre): Use m4_symbol_print, rather than
    repeating code.
    * doc/m4.texinfo (Invoking m4): Document -l better.
    (Dumpdef, Debug Levels): Document the effect of -l.
    * NEWS: Document this change.

commit 6ec3170c49321946c958960b4311ad3a57631ecf
Author: Eric Blake <address@hidden>
Date:   Wed Sep 27 12:24:53 2006 +0000

    * modules/m4.c (m4_dump_symbols, errprint, m4wrap)
    (m4_expand_ranges): Ensure we aren't picking up partial object on
    obstack.
    * modules/stdlib.c (setenv): Allow extra arguments.
    * modules/time.c (ctime): Avoid side effect in call to
    obstack_grow.
    * modules/gnu.c (m4_regexp_substitute): Likewise.
    (renamesyms): Avoid extra obstack_init.
    * src/freeze.c (reload_frozen_state): Remove debug comment.
    (produce_frozen_state): Simplify fprintf to puts where possible.
    * modules/modtest.c (modtest_init, modtest_finish): Likewise.
    * modules/import.c (import, symbol_fail, modules_fail): Likewise.
    * m4/macro.c (trace_flush): Likewise.
    * m4/debug.c (m4_debug_message_prefix): Likewise.
    * m4/path.c (include_dump): Likewise.
    * m4/module.c (module_remove): Likewise.
    (install_builtin_table): Simplify malloc and string
    concatenation.

commit 898ebd3a478e183c67fc1e0a7e91782edd9f8ce0
Author: Eric Blake <address@hidden>
Date:   Tue Sep 26 21:21:49 2006 +0000

    * m4/m4module.h (m4_symbol_print): New prototype.
    (M4_DEBUG_TRACE_STACK): New enumerator.
    (m4_is_debug_bit): Allow use without requiring m4private.h.
    * m4/symtab.c (symbol_value_print, m4_symbol_print): New
    functions.
    * modules/m4.c (dump_symbol_CB, m4_dump_symbols): Speed up
    callback.
    (dumpdef): Allow printing pushdef'd stacks.
    * m4/debug.c (m4_debug_decode): Add new 's' debug mode.
    * src/main.c (usage): Document it.
    * doc/m4.texinfo (Dumpdef, Debug Levels): Likewise.
    * NEWS: Likewise.

commit 92a30082b1206bdbba27fdb8bd3f62625d67e89d
Author: Eric Blake <address@hidden>
Date:   Tue Sep 26 13:19:26 2006 +0000

    * configure.ac (AC_CONFIG_HEADERS): Place <config.h> with other
    gnulib headers.
    * Makefile.am (AUTOMAKE_OPTIONS): Add nostdinc, to reduce length
    of lines during make.
    (AM_CPPFLAGS): Remove unneeded include path.
    (src_m4_CPPFLAGS): Remove redundant include path.
    * m4/system_.h Make preprocessor indentation consistent.
    (M4_DIRSEP_CHAR, M4_PATHSEP_CHAR, M4_GNUC_FORMAT): Remove unused
    macros.
    (UNIX, W32_NATIVE, OS2): Update platform recognition macros from
    branch.
    (M4_GNUC_PRINTF, M4_GNUC_SCANF, M4_GNUC_NORETURN)
    (M4_GNUC_CONST, M4_GNUC_UNUSED): Mangle names properly for header.
    (bool, true, false): Don't undefine here; stdbool takes care of
    that.
    * src/m4.h (includes): Assume config.h, and several standard
    headers.
    (__CYGWIN__, WIN32): Don't define here; let system.h do it.
    * m4/m4private.h: Assume config.h.
    * m4/output.c: Likewise.
    * m4/path.c: Likewise.
    * m4/resyntax.c: Likewise.
    * m4/utility.c: Likewise.
    * modules/gnu.c: Likewise.
    * modules/import.c: Likewise.
    * modules/load

commit a389e04c48b089fc4956e64e190486c20a44925b
Author: Eric Blake <address@hidden>
Date:   Tue Sep 26 13:12:58 2006 +0000

    Fix typo

commit 78db0b04e8977e1428801f5a33bbaaae0220cb01
Author: Eric Blake <address@hidden>
Date:   Thu Sep 21 16:40:03 2006 +0000

    * doc/m4.texinfo (Invoking m4): Add clarification on option
    processing behavior.
    * tests/options.at (option grouping): Test this.
    * THANKS: Update.
    Reported by Mikhail Teterin.

commit 9c3518f987239b4b7af77dd4a5b788643d56d3f8
Author: Eric Blake <address@hidden>
Date:   Thu Sep 21 13:05:26 2006 +0000

    * bootstrap: Add --force option, based on idea from coreutils.
    * README: Document that ./bootstrap and autoreconf are for
    developers, and not lightly done in tarballs.

commit 6f88787445428c495923085ec9418e517355e615
Author: Eric Blake <address@hidden>
Date:   Thu Sep 21 04:12:55 2006 +0000

    * src/main.c (usage, OPTSTRING, main): Rename -e to -i.  Make
    warnings consistent.
    (long_options, HASHSIZE_OPTION): Warn on -H.
    * doc/m4.texinfo (Invoking m4): Document this.
    * tests/options.at (deprecated options): Update.

commit a4c63a30dfd0a1f1304dfed3bfd46b3a98d1a0a8
Author: Eric Blake <address@hidden>
Date:   Wed Sep 20 13:05:51 2006 +0000

    Change the default of interactive sessions to match sh.
    * src/main.c (usage): Document this.
    (enum interactive_choice): New enum.
    (main): Use it to defer decision of interactive until after
    argument processing.
    * doc/m4.texinfo (Invoking m4): Document this.
    * NEWS: Likewise, plus add missing mention of -b.
    Reported by Stepan Kasal.

commit 4deeba96fdefa980aad0d2554615404e458eb432
Author: Eric Blake <address@hidden>
Date:   Wed Sep 20 04:04:29 2006 +0000

    * src/main.c (usage, main, DEBUGFILE_OPTION): Deprecate -o as
    well as --error-output; the goal is to add -o/--output in some
    future version with semantics like gcc or autom4te.
    * doc/m4.texinfo (Invoking m4, Dumpdef, Debug Output, Errprint):
    (Extensions): Reflect this update.
    (Renamesyms): Add another test.
    (Defn): Xfail for now, so that `make check' is happy.
    * NEWS: Document this change.
    * tests/generate.awk: Mark dynamic loading tests as such.  Allow
    xfailing tests.
    * tests/macros.at (Renamesyms collisions): New test, exposing
    renamesyms' coredump.
    * tests/options.at (--debugfile, --safer): Update to match
    change.

commit 52febf6cc7a222b9d92084ce52d16e1f23730c5c
Author: Eric Blake <address@hidden>
Date:   Tue Sep 19 13:16:08 2006 +0000

    * m4/debug.c (set_debug_file): Fix regression in -o when stdout
    and stderr are same file, introduced 2003-07-23.
    * tests/options.at (--debugfile): New test, to catch the bug.
    (deprecated options): Test --error-output.
    * src/main.c (usage, main, long_options, ERROR_OUTPUT_OPTION):
    Deprecate --error-output, and replace it with --debugfile.
    * doc/m4.texinfo (Invoking m4, Debug Output, Dumpdef, Errprint):
    Document this change.
    * NEWS: Likewise.

commit 585036394c3f62f8d111e46d6dbe42f86f2c5b10
Author: Eric Blake <address@hidden>
Date:   Tue Sep 19 11:41:25 2006 +0000

    * modules/load.c (modules): Rename to...
    (m4modules): ...this, since it is an English word with 0
    arguments.
    * modules/gnu.c (symbols, m4symbols): Likewise.
    * doc/m4.texinfo (Listing Modules): Rename to...
    (M4modules): ...this.
    (Symbols): Rename to...
    (M4symbols): ...this.
    (Load, Foreach, Trace, Answers): Update to new spellings.
    * NEWS: Document this.

commit 363f8cd01a83bdc38f52fbe48b30d167cc25fb2f
Author: Eric Blake <address@hidden>
Date:   Mon Sep 18 13:16:42 2006 +0000

    * modules/m4.c (traceon, traceoff): Change to Solaris semantics,
    such that without arguments, the global trace flag is changed
    rather than walking the table of all currently-defined macros.
    (set_trace_CB): No longer needed.
    * m4/m4module.h (m4_set_symbol_name_traced): Add a parameter.
    (m4_set_symbol_traced): Delete.
    (m4_symtab_create): Nuke the nuke parameter.
    * m4/m4private.h (m4_get_symbol_value): Delete.
    * m4/symtab.c (m4_symbol_popdef): No more need for nuke_trace.
    (m4_set_symbol_name_traced): Free undefined entries that are no
    longer traced.
    (symbol_destroy_CB): Update caller.
    * m4/m4.c (m4_create): Update caller.
    * src/main.c (main): Likewise.
    (usage): Fix typo in last commit.
    * doc/m4.texinfo: Minor cleanups throughout.
    (Debugging, Dumpdef, Trace, Debug Levels, Debug Output): Merge
    more nodes from branch.
    (Trace): Document new semantics, and how to simulate the old.
    * tests/builtins.at (multiquotes): Adjust to new semantics.
    * NEWS: Update somewhat.

commit 055a40f1a53a5e64e9c2a1c86afa166cb372d771
Author: Eric Blake <address@hidden>
Date:   Fri Sep 15 03:37:53 2006 +0000

    Add --safer option, per debian bug 5898.
    * src/main.c (usage): Document new option.
    (SAFER_OPTION): New enumerator.
    (main): Set the option bit.
    * m4/m4module.h (m4_context_opt_bit_table): Declare new bit
    accessors.
    * m4/m4private.h (M4_OPT_SAFER_BIT): New macro.
    (m4_get_safer_opt): New accessor.
    * modules/gnu.c (esyscmd, debugfile): Disable when --safer.
    * modules/m4.c (syscmd, maketemp): Likewise.
    * doc/m4.texinfo (Invoking m4, Debug Output, Syscmd, Esyscmd)
    (Sysval, Maketemp): Add tests of this.
    * tests/options.at (--safer): Likewise.

commit 68842e3860fec5f2346b9e0f92c66f28d7cf7fea
Author: Eric Blake <address@hidden>
Date:   Thu Sep 14 03:37:47 2006 +0000

    * tests/modules.at (AT_CHECK_M4_MODTEST): Use AT_CHECK_M4, for
    stderr filtering.

commit 4363c35fd62e113d295c50a237790cfaf9e16a6b
Author: Eric Blake <address@hidden>
Date:   Thu Sep 14 00:37:58 2006 +0000

    * tests/.cvsignore: Update.

commit f3bc75d20d653ebbcf92316d9f123ec476493125
Author: Eric Blake <address@hidden>
Date:   Thu Sep 14 00:37:26 2006 +0000

    Fix installcheck.
    * Makefile.am (check_LTLIBRARIES): Build test libraries in the
    tests directory, so we can be sure an installed build is not
    picking up uninstalled non-test libraries.
    (check-local, installcheck-local): Depend on test libraries.
    * tests/modules.at (AT_CHECK_M4_MODTEST): Don't use options
    after file name.  Fix quoting.  Remove skipping the test, now
    that makefile guarantees test modules will exist.
    (Freezing modules, modules: shadow, modules: unload)
    (modules: trace): Always put test modules in module path.
    (modules: importing): Likewise, and rely on AT_CHECK_M4 for
    stderr munging.
    * src/main.c (usage): Document default module search path.
    (import_environment, frozen_file_to_read, frozen_file_to_write):
    Move...
    (main): ...here.
    * tests/testsuite.at (AT_CHECK_M4): Filter stderr here...
    * tests/m4.in: ...not here.
    Reported by Ralf Wildenhues.

commit be70d90cd3f093df4e7e2ea8b185d2adc3ddce31
Author: Eric Blake <address@hidden>
Date:   Fri Sep 8 15:47:13 2006 +0000

    * bootstrap: Kill unrelated copy-n-paste code from argument
    parsing.  Let Makefile generate testsuite.
    * Makefile.am (EXTRA_DIST): Remove examples/WWW/man/Makefile.

commit 59bf11efafb98d9a96a57ccf95263e876852bf17
Author: Eric Blake <address@hidden>
Date:   Thu Sep 7 23:53:04 2006 +0000

    * m4/m4module.h (m4_peek_input): No longer export.
    (m4_error_at_line, m4_warn_at_line): New prototypes.
    (m4_is_symbol_void): New macro.
    (m4_push_file): Update prototype.
    * m4/m4private.h (m4__peek_token): New prototype.
    (M4_TOKEN_OPEN, M4_TOKEN_COMMA, M4_TOKEN_CLOSE): New enumerators.
    * m4/utility.c (m4_error_at_line, m4_warn_at_line): New functions.
    * src/main.c (main): Allow reading from stdin twice.
    * modules/m4.c (include): Adjust to new prototype.
    * m4/input.c: General comment cleanup.
    (file_peek, file_read, file_unget, push_file): Set end flag on
    EOF, so that we don't call getc twice.
    (push_file, file_clean): Port fix from branch to avoid closing
    stdin prematurely.
    (pop_input): Port fix from branch to avoid reading free'd memory
    when input ends mid-string.
    (m4_pop_wrapup): Port fix from branch to allow multiple m4wraps.
    (string_peek, string_read): Always use unsigned char.
    (m4_skip_line): Warn when dnl cut short by EOF.
    (peek_input): Rename from m4_peek_input.
    (match_i

commit e3d61465c11192eb70a6f220be97be490eb9b2f3
Author: Eric Blake <address@hidden>
Date:   Thu Sep 7 16:41:24 2006 +0000

    * Makefile.am ($(TESTSUITE)): Revert patch from 2006-09-05...
    (check-local): and put dependency here.
    Reported by Ralf Wildenhues.

commit 2bfa4bad6682769f3b1a4a0324b43c7cbcd72d1e
Author: Eric Blake <address@hidden>
Date:   Tue Sep 5 23:16:39 2006 +0000

    * m4/m4module.h (m4_debug_message): New prototype.
    (M4_DEBUG_TRACE_MODULE): New debug bit.
    * m4/m4private.h (M4_DEBUG_MESSAGE, M4_DEBUG_MESSAGE1)
    (M4_DEBUG_MESSAGE2): Delete these macros.
    * m4/debug.c (m4_debug_message): New method.
    (m4_debug_decode): Add module tracing as flag `m'.
    * m4/input.c (m4_push_file, file_clean): Use new method.
    * m4/path.c (m4_path_search): Likewise.
    * po/Makevars (XGETTEXT_OPTIONS): Likewise.
    * m4/module.c (install_builtin_table, install_macro_table)
    (m4__module_open, module_close, module_remove): Promote several
    module debug messages outside of DEBUG_MODULES.
    (m4__module_init, module_remove) [DEBUG_MODULES]: Don't mix
    DEBUG_MODULES with normal trace output.
    * src/main.c (usage): Document new flag.
    * doc/m4.texinfo (Debug Levels): Likewise.
    * Makefile.am ($(TESTSUITE)): Add missing dependency.
    * tests/m4.in: Neutralize platform-dependent module filenames.
    * tests/options.at (--debug): Update expected output.

commit ec8e5267ddd6531a77e13cfddcc1714dce5256e2
Author: Eric Blake <address@hidden>
Date:   Tue Sep 5 17:28:45 2006 +0000

    * doc/m4.texinfo: Fix some typos.
    * tests/others.at: Likewise.

commit 46bd2043cdb97cfb086d291e6fbe7225c30e0d3e
Author: Eric Blake <address@hidden>
Date:   Tue Sep 5 16:58:02 2006 +0000

    * m4/input.c (lex_debug): Remove dead code that broke compilation
    with --enable-debug.
    * m4/module.c (install_builtin_table, install_macro_table)
    (m4__module_init, m4__module_open, module_close)
    (module_remove): Fix compilation when --enable-debug.
    * m4/output.c (m4_shipout_text): Likewise.
    * ltdl/m4/debug.m4 (M4_CHECK_DEBUGGING): Preload all static
    libraries when --enable-debug.
    * configure.ac (DYNAMIC_MODULES): New variable, to pass
    information to testsuite.
    (modules to preload): Determine modules after we know whether
    shared libraries are supported.
    * tests/atlocal.in (DYNAMIC_MODULES): Substitute this into
    testsuite.
    * tests/testsuite.at (AT_CHECK_DYNAMIC_MODULE): New macro.
    * tests/modules.at (Freezing modules, AT_CHECK_M4_MODTEST)
    (modules: shadow, modules: unload, modules: importing)
    (modules: trace): Use new macro.
    * tests/builtins.at (gmp): Likewise.

commit b0c19f2819de9d05399fe1bbaf50f21888b3098a
Author: Eric Blake <address@hidden>
Date:   Tue Sep 5 13:25:24 2006 +0000

    * m4/macro.c (expansion_level, macro_call_id): Change to size_t.
    All users updated.
    (expand_token): Avoid assertion just added to docs.
    (expand_macro): Track pending expansions, for when a symbol's
    definition changes during argument collection.
    (m4_macro_call, process_macro): Operate on symbol value, not
    symbol, since symbol may have changed during argument collection.
    * m4/m4private.h (m4_symbol_value): Add pending_expansions member.
    (VALUE_PENDING, SYMBOL_PENDING, VALUE_DELETED_BIT): New defines.
    (m4_get_symbol_value): Add fast macro version.
    * m4/m4module.h (M4_BUILTIN_FLAGS_MASK): New enumerator.
    (m4_macro_call): Adjust prototype.
    * m4/module.c (install_builtin_table): Check that flags are valid
    when creating builtin.
    * m4/symtab.c (m4__symtab_remove_module_references): Use
    m4_symbol_value_delete, rather than inlining it.
    (m4_symbol_value_copy): Copy placeholder text.
    (symbol_popval): Use m4_symbol_value_delete.
    (m4_symbol_value_delete): Implementation was missing when N

commit c1477b8e65d2a7056b8f8f4e9387bd2aaafa23c1
Author: Eric Blake <address@hidden>
Date:   Fri Sep 1 23:12:33 2006 +0000

    Fix typo in last commit

commit daa2edf98ccd6a23cdc04ad1d5ca75026a2ee5a7
Author: Eric Blake <address@hidden>
Date:   Fri Sep 1 23:11:05 2006 +0000

    * m4/m4.c (m4_create): Fix latent bug since 2003-10-08.
    * m4/hash.h (m4_free_hash_iterator): New prototype.
    * m4/hash.c (struct m4_hash) [!NDEBUG]: Add iter member, to
    ensure we don't do unsafe things while iterating.
    (HASH_ITER, ITER_CHAIN): New accessor macros.
    (m4_hash_new, m4_hash_resize, maybe_grow): Fix malloc typing bug.
    (m4_hash_delete, m4_hash_insert): Unsafe while iterating.
    (m4_hash_remove) [!NDEBUG]: Enforce safety while iterating.
    (m4_get_hash_iterator_next) [!NDEBUG]: Track current iterators,
    to catch unsafe actions.
    (m4_free_hash_iterator): New function, to avoid memory leaks, and
    when debugging, to track safe actions.
    (m4_hash_apply): Avoid memory leak.
    * m4/symtab.c (m4_symtab_apply): Likewise.
    * ltdl/m4/gnulib-cache.m4: Remove getopt from here; it is pulled
    in manually to src/ for now.
    * tests/builtins.at (gmp): Add keyword module.
    * tests/modules.at (Freezing modules, modules: shadow)
    (modules: unload, modules: importing, modules: trace): Likewise.

commit 311fdd95504bdeb25464ff9609ee11c31019f77c
Author: Eric Blake <address@hidden>
Date:   Thu Aug 31 03:21:35 2006 +0000

    * m4/utility.c (m4_warn): Factor "Warning" out of messages into
    here.
    (m4_bad_argc, m4_numeric_arg): Update all callers.
    * m4/macro.c (m4_macro_call): Likewise.
    * doc/m4.texinfo (Defn, Pushdef): Fix typos in last commit.
    (Indir, Builtin, Ifdef): More doc merges.
    (Loops): Mention that documenting foreach would be nice.
    (Macro Arguments, Defn, Builtin, Ifdef, Ifelse, Changesyntax)
    (Include, Eval, Location, M4exit): s/input.m4/stdin/.
    * modules/gnu.c (indir, builtin): Warn, not error, on undefined.
    (substitute, syncoutput): Update all m4_warn callers.
    * modules/m4.c (undefine, popdef, m4_dump_symbols, defn)
    (traceon, traceoff): Make warning message consistent.
    (define, pushdef): Update all m4_warn callers.
    * tests/generate.awk: Choose file name so that documentation can
    show command-line behavior.
    * tests/builtins.at (define): Update to new wording.
    * tests/macros.at (pushdef/popdef): Likewise.
    * tests/freeze.at (loading format 1): Likewise.
    * tests/modules.at (AT_CHECK_M4_MODT

commit 791c9adbe9da707df0927cd8194029fc0de26590
Author: Eric Blake <address@hidden>
Date:   Wed Aug 30 13:35:20 2006 +0000

    * doc/m4.texinfo (Undefine, Defn, Pushdef): More doc merges from
    the branch.
    (Defn): Add failing test case for mixing text and builtin.
    (Renamesyms): Improve wording, and identify core dump that needs
    fixing.

commit f86dce2eef61a240ca3d3cbdd357391fbe54dbda
Author: Eric Blake <address@hidden>
Date:   Wed Aug 30 04:25:42 2006 +0000

    * doc/m4.texinfo (Quoting Arguments, Definitions, Define)
    (Arguments, Pseudo Arguments): More doc merges from the branch.
    (Macro expansion): Turn example into test.
    (Pseudo Arguments): Add example of avoiding argument.
    * modules/m4.c (undefine, popdef): Accept multiple arguments.
    (define, pushdef): Warn on non-text macro name.
    (ifelse, m4_dump_symbols, defn, traceon, traceoff): Tweak
    warning/error messages.
    (ifdef): Ignore extra arguments.
    * m4/symtab.c (m4_symbol_value_copy): Avoid memory leak.
    (m4__symtab_remove_module_references): Check that there is no leak.
    * tests/macros.at (pushdef/popdef): Update to new message.
    * tests/builtins.at (define): Likewise.
    * tests/freeze.at (loading format 1): Likewise.
    * tests/modules.at (AT_CHECK_M4_MODTEST): Likewise.

commit 981dcee68e067f3c5ca251fa0577c5a3dfe4171e
Author: Eric Blake <address@hidden>
Date:   Tue Aug 29 20:38:30 2006 +0000

    * m4/m4private.h (m4_get_syntax_lquote, m4_get_syntax_rquote)
    (m4_get_syntax_bcomm, m4_get_syntax_ecomm) [NDEBUG]: Use same type
    as accessor function, to avoid compiler warning.
    * m4/module.c (m4__module_open): Move declaration of variable to
    avoid compiler warning.
    * src/main.c (main): Avoid shadowing a global variable.
    * src/freeze.c (produce_symbol_dump): Avoid unused variable
    warning when NDEBUG.
    * tests/options.at (--discard-comments, --import-environment)
    (--debug, --prepend-include, --help and --version): Rename tests
    to name option tested.

commit 4c4b73d2d993867b0e5b6b72246fc83120e7f96f
Author: Eric Blake <address@hidden>
Date:   Mon Aug 28 12:48:53 2006 +0000

    * m4/utility.c (m4_bad_argc): Move assertion out of hot path...
    * m4/module.c (install_builtin_table): ...to here, and add
    assertion that blind macros require arguments.
    * m4/m4module.h (struct m4_builtin): Document restrictions that
    must be met during module loading.
    * modules/gnu.c (changeresyntax, changesyntax): These are blind,
    so require an argument to avoid     triggering assertion.
    (debugfile): Tweak error message.

commit 832c5ebd68485d063867639f987fec7a8a4f58aa
Author: Eric Blake <address@hidden>
Date:   Fri Aug 25 22:06:41 2006 +0000

    * m4/m4module.h (M4_BUILTIN_GROKS_MACRO, M4_BUILTIN_BLIND)
    (M4_BUILTIN_SIDE_EFFECT): New enumerators.
    (struct m4_builtin): New member flags replaces groks_macro_args,
    blind_if_no_args.  min_args and max_args are now 0-based.
    Rearrange members to reduce size on platforms where function
    pointers are 64 bits but regular pointers are 32.
    (m4_bad_argc): Add argument.
    * m4/m4private.h (VALUE_SIDE_EFFECT_ARGS_BIT): New define.
    * m4/utility.c (m4_bad_argc): Simplify calculation, and take side
    effect into account.
    * m4/module.c (install_builtin_table): Adjust all users affected
    by this API change.
    * m4/macro.c (m4_macro_call): Likewise.
    * src/freeze.c (reload_frozen_state): Likewise.
    * modules/m4.c (builtin_functions, ifelse, syscmd): Likewise.
    * modules/gnu.c (builtin_functions, builtin, esyscmd): Likewise.
    * modules/import.c (builtin_functions): Likewise.
    * modules/load.c (builtin_functions): Likewise.
    * modules/modtest.c (builtin_functions): Likewise.
    * modules/mpeval.c (builtin_f

commit 397d36e80cd39461bb5b2b3f2bb8879ea8d4e99a
Author: Eric Blake <address@hidden>
Date:   Fri Aug 25 19:23:22 2006 +0000

    Update .cvsignore

commit 26a80b5b3d111da71774d426c330c7310b4ce640
Author: Eric Blake <address@hidden>
Date:   Fri Aug 25 19:23:01 2006 +0000

    * tests/options.at (debug-flags): Update to reflect new message.
    (deprecated options, prepend-include, help and version): New
    tests.
    * tests/testsuite.at (AT_CHECK_M4): Avoid hanging testsuite if
    test omits an input file name.
    * src/main.c (long_options, main): Add -B/--prepend-include.
    (usage): Document it.
    (main): `m4 --help --version' now displays help, not version.
    * ltdl/m4/gnulib-cache.m4: Augment with gnulib-tool --import
    dirname filenamecat.
    * m4/m4module.h (m4_add_include_directory): Add parameter.
    * m4/m4private.h (m4__include_init): New prototype.
    * m4/m4.c (m4_create): Put `.' on path before options are
    collected.
    * m4/path.c (includes): Assume C89.  Use gnulib for file name
    management.
    (m4__include_init): New function.
    (search_path_add): Allow prepending.
    (m4_add_include_directory, search_path_env_init): Adjust callers.
    (m4_path_search): Relative names now invoke path search, since
    `.' might not be first.
    * doc/m4.texinfo (Invoking m4, Search Path): Document new

commit 12b5402bed47c0cd1ac6bace73d30dccf70b7738
Author: Eric Blake <address@hidden>
Date:   Fri Aug 25 18:02:17 2006 +0000

    * bootstrap: Run autopoint before gnulib-tool, since autopoint
    0.15 installs macros obsoleted by current gnulib.

commit c0760659547771e244782e93e8ceb3f40c3b9757
Author: Eric Blake <address@hidden>
Date:   Fri Aug 25 15:34:09 2006 +0000

    * doc/m4.texinfo (Macro Arguments): Another section merged;
    testsuite failures now exposed.

commit 0a83e19ce2e0d7abf68842e09576e26c2185b818
Author: Eric Blake <address@hidden>
Date:   Thu Aug 24 00:25:04 2006 +0000

    * doc/m4.texinfo (Quoted strings, Other tokens, Comments)
    (Input processing): More doc merges from the branch.
    (Regular expression syntax): Add introductory text.
    (Inhibiting Invocation): More doc merges from the branch.
    (Other tokens): Reorder after comments.
    * tests/generate.awk: Allow passing options to doc examples.

commit c2e093a955214b8aaf4da8dd44bd595b06fea235
Author: Eric Blake <address@hidden>
Date:   Wed Aug 23 11:39:26 2006 +0000

    * tests/options.at (debug-flags): New test.
    * m4/m4module.h (M4_DEBUG_TRACE_VERBOSE): Make sure this value is
    not negative, to distinguish failure in m4_debug_decode.
    (m4_debug_decode): Add new parameter.
    * modules/gnu.c (regexp): Slight cleanup.
    (renamesyms): Ignore excess arguments.
    (syncoutput): Make case-insensitive, warn on bad argument.
    (debugmode): Factor -+ handling out to...
    * m4/debug.c (m4_debug_decode): ...here.
    (m4_debug_message_prefix): Fix spacing.
    * src/main.c (main): Let -d option adjust flags.
    * m4/input.c (file_clean): Avoid printing empty file name.
    * doc/m4.texinfo (Syncoutput): Document new range of input.
    (Invoking m4): Document use of multiple -d flags.

commit d18e81578eb5520b473637a40d02ff412ecd9ae8
Author: Eric Blake <address@hidden>
Date:   Tue Aug 22 23:48:23 2006 +0000

    * doc/.cvsignore: Update.

commit 171d767a438db6d003cf94044a02a2a4bc943388
Author: Eric Blake <address@hidden>
Date:   Tue Aug 22 22:36:54 2006 +0000

    Update .cvsignore

commit f6cac26a08f20d283d5f2442088ffb0119dde2ef
Author: Eric Blake <address@hidden>
Date:   Tue Aug 22 22:36:28 2006 +0000

    Start porting various fixes from the branch that use gnulib.
    * ltdl/m4/gnulib-cache.m4: Augment with gnulib-tool --import
    binary-io cloexec close-stream fopen-safer getopt gnupload mkstemp
    regexprops-generic stdlib-safer unlocked-io.
    * m4/debug.c (m4_debug_set_output): Close debug file on exec.
    * m4/path.c (m4_path_search): Close input file on exec, reject
    empty file name, fix parameter naming.
    * m4/output.c (make_room_for): Close diversion file on exec.
    (includes): Assume C89 headers.
    (tmpfile): For now, we don't want tmpfile-safer, because we want
    clean-temp later.
    * m4/m4private.h (includes): Use various gnulib headers.
    * doc/regexprops-generic.texi: Use gnulib's copy.

commit 8a80617bdad5193292c953b45a17391530044fa6
Author: Eric Blake <address@hidden>
Date:   Tue Aug 22 16:14:10 2006 +0000

    * configure.ac (AM_INIT_AUTOMAKE): Bump automake requirement.
    * AUTHORS: Add copyright.
    * ChangeLog: Likewise.
    * README: Likewise.  Require automake 1.9b or later.
    * HACKING: New file.
    * README-alpha: Add copyright.
    * THANKS: Likewise.  Update.
    * doc/STYLE: Add copyright, and tweak for changed directories.
    * modules/README: Add copyright, and tweak for libtool version.
    * examples/COPYING: New file.
    * examples/WWW/COPYING: Likewise.
    * examples/WWW/m4lib/COPYING: Likewise.
    * modules/shadow.m4: Add copyright.
    * modules/perl.m4: Likewise.
    * modules/modtest.m4: Likewise.
    * modules/stdlib.m4: Likewise.
    * modules/time.m4: Likewise.
    * modules/time2.m4: Likewise.
    * po/Makevars: Likewise.
    * tests/iso8859.m4: Likewise.
    * tests/m4.in: Likewise.
    * NEWS: Add (C) to copyright.
    * TODO: Likewise.
    * m4/system_.h: Likewise.
    * tests/atlocal.in: Likewise.
    * tests/builtins.at: Likewise.
    * tests/freeze.at: Likewise.
    * tests/generate.awk: Likewise.
    * tests/macros.at: Likewise.
    * tests/modules.at: L

commit 434c42d9658c7b3322f3d067b95ca3c2cbb85b46
Author: Eric Blake <address@hidden>
Date:   Tue Aug 22 13:44:22 2006 +0000

    * doc/m4.texinfo (Bugs, Manual, Syntax): Sync from branch.

commit 9d699e7c5c65d04eb2d402c52b06427ab7709b52
Author: Eric Blake <address@hidden>
Date:   Mon Aug 21 12:46:24 2006 +0000

    * configure.ac (AC_CHECK_HEADERS_ONCE): Check for <sys/wait.h>.
    * modules/gnu.c (esyscmd): Use -1 for failure.  Set sysval to 0
    when no arguments are given, but without losing warning about 0
    arguments.
    * modules/m4.c (syscmd): Likewise.
    (includes): Assume C89.
    (m4_sysval): Make static.
    (M4_SYSVAL_EXITBITS, M4_SYSVAL_TERMSIGBITS): New macros.
    (sysval): Port calculation from branch.

commit 97c9af8ea88b1416c0ee9c0e55a0495d50e5f38e
Author: Eric Blake <address@hidden>
Date:   Mon Aug 21 02:37:45 2006 +0000

    * m4/macro.c (expand_macro): Move argument check...
    (m4_macro_call): ...to here, so indir will warn.
    * modules/gnu.c (__program__): New macro, ported from branch.
    (builtin): Perform argument check.
    (changesyntax): Avoid out-of-bounds read.

commit 98c3bc603d27ae511346ec22036095019b870da8
Author: Eric Blake <address@hidden>
Date:   Mon Aug 21 00:14:54 2006 +0000

    * modules/gnu.c (includes): Assume stdlib.h, errno.
    (m4_regexp_compile): Add no_sub parameter, avoid memory leaks.
    (substitute): Add caller parameter, avoid out-of-bounds memory
    references.
    (m4_regexp_substitute, patsubst, regexp, renamesyms): Adjust
    callers.

commit 2ce845c570ca2c25e2fbb9f349d6720407256fdf
Author: Eric Blake <address@hidden>
Date:   Wed Aug 16 12:23:04 2006 +0000

    * po/POTFILES.in: Add more files that contain translatable
    strings.
    * po/Makevars (XGETTEXT_OPTIONS): Add options to pass more
    information to translators.
    (USE_MSGCTXT): New var for gettext 0.15.
    * m4/input.c (file_clean, m4_push_file, m4__next_token): Start
    debug/trace messages in lower case.
    * m4/macro.c (expand_argument): Likewise.
    * m4/path.c (m4_path_search): Likewise.
    * src/main.c (main): Likewise.

commit 46c750535d0508198398b326d7dd480ac2548dd6
Author: Eric Blake <address@hidden>
Date:   Mon Aug 14 13:07:49 2006 +0000

    * src/main.c (usage): Document --import-environment.
    * doc/m4.texinfo (History, Invoking m4): Synchronize from branch.

commit 9b7bd9ef52b69e53287b95570d380d0f948d8550
Author: Eric Blake <address@hidden>
Date:   Fri Aug 11 15:42:58 2006 +0000

    * bootstrap (func_get_translations): Only remove files when doing
    full update.
    (func_update_po): Avoid CDPATH problems.

commit bf93a5bcc130068b76a399a303859521d37b617d
Author: Eric Blake <address@hidden>
Date:   Thu Aug 10 15:59:41 2006 +0000

    * bootstrap (func_get_translations): New function.
    (func_update_po): Borrow ideas from tar to correctly pull in
    translations from newer location.

commit 965614e4d1d88659aa066944de66a52bc9d54da9
Author: Eric Blake <address@hidden>
Date:   Wed Aug 9 21:34:03 2006 +0000

    * ltdl/m4/.cvsignore: Update.

commit c38df922f5733575eb9de52883a4969f4bdc1c5a
Author: Eric Blake <address@hidden>
Date:   Wed Aug 9 21:33:23 2006 +0000

    * bootstrap: Recent gnulib no longer has jm_* macros to worry
    about.
    * ltdl/m4/gnulib-cache.m4: Augment with gnulib-tool --import
    verror.
    * m4/m4module.h (M4ERROR, M4WARN): Delete, replaced by...
    (m4_error, m4_warn): ... these new prototypes.
    (m4_current_file, m4_current_line): Move into context, rather
    than leaving as globals.
    (m4_insert_file, m4_insert_diversion, m4_freeze_diversions)
    (m4_undivert_all, m4_input_init): Now takes context.
    * m4/utility.c (m4_error, m4_warn): New functions.
    * m4/m4private.h: Assume errno exists.
    (struct m4): Move warning_status to a bit flag,
    and add exit_status.  Adjust accessors accordingly.
    * src/main.c (print_program_name_CB): No longer needed.
    (main): Use new m4_get_fatal_warnings_opt.
    * m4/debug.c: Adjust all callers of M4WARN and M4ERROR, and abort
    instead of issuing "INTERNAL ERROR".  Pass context when needed,
    and use new accessors.
    * m4/input.c: Likewise.
    * m4/macro.c: Likewise.
    * m4/output.c: Likewise.
    * m4/utility.c: Likewise.
    * mod

commit ec5f6cc25495326ce288b04356c8c4ae00d9ba72
Author: Eric Blake <address@hidden>
Date:   Wed Aug 9 13:16:34 2006 +0000

    * configure.ac (AM_GNU_GETTEXT, AM_GNU_GETTEXT_VERSION): Require
    newer gettext 0.15.

commit a3e19806760c9ffb9f9ed205a19168b8d75bf834
Author: Eric Blake <address@hidden>
Date:   Thu Aug 3 13:15:42 2006 +0000

    * src/stackovf.c (setup_stackovf_trap): Port patch from branch to
    gracefully handle ENOSYS.
    * TODO: Update.
    * THANKS: Update.

commit 2c9149360ee50d4cafab78667835ee11efd6ebfa
Author: Eric Blake <address@hidden>
Date:   Fri Jul 28 16:41:28 2006 +0000

    * src/freeze.c (reload_frozen_state): Copy string when creating
    placeholder, to avoid memory corruption.
    * m4/symtab.c (symbol_popval): Avoid memory leak.
    (m4_symbol_rename): Avoid shadowing rename function.
    (dump_symbol_CB, symtab_dump) [DEBUG_SYM]: Fix compilation.
    * tests/freeze.at (reloading unknown builtin): Add test.
    * tests/generate.awk: Capture m4.texinfo line number in
    testsuite.log, not just generated.at.

commit 894b3594e9c97da9594dbaef39ea427b552803c0
Author: Eric Blake <address@hidden>
Date:   Fri Jul 28 14:37:30 2006 +0000

    =?utf-8?q?*=20src/main.c=20(usage):=20Update=20to=20match=20branch.
    
    =20`m4'=20and=20package=20name=20`GNU=20M4'.
    =20(AUTHORS):=20Translate=20Ren=C3=A9=20Seindal's=20name.
    =20*=20configure.ac=20(TIMESTAMP):=20Remove=20now-redundant=20parentheses.
    =20*=20Makefile.am=20(doc/m4.1):=20Update=20to=20match=20branch.
    
=20*=20m4/m4.c=20(DEFAULT=5FNESTING=5FLIMIT):=20Raise=20to=201024,=20to=20match
    =20branch.?=
    MIME-Version: 1.0
    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: 8bit

commit 960406e685795e8f437dd6183ac27230d3b464a9
Author: Eric Blake <address@hidden>
Date:   Fri Jul 28 14:06:10 2006 +0000

    Port idea from branch that a frozen file can request an unknown
    builtin without producing a warning unless the builtin is
    actually used.
    * m4/m4private.h (m4__symbol_type): Add M4_SYMBOL_PLACEHOLDER.
    (m4_is_symbol_value_placeholder, m4_get_symbol_value_placeholder)
    (m4_set_symbol_value_placeholder): New accessors.
    * m4/m4module.h (m4_is_symbol_placeholder),
    (m4_get_symbol_value_placeholder),
    (m4_set_symbol_value_placeholder),
    (m4_get_symbol_placeholder): Likewise.
    * m4/symtab.c (m4_is_symbol_value_placeholder),
    (m4_get_symbol_value_placeholder),
    (m4_set_symbol_value_placeholder): Likewise.
    (dump_symbol_CB): Handle new symbol type.
    * m4/macro.c (trace_pre): Likewise.
    (m4_macro_call): Warn when invoking a placeholder.
    * modules/m4.c (dumpdef): Handle dumping a placeholder.
    (defn): Warn when referencing a placeholder.
    * src/freeze.c (dump_symbol_CB): Ignore placeholder when
    freezing.
    (reload_frozen_state): When reloading unknown builtin, install a
    placeholder instead of warning

commit 560127c0d0f61ceac28e560f33408789ab5810e3
Author: Eric Blake <address@hidden>
Date:   Fri Jul 28 01:49:37 2006 +0000

    * m4/hash.c (m4_hash_string_hash): Don't case-fold in the hash
    function. Shift by 7, not 3, for consistency with
    gnulib/lib/hash.c. Don't assume hash word is 32 bits.

commit 5d79b6fb1c696a52c7ffeb75a3c7742ba2a94a02
Author: Eric Blake <address@hidden>
Date:   Fri Jul 28 00:22:09 2006 +0000

    * m4/hash.c (m4_hash_string_hash): Don't case-fold in the hash
    function. Shift by 7, not 3, for consistency with
    gnulib/lib/hash.c. Don't assume hash word is 32 bits.

commit ba6c47df1de5e275dbe9dfa681347a8a9769a6ee
Author: Eric Blake <address@hidden>
Date:   Thu Jul 27 22:34:55 2006 +0000

    =?utf-8?q?*=20src/main.c=20(usage):=20Update=20to=20match=20branch.
    
    =20`m4'=20and=20package=20name=20`GNU=20M4'.
    =20(AUTHORS):=20Translate=20Ren=C3=A9=20Seindal's=20name.
    =20*=20configure.ac=20(TIMESTAMP):=20Remove=20now-redundant=20parentheses.
    =20*=20Makefile.am=20(doc/m4.1):=20Update=20to=20match=20branch.
    
=20*=20m4/m4.c=20(DEFAULT=5FNESTING=5FLIMIT):=20Raise=20to=201024,=20to=20match
    =20branch.?=
    MIME-Version: 1.0
    Content-Type: text/plain; charset=utf-8
    Content-Transfer-Encoding: 8bit

commit 9e21bce5cfd7c6adfccfa66a646ae572845a0b85
Author: Eric Blake <address@hidden>
Date:   Thu Jul 27 13:29:31 2006 +0000

    * m4/system_.h (EXIT_MISMATCH): Define.
    * src/main.c (main): Don't clear syntax table for version 1.
    (usage): Document exit status.
    * src/freeze.c (reload_frozen_state): Port GET_DIRECTIVE from the
    branch, and require V directive to appear first in file.  Fix
    broken logic for detecting F and T in version 1 files.

commit 95e9095e3f500d947198d5e9a8e66222c5951d2c
Author: Eric Blake <address@hidden>
Date:   Sat Jul 22 22:38:14 2006 +0000

    * src/main.c (stackovf_handler): Document the problems in our
    overflow handler.
    * src/stackovf.c: Forward port changes in branch to use POSIX
    sa_sigaction when available.
    (process_sigsegv): Avoid buffer overrun when error string is
    translated, although the fact that we translate in a signal
    handler is still a bug.
    * ltdl/m4/stackovf.m4 (M4_SYS_STACKOVF): Forward port changes
    from branch to modernize checks.

commit 4f6ebdd6edb9143cc5668c24a87b84eb0e23957c
Author: Eric Blake <address@hidden>
Date:   Sat Jul 22 21:42:13 2006 +0000

    * modules/format.c (format): Avoid compiler warning that str may
    be used uninitialized.

commit 1b3ff343e52757ea39332595a1fb5398e749a7e6
Author: Eric Blake <address@hidden>
Date:   Sat Jul 22 19:23:04 2006 +0000

    * m4/m4private.h (DEBUG_MODULES, DEBUG_STKOVF) [DEBUG]: Fix
    spelling.
    (DEBUG_SYNTAX) [DEBUG]: Turn on more debug.
    (DEBUG_MACRO): Remove unused macro.
    * src/stackovf.c: Avoid compiler warnings.
    * m4/input.c: Likewise.
    * m4/module.c: Likewise.
    * m4/output.c: Likewise.
    * m4/path.c: Likewise.
    * m4/symtab.c: Likewise.
    * m4/syntax.c: Likewise.

commit b48a5cab592a4a90ba9addc4465aa59bb0439ca4
Author: Eric Blake <address@hidden>
Date:   Thu Jul 20 15:45:42 2006 +0000

    * ltdl/m4/gnulib-cache.m4: gnulib-tool has changed again.
    Regenerate to explicitly ask for --assume-autoconf=2.60.

commit fb8d35e3adbf2c38f774dd8e962c286f031efb7f
Author: Eric Blake <address@hidden>
Date:   Wed Jul 19 20:32:13 2006 +0000

    * po/ChangeLog: Merge into main ChangeLog, then delete file.
    * THANKS: Update.

commit 1c8b37d234ac895f15ff29d4ab7769b2d096b3c5
Author: Eric Blake <address@hidden>
Date:   Wed Jul 19 12:16:52 2006 +0000

    * doc/m4.texinfo (copying): Relax restriction on front-cover and
    back-cover texts.

commit c0f1c4fbcd98e301bc3b8b41a9edce7658ef1f2a
Author: Eric Blake <address@hidden>
Date:   Mon Jul 17 17:55:40 2006 +0000

    * configure.ac (AM_GNU_GETTEXT_VERSION): Bump requirement to
    0.14.5.

commit 425afb7d423355e8137bdb734e39f65caeabb63a
Author: Eric Blake <address@hidden>
Date:   Mon Jul 17 13:27:52 2006 +0000

    Update .cvsignore

commit 306ef6b90e323997276e13788feec4b6dfe2c4d2
Author: Eric Blake <address@hidden>
Date:   Mon Jul 17 13:26:08 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with `gnulib-tool --import
    xvasprintf'.
    * modules/format.c (includes): Use xvasprintf.h.
    (format): Make static.  Avoid buffer overflow, that can lead to
    arbitrary code execution exploit.  Only pass unsigned char to
    is*().  Support F, g, and G specifiers.
    * doc/m4.texinfo (Format): Expose buffer overrun bug.  Document
    new specifiers.

commit effb2c16f18b6a13394e8a35733ee1bc482f5d89
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jul 17 12:37:21 2006 +0000

    Ensure M4 compiles correctly with -DDEBUG, and use a single
    consistent definition of various /DEBUG_[A-Z]+/ symbols:
    
    * m4/input.c: Have commented out out DEBUG_INPUT only by default.
    (m4_print_token): Use m4_get_symbol_value_text and
    m4_get_symbol_value_func calls instead of obsolescent VALUE_TEXT
    and VALUE_FUNC respectively.
    (m4__next_token): Use m4_print_token call instead of obsolescent
    print_token symbol.
    * m4/module.c: Have commented out out DEBUG_MODULE only by default.
    * m4/output.c: Similarly for DEBUG_OUTPUT.
    * m4/path.c: Similarly for DEBUG_INCL.
    * m4/symtax.c: Similarly for DEBUG_SYM.
    * m4/syntax.c: Similarly for DEBUG_SYNTAX.
    * src/stackovf.c: Similarly for DEBUG_STACKOVF.
    * m4/m4private.h (DEBUG): Add DEBUG_OUTPUT and DEBUG_STACKOVF to
    preprocessor macros defined with -DDEBUG compiles.

commit 7ba704ec5ac668044e936b60f3de5a67c878e88d
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jul 17 12:33:29 2006 +0000

    * bootstrap: Correct typo in --download-po argument parsing.

commit 7036ace1954bb62b2683855aba411c818a02c6b6
Author: Eric Blake <address@hidden>
Date:   Sat Jul 15 22:11:41 2006 +0000

    Update .cvsignore

commit dc3fa710e1a434cd14ee8c207fe63f83d79d844c
Author: Eric Blake <address@hidden>
Date:   Sat Jul 15 21:35:37 2006 +0000

    * ltdl/m4/gnulib-cache.m4: Augment with `gnulib-tool --import
    gendocs fdl'.
    * tests/generate.awk (normalize): Recognize @tabchar.
    * doc/m4.texinfo (Top): Start merging from branch.  Remove tabs.
    Fix menus.  Upgrade FDL license from 1.1 to 1.2.  Fix overfull
    hboxes.
    (Index macro, Shell commands, Incompatiblities): Rename nodes
    from Index, UNIX commands, Other incompat.
    (Platform macros, Using frozen files, Frozen file format 1)
    (Frozen file format 2, Copying This Manual, Indices): New nodes.
    * Makefile.am (EXTRA_DIST): Distribute gendocs.
    (MAINTAINERCLEANFILES): Clean up files from gnulib.
    (doc_m4_TEXINFOS): Depend on fdl.texi.
    (web-manual): New maintainer target.

commit 056ddcc19d6836ac4a891f5cae7fd852ba1887d2
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Jul 15 00:15:01 2006 +0000

    * doc/m4.texinfo (Modules):  RMS asked me for an explanation of
    the modular architecture of M4.  The result is paraphrased here
    for the benefit of future readers of the manual.

commit 1dc39a90ae98e4a1b195b71e48dbaf5033e8e4c9
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Jul 14 21:08:14 2006 +0000

    * Makefile.am (TESTSUITE_AT): Add missing tests/freeze.at.

commit 00534029c889de381dfa35ad1c0542462856b537
Author: Eric Blake <address@hidden>
Date:   Fri Jul 14 15:27:34 2006 +0000

    * src/main.c (main): Avoid compiler warning.
    * modules/gnu.c (renamesyms): Remove unused variable.

commit e7150c4405a670171e4f2985ad948a5638946aec
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 13 23:35:15 2006 +0000

    * m4/m4module.h (m4_regexp_syntax_decode, m4_regexp_syntax_encode)
    (m4_get_regexp_syntax_opt, m4_set_regexp_syntax_opt): Declare
    new functions for managing regexp syntax options.
    * m4/m4private.h (m4): Add regexp_syntax field.
    * m4/resyntax.c: New file implements the above.
    * Makefile.am (m4_libm4_la_SOURCES): Add m4/resyntax.c.
    * modules/gnu.c (RE_SYNTAX_BRE, RE_SYNTAX_ERE, builtin_eregexp)
    (builtin_epatsubst, builtin_erenamsyms, m4_regexp_do)
    (m4_patsubst_do, m4_renamesyms_do): Removed.
    (builtin_changeresyntax): New builtin to change regular expression
    syntax.
    (m4_resyntax_encode_safe): Factor out diagnostics code.
    * src/freeze.c (produce_resyntax_dump): New function to dump
    default regexp syntax specifier to frozen file.
    (reload_frozen_state): Updated to action 'R' directive.
    * src/main.c (usage): Describe new -r option.
    (long_options, OPTSTRING): Declare it.
    (main): Encode and store cli regexp syntax option argument.
    * tests/freeze.at (regexp syntax): New test that regex

commit 2d8b924514a7dc5097a9420ebcf5b12a83424293
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 13 15:58:56 2006 +0000

    * bootstrap: Enhanced to work more like our other scripts:
    Add a copyright statement; support --version and --help; accept a
    --download-po option with argument as a substitute for DOWNLOAD_PO
    in the environment.

commit 7343fe5634c56d957851a6a8cbfafed8326f6cbf
Author: Eric Blake <address@hidden>
Date:   Tue Jul 11 16:34:16 2006 +0000

    * Makefile.am (doc/m4.1): Port patch from branch that avoids
    intermediate file.
    * ltdl/m4/gnulib-cache.m4: Regenerate since upstream gnulib-tool
    changed.

commit 89f1584571756de8384157ddd5284f8ac28bb8cb
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jul 10 23:27:43 2006 +0000

    * tests/builtin.at (patsubst, regexp):  Adjust these tests, now
    that `0' is no longer accepted.

commit d8403d611d233f78a54724a91133180c41cad751
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jul 10 19:41:00 2006 +0000

    * src/main.c (usage): Alphabetize options within their sections.

commit f4f931f9f6a0a6fb5b4844df9f9b0c34a1d6456c
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jul 10 19:21:02 2006 +0000

    * modules/gnu.c (m4_regexp_search, regsub, substitute)
    (esyscmd):  Improve comments.

commit 43163f625f70acb59a1c05daa2bc33ae6993bef6
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jul 10 18:54:17 2006 +0000

    * modules/gnu.c (substitute): Remove old warning for 0.
    (substitute_warned): No longer required.  Removed.

commit 3ca6e144363bc8d69d16d59f73b407e9f3d37a06
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jul 10 15:08:21 2006 +0000

    * modules/gnu.c: Put macro definitions into alphabetical order.

commit b8ce09fc0389497c85ac770137cedeb064924b25
Author: Eric Blake <address@hidden>
Date:   Fri Jul 7 15:47:39 2006 +0000

    * tests/freeze.at (loading format 1): New file, with new test.
    * tests/testsuite.at: Include it.
    * tests/macros.at (Arity, defn, and freeze): Add frozen keyword.
    * tests/modules.at (Freezing modules): Likewise.

commit 3ef0fd84dcc74b1bb5a875d0b541129b125e25c5
Author: Eric Blake <address@hidden>
Date:   Fri Jul 7 13:07:48 2006 +0000

    * configure.ac (AC_PREREQ): Autoconf 2.60 is now out.
    (AC_CHECK_HEADERS): Assume signal.h.
    (AC_CHECK_HEADERS_ONCE): Use new feature to shrink configure.
    (AC_CHECK_FUNCS_ONCE): Likewise.
    * src/m4.h (includes): Assume signal.h.

commit 3750522797d8c2923dd033b74b2b5e44b43fe7ab
Author: Eric Blake <address@hidden>
Date:   Wed Jul 5 20:54:15 2006 +0000

    Fix all testsuite failures on cygwin.
    * doc/m4.texinfo (Syscmd, Esyscmd): Forward-port updates from
    branch-1_4.  Solves testsuite failure when uninstalled m4 is
    shadowed by redefinition of PATH in libtool wrapper.
    * Makefile.am (module_ldflags): Don't forget AM_LDFLAGS, which
    contains the -no-undefined required by cygwin.
    (TESTS_ENVIRONMENT): Export abs_top_builddir.
    * tests/others.at (misc): Port to platforms where /etc/passwd
    does not exist or does not contain user named root.
    * tests/modules.at (AT_CHECK_M4_MODTEST): Look in correct
    directory.
    * tests/builtins.at (define, divert): Avoid overquoting.
    * tests/generate.awk (new_group): Likewise.

commit a851fb255a708443d4f64d2dde6b97cc06b72393
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jul 5 17:00:21 2006 +0000

    update .cvsignore

commit c45f9230bb522daf39911da0c7f34354b2388617
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jul 5 16:56:50 2006 +0000

    The regs_allocated field in a struct re_pattern_buffer refers
    to the state of a particular re_registers struct when used in
    successive matches using the same compiled pattern.  Avoid a
    SEGV in `renamesyms' resulting from using a new re_registers
    with an existing re_pattern_buffer:
    
    * modules/gnu.c (m4_pattern_buffer): Wrapper struct for associated
    pattern buffer and registers.
    (m4_regexp_search): New function to call re_regexp_search with
    correctly matched pattern buffer and register instantiations.
    (m4_regexp_compile): Return an m4_pattern_buffer.  Adust all
    callers.

commit b9f052893cadaa7a3e7c922dc94af09fbb89f588
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Jul 4 16:29:34 2006 +0000

    * ltdl/m4/m4-getopt.m4 (M4_GETOPT): Update to take into account
    changes to gnulib getopt.m4 since last build.
    * Makefile.am (src_m4_SOURCES): Only compile shipped getopt module
    if the system getopt fails M4_GETOPT tests.

commit 759b3b1b4105b71bc399c597ff1855116e87e867
Author: Eric Blake <address@hidden>
Date:   Thu Jun 22 15:52:18 2006 +0000

    * Makefile.am (EXTRA_DIST): Distribute gnulib-cache.m4.
    Reported by Bruno Haible.

commit 10d9ad5159858ad9b530a0b3c8773806354400ba
Author: Eric Blake <address@hidden>
Date:   Thu Jun 22 15:41:12 2006 +0000

    * m4/module.c (m4__module_exit): Avoid ltdl memory leak.

commit d41ea5fea893c48cfd1ccc8a78a120a67256ba81
Author: Eric Blake <address@hidden>
Date:   Tue Jun 20 03:20:51 2006 +0000

    * THANKS: Update.

commit 5c559d5bd771f22d6374ec17ba297a5e7ba877ca
Author: Eric Blake <address@hidden>
Date:   Mon Jun 19 19:10:19 2006 +0000

    * Makefile.am (src_m4_DEPENDENCIES): Make dependency explicit.
    (clean-local): Split into and depend upon...
    (clean-local-tests, clean-local-src): ...these two.  The latter
    removes the libtool object directory below `src', to work around
    a buglet in Automake, failing to list it.
    (EXTRA_DIST): Distribute modules/perl.c.

commit 8d1b7aa609f655ebca17719d88366fed4d4fcc0b
Author: Eric Blake <address@hidden>
Date:   Mon Jun 19 17:25:32 2006 +0000

    * Makefile.am ($(srcdir)/doc/m4.1): No need to list $(srcdir) in
    right side of dependency; VPATH does that.
    (stamp-vcl): Update to use libtool's algorithm.
    (EXTRA_DIST): Distribute stamp-vcl.
    Reported by Ralf Wildenhues.
    (TESTSUITE): Revert earlier change that used absolute path, as
    that broke 'make dist' in VPATH.  Stick with $(srcdir) instead.
    (EXTRA_DIST): Revert earlier change of $(TESTSUITE).
    (TESTS_ENVIRONMENT) [USE_GMP]: Revert earlier addition, since
    atlocal takes care of it instead.
    (check-local, installcheck-local, clean-local): Inline absolute
    path to testsuite here, rather than relative path to testsuite
    elsewhere.

commit 16c904433b7f50524181b8c7a49b8204571ceef7
Author: Eric Blake <address@hidden>
Date:   Mon Jun 19 15:43:35 2006 +0000

    * m4/m4private.h (DELETE): Cast away const here...
    * src/stackovf.c (stackovf_exit): ...to avoid cast-as-lvalue here.
    * src/freeze.c (reload_frozen_state): Avoid uninitialized
    variable warning.

commit 79d9ebdb654c173474727a3cf297d7615d1842f5
Author: Eric Blake <address@hidden>
Date:   Mon Jun 19 15:31:52 2006 +0000

    * Makefile.am (doc/m4.1): Build in $(srcdir), to match where
    .info pages are built.
    Reported by Ralf Wildenhues.
    (EXTRA_DIST): Inline definition of testsuite, so that make dist
    works again.

commit 31f6cd0e9d2ccd5bba13f17a5ad518aeac518e48
Author: Eric Blake <address@hidden>
Date:   Mon Jun 19 13:03:55 2006 +0000

    Follow recommendations from autoconf manual for autotest.
    * Makefile.am (TESTSUITE): Factor the $(srcdir) out of uses, and
    turn it into an absolute path until autotest provides an option
    that allows us to avoid changing directories.  Properly quote
    throughout.
    (TESTS_ENVIRONMENT) [USE_GMP]: Inform testsuite about GMP.
    (check-recursive): Delete unused target.
    ($(TESTSUITE)): Atomically update testsuite.
    (CD_TESTDIR): Simplify.
    (m4__cd): Delete unused macro.
    (check-local): Let TESTSUITEFLAGS influence the run.
    (installcheck-local): Let TESTSUITEFLAGS override
    AUTOTEST_PATH.  Add dependencies.
    (clean-local): Clean up.
    (DISTCLEANFILES, MAINTAINERCLEANFILES): Add directory location.
    * README: Document how to use the testsuite.

commit 381c384f82cea14de395fdee9c6336a334f9898e
Author: Eric Blake <address@hidden>
Date:   Fri Jun 16 05:13:18 2006 +0000

    * configure.ac (M4_DEFAULT_PRELOAD): Fix typo in last commit.

commit 082fe02159f1c7f4aad61a2393ebd7295d5973dd
Author: Eric Blake <address@hidden>
Date:   Fri Jun 16 03:51:28 2006 +0000

    * ltdl/m4/m4-error.m4 (M4_ERROR): Use M4_ instead of m4_ to avoid
    clashes with m4sugar.
    * ltdl/m4/m4-getopt.m4 (M4_GETOPT): Likewise.
    * ltdl/m4/m4-gettext.m4 (M4_GNU_GETTEXT): Likewise.
    * ltdl/m4/m4-obstack.m4 (M4_OBSTACK): Likewise.
    * ltdl/m4/m4-regex.m4 (M4_REGEX): Likewise.
    * ltdl/m4/gmp.m4 (_M4_LIB_GMP): Likewise.
    * ltdl/m4/stackovf.m4 (M4_SYS_STACKOVF): Likewise.
    * ltdl/m4/debug.m4 (M4_CHECK_DEBUGGING): Likewise.
    * configure.ac: Likewise.
    (M4_DEFAULT_PRELOAD): Use as a macro, not shell variable.
    * Makefile.am (src_m4_CPPFLAGS): Use STACKOVF as a makefile
    conditional.
    * ltdl/m4/m4-gnulib.m4: Delete, no longer needed.

commit a0d7f4232980772f6ed46eb4df5c29d9e07ee3c5
Author: Eric Blake <address@hidden>
Date:   Fri Jun 16 01:32:40 2006 +0000

    Reduce compiler warnings.  Inside GMP, mpq_t is an array type, so
    const mpq_t is not assignable from plain mpq_t.  Avoid
    type-punning warnings caused trying to mix these types.
    * modules/mpeval.c (numb_ior, numb_eor, numb_and, numb_lshift),
    (numb_rshift, numb_divide, numb_modulo): Remove const qualifier.
    * modules/evalparse.c (or_term, xor_term, and_term, shift_term),
    (mult_term, exp_term): Remove type-punning casts.
    (numb_pow): Remove const qualifier.
    * src/freeze.c (reload_frozen_state): Fix typo in messages.
    Fix variables that can be used uninitialized, which fixes
    security hole where malicious frozen file can execute arbitrary
    code.

commit fa29e06f2ad724e547449e69b96937972fbec1b0
Author: Eric Blake <address@hidden>
Date:   Wed Jun 14 13:19:46 2006 +0000

    * Makefile.am (modules_mpeval_la_LIBADD): Readd $(LIBADD_GMP).

commit 327a50e054354bd9722c72a049c89ca671b162c1
Author: Eric Blake <address@hidden>
Date:   Tue Jun 13 16:51:37 2006 +0000

    Allow `make dist' to work again.
    * Makefile.am (EXTRA_DIST): doc/helptoman.pl is gone.
    (MAINTAINERCLEANFILES): Avoid redundant mention of dist_man_MANS.
    (cvs-dist): Fix typo.
    * NEWS: Match current version number.

commit 1e45f702423f0110e63be17ea3f9684fdcc2b93b
Author: Eric Blake <address@hidden>
Date:   Tue Jun 13 15:41:38 2006 +0000

    * Makefile.am (AM_CPPFLAGS):  Add $(LTDLINCL), so the right
    ltdl.h is used.
    * bootstrap: Do not run libtoolize manually, this is done
    correctly by autoreconf.  Invoke autoreconf with --no-recursive
    to avoid unnecessary rerunning of autotools for libltdl.
    * THANKS: Update.

commit bb6929eb95052e1e091154b409fd5f86952cebac
Author: Eric Blake <address@hidden>
Date:   Tue Jun 13 01:19:09 2006 +0000

    * m4/output.c [HAVE_MKTEMP]: Gnulib provides mkstemp, so don't
    bother with mktemp.
    * src/m4.h: Don't declare mktemp.
    * m4/input.c (m4__next_token): Avoid bzero.
    * configure.ac (AC_CHECK_FUNCS): Remove obsolete checks.
    * Makefile.am (doc/m4.1): Depend on installed help2man, rather
    than distributing outdated helptoman.pl.
    * doc/helptoman.pl: Delete.

commit eea25e4e375623065eab757e08b4fee571df6014
Author: Eric Blake <address@hidden>
Date:   Sat Jun 10 21:23:30 2006 +0000

    * README (Patches): Document the current dependence on CVS
    builds of autotools.
    * ltdl/m4/gnulib-cache.m4: Update, and use --macro-prefix=M4.
    * configure.ac: Use consistent quoting throughout.
    (AC_PREREQ): Bump to 2.59d.
    (AC_INIT): Package name begins with uppercase.
    (AC_ARG_WITH): Use AS_HELP_STRING.
    (AM_INIT_AUTOMAKE): Enable gnits mode.
    (AC_ISC_POSIX, AM_PROG_CC_STDC, AC_PROG_INSTALL, AC_PROG_MAKE_SET),
    (AC_PROG_AWK, AM_C_PROTOTYPES, AC_C_CONST, AC_HEADER_STDC),
    (AC_CHECK_HEADERS, AC_FUNC_ALLOCA, AC_FUNC_VPRINTF): Remove checks
    done by gnulib or automake, or which autoconf has declared
    obsolete.
    * m4/m4private.h (Includes): Assume C89 or better, and use errno
    unconditionally.
    * m4/output.c (Includes): Likewise.
    * modules/gnu.c (Includes): Likewise.
    * modules/m4.c (Includes): Likewise.
    * src/m4.h (Includes): Likewise.

commit f6b6ef695c61d434b95db5cc2c883f4117ff3904
Author: Eric Blake <address@hidden>
Date:   Sat Jun 10 15:17:11 2006 +0000

    * README-alpha: Update web address.
    * README: Likewise. Change encoding to ASCII.  Remove old advice
    about cygwin.  Document bootstrapping dependency.
    * AUTHORS: Update from branch-1_4.
    * THANKS: Likewise.  Change encoding to UTF-8.
    * BACKLOG: Delete.  This file is too old and unmaintained to be
    worthwhile.
    * ChangeLog: Change encoding to UTF-8.

commit 28a9de2764c97fafa7b3a34a934cddd2d5a8bf7d
Author: Eric Blake <address@hidden>
Date:   Sat Jun 10 13:41:06 2006 +0000

    Avoid compiler warnings.
    * m4/macro.c (trace_format): Don't mark this as a printf format,
    since we don't accept the same set of modifiers as printf.  It
    would be nice if gcc let us specify a custom format archetype.
    * src/main.c (main): Cast away const.

commit d33901859a72a5733fe70ce16f8934f10f768edd
Author: Eric Blake <address@hidden>
Date:   Sat Jun 10 13:10:57 2006 +0000

    * modules/time.c (ctime): Pass correctly typed variable to
    m4_numeric_arg.
    (gmtime): Likewise.
    (localtime): Likewise.
    (strftime): Likewise.
    * m4/utility.c (m4_numeric_arg): For now, document arbitrary
    limit inherent in this interface.

commit 4a870ff12a94c8e5cd3738c6f5175948c45b1bd9
Author: Eric Blake <address@hidden>
Date:   Sat Jun 10 13:08:39 2006 +0000

    Avoid redundant commit mail

commit f347d2784ee2118b4dec9e487b424ac28d282dd6
Author: Eric Blake <address@hidden>
Date:   Tue May 9 03:40:22 2006 +0000

    * modules/m4.c (WEXITSTATUS): Provide fallback definition.
    (sysval): Use WEXITSTATUS.
    * modules/gnu.c (esyscmd): Set sysval to 0xffff, to accomodate both
    big-endian and little-endian wait status definitions.

commit 6a4b91975ff6e63e58947ad407759cc9cc242e02
Author: Eric Blake <address@hidden>
Date:   Tue May 9 03:28:44 2006 +0000

    don't mention .cvsignore files, they are not distributed

commit 793cceb44ede7aa98d58969cf686b784d336dac7
Author: Eric Blake <address@hidden>
Date:   Sat May 6 12:23:33 2006 +0000

    * Makevars (MSGID_BUGS_ADDRESS): Add.
    * POTFILES.in (src/getopt.c, src/version-etc.c): These files live
    in src, not gnu.

commit 724f1cef3d1ea65a41370aebf55013c79f93f32a
Author: Eric Blake <address@hidden>
Date:   Sat May 6 12:19:07 2006 +0000

    * configure.ac (LT_CONFIG_LTDL_DIR): Inform libtool which
    subdirectory to use.
    (support for -pipe): Move after LT_INIT, since it relies on
    libtool internals.

commit a8733909954c2f5c007c35d4c046cba5b9d887c7
Author: Eric Blake <address@hidden>
Date:   Sat May 6 03:56:50 2006 +0000

    * .cvsignore: Update.
    * doc/.cvsignore: Likewise.
    * m4/.cvsignore: Likewise.
    * modules/.cvsignore: Likewise.
    * po/.cvsignore: Likewise.
    * src/.cvsignore: Likewise.
    * ltdl/.cvsignore: New file.
    * ltdl/config/.cvsignore: Likewise.
    * ltdl/m4/.cvsignore: Likewise.

commit d1637485cc65df95bb814390e99b1bc7aee9080b
Author: Eric Blake <address@hidden>
Date:   Fri May 5 13:41:14 2006 +0000

    * Makefile.am (doc/m4.1): Use $@, not $(srcdir)/doc/address@hidden
    * THANKS: Update.
    * configure.ac (gl_SOURCE_BASE, gl_M4_BASE, gl_MODULES): Move to...
    * ltdl/m4/gnulib-cache.m4: ...this new file, per new gnulib-tool
    usage pattern.
    * bootstrap: Update usage of gnulib-tool.
    * Makefile.am (doc/m4.1): Use EXEEXT on built binary.
    Cleanup whitespace.

commit ccb6836b47d47ef53521ea0b8f1ba7dd56bd3b02
Author: Eric Blake <address@hidden>
Date:   Fri May 5 13:39:19 2006 +0000

    * Makefile.am (doc/m4.1): Use $@, not $(srcdir)/doc/address@hidden
    
    * THANKS: Update.
    
        Eric Blake  <address@hidden>
    
    * configure.ac (gl_SOURCE_BASE, gl_M4_BASE, gl_MODULES): Move to...
    * ltdl/m4/gnulib-cache.m4: ...this new file, per new gnulib-tool
    usage pattern.
    * bootstrap: Update usage of gnulib-tool.
    
    * Makefile.am (doc/m4.1): Use EXEEXT on built binary.
    Cleanup whitespace.

commit bc1e499b8e9181f2084c98c63a302696a6828438
Author: Eric Blake <address@hidden>
Date:   Fri May 5 13:30:15 2006 +0000

    * THANKS: Update.
    
        Eric Blake  <address@hidden>
    
    * configure.ac (gl_SOURCE_BASE, gl_M4_BASE, gl_MODULES): Move to...
    * ltdl/m4/gnulib-cache.m4: ...this new file, per new gnulib-tool
    usage pattern.
    * bootstrap: Update usage of gnulib-tool.
    
    * Makefile.am (doc/m4.1): Use EXEEXT on built binary.
    Cleanup whitespace.

commit fe283fc41da93a819ba1fbeab33d68f494debe3d
Author: Eric Blake <address@hidden>
Date:   Fri May 5 12:34:33 2006 +0000

    * Makefile.am (doc/m4.1): Use EXEEXT on built binary.
    Cleanup whitespace.

commit d2134e51992617d50f0b4a6962294a59e2db5f47
Author: Eric Blake <address@hidden>
Date:   Fri May 5 12:23:33 2006 +0000

    whitespace cleanup

commit f9630725baa381f5a1dd07f9399d5265f49caf76
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Dec 5 15:08:39 2005 +0000

    * bootstrap (func_update_po): Synch with CVS GNU tar.  wget 1.9.x
    and 1.10.x support --cache=off, so $WGETFLAGS are not necessary.
    Reported by Eric Blake <address@hidden>

commit a5cf4e2173ecd8f22b33f4513bee0f18dcd17190
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Dec 4 19:53:15 2005 +0000

    * bootstrap (func_update_po): Test and set $WGETFLAGS to disable
    http caching as -C is no longer supported by wget 1.10.x.
    Reported by Eric Blake <address@hidden>

commit df369c9870c89fca07ded2e43af870dde74da2de
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Oct 27 16:04:02 2005 +0000

    * m4/module.c (caller_id): To match libtool-2.0 interface, changed
    to ...
    (iface_id): ...an lt_dlinterface_id type.
    (m4__module_find): New abstraction for lt_dlhandle_fetch.  Use
    throughout, instead of calling obsolete lt_dlhandle_find directly.
    (m4__module_next): Use multiloader-safe lt_dlhandle_iterate.  Use
    throughout, instead of calling obsolete lt_dlhandle_next.
    * m4/m4private.h (m4__module_find): Declare it.
    * m4/builtin.c (m4_builtin_find_by_name, m4_builtin_find_by_func):
    Use m4__module_next instead of obsolete lt_dlhandle_next.

commit 729fd64aa48aff71ccdc8ed1e14200214843838c
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Oct 20 13:45:20 2005 +0000

    * bootstrap (func_update_po): Update pofiles directly from the
    translation project.
    * po/LINGUAS, po/cs.po, po/de.po, po/el.po, po/fr.po, po/it.po,
    po/ja.po, po/nl.po, po/pl.po, po/ru.po, po/sv.po: No need to store
    these files under source control anymore.
    Suggested by Eric Blake <address@hidden>

commit 09e3eab41d670e2bab97a24e314a800db83d31d9
Author: Paul Eggert <address@hidden>
Date:   Thu Jul 7 16:27:54 2005 +0000

    * ltdl/m4/m4-gnulib.m4: Update FSF contact address.

commit a51552b2644b9281b65e93c9ea3d80c4369cc682
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 7 12:18:48 2005 +0000

    * bootstrap: Allow user overriding of gnulib-tool location, and
    correctly determine module source directories whether gnulib-tool
    is given as a relative or absolute path, or is found by searching
    PATH.
    Reported by Eric Blake <address@hidden>

commit aa6db95da1d8fd7f5f72a8c07f3ab8a500619af1
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 7 11:31:11 2005 +0000

    * ltdl/m4/debug.m4 (m4_CHECK_DEBUGGING): Make sure that both $rm
    and $RM are defined for various versions of
    AC_LIBTOOL_COMPILER_OPTION.

commit cabc02b0b9fd64ed9c60d865f08dfd9bd33eb795
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 7 11:25:57 2005 +0000

    * bootstrap (AUTORECONF): New variable to allow user overriding of
    autoreconf path.

commit ebefbf083e6544da53f5bbae3c054cf2cb8f39bb
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 7 11:14:21 2005 +0000

    * doc/m4.texinfo (History): Add better notes on the ancestory of
    GNU m4, and other historical interest.

commit d845b8cf6d23d10415362c39399348f70b7f2722
Author: Gary V. Vaughan <address@hidden>
Date:   Sun May 8 00:37:43 2005 +0000

    * m4/symtab.c (m4_symbol_rename): New function that performs a low
    level symbol rename.
    * m4/m4module.h (m4_symbol_rename): Declare it as part of the API.
    * modules/gnu.c (regsub): Factored out of m4_epatsubst_do...
    (m4_patsubst_do, m4_renamesyms_do): ...wrappers that use
    regsub...
    (erenamesyms, renamesyms): ...builtins that use these to implement
    macro renaming by regular expression.
    * doc/m4.texinfo (Erenamesyms and Renamesyms): Document them.
    * tests/generate.awk: Allow some forbidden `m4_' prefixed symbols
    to stop the new generated tests from choking.

commit c84e45bbf6678205293436b2d97a2850913f0397
Author: Gary V. Vaughan <address@hidden>
Date:   Sat May 7 19:46:13 2005 +0000

    Since most of the build is handled from a single Makefile.am now,
    we can teach make about the dependencies between the m4 binary and
    the preopened modules it is built against:
    
    * configure.ac (PREOPEN_DEPENDENCIES): Substitute for a list of
    preopened modules.
    * Makefile.am (src_m4_DEPENDENCIES): Rebuild the m4 program if any
    of the preopened modules have changed.

commit c108d306d1ff4ed704a9f8a2515859a190eae62f
Author: Gary V. Vaughan <address@hidden>
Date:   Sat May 7 01:30:57 2005 +0000

    * configure.ac (gl_MODULES): Add mkstemp for machines that don't
    have a native implementation.

commit a27777dd1088943520c2c8a8fd0f59a504a15dd0
Author: Gary V. Vaughan <address@hidden>
Date:   Fri May 6 09:05:44 2005 +0000

    * src/m4.h (EXIT_SUCCESS, EXIT_FAILURE): Removed.  These are
    handled already by gnu/exit.h.

commit 61bb7a83b4e8b4864273ef19ff26c390dbf84080
Author: Gary V. Vaughan <address@hidden>
Date:   Fri May 6 08:51:44 2005 +0000

    * configure.ac (gl_MODULES): Add assert to support a
    --disable-assert configure time option for NDEBUG setting.

commit c84e7260cb0ded995e20c89adbe6f9e52db2275f
Author: Gary V. Vaughan <address@hidden>
Date:   Fri May 6 08:30:52 2005 +0000

    * Makefile.am (src_m4_SOURCES): Add version-etc-fsf.c.
    * bootstrap (src_modules): Add version-etc-fsf.
    * src/main.c (version_etc_copyright): Removed.

commit e1fcfb14f78c5aa6019ac0c2267918e2d2b9618f
Author: Gary V. Vaughan <address@hidden>
Date:   Fri May 6 07:46:20 2005 +0000

    * ltdl/m4/m4-getopt.m4 (m4_GETOPT): Synch with gnulib/getopt.m4.

commit c46066c0351aa72d42c8b9ed40eae60450493594
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 22:55:59 2005 +0000

    * src/m4.h (__CYGWIN__, WIN32): Canonicalise Windows and Cygwin
    recognition macros.
    * src/freeze.c (produce_frozen_state): Use n line-endings even
    on Windows, so that the frozen file reader will work.
    Reported by Josef T. Burger <address@hidden>

commit 10c4e28b9bcab11493149c9bccbed251cfd6f24c
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 22:02:05 2005 +0000

    Forward port of a patch that allowed m4-1.4.2 to compile on
    QNX 6.3:
    
    * configure.ac (AC_CHECK_HEADERS):  Add signal.h,
    sys/signal.h.
    * src/m4.h: And include them as appropriate.
    * src/main.c, src/stackovf.h: Don't include signal.h literally;
    m4.h will include the correct file.

commit a2a6ad14f82a942c36662264b58ffedc98af7816
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 19:36:30 2005 +0000

    * m4/m4private.h: Make errno visible for the sources patched
    below.

commit 57ac45abd7282aa7973301f9e7db49c556d9bd97
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 18:56:36 2005 +0000

    * src/main.c (print_program_name_CB): Preserve errno, since
    M4ERROR relies on this.
    * modules/gnu.c (m4_esyscmd): Clear errno before calling popen.
    * modules/m4.c (m4_maketemp): Clear errno before calling mkstemp.
    * m4/path.c (m4_path_search): Don't let "free" trash errno when
    returning NULL.

commit 661c83ad669f47ad5a13c22438f3a8ec69d3787f
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 18:39:49 2005 +0000

    * m4/output.c (m4_insert_file): Don't assume errno has a valid
    value simply because fread returns zero.  This fixes a
    portability bug reported by Marion Hakanson in
    <http://lists.gnu.org/archive/html/bug-m4/2004-07/msg00029.html>.

commit 77c202858b03ad1ce4abd8ed7aaedf2bd1273c4f
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 17:19:46 2005 +0000

    * tests/stackovf.test: Use tempfile if available.

commit 4af1926b6ffa87041e3598ad39284e0e2f660011
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 17:08:35 2005 +0000

    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=92629
    * m4/output.c (m4_insert_file): Do not mix buffered and
    unbuffered I/O, as this breaks on the Hurd.

commit 0bed0cfbcc944a93edf719af0db3c8097fc8122f
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 4 15:45:43 2005 +0000

    Gnulib has changed again.  Reimport.  Adjust.  Rinse.  Repeat.
    Automake and Libtool now agree on subdir-objects and LTLIBOBJS,
    and libtoolize does a better job of ltdl importing now too, so
    take advantage of that while updating the tree:
    
    * acm4, config: Moved from here...
    * ltdl/m4, ltdl/config: ...to here.
    * doc/Makefile.am, m4/Makefile.am, modules/Makefile.am,
    src/Makefile.am, tests/Makefile.am: Removed...
    * Makefile.am: ...and migrated to here, with adjustments to
    compensate for relative path differences.
    * commit: Adjust relative paths.
    * configure.ac: Adjust relative paths.
    (AC_PREREQ): 2.59 isn't strictly new enough, we also need a
    patch.
    (LT_PREREQ): 2.0 isn't released yet, but will work when it is!  In
    the meanwhile, CVS HEAD libtool is needed.
    (AM_INIT_AUTOMAKE): Added subdir-objects declaration. 1.9.5 isn't
    stricly new enough, we also need a patch.
    (AM_PROG_CC_C_O): Required for subdir-objects in Automake.
    (AC_WITH_LTDL): Replaced with LT_WITH_LTDL.
    (gl_MODULES): Don't list getopt and version-etc, as they don't
    belong in libm4.
    * bootstrap: After running gnulib-tool to import the listed
    modules, fetch getopt and version-etc into src manually.
    (ltdldir): Change to ltdl.
    * src/main.c: Adjust for changes in version-etc API.
    * ltdl/m4/m4-getopt.m4: New macro to mirror gnulib's getopt.m4,
    but works when the getopt module isn't to be included in the lib.
    * README: Add note about patching autoconf and automake to
    bootstrap CVS m4.

commit b7e52c2c182868e79d2ed6abe74608037011f8f1
Author: Gary V. Vaughan <address@hidden>
Date:   Mon May 2 21:21:43 2005 +0000

    http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=84416
    * doc/m4.texinfo (Maketemp): Change maketemp to refer to a new,
    empty file rather than to a nonexistent file.  This closes a
    common security hole.
    * modules/m4.c (m4_maketemp): Implement the above, by using
    mkstemp rather than mktemp.

commit e46a681a9fea0deb568d13b51f8b3fab4fa4e4a1
Author: Gary V. Vaughan <address@hidden>
Date:   Sun May 1 11:10:02 2005 +0000

    The FSF are moving offices today.  Changed their contact address
    in all files from `59 Temple Place, Suite 330, MA 02111-1307' to
    `51 Franklin Street, Fifth Floor, MA 02110-1301'.

commit c0b3e14dd1b490588977e2f5638148a02e748895
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Mar 11 13:35:13 2005 +0000

    * tests/Makefile (clean-local): Ignore testsuite cleanup
    failures.

commit b0ad754b860908cbdaa3afbacdb992e79553d72d
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Mar 11 11:45:49 2005 +0000

    * tests/Makefile (clean-local): Only run the testsuite cleanup
    if the testsuite has been generated.

commit 46d49ec0c8b68bfaa5a882da0a746eafed8f84bf
Author: Stepan Kasal <address@hidden>
Date:   Fri Feb 11 15:16:45 2005 +0000

    clarify the qindir example

commit 99a751aef1dabaa0d34de8607d920ec90e1a4857
Author: Stepan Kasal <address@hidden>
Date:   Fri Feb 11 13:35:21 2005 +0000

    clarify the qindir example

commit 1181f7ace365caa1850b8822e6bce0bcb97657c2
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Feb 8 15:35:38 2005 +0000

    * TODO: Add qindir requirement, and defn bug.
    From Stepan Kasal  <address@hidden>

commit 7cdeb256cb6ccd2587de9cbd2ee8d89c3caf1047
Author: Stepan Kasal <address@hidden>
Date:   Tue Feb 8 08:31:37 2005 +0000

    wish execution stack; fix typos

commit 4cf63850d12f6c4d06e102c3294e06406081238a
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Dec 24 23:07:05 2004 +0000

    * configure.ac (INCLUDE_STDBOOL_H): Account for gnulib's move
    to the gnu subdirectory.
    * acm4/m4-error.m4 (INCLUDE_ERROR_H): Likewise.
    * acm4/m4-obstack.m4 (INCLUDE_OBSTACK_H): Likewise.
    * acm4/m4-regex.m4 (INCLUDE_REGEX_H): Likewise.
    * m4/system_.h: Likewise, in non-configured includes.

commit 0ed86b0025e4a69bed0dd29a14e0fe8c4137baea
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Oct 14 09:47:50 2004 +0000

    * m4/m4.c (m4_context_field_table, m4_context_opt_bit_table):
    Protect definitions from macro expansion under -DNDEBUG by
    parenthesising the expanded function names.
    * m4/syntax.c (m4_get_syntax_lquote, m4_get_syntax_rquote)
    (m4_get_syntax_bcomm, m4_get_syntax_ecomm)
    (m4_is_syntax_single_quotes, m4_is_syntax_single_comments)
    (m4_is_syntax_macro_escaped): Similarly protect function
    definitions from macro expansion under -DNDEBUG by #undefing the
    matching macro names before each definition.  Also, move all the
    function definitions to the end of the file so that any
    invocations in the rest of the file pick up the fast macro
    versions.
    * m4/m4private.h (m4_set_symbol_table, m4_set_syntax_table)
    (m4_set_debug_file, m4_set_trace_messages)
    (m4_set_warning_status_opt, m4_set_no_gnu_extensions_opt)
    (m4_set_nesting_limit_opt, m4_set_debug_level_opt)
    (m4_set_max_debug_arg_length_opt): New fast macro versions of the
    option setter functions.

commit 6d116cc3895acbfb443d0935fd041221133b385a
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 23 21:07:36 2004 +0000

    * src/main.c: Include gnulib files from the correct directory.
    * po/POTFILES.in: Ditto.

commit 252b7dbebecc9ab7a286254c26b2f2e8120c4a57
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 23 16:29:33 2004 +0000

    * gnulib/*: Don't store any of the gnulib files in arch, as they
    generate spurious changes.
    * Makefile.am (ACLOCAL_AMFLAGS): Remove gnulib/acm4 since the
    gnulib macros now share our macro directory.
    (SUBDIRS): Descend into `gnu' rather than `gnulib'.
    * bootstrap: Call gnulib-tool to import from the gnulib tree.
    (gl_AC_HEADER_INT_TYPES_H, gl_AC_HEADER_STDINT_H,
    gl_AC_TYPE_UINTMAX_T): Patch gnulib.m4 to define these in terms of
    the gettext macros from autopoint that overwrite the gnulib-tool
    imported versions.  Import sources and Makefile.am into the `gnu'
    directory.  Changed all callers.
    * configure.ac (gl_EARLY, gl_SOURCE_BASE, gl_M4_BASE, gl_MODULES,
    gl_INIT): Call these gnulib-tool macros instead of the hardcoded
    for imported modules.
    * acm4/m4-error.m4, acm4/m4-gettext.m4, acm4/m4-obstack.m4,
    acm4/m4-regex.m4: Use AC_BEFORE to enforce ordering rather than
    hardcoding the gnulib macros they wrap.

commit c775d878427524b4059560d822711a29fea23649
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 15 13:04:38 2004 +0000

    Latest CVS libtool can preload modules in libraries, including
    its own module loaders!  Tweak m4 so that it doesn't try to treat
    libltdl's module loaders as m4 modules when freezing and on exit:
    
    * gnulib/acm4/*.m4: Don't store these files in arch since they
    generate spurious changes.
    * bootstrap: Simplify initial libtoolize call, since CVS
    libtoolize is smarter these days.
    * doc/Makefile.am (%.1): Make the helptoman call work with a VPATH
    build.
    * m4/module.h (m4__module_exit): Missing declaration.
    * m4/m4private.h (m4__module_next): New function declaration.
    * m4/module.c (m4__module_next): lt_dlhandle_{firs,nex}t
    encapsulation.  Changed all callers.
    (m4__module_interface): New function to verify m4 loadable module
    interfaces.
    (m4__module_init): Register the interface validator.
    (m4__module_exit): Only close my own modules.
    * modules/m4.c (unistd.h): Provide missing declaration.
    (m4_set_sysval, m4_sysval_flush, m4_dump_symbols)
    (m4_expand_ranges): More missing declarations.
    * modules/modtest.c (export_test): Ditto.
    * src/Makefile.am (AM_CPPFLAGS): Add libltdl directory.
    * src/main.c (main): Bump copyright year.
    * tests/modules.at: Fix sed syntax error.

commit 081c86f34daa1ff1cf2bc03017fc68f3b9ad04bc
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 17 21:20:25 2004 +0000

    Tweaking to enable compilation with latest CVS libtool and
    libltdl.  We can't just dump the library files directly into the
    m4 directory anymore now that libltdl is built from pieces itself:
    
    * bootstrap: Rewritten to use latest libtoolize sanely, and to
    set up libltdl subdirectory.
    * configure.ac (AC_CONFIG_AUX_DIR): Point to our own, not the
    gnulib subdirectory's config.
    (TIMESTAMP): Use $ac_aux_dir for VPATH builds.
    (m4_pattern_forbid): Remove the cruft to deal with renamed jm_
    macros from gnulib.
    (AC_LIB_LTDL): Latest libltdl is a sub-project with its own
    configure.ac, so use AC_WITH_LTDL instead.
    * Makefile.am (SUBDIRS): Add libltdl.
    * acm4/m4-regex.m4 (jm_INCLUDED_REGEX): Updated.  gnulib now uses
    gl_INCLUDED_REGEX.
    * m4/Makefile.am (AM_CPPFLAGS): Add INCLTDL.
    (libm4_la_SOURCES): Remove ltdl.c and ltdl.h.
    (libm4_la_LIBADD): Add LIBLTDL.
    * m4/ltdl.c, m4/ltdl.h: Removed.
    * m4/m4module.h: Include canonical ltdl.h.
    * po/*.po: Updated.

commit 07dce5c8894c2ebe96a38d3c5d23e1cbc1c981a4
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jun 14 11:26:11 2004 +0000

    * gnulib/import: Now updates makefile fragments, and configure.ac.
    * gnulib/m4/gnulib.am: New file.  Generated makefile fragments.
    * gnulib/m4/Makefile.am: include it.
    * gnulib/acm4/intmax.m4, gnulib/acm4/longdouble.m4,
    gnulib/acm4/longlong.m4, gnulib/acm4/printf-posix.m4,
    gnulib/acm4/signed.m4, gnulib/acm4/size_max.m4,
    gnulib/acm4/wchar_t.m4, gnulib/acm4/wint_t.m4,
    gnulib/acm4/xsize.m4: New macro files from latest gnulib import.
    * gnulib/acm4/alloca.m4, gnulib/acm4/inttypes_h.m4,
    gnulib/acm4/lib-ld.m4, gnulib/acm4/lib-prefix.m4,
    gnulib/acm4/error.m4, gnulib/acm4/po.m4, gnulib/acm4/regex.m4,
    gnulib/acm4/stdbool.m4, gnulib/acm4/stdint_h.m4,
    gnulib/acm4/uintmax_t.m4, gnulib/acm4/ulonglong.m4,
    gnulib/acm4/unlocked-io.m4, gnulib/acm4/xalloc.m4,
    gnulib/acm4/free.m4, gnulib/acm4/gettext.m4,
    gnulib/acm4/glibc21.m4: Updated macro files from latest gnulib
    import.
    * gnulib/m4/getopt_int.h: New source file from latest gnulib
    import.
    * gnulib/m4/alloca.c, gnulib/m4/alloca_.h, gnulib/m4/

commit dc45ef88cd178fc7a64f1b4d16d6c471916915e9
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Feb 29 16:53:00 2004 +0000

    * config/mailnotify: New file for mailing commit notifications,
    imported from cvs-utils.
    * commit: Updated from cvs-utils and tweaked for m4.

commit e868634aa11a1a29c7bf23d0d771213ec04aabe8
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Dec 1 15:52:52 2003 +0000

    * config/mkstamp: Updated from CVS libtool.
    * configure.ac: Generate a gnu coding standards compliant version
    number, and use it for the banner.
    * Makefile.am (stamp-vcl): New rules to force m4 to be regenerated
    mhen the TIMESTAMP changes in ChangeLog, but the file modification
    time doesn't (e.g. in cvs commit).  Otherwise dist tarballs will
    contain the previous version number.
    * src/main.c: Make --version output conform to the GNU standard.

commit 848bdfc8b4a79891cf8be64a97e244b7467d1b89
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Dec 1 15:00:44 2003 +0000

    * configure.ac (AM_INIT_AUTOMAKE): Require 1.7g...
    * modules/Makefile.am (gnu_la_SOURCES, load_la_SOURCES,
    m4_la_SOURCES, traditional_la_SOURCES, modtest_la_SOURCES,
    shadow_la_SOURCES, import_la_SOURCES, stdlib_la_SOURCES,
    time_la_SOURCES): ...so that these are defaulted correctly, and
    can be removed from this file.
    (AM_LDFLAGS): Add -module...
    (gnu_la_LDFLAGS, load_la_LDFLAGS, m4_la_LDFLAGS,
    traditional_la_LDFLAGS, modtest_la_LDFLAGS, shadow_la_LDFLAGS,
    import_la_LDFLAGS, stdlib_la_LDFLAGS, time_la_LDFLAGS): ...so that
    the individual settings can be removed.
    * m4/Makefile.am (libm4_la_LIBADD): Add $(LTLIBINTL) here once...
    * module/Makefile.am (gnu_la_LIBADD, load_la_LIBADD,
    m4_la_LIBADD, traditional_la_LIBADD, modtest_la_LIBADD,
    shadow_la_LIBADD, import_la_LIBADD, stdlib_la_LIBADD,
    time_la_LIBADD): ...so that these are picked up as a deplib of
    libm4 and don't need to be set explicitly.

commit 090e8f925ca3577b23d78015ce6ab2f3b62f2d99
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Nov 18 17:14:45 2003 +0000

    * modules/Makefile.am (pkglibexec_LTLIBRARIES): Remove perl.la
    from the standard build.  It is too fragile.

commit da742200e853f49ec46ce23b5cb0b718d69d0fcf
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Nov 18 17:10:21 2003 +0000

    * gnulib/acm4/libtool.m4, m4/ltdl.c, m4/ltdl.h: Reimported from
    CVS libtool after merging m4 changes across to libtool.

commit 1a39808507e9e4f019464e0aa202d6b707646111
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Nov 18 17:04:19 2003 +0000

    * m4/symtab.c (m4_symtab_create): Fix a careless use of sizeof.
    * m4/path.c (search_path_add): Ditto.

commit ec186853f571691a91acb98ef98b3039812515f1
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Nov 13 12:57:28 2003 +0000

    * configure.ac (AC_LIBTOOL_TAGS): Don't include shell code for
    libtool tags we don't use in configure.  This reduces the size
    of the script from over 1Mb to under 700Kb.

commit 1fad880daf644d343ffb8e5820f7ff00cc2a4b58
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Nov 13 12:05:57 2003 +0000

    The import script was not written properly, and the last gnulib
    import was incomplete.  Fixed that problem, and reimport our
    gnulib dependencies, which picks up the address calculation
    overflow checks described by Paul below.  Also tweak the clients
    of the gnulib xalloc module not to use deprecated macros:
    
    * gnulib/import: Recurse through module dependencies rather than
    naively descending only one level.
    * configure.ac: Add calls to gnulib's strnlen and extension module
    macros.
    * gnulib/m4/Makefile.am: Add snippets from gnulib's strnlen and
    extension modules.
    * gnulib/acm4/extensions.m4, gnulib/acm4/xalloc.m4,
    gnulib/m4/alloca.c, gnulib/m4/obstack.c, gnulib/m4/obstack.h,
    gnulib/m4/stdbool_.h, gnulib/m4/unlocked-io.h, gnulib/m4/xalloc.h,
    gnulib/m4/xmalloc.c, gnulib/m4/xstrdup.c: Updated from CVS
    gnulib.
    * gnulib/acm4/libtool.m4: Updated from CVS libtool.
    * m4/hash.c (m4_get_hash_iterator_next): Use `xzalloc (S)' in
    place of `xcalloc (1, S)'.
    * m4/m4.c (m4_create): Likewise.
    * m4/m4private.h (m4_symbol_value_create): Likewise.
    * m4/symtab.c (symtab_fetch): Likewise.
    * m4/syntax.c (m4_syntax_create): Likewise.
    * src/freeze.c (reload_frozen_state): Likewise.
    * m4/path.c (search_path_add): Eliminate use of deprecated NEW
    macro.
    * m4/symtab.c (m4_symtab_create): Likewise.

commit 10d4a8cfcfade66ac3a9fdcf0524ba2ea00732d8
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Nov 13 11:30:50 2003 +0000

    * tests/module.at: Comment typo.

commit 17f53215f39c8fafbf9727f99ecf89ee57e8c0fa
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Oct 10 15:05:24 2003 +0000

    * tests/modules.at (modules: importing): Apply some lateral
    thinking, and use AT_CHECK to compare the output of a sed pass
    over stderr against the canonical strerror string.

commit 1026f57afc1d534b41c6d0109c5b0fe14e2b8660
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Oct 10 14:12:09 2003 +0000

    * tests/modules.at (modules: importing): Edit the generated stderr
    output to canonicalize strerror output, before a comparison.

commit d4bbcf1081ae26e2da27cabb0d17e9599daff57b
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Oct 10 13:05:54 2003 +0000

    Tru64UNIX perl is sloppy with namespace pollution.  This patch is
    careful not to trip over the mess:
    
    * modules/perl.c: Some builds of perl install headers that contain
    `#define try __builtin_try'.  Be sure to undefine that macro
    before `m4/hash.h' gets included, which uses the `try' symbol.
    * m4/system_.h: Similarly for `bool'.  Undefine `bool', `true' and
    `false' before including `stdbool.h'.
    (DELETE):  This symbol is not in m4's namespace, and is in any
    case only used internally...
    * m4/m4private.h (DELETE): ...so move it to here.
    Reported by Martin MOKREJS <address@hidden>

commit 8e17f654bc81ce3bce46e598d1bf31202a7ac4ea
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Oct 8 14:46:10 2003 +0000

    Don't use XMALLOC and XCALLOC.  Once we install the
    corresponding patch into gnulib, this will fix some
    address-calculation overflow bugs on hosts where calloc (A, B)
    returns garbage when A*B overflows.
    
    * m4/hash.c (m4_hash_new, node_new, m4_hash_resize,
    maybe_grow, m4_get_hash_iterator_next): Replace XMALLOC with
    xmalloc, XCALLOC with xcalloc.
    * m4/m4.c (m4_create): Likewise.
    * m4/m4private.h (m4_symbol_value_create): Likewise.
    * m4/output.c (m4_output_init): Likewise.
    * m4/symtab.c (symtab_fetch, m4_set_symbol_traced): Likewise.
    * m4/syntax.c (remove_syntax_attribute): Likewise.
    * src/freeze.c (reload_frozen_state): Likewise.
    * src/main.c (main): Likewise.

commit 52506d6407a8ff8bc223123adff41cf84b4cf8df
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Oct 7 14:10:06 2003 +0000

    * Makefile.am (ACLOCAL_AMFLAGS): Search in the new acm4 and
    gnulib/acm4 directories for aclocal m4 macros.
    * gnulib/Makefile.am (EXTRA_DIST): Removed.
    (MAINTAINERCLEANFILES): Add Makefile.in.
    * configure.ac (m4_GNULIB_MODULES): Use it to declare which gnulib
    modules we use.
    * acm4/m4-gnulib.m4 (m4_GNULIB_MODULES): New macro.
    * gnulib/import: New file.  Temporary script for updating gnulib
    imported files, until gnulib-tool is working.
    * gnulib/config/codeset.m4, gnulib/config/error.m4,
    gnulib/config/exitfail.m4, gnulib/config/extensions.m4,
    gnulib/config/getopt.m4, gnulib/config/gettext.m4,
    gnulib/config/glibc21.m4, gnulib/config/iconv.m4,
    gnulib/config/intdiv0.m4, gnulib/config/inttypes-pri.m4,
    gnulib/config/inttypes.m4, gnulib/config/inttypes_h.m4,
    gnulib/config/isc-posix.m4, gnulib/config/lcmessage.m4,
    gnulib/config/lib-ld.m4, gnulib/config/lib-link.m4,
    gnulib/config/lib-prefix.m4, gnulib/config/malloc.m4,
    gnulib/config/nls.m4, gnulib/config/obstack.m4,
    gnulib/config/onceo

commit 834ae6a9412c0c90fa6540075f7e67aa996c7219
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 16 16:00:58 2003 +0000

    forgot this file in the last commit

commit c36d07d94829284374be853384692cc3487f0309
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 16 15:53:12 2003 +0000

    * gnulib/m4/version-etc.c, gnulib/m4/version-etc.h: Import
    version-etc module from CVS gnulib.
    * po/POTFILES.in: Add gnulib/m4/version-etc.c.
    * src/Makefile.am: Build it.
    * src/main.c: Use it.

commit 09d1187fb83f1ad9d3bca76637230bdb4f7ed1c3
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 16 15:03:33 2003 +0000

    * gnulib/m4/exit.h: Import exit module from CVS gnulib.
    * gnulib/m4/Makefile.am (pkginclude_HEADERS): Add exit.h.
    * m4/system_.h: Don't define EXIT_SUCCESS and FAILURE, include
    exit.h instead.

commit 59b06756aac8e9aa7513eec47919ca95e99b1c97
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Sep 15 10:00:01 2003 +0000

    * bootstrap: Separate options.
    * configure.ac (AM_GNU_GETTEXT_VERSION): Bump to 0.12.1.
    * gnulib/m4/Makefile.am (stdbool.h): Use srcdir, gnulib_srcdir is
    not set.
    * modules/Makefile.am (gnu_la_LIBADD, load_la_LIBADD)
    (m4_la_LIBADD, mpeval_la_LIBADD, traditianal_la_LIBADD)
    (modtest_la_LIBADD, import_la_LIBADD, perl_la_LIBADD)
    (shadow_la_LIBADD, stdlib_la_LIBADD, time_la_LIBADD): Add
    $(LTLIBINTL) for gettext support on cygwin.
    * src/Makefile.am (m4_LDADD): Remove $(INTLLIBS), since we now
    have $(LTLIBINTL) from the preloaded module la files.
    * README: Remove the warning about using --disable-nls on Windows
    machines.

commit 5b1c5aa72dab3fcb7d8c589284b3553a369ac7cc
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Sep 15 09:45:37 2003 +0000

    * gnulib/m4/regex.c:  s/<regex.h>/"regex.h"/ or else the compiler
    picks up the system regex.h if gl_REGEX decides gnulib/m4/regex.c
    is required.

commit ef29644eceaa1cd60dc15b9ee26157e10b08792a
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 16:03:25 2003 +0000

    * doc/STYLE: Document the gnulib header naming conventions, and
    #include policy.
    * gnulib/m4/error_.h, gnulib/m4/gettext_.h, gnulib/m4/obstack_.h,
    gnulib/m4/regex_.h: Renamed to gnulib/m4/error.h,
    gnulib/m4/gettext.h, gnulib/m4/obstack.h, gnulib/m4/regex.h
    respectively.
    * gnulib/m4/Makefile.am: Remove the rules to build these headers.

commit 5e1198384a9b632ecaf7125a0006922ef304b5c2
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 15:29:57 2003 +0000

    * gnulib/m4/strtol.c, gnulib/config/strtol.m4: Import strtol
    module from CVS gnulib.
    * configure.ac (AC_REPLACE_FUNCS): Remove strtol.
    (gl_FUNC_STRTOL): In favour of the module macro.

commit 3a3104b3f756f53c38172408f152ada06c6958d5
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 15:17:47 2003 +0000

    Replace the getopt code with CVS gnulib getopt.  The source files
    detect whether they are in a glibc environment and preprocess away
    all of the code if there is a system getopt, so we can compile
    them into the m4 executable unconditionally:
    
    * gnulib/m4/getopt.c, gnulib/m4/getopt1.c, gnulib/m4/getopt.h,
    gnulib/config/getopt.m4: Import getopt module from CVS gnulib.
    * configure.ac (gl_GETOPT): Use this instead of homebrew inline
    macros.
    * src/getopt.c, src/getopt1.c, src/gnu-getopt.h: Removed old
    version.
    * src/Makefile.am: Adjust.
    * src/main.c: Always include our shipped getopt.h.
    * po/POTFILES.in: Use new location of getopt.c.

commit d7abdb35b7da61bd9afdbbf93ef2212ca6e0948f
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 15:14:55 2003 +0000

    reduce noise

commit e5c5bacb0c33f2852af572ee207f2b3a29d54125
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 15:09:46 2003 +0000

    new file

commit 87bae966185e9b52c070af15c5b465f1063c9bee
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 14:49:28 2003 +0000

    Forgot to commit this file with the last patch

commit c37ce120a3cb5e34778411fa31060883cc2bf12c
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 14:28:09 2003 +0000

    * configure.ac (AC_CONFIG_FILES): Remove config/Makefile.
    * config/Makefile.am: Removed.  Automake 1.8 distributes the files
    in this directory automatically.
    * Makefile.am (EXTRA_DIST): Except config/mkstamp.

commit 4b83343e68a95fbe8aa96bcb703f30c2c3563492
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 13:47:48 2003 +0000

    * configure.ac (pkglibexecdir): Don't try and set it here, PACKAGE
    isn't set yet.
    * m4/Makefile.am (MODULE_PATH): Removed. Calculate pkglibexecdir
    inline.
    * modules/Makefile.am (pkglibexecdir): Set it here.
    (pkgmodincdir): Renamed to pkgmodincludedir).  Changed all clients.

commit 2a81277e8b963000c6365bfed87c4f1e523904d0
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 13:27:54 2003 +0000

    * gnulib/m4/regex.c, gnulib/m4/regex_.h, gnulib/config/regex.m4:
    Import regex module from CVS gnulib.
    * gnulib/config/restrict.m4: Ditto for dependee module restrict.
    * config/m4-regex.m4 (m4_REGEX): Wrap gnulib/config/regex.m4, but
    do extra substitutions for Makefile.
    * configure.ac: Use it.
    * gnulib/m4/Makefile.am: Maybe install regex.h after linking it
    from regex_.h if necessary.
    * m4/system_.h: Include the correct version of regex.h.
    * m4/regex.c, m4/regex.h, config/regex.m4: Removed legacy
    version.
    * po/POTFILES.in: Use new location of regex.c.

commit 498b57ec874871263857b706ef4921f38b063f0d
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 12 12:23:35 2003 +0000

    * gnulib/m4/Makefile.am (EXTRA_DIST): Removed malloc.c and
    realloc.c: automake distributes these files already.

commit 62d79467612536c860572fc2c845fd43281dae73
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 11 23:53:41 2003 +0000

    Replace the xstrzdup code by importing the xstrndup module from
    CVS gnulib, along with its dependencies: strndup and strnlen:
    
    * gnulib/m4/xstrndup.c, gnulib/m4/xstrndup.h,
    gnulib/config/xstrndup.m4: Import xstrndup module from CVS
    gnulib.
    * gnulib/m4/strndup.c, gnulib/m4/strndup.h,
    gnulib/config/strndup.m4: Ditto wrt strndup.
    * gnulib/m4/strnlen.c, gnulib/config/strnlen.m4: Ditto wrt
    strnlen.
    * gnulib/m4/Makefile.am: Add rules from newly imported modules.
    However, contrary to gnulib, we install xstrndup.h.
    * configure.ac (AC_REPLACE_FUNCS): Remove xstrzdup.
    * gnulib/lib/xstrzdup.c: Delete.  This was never a gnulib file, it
    is an artifact of the old m4 portability layer.
    * configure.ac (gl_XSTRNDUP): This is the gnulib equivalent.
    * m4/system_.h: Include xstrndup.h.
    * m4/macro.c (process_macro): Call xstrndup, not xstrzdup.

commit b8555e78db00c45398329ee81a15aee52040e97c
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 11 16:38:11 2003 +0000

    Reimport the latest xalloc module from CVS gnulib, and adjust the
    m4 sources to take advantage of xalloc xfree.  Also create a new
    macro DELETE with the same semantics as the old m4 XFREE macro,
    and carefully tweak callers:
    
    * gnulib/config/xalloc.m4, gnulib/m4/xalloc.h: Updated from CVS
    gnulib.
    * m4/utility.c (xfree): Removed.  This function is now supplied by
    gnulib xalloc.
    * m4/m4private.h (WITH_DMALLOC): Removed XFREE redefine.
    * m4/path.c (search_path_add): Use NEW macro from xalloc.h.
    * m4/symtab.c (m4_symtab_create): Ditto.
    * m4/system_.h: Removed XFREE redefine.
    (DELETE): New macro with same functionality as the original m4
    XFREE macro, but based on xalloc.h now.  Changed all callers.
    * src/main.c (main): Use XMALLOC macro.
    * m4/hash.c, m4/macro.c, m4/symtab.c, m4/syntax.c: Use xfree
    instead of XFREE.
    * m4/output.c (m4_output_exit): Use DELETE instead of XFREE.

commit f7e09e0c1a6886a2d2c037c3107ffe195c810a7f
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Sep 10 17:12:02 2003 +0000

    Import the xalloc module from CVS gnulib, along with its
    dependencies: exitfail, malloc and realloc. We had different
    semantics for our XFREE and a function xfree() not supplied by
    gnulib, so also a bit of work to keep everything running
    smoothly:
    
    * configure.ac (AC_REPLACE_FUNCS): Removed xmalloc and xstrdup.
    (gl_XALLOC): Use gnulib equivalents.
    * gnulib/config/exitfail.m4, gnulib/m4/exitfail.h,
    gnulib/m4/exitfail.c: Import exitfail module from CVS gnulib.
    * gnulib/config/malloc.m4, gnulib/m4/malloc.c: Ditto wrt malloc.
    * gnulib/config/realloc.m4, gnulib/m4/realloc.c: Ditto wrt
    realloc.
    * gnulib/config/xalloc.m4, gnulib/m4/xalloc.h,
    gnulib/m4/xmalloc.c, gnulib/m4/xstrdup.c: Ditto wrt xalloc.
    * gnulib/m4/Makefile.am: Add fragment from gnulib for newly
    imported modules.
    (pkgincdir): Removed.  Use pkgincludedir instead.
    * m4/m4private.h (XFREE): xfree already checks for NULL.
    * m4/system_.h: Use xalloc module, and remove macros already
    supplied by xalloc.h.
    * m4/utility.c (xfree): xalloc does not yet implement xfree, so
    moved the old definition from m4/xmalloc.c to here for now.

commit 0c088ac9a6c1ab755a2f65a5577bc6eb188950a9
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 9 17:15:35 2003 +0000

    Import the error and progname modules from CVS gnulib.  Our old
    error.c subsumed the functionality of both, so a little adjustment
    was required to accomodate the split in sources.  Also added more
    wrapper macros to choose between a system installed error.h or our
    shipped gnulib error module:
    
    * m4/error.c, m4/error.h: Removed.
    * m4/Makefile.am: Adjust.
    (pkgincdir): Removed.  Use pkgincludedir instead.
    * m4/module.h, src/main.c: Don't include `m4/error.h'.
    * m4/system_.h (INCLUDE_ERROR_H): Add a substitution for suitable
    error.h.
    * gnulib/m4/progname.c: Imported from CVS gnulib.
    * gnulib/m4/progname.h: Ditto.
    * src/main.c: Adjust to use progname module.
    * gnulib/m4/error.c: Imported from CVS gnulib.
    * gnulib/m4/error_.h: Ditto.
    * gnulib/m4/Makefile.am: Build the error module into our libgnu.la
    if appropriate, and link a local error.h if the system version is
    missing.
    (libgnu_la_SOURCES) Add progname module sources.
    * gnulib/config/error.m4: Imported from CVS gnulib.
    * gnulib/config/strerror_r.m4: Ditto.
    * config/m4-error.c: New file.  Wrap gnulib error.m4 but arrange
    to have ERROR_H for Makefile substitutions and tell system.h
    whether the system error.h should be used, or a locally installed
    version.
    * configure.ac (jm_PREREQ_ERROR): Replaced by a call to m4_ERROR.

commit 478a9fca4c1b8c6d58c3e87995cb593bc2f09404
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 9 15:08:35 2003 +0000

    * gnulib/m4/Makefile.am (MOSTLYCLEANFILES): Typo
    s/gettext_.h/gettext.h/.

commit 6464fbee1cb3b779c838ad90e20d105fa3311b8d
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 9 14:25:20 2003 +0000

    * bootstrap: Revert 2003-09-04 patch now that CVS autoconf and
    automake have been fixed.

commit d4418cae8cf6ad514b38ff147b37c3c5de9d7ee7
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 9 14:08:26 2003 +0000

    * config/m4-obstack.m4 (m4_FUNC_OBSTACK): D'oh! Now that we wrap
    gl_OBSTACK, which in turn calls AC_FUNC_OBSTACK, don't rerun bits
    of code originally snarfed from AC_FUNC_OBSTACK!!! While I'm here
    rename to m4_OBSTACK in light of wrapping gl_OBSTACK.

commit 68cb88c2d361e122f79efd65649a3310fb4a9bcd
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 9 11:48:49 2003 +0000

    The gnulib obstack module requires the gnulib gettext module for
    systems that do not have GNU gettext installed.  Because we use
    -Ignulib/m4 in our Makefiles it is not safe to drop gettext.h in
    that directory incase it clashes with the system gettext.h.  This
    delta uses gettext_.h and extra rules in the Makefile to make a
    link to gettext.h when needed:
    
    * Makefile.am (auxdir): Removed.  No longer used.
    * configure.ac (ac_aux_dir): Removed AC_SUBST.  No longer used.
    (TIMESTAMP): List path to `mkstamp' literally, as ac_aux_dir has
    moved.
    (AC_CONFIG_LIBOBJ_DIR): Declare this for possible future single
    Makefile based build.
    (AC_CONFIG_AUX_DIR): Now we use gnulib/config where the majority
    of the macros are kept.
    * Makefile.am (ACLOCAL_MFLAGS): Search gnulib/config first.
    * configure.ac (AM_INIT_AUTOMAKE): Require 1.7a.
    * config/Makefile (ACLOCAL_MACROS): Removed.  Automake 1.7a
    distributes these automatically.
    * config/regex.m4 (jm_WITH_REGEX): Fixed underquoting to prevent
    warning from automake-1.7a.
    * config/debug.m4 (M4_AC_CHECK_DEBUGGING): Renamed to
    m4_CHECK_DEBUGGING for consistency with gnulib prefixes.  Changed
    all callers.
    * config/m4-obstack.m4 (M4_AC_FUNC_OBSTACK): Ditto
    wrt. m4_FUNC_OBSTACK.
    * config/stackovf.m4 (M4_AC_SYS_STACKOVF): Ditto
    wrt. m4_sys_STACKOVF.
    * config/gmp.m4 (_M4_AC_LIB_GMP, M4_AC_LIB_GMP): Ditto
    wrt. _m4_LIB_GMP, m4_LIB_GMP.
    (ac_gmp_save_LIBS, ac_cv_using_lib_gmp): Don't use autoconf's
    namespace.  Renamed to m4_gmp_save_LIBS and m4_cv_using_lib_gmp
    respectively.
    * config/m4-gettext.m4: New file to set GETTEXT_H appropriately.
    * gnulib/m4/Makefile.am: Added a new block to make an appropriate
    gettext.h link on deficient systems.
    (pkginc_HEADERS): Mention $(GETTEXT_H).
    (EXTRA_HEADERS): Mention gettext.h.
    * gnulib/config/gettext_.h: New file from gnulib's gettext.h.
    * gnulib/config/codeset.m4, gnulib/config/gettext.m4,
    gnulib/config/glibc21.m4, gnulib/config/iconv.m4,
    gnulib/config/intdiv.m4, gnulib/config/inttypes-pri.m4,
    gnulib/config/inttypes.m4, gnulib/config/inttypes_h.m4,
    gnulib/config/isc-posix.m4, gnulib/config/lcmessage.m4,
    gnulib/config/lib-ld.m4, gnulib/config/lib-link.m4,
    gnulib/config/lib-prefix.m4, gnulib/config/nls.m4,
    gnulib/config/po.m4, gnulib/config/progtest.m4,
    gnulib/config/stdint_h.m4, gnulib/config/uintmax_t.m4,
    gnulib/config/ulonglong.m4: Imported from CVS gnulib.

commit a6290c4d02241dff343a7cfeea79b04c7e120a1e
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 5 18:32:26 2003 +0000

    We can't mirror the gnulib directory structure here, since we need
    to be able to eg. `#include <m4/obstack.h>' from our source files,
    which is much easier if the local obstack.h is created in a
    directory named m4.  Rather than trying to symlink everything into
    the m4 directory, now we build a libtool convenience library from
    the sources we get from gnulib and link that with libm4.la:
    
    * gnulib/config/extensions.m4: Imported from CVS gnulib.
    * gnulib/config/unlocked-io.m4: Ditto.
    * gnulib/m4/unlocked-io.h: Ditto.
    * gnulib/m4/obstack.m4, gnulib/m4/onceonly_2_57.m4,
    gnulib/m4/stdbool.m4: All moved to gnulib/config directory.
    * gnulib/lib/obstack.c, gnulib/lib/obstack_.h,
    gnulib/lib/stdbool_.h: All moved to gnulib/m4 directory.
    * m4/strtol.c, m4/xmalloc.c, m4/xstrdup.c, m4/xstrzdup.c: Ditto.
    * m4/Makefile.am: Adjust.
    * gnulib/Makefile.am (EXTRA_DIST): Name just the additional gnulib
    macros we redistribute.
    * gnulib/m4/Makefile.am: New file.  Build libgnu.la convenience
    library among others.
    (GNULIB_SRCS, GNULIB_MACROS): Removed.
    * Makefile.am (ACLOCAL_AMFLAGS): Adjust.
    * config/m4-obstack.m4: Adjust.
    * po/POTFILES.in: Adjust.
    * configure.ac: Reformatting.  Call newly imported gnulib macros.
    * m4/builtin.c, m4/macro.c, m4/module.c, m4/utility.c: Removed
    bogus calls of `#include "m4.h"'.
    * Makefile.am: INCLUDES has been deprecated in favour of
    AM_CPPFLAGS.
    * m4/Makefile.am: Ditto.
    * modules/Makefile.am: Ditto.
    * src/Makefile.am: Ditto.

commit bec3710404c91cb3fdb51952cc06cce59fc549fb
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 5 11:30:23 2003 +0000

    * config/Makefile.am: Reverting yesterdays patch for VPATH builds.

commit 95e48b61bf0bab2401396a6b8782a299f2501781
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 4 16:04:09 2003 +0000

    Migrate the obstack support into the gnulib directories for easy
    synchronisation with upstream files in gnulib:
    
    * config/gnu-obstack.m4: Moved from here...
    * config/m4-obstack.m4: ...to here.
    * config/Makefile.am (SPECIFIC_MACROS): Adjust.
    * m4/obstack.c, m4/obstack_.h: Moved from here...
    * gnulib/obstack.c, gnulib/obstack.h: ...to here.
    * po/POTFILES.in: Adjust.
    * gnulib/Makefile.am (GNULIB_SRCS, GNULIB_MACROS): Adjust.
    * m4/Makefile.am: Add a whole new section to link the obstack
    sources from the gnulib tree if necessary.
    * gnulib/m4/onceonly_2_57.m4, gnulib/m4/obstack.m4: New macros
    from gnulib.
    * config/m4-obstack.m4: Rewrite as a wrapper for
    gnulib/m4/obstack.m4.

commit 2f90bc7a7b7dea8802df732359d2b154e6e3d64c
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 4 14:02:05 2003 +0000

    forgot to cvs add this file in the last commit

commit 3830cddcd8f9cc6fbdf9b95f6074c5379c10d000
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 4 14:00:51 2003 +0000

    GNU M4 currently builds with a number of files adapted from
    upstream sources.  Recently the gnulib project on savannah.gnu.org
    has pulled together a great many of these externally maintained
    files.  This delta is the beginnings of isolating those files
    maintained in gnulib to make it easy to synchronise M4 with the
    upstream files prior to releases.
    
    * Makefile.am (ACLOCAL_AMFLAGS): Mention gnulib/m4 macro
    directory.
    (SUBDIRS): Added new gnulib subdirectory.
    * configure.ac (AC_CONFIG_FILES): Add new gnulib tree Makefiles.
    * config/stdbool.m4: Moved from here...
    * gnulib/m4/stdbool.m4: ...to here.
    * m4/stdbool_.h: Moved from here...
    * gnulib/lib/stdbool_.h: ...to here.
    * gnulib/Makefile.am: New file.  Make sure the gnulib tree is
    distributed.
    * m4/Makefile.am: Adjust gnulib/modules/stdbool:Makefile.am based
    code to work with new stdbool_.h location.
    (gnulib_srcdir): New.

commit 89808191cc22e97c99adf0ca1fde4dad901ef30f
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 4 13:12:16 2003 +0000

    * config/Makefile.am (MAINTAINERCLEANFILES, ACLOCAL_MACROS)
    (STANDARD_TOOLS, SPECIFIC_MACROS): Needed `$(srcdir)/' for VPATH
    builds to work.
    (SPECIFIC_TOOLS): New variable.  Moved mkstamp to here.
    (EXTRA_DIST): Use it.

commit 49087830ae0c31a337428b8555bc8b695186382c
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 4 11:34:53 2003 +0000

    * bootstrap: CVS autoreconf leaves file droppings.  Remove
    aclocal.m4t incase autoreconf doesn't.

commit 46c9aa856095ff79bed9110e26bdadfeb6f94f8b
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 29 18:33:37 2003 +0000

    * m4/gnu-obstack.h: Updated from CVS gnulib.  For consistency with
    the other gnulib imports, renamed to m4/obstack_.h.
    * m4/obstack.c: Updated from CVS gnulib.
    * m4/Makefile.am (EXTRA_HEADERS): Adjust.
    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Merge in additional
    header tests from gnulib obstack module.  AC_CONFIG_LINKS knows
    about vpath already, and $top_srcdir upsets CVS Automake, so the
    $top_srcdir reference was removed.

commit 26df96e343531b3039c1866103b679bd58261043
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 29 17:44:47 2003 +0000

    * m4/system-h.in: For consistency with the gnulib imports, renamed
    to m4/system_.h.
    * m4/Makefile (EXTRA_HEADERS): Adjust.
    * configure.ac (AC_CONFIG_FILES): Adjust.

commit c0e7fbef55f8f50e03d0b8ae21d345a39a20ef96
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 29 16:55:55 2003 +0000

    * m4/stdbool_.h: New file from gnulib for systems without their
    own.
    * m4/Makefile.am: Add snippets from gnulib for C99 bool support.
    * config/stdbool.m4: New file.  Macros from gnulib for same.
    * configure.ac: Use it.

commit f2d311322e171eae94c3daf7fbf5439b38c42f03
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Aug 27 17:10:12 2003 +0000

    * config/debug.m4: `perl -pi.bak -e 's/(Copyright) (d)/$1 (C) $2/g'`
    * config/gmp.m4: Ditto.
    * config/gnu-obstack.m4: Ditto.
    * config/stackovf.m4: Ditto.
    * m4/builtin.c: Ditto.
    * m4/debug.c: Ditto.
    * m4/error.c: Ditto.
    * m4/error.h: Ditto.
    * m4/gnu-obstack.h: Ditto.
    * m4/hash.c: Ditto.
    * m4/hash.h: Ditto.
    * m4/input.c: Ditto.
    * m4/m4.c: Ditto.
    * m4/m4module.h: Ditto.
    * m4/m4private.h: Ditto.
    * m4/macro.c: Ditto.
    * m4/module.c: Ditto.
    * m4/obstack.c: Ditto.
    * m4/output.c: Ditto.
    * m4/path.c: Ditto.
    * m4/regex.c: Ditto.
    * m4/regex.h: Ditto.
    * m4/strtol.c: Ditto.
    * m4/symtab.c: Ditto.
    * m4/syntax.c: Ditto.
    * m4/utility.c: Ditto.
    * m4/xmalloc.c: Ditto.
    * m4/xstrdup.c: Ditto.
    * m4/xstrzdup.c: Ditto.
    * modules/evalparse.c: Ditto.
    * modules/format.c: Ditto.
    * modules/gnu.c: Ditto.
    * modules/import.c: Ditto.
    * modules/load.c: Ditto.
    * modules/m4.c: Ditto.
    * modules/m4.h: Ditto.
    * modules/modtest.c: Ditto.
    * modules/mpeval.c: Ditto.
    * modules/perl.c: Ditto.
    * modules/shadow.c: Ditto.

commit 7e29377e5aef9e2a49de26a2e9c85dde51db38dd
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Aug 27 16:58:54 2003 +0000

    * config/gmp.m4 (M4_AC_LIB_GMP): Use AC_INCLUDES_DEFAULT:
    ac_default_headers is an autoconf internal variable.
    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Ditto.
    * config/stackovf.m4 (M4_AC_SYS_STACKOVF): Ditto.

commit 81a08361fb36e496eec11c504d4508c8097cd909
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Aug 27 14:06:52 2003 +0000

    * configure.ac (AC_CONFIG_FILES): Add tests/atlocal.
    * tests/Makefile.am (TESTS_ENVIRONMENT): Revert the 2003-08-14
    delta.

commit e3a1824b18955b53f6f1a52862ec62f7e2667618
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 15 15:53:03 2003 +0000

    * configure.ac (AC_HEADER_STDBOOL, INCLUDE_STDBOOL_H): Check for
    C99 bool.
    * system-h.in (m4_boolean): Removed in favour of using C99 bool if
    possible or faking one with a typedef.  Changed all callers.

commit 41ae3ab316573cc679ca4d4d68d33be56d48fb1d
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 15 14:06:27 2003 +0000

    Still cleaning up the users' module API, by taking out the stuff
    that isn't used by any existing modules, and moving specialised
    functions out of libm4 and into the module they are used by.
    
    * m4/m4module.h (m4_skip_space): No need to export this.  Moved...
    * m4/utility.c (m4_skip_space): ...to here the home of its only
    use, made static and renamed to `skip_space'.  Changed all
    callers.
    * m4/m4module.h (m4_expand_ranges): Removed prototype.
    * m4/utility.c (m4_expand_ranges): Moved definition from here...
    * modules/m4.c (m4_expand_ranges): ...to here, and exported using
    ltdl.
    * modules/m4.h (m4_expand_ranges_func): For lt_dlsym import
    casting .
    * modules/gnu.c (builtin_syntax): Import and use in this
    builtin implementation.
    * m4/m4module.h (M4_DEBUG_PRINT1, M4_DEBUG_PRINT2, M4_DEBUG_PRINT3):
    Not used.  Deleted.
    * m4/macro.c (trace_flush): Except here where the macro is now
    manually inlined.
    * m4/m4module.h (M4_DEBUG_MESSAGE, M4_DEBUG_MESSAGE1)
    (M4_DEBUG_MESSAGE2, M4_DEBUG_MESSAGE3): Only used internally, so
    moved...
    * m4/m4private.h (M4_DEBUG_MESSAGE, M4_DEBUG_MESSAGE1)
    (M4_DEBUG_MESSAGE2, M4_DEBUG_MESSAGE3): ...to here.

commit a92932b160a2c4a6469404c9bf6ae57817430181
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 14 15:51:34 2003 +0000

    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Use the interrim new
    compiler based AC_CHECK_HEADER that was introduced in
    autoconf-2.56.
    * config/stackovf.m4 (M4_AC_SYS_STACKOVF): Ditto.
    * config/gmp.m4 (AC_LIB_GMP): Ditto. And renamed to M4_AC_LIB_GMP.
    * configure.ac: Use renamed M4_AC_LIB_GMP.

commit 5f7c9768745d6d8516ac39ec0909aca113237ae6
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 14 13:31:55 2003 +0000

    * config/debug.m4 (M4_AC_CHECK_DEBUGGING): Don't AC_REQUIRE a
    macro that requires arguments! This stops the shell's bad
    substitution error at configure time.

commit 2d1342ef568043eb7db1445a57f6374b4fdea8b9
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 14 13:18:11 2003 +0000

    * tests/Makefile.am (TESTS_ENVIRONMENT): Now we can pass make
    variables to the testsuite shell.  Set the value of USE_GMP so
    that the gmp test will run!
    (check-local, clean-local): Use the TESTS_ENVIRONMENT variable.

commit 5aa3437efbddcbf9dd3fcca2d39dcdd402633cc1
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Aug 12 15:33:56 2003 +0000

    Libltdl already has an excellent mechanism for accessing C symbols
    in modules.  Lets use that!  Remove all the exporting cruft and
    just use lt_dlsym in conjunction with a few conventions to
    simplify module writers' jobs.  Also removed the table address
    caching code and otherwise simplified the module loader quite a
    bit.  To access exported symbols in other modules, first the
    exporting module must name the symbols <modname>_LTX_<symname>,
    and the importing module must define a function type called
    <symname>_func.  The importer then adds
    M4_MODULE_IMPORT(<modname>, <symname>) at the top of any function
    that wishes to call out to the exported functions.  Care must be
    taken that <symname> is non-NULL in the importing module incase
    M4_MODULE_IMPORT fails, but otherwise it can be called as if the
    definition was in the importers source.  Study
    `modules/{gnu.c,m4.{c,h}' for a model example.  At the moment,
    m4_module_import will attempt to automatically load a module
    required for sym
    
    * TODO: Removed the items fixed in this delta.
    * m4/ltdl.c (lt_dlhandle_find): New function to find a handle by
    module name.
    * m4/ltdl.h (lt_dlhandle_find): Declare it.
    * m4/module.c (m4_module_unload): Use it.
    * src/freeze.c (reload_frozen_state): Ditto.
    * m4/m4module.h (m4_export): Deleted.  Removed all references.
    (M4_MODULE_IMPORT): New user convenience macro for importing
    arbitrary symbols from other modules.
    * m4/module.c (m4_module_import): New function to service
    M4_MODULE_IMPORT macro.
    (module_data): Removed.  Looking up the tables on demand with
    lt_dlsym, rather than caching their addresses here simplifies the
    code substantially.
    (m4_get_module_builtin_table, m4_get_module_macro_table):
    Removed.  Changed all callers.
    (set_module_macro_table, set_module_builtin_table): Renamed to
    install_macro_table and install_builtin_table respectively, and
    simplified now that the cache is no more.
    * modules/gnu.c (builtin_symbols): Use this new mechanism to
    import m4_dump_symbols from the m4 module.
    (builtin_esyscmd): Likewise for m4_set_sysval and
    m4_sysval_flush.
    * modules/m4.c (m4_export_table): Removed.  Functions are
    addressed with the new mechanism which doesn't need this.
    (m4_set_sysval): New exported accessor function to prevent
    problems with variable access on inferior architectures.
    * modules/m4.h (m4_sysval_flush_func, m4_set_sysval_func)
    (m4_dump_symbols_func): Typedefs required by M4_MODULE_IMPORT so
    that we can have some type safety.
    * modules/modtest.c (export_test): C level exported function for
    testing the new import mechanism.
    * modules/import.c: New file for the import end of the test.
    * modules/Makefile.am (pkglibexec_LTLIBRARIES): Added import.la.
    * tests/modules.at: New test cases for intermodule symbol
    importing.

commit e2b622020e3ab336e4cf6e6080cd114ecb336cc5
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 7 14:42:48 2003 +0000

    * m4/m4module.c (m4_string): Moved from here...
    * m4/m4private.c (m4_string): ...to here.

commit 095b0ebd7497ad0e245d0bf6310fc9f0447cccc1
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 7 14:28:28 2003 +0000

    * m4/utility.c (dumpdef_cmp): Removed stale declaration.

commit 1db12fc95c556382c1ce1f05083123e3bfc864c2
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Jul 29 16:11:23 2003 +0000

    * m4/m4module.h (M4_DEFAULT_NESTING_LIMIT): This value is
    already available to module writers through
    m4_{get,set}_nesting_limit_opt(), so moved from here...
    * m4/m4.c (DEFAULT_NESTING_LIMIT): ...to here and renamed.
    (m4_create): Use it.

commit e9a8e62826cbb98c47d823193068712d6c0138f4
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Jul 29 15:57:33 2003 +0000

    Aside from auditing path.c for m4module.h api obfuscation, this
    delta introduces the concept of private struct members in opaque
    data types to GNU m4: See the STYLE file for details.
    
    * TODO: Remind ourselves that a rewrite of path.c is needed.
    * m4/m4module.h (m4_search_path, struct m4_search_path_info):
    Moved from here...
    * m4/m4private.h (m4__search_path, m4__search_path_info): ...to
    here and renamed.  These type definitions are for internal api use
    only.  Changed all callers.
    * m4/m4module.h (m4_search_path_env_init, m4_search_path_add):
    Moved from here...
    * m4/path.c (search_path_env_init, search_path_add): ...to here
    and renamed.  These calls were never used outside this file.
    Changed all callers.
    (dirpath): Moved functionality of this static declaration...
    * m4/m4private.h (struct m4): ...to this new internal only
    search_path field.  Changed all callers.
    (m4__get_search_path): Added new internal api accessor.
    * m4/path.c (m4_search_path_info_new):  Removed.  Not used.
    (m4_include_init): Removed...
    * m4/m4.c (m4_create): ...because the new m4 field is now
    initialised here.
    (m4_delete): Recycle search_path memory.
    * src/main.c (main): Don't call m4_include_init now that it's
    gone!
    * doc/STYLE: Document convention for private fields in opaque
    ADTs.

commit 250319c49f941e35335e37e873c2aff51bd24590
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 24 14:21:02 2003 +0000

    Sometimes exporting the address of a symbol from a module isn't
    enough for other modules to call that symbol correctly.  If
    custom data types are used for function parameters, they need to
    be known to the caller.  This change introduces the concept of
    $(prefix)/include/modules/$(modulename).h to declare those
    structures.  Also we move m4_dump_symbols from libm4 to the m4
    module to show this concept in action.
    
    * m4/m4module.h (m4_dump_symbol_data): Moved from here...
    * modules/m4.h (m4_dump_symbol_data): ...to this new file for
    exporting data structures from modules/m4.c.
    * modules/m4.c, modules/gnu.c: Include it.
    * modules/Makefile.am (pkgmodinc_HEADERS): Install it.
    * m4/m4module.h (m4_dump_symbol_CB, m4_dump_symbols): Removed
    prototypes.
    * m4/utility.c (dumpdef_cmp, m4_dump_symbol_CB, m4_dump_symbols):
    Moved from here...
    * modules/m4.c (dumpdef_cmp_CB, dump_symbol_CB, m4_dump_symbols):
    ...to here, with slight renaming.
    (m4_export_table): Prototype and add m4_dump_symbols.
    * m4/symtab.c (m4_is_symbol_value_void): Needed for an external
    definition of m4_dump_symbols.
    * m4/m4module.h (m4_is_symbol_value_void): Prototype it.
    * m4/m4private.h (m4_is_symbol_value_void): Fast macro version.

commit 6c8b81309493e66807ba4f507267537041c81f1d
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 24 12:16:44 2003 +0000

    Create an export table in modules/m4.c in readiness for beefing up
    the module loader to track module exports and imports.
    
    * m4/m4module.h (m4_debug_flush_files): Removed prototype.
    * m4/debug.c (m4_debug_flush_files): Moved...
    * modules/m4.c (m4_sysval_flush): ...to here and renamed.
    * modules/gnu.c (builtin_esysval): Use it.
    * m4/m4module.h (m4_export): New type for declaring module symbols
    for export.
    * modules/m4.c (m4_export_table): List symbols exported from this
    module for use by other modules.

commit 51982db55528db046527ba825530371ceaad44a2
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 24 11:37:43 2003 +0000

    An experiment: There is loads of code in libm4 which should be in
    the m4 module, but is also used by another module. Just because
    some linkers won't cope with calls across dynamic runtime loaded
    objects I initially left the code in libm4.  It will tidy the
    module api immensely if this code moves to the right place, I just
    need to remember to invent a suitable calling mechanism at some
    point.  For now, only modules that are statically linked and
    preloaded will get this treatment, so the only platforms that will
    break are those that require all symbols to be resolved at link
    time.
    
    * TODO: Reminder that what I am doing could reduce portability
    unless I do something more robust later.
    * m4/m4module.h (m4_sysval): No longer exported from libm4.
    * m4/utility.c (m4_sysval): No longer declared in libm4.
    * modules/Makefile.am: Reformatting.
    * modules/m4.c (m4_sysval): Declare it at place of use.
    * modules/gnu.c (m4_sysval): Import it for use in esyscmd.

commit f7530f7df0a143cb41330a5832520b65344afd90
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jul 23 16:20:49 2003 +0000

    * m4/m4module.h: Reformatting and rearranging lines a bit.
    (m4_obstack): Save typing by typedefing `struct obstack'.  Changed
    all users.
    (m4_call_macro, m4_expand_input): Renamed...
    (m4_macro_call, m4_macro_expand_input): ...to these.  Changed all
    callers.
    (m4_expansion_level, m4_process_macro): Moved...
    * m4/macro.c (expansion_level, process_macro): ...to here, and
    made static.

commit f35f8d1bfe05ec271fb311eb7c2b2451ef31031e
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jul 23 14:03:16 2003 +0000

    * m4/m4module.h (program_name): Not used by modules at all, so
    moved...
    * src/main.c (program_name): ...to here.
    (print_program_name): Renamed...
    (print_program_name_CB): ...to conform to the STYLE guide.

commit 5f3919bec950224c43715abe5f4130c016486b50
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jul 23 11:51:26 2003 +0000

    More refactoring of the m4module.h API.  Replace #defines with an
    enum, and move non-public functions out of the public API.
    
    * m4/debug.c (stdarg.h, varargs.h): Remove variadic header
    inclusion.
    * m4/macro.c (stdarg.h): Add ANSI C variadic header.
    * m4/debug.c (m4_debug, trace): Moved...
    * m4/m4private.h (struct m4): ...to fields of this struct.
    (m4_get_debug_file, m4_get_trace_messages): New fast access macros
    for the new fields.
    * m4/debug.c (m4_debug_init, m4_debug_exit): Removed functions...
    * src/main.c (m4_debug_init, m4_debug_exit): ...invocations...
    * m4/m4.c (m4_create, m4_delete): ...and handled here instead.
    * m4/m4module.h (m4_context_field_table): Add entries for new
    debug_file and trace_messages fields.
    (M4_DEBUG_TRACE_ARGS, M4_DEBUG_TRACE_EXPANSION)
    (M4_DEBUG_TRACE_QUOTE, M4_DEBUG_TRACE_ALL, M4_DEBUG_TRACE_LINE)
    (M4_DEBUG_TRACE_FILE, M4_DEBUG_TRACE_PATH, M4_DEBUG_TRACE_CALL)
    (M4_DEBUG_TRACE_INPUT, M4_DEBUG_TRACE_CALLID)
    (M4_DEBUG_TRACE_VERBOSE): Replaced #defines with an enum.
    (m4_is_debug_bit): New macro to simplfy checks against the debug
    bits above.
    (m4_trace_format, m4_trace_header, m4_trace_flush)
    (m4_trace_prepre, m4_trace_pre, m4_trace_post): Removed
    prototypes.
    * m4/debug.c (m4_trace_format, m4_trace_header, m4_trace_flush)
    (m4_trace_prepre, m4_trace_pre, m4_trace_post): Moved...
    * m4/macro.c (trace_format, trace_header, trace_flush)
    (trace_prepre, trace_pre, trace_post): ...to these newly static
    functions, since they are only ever used from this file.  Changed
    all callers.

commit b5a5bddddb24d89484d09cf25c74521d184bda98
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jul 17 19:57:06 2003 +0000

    Change the macros for checking syntax so that matching against
    multiple possible syntax classes can be done with a single
    comparison some of the time.  The various classes are now bits of
    an int that can be checked with bitwise logic operators.
    
    * m4/m4module.h (M4_SYNTAX_IGNORE, M4_SYNTAX_OTHER)
    (M4_SYNTAX_SPACE, M4_SYNTAX_OPEN, M4_SYNTAX_CLOSE, M4_SYNTAX_COMMA)
    (M4_SYNTAX_DOLLAR, M4_SYNTAX_ACTIVE, M4_SYNTAX_ESCAPE)
    (M4_SYNTAX_ASSIGN, M4_SYNTAX_ALPHA, M4_SYNTAX_NUM)
    (M4_SYNTAX_LQUOTE, M4_SYNTAX_RQUOTE, M4_SYNTAX_BCOMM)
    (M4_SYNTAX_ECOMM): Replaced #defines with an enum.
    (M4_SYNTAX_ALNUM): Removed.  Changed all callers.
    (M4_IS_IGNORE, M4_IS_OTHER, M4_IS_SPACE, M4_IS_OPEN, M4_IS_CLOSE)
    (M4_IS_COMMA, M4_IS_DOLLAR, M4_IS_ACTIVE, M4_IS_ESCAPE)
    (M4_IS_ASSIGN, M4_IS_ALPHA, M4_IS_NUM, M4_IS_LQUOTE, M4_IS_RQUOTE)
    (M4_IS_BCOMM, M4_IS_ECOMM, M4__IS_STRING, M4_IS_IDENT): Removed.
    Replace all calls with invocations of these...
    (m4_is_syntax, m4_has_syntax): ...New macros.
    * src/freeze.c (produce_syntax_dump): Remove mask argument, which
    is no longer required with new macros.  Changed all callers.

commit 2b8c64d4ad01a1f0887b1a1735da60714517d81a
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Jul 15 09:24:53 2003 +0000

    * m4/input.c (CHAR_EOF, CHAR_BUILTIN, CHAR_RETRY): These token
    values are returned as part of the internal interface, so they
    need to be moved...
    * m4/private.h: ...to here.
    * m4/macro.c (expand_token): Check for out of range
    m4_peek_input() results before looking up in the syntax table.
    (collect_arguments): Ditto.

commit cc2757efd3157751dd7595f85abfc17a906174df
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Jul 15 09:06:24 2003 +0000

    * NEWS: Note `$' syntax class.

commit 5bb05d2c7af7ef0b2942c7d35c1e9746313e388a
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jul 9 12:32:40 2003 +0000

    Conform to POSIX if the POSIXLY_CORRECT environment is set.
    
    * NEWS: Explain this.
    * doc/m4.texinfo (Defn): `defn' takes any number of arguments.
    (Extensions): Explain that extensions that are incompatible with
    POSIX are disabled if POSIXLY_CORRECT is set.
    (Incompatibilities): Remove.
    (Define, Other Incompat): Explain difference
    between GNU and POSIX behavior of define, pushdef, popdef.
    * m4/m4.c (m4_get_posixly_correct_opt): New undef.
    * m4/m4module.h (m4_context_opt_bit_table): Add POSIXLY_CORRECT entry.
    * m4/m4private.h (M4_OPT_POSIXLY_CORRECT_BIT): New macro.
    (m4_get_posixly_correct_opt): New macro.
    * m4/m4macro.c (m4_process_macro): Disable $10, $abc etc. if
    POSIXLY_CORRECT.
    * modules/m4.c (builtin_functions): defn now takes any number of args.
    (builtin_define): Smash all the definitions if
    POSIXLY_CORRECT.
    (builtin_defn)): Allow any number of arguments.
    (builtin_undivert): Do not allow nonnumeric arguments
    if POSIXLY_CORRECT.
    * src/main.c (main): Set posixly-correct behavior if either
    POSIXLY_CORRECT is set, or if -G is given.
    * tests/builtins.at: New test for smashed definitions.

commit 742da14a47664dc477459a6b302c485d11fcfe72
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Jun 27 14:00:25 2003 +0000

    * doc/m4.texinfo (Changesyntax): Document Dollar syntax class.
    * m4/m4module.h (M4__SYNTAX_STRING): New syntax class. Be careful
    not to slow the parser down.
    (M4__IS_STRING): New macro to test string syntax class membership.
    * m4/syntax.c: Adjust docucomment.
    (m4_syntax_create): Add a default M4_SYNTAX_DOLLAR element.
    (m4_syntax_code): Translate `$' -> M4_SYNTAX_DOLLAR.
    * m4/input.c (init_builtin_token): Comment typo.
    (m4__next_token): Comment typo.
    Accept M4_SYNTAX_DOLLAR items into M4_TOKEN_STRING type tokens
    by using the new M4__IS_STRING macro.
    * m4/macro.c (m4_process_macro): Use M4_IS_DOLLAR to test for
    variable references in macro expansions.

commit 3adc6de0f2f3fa68b684d7c75582c0d115cd94d2
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Jun 27 12:18:50 2003 +0000

    * doc/m4.texinfo (Eregexp and Regexp): Typo.
    (Epatsubst and Patsubst): Typo.
    (Eval): Typo.

commit 8b0c435a0fefed5311e4ed85ad596338a8a72da6
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 26 14:57:32 2003 +0000

    Move the global variables that pertain to syntax to a new `struct
    m4_syntax_table', and then add one of these to `struct m4'.  The
    ripple effect through the code to both change formerly global
    references, and make sure a suitable context is available in
    lexical scope is disproportionately large compared to the size of
    the change proper.  This change is a large part of decoupling
    syntax.c from the rest of the code that uses it.
    
    * m4/m4private.h (struct m4): Add a syntax field.
    * m4/m4.c (m4_create): Initialise it,
    (m4_delete): Recycle it.
    (m4_get_symtab): Remove hand coded version...
    (m4_get_symbol_table): ...and generate this with cpp.  Changed all
    callers.
    * m4/m4module.h (m4_context_field_table): Add an extra field so we
    can generate m4_get_symbol_table.  Add a new row for
    m4_get_syntax_table.
    (M4SYNTAX): Syntactic sugar for module writers.
    (m4_symtab): Renamed to m4_symbol_table.  Changed all callers.
    (m4_syntax_table): New home for syntax related formerly global
    variables.
    * m4/m4private.h (struct m4_syntax_table): Define it.
    * m4/input.c (m4_input_init): Initialisation of these formerly
    global variables moved...
    * m4/syntax.c (m4_syntax_create): ...to here.
    * m4/input.c (m4_input_exit): And similarly, recycling of the
    memory used by those values moved...
    * m4/syntax.c (m4_syntax_delete): ...to here.
    * m4/m4module.h (DEF_LQUOTE, DEF_RQUOTE, DEF_BCOMM, DEF_ECOMM):
    Moved to m4/m4private.h.
    * m4/syntax.c (m4_get_syntax_lquote, m4_get_syntax_rquote)
    (m4_get_syntax_bcomm, m4_get_syntax_ecomm)
    (m4_is_syntax_single_quotes, m4_is_syntax_single_comments)
    (m4_is_syntax_macro_escaped): New accessors for m4_syntax_table
    objects.  Changed all callers that used to directly access the
    global equivalents.
    (m4__single_quotes, m4__single_comments, m4__use_macro_escape):
    Removed and incorporated into m4_syntax_table structure.
    * m4/utility.c (lquote, rquote, bcomm, ecomm): Ditto.
    * m4/syntax.c (m4_set_syntax): Now returns an error status,
    instead of requiring a `struct m4' to generate its own errors.
    Changed all callers.
    * src/main.c (main): Now that the syntax table is initialised as
    part of m4_create, we have to manually wipe the syntax entries if
    we are about to read a frozen file.

commit 5f3ff253c3fa7bd42ba24a4eede10f516e112929
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 26 14:56:14 2003 +0000

    * doc/STYLE: Added notes on callback naming schemes.

commit ff4454da1639948d75dc2e9ba93bf3fd4f0c5025
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 26 14:40:37 2003 +0000

    * m4/module.c (m4_set_module_macro_table)
    (m4_set_module_builtin_table): Declarations weren't changed when
    definitions were renamed on 2003-06-19.

commit 923c8a6d29ac9fd1753b00c415994d95cbffe11b
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 26 14:19:28 2003 +0000

    * m4/hash.c (m4_hash_resize): ifdefed out.  This function is
    neither used nor particularly appropriate since it exposes the
    internal workings of the hash module.  I haven't yet decided
    whether to remove it entirely.

commit 5ebfef12566560f8ccde8faa213d16bfbbf609d8
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Jun 20 15:43:19 2003 +0000

    Two related changes, and a huge knockon effect throughout the
    source: Moved the option variables out of global space and into
    `struct m4'; made `m4_symtab' a real datatype, so that it's api
    is not marred passing `struct m4' around just so it can decide
    whether to keep traced symbol names or not.  Added setters and
    getters for the formerly global option variables, and obviously
    changed a vast number of functions to take a `struct m4' and use
    the getter funcs to find option values.
    
    * m4/utility.c (interactive, sync_output, debug_level)
    (no_gnu_extensions, prefix_all_builtins, suppress_warnings)
    (max_debug_argument_length, warning_status, nesting_limit)
    (discard_comments): Removed.
    * m4/m4module (warning_status, no_gnu_extensions, nesting_limit)
    (debug_level, max_debug_argument_length, prefix_all_builtins)
    (suppress_warnings, discard_comments, interactive, sync_output):
    Removed from here...
    * m4/m4private.h (struct m4): ...and equivalent fields added to
    this structure.
    (m4_get_warning_status_opt, m4_get_no_gnu_extensions_opt)
    (m4_get_nesting_limit_opt, m4_get_debug_level_opt)
    (m4_get_max_debug_arg_length_opt, m4_get_prefix_builtins_opt)
    (m4_get_suppress_warnings_opt, m4_get_discard_comments_opt)
    (m4_get_interactive_opt, m4_get_sync_output_opt): Fast access
    macros for the new fields.
    * m4/m4module.h (m4_context_field_table)
    (m4_context_opt_bit_table): Helper macros used to generate
    prototypes, setters and getters for new option fields
    consistently.
    * m4/m4.c (m4_get_warning_status_opt, m4_get_no_gnu_extensions_opt)
    (m4_get_nesting_limit_opt, m4_get_debug_level_opt)
    (m4_get_max_debug_arg_length_opt, m4_get_prefix_builtins_opt)
    (m4_get_suppress_warnings_opt, m4_get_discard_comments_opt)
    (m4_get_interactive_opt, m4_get_sync_output_opt)
    (m4_set_warning_status_opt, m4_set_no_gnu_extensions_opt)
    (m4_set_nesting_limit_opt, m4_set_debug_level_opt)
    (m4_set_max_debug_arg_length_opt, m4_set_prefix_builtins_opt)
    (m4_set_suppress_warnings_opt, m4_set_discard_comments_opt)
    (m4_set_interactive_opt, m4_set_sync_output_opt): Addressable
    setter and getter functions generated by cpp from
    m4_context_field_table and m4_context_opt_bit_table, exported as
    part of the module api.  Changed all callers.
    * m4/symtab (struct m4_symtab): Used as the concrete type for
    m4_symtab now.
    (m4_symtab_create): Allocate and initialise a new struct.
    (m4_symtab_apply): New function that works like m4_hash_apply, but
    with different callbacks specific to symbol tables.  Changed all
    callers.
    (symbol_destroy, arg_destroy, arg_copy): Renamed
    symbol_destroy_CB, arg_destroy_CB, arg_copy_CB to remind me that
    they have unused parameters for a reason!
    (dump_symbol_CB): New callback to dump the contents of a single
    symbol.
    (symtob_dump): Rewritten in terms of dump_symbol_CB.
    * m4/utility.c (m4_dump_symbol): Renamed to m4_dump_symbol_CB.
    Changed all callers.
    * m4/m4.c (m4_create): By default point the `nuke_trace_bit' field
    of the contained `m4_symtab' at the `no_gnu_extensions' field.
    Although I'm not convinced these semantics are correct, they are
    at least consistent with how things were before this delta.  Also
    set the default nesting limit to M4_DEFAULT_NESTING_LIMIT.

commit 88f76e24b13243b04e3f5659df9a2feb8701f475
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 19 14:51:03 2003 +0000

    Tie down the interface to libm4 some more.  Make more structures
    opaque to modules by moving them to m4private.h, and writing
    setters and getters.  To win back the speed penalty for doing this
    also wrote macroized versions that do know about structure layout
    in m4private.h and #include that file into modules when NDEBUG is
    defined at compile time.  There are still some accessor macros in
    m4private.h that need to go, but that is not necessary to clean
    the module api up.
    
    * m4/m4module.h (m4_symbol_type): Moved...
    * m4/m4private.h (m4__symbol_type): ...to here.
    * m4/symtab.c (m4_get_symbol_value, m4_get_symbol_traced)
    (m4_set_symbol_traced, m4_set_symbol_name_traced)
    (m4_is_symbol_text, m4_is_symbol_func, m4_get_symbol_text)
    (m4_get_symbol_func, m4_symbol_value_create)
    (m4_symbol_value_delete, m4_set_symbol_value_text)
    (m4_set_symbol_value_func): New exported api to symbols.
    (m4_get_symbol_value_type): Replaced by m4_is_symbol_value_text
    and m4_is_symbol_value_func.
    * m4/m4module.h: Prototype these guys.
    * m4/module.c (m4_set_module_macro_table)
    (m4_set_module_builtin_table): Make these static, there is no
    reason to pollute the api with them.
    * m4/m4private.h: Reformatting.
    (m4_get_symtab): Only define when NDEBUG is defined.
    (m4_get_symbol_value, m4_get_symbol_traced)
    (m4_set_symbol_traced, m4_set_symbol_name_traced)
    (m4_is_symbol_text, m4_is_symbol_func, m4_get_symbol_text)
    (m4_get_symbol_func, m4_symbol_value_create)
    (m4_symbol_value_delete, m4_set_symbol_value_text)
    (m4_set_symbol_value_func): Macro implementations of the new
    functions when NDEBUG is defined.
    (SYMBOL_TRACED, SYMBOL_VALUE, SYMBOL_TYPE, SYMBOL_TEXT)
    (SYMBOL_FUNC, VALUE_TYPE, VALUE_TEXT, VALUE_FUNC): Removed.
    Superceded by the above.  All callers changed.
    (M4ARG): Removed.  This is no longer different to the
    m4/m4module.h definition.
    * modules/gnu.c, modules/m4.c: Only include m4private.h when
    NDEBUG is defined.  That way we exercise the same (albeit slower)
    api that external modules must use.

commit 8a709ff82625c30c3ae2b43346bd2d0e3901e0a2
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jun 18 16:21:54 2003 +0000

    Renamed some of the types and their accessors to make more sense.
    Now we have a SYMTAB in which we store SYMBOLs, and each SYMBOL
    has a stack of SYMBOL_VALUEs.
    
    * m4/m4module.h (m4_token, m4_get_token_type, m4_get_token_text)
    (m4_get_token_func, m4_token_copy): Renamed to m4_symbol_value,
    m4_get_symbol_value_type,  m4_get_symbol_value_text,
    m4_get_symbol_value_func and m4_symbol_value_copy respectively.
    Changed all callers.
    (m4_symbol_type): s/M4_TOKEN_/M4_SYMBOL_/
    (m4_get_token_type): Renamed
    * m4/input.c (m4_next_token): Renamed to m4__next_token, and moved
    to the internal api.
    * m4/m4private.h: s/TOKEN_ARG_/SYMBOL_ARG_/
    s/TOKEN_/VALUE_/
    (m4__symtab_init, m4__symtab_exit): Removed prototypes.
    (m4_token_arg): Renamed to m4_symbol_arg. Changed all callers.
    (m4__token_type): Moved here from m4module.h.
    (m4__next_token): Renamed from m4_next_token.
    * m4/symtab.c: Removed some of the parameterised macro support
    functions for modularisation later.
    (m4_token_copy): Renamed to m4_symbol_value_copy, and use new
    m4_hash_dup to perform a true deep copy of the SRC.
    (arg_copy): Callback for m4_symbol_value_copy.
    * utility.c (m4_token_get_type, m4_token_text, m4_token_func):
    Renamed to m4_get_symbol_value_type, m4_get_symbol_value_text and
    m4_get_symbol_value_func.  Changed all callers.

commit 08cd2e151ca967cd8e53947f40d0dd2aba1bcdd9
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jun 18 15:28:41 2003 +0000

    Tidy up style of hash.[ch] in accordance with doc/STYLE.
    
    * m4/hash.c: Internal symbol renaming and formatting.
    (m4_hash_dup): New function to facilitate deep copies of hash
    tables.
    (m4_hash_apply_func): Returns a void* now, which is a richer type
    for returning exceptions (NULL means keep going).
    (m4_hash_apply): Ditto.
    * m4/hash.h: Declare exported symbols with an explicit extern.
    Reformated.

commit f8a2482e5d923aef2935407199ebb98e396e04aa
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Jun 17 15:17:45 2003 +0000

    Still refactoring furiously.  This delta represents a change in
    semantics to symtab.c.  Instead of building temporary m4_tokens
    in the caller, and copying fields in the methods, we now create
    the actual m4_token for hashing in the caller so the methods just
    slot them in directly.  Also, this means that we don't lookup a
    symbol and get back an allocated but VOID token to copy fields
    into, we create the token we want to push and pass that to
    m4_symbol_define or m4_symbol_pushdef.  And that's it.  There are
    a few other small changes to stop knowledge of the implementation
    of symtab.c leaking out into other files.
    
    * m4/macro.c (expand_argument): Comment typo corrected.
    * m4/symtab.c (symtab_fetch): New function to fetch the address of
    an interned symbol.
    (m4_symbol_pushdef): Take an extra value parameter and use this
    directly as the new top of the value stack.  All callers changed
    to build a token and pass responsibility for memory in, rather
    than copying as we used to.
    (m4_symbol_define): Also use the new value parameter directly as a
    replacement for the top of the value stack.  All callers changed
    to build a token as above.
    (m4_set_symbol_traced): New function to set the traced bit on the
    named symbol, creating it if necessary.
    (symbol_popval): The guts of the old m4_symbol_popdef.
    (m4_symbol_popdef): Use it.
    * m4/builtin.c (m4_symbol_set_token): Removed,
    (m4__symbol_set_builtin, m4__symbol_set_macro): Removed and
    replaced...
    * m4/module.c (m4_set_module_builtin_table)
    (m4_set_module_macro_table): ...with these more orthogonal
    functions.
    * m4/m4module.h (m4_macro_pushdef, m4_macro_define)
    (m4_builtin_pushdef, m4_builtin_define): Removed.  No longer
    required.
    * m4/builtin.c (M4_ARG_SIGNATURE_DEFAULT_SIZE)
    (m4_arg_signature_parse): Moved...
    * m4/symtab.c: ...to here.
    * m4/input.c (m4_token_copy): Arghh... I'm amazed this didn't
    screw something up. Moved...
    * m4/symtab.c (m4_token_copy): ...to here, and fixed so that it
    actually does a proper deep copy of source to dest.

commit 54070bf3cbb42d625c876f5d903257774f00f244
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jun 16 16:29:06 2003 +0000

    Further refactoring to stabilise the module API.  Renaming some
    functions for orthogonality, and judicious definition migration to
    move things out of the set of exported symbols.
    
    * doc/STYLE: New file.  Notes on coding style.
    * m4/m4module.c: Updated bitrotted docucomment at the top of the
    file.
    (m4_module_name, m4_module_builtins, m4_module_macros): Renamed to
    m4_get_module_name, m4_get_module_builtin_table,
    m4_get_module_macro_table which are verb phrases.  Changed all
    callers.
    * m4/builtin.c (m4_builtin_table_install, m4_macro_table_install):
    Moved to...
    * m4/module.c (m4_set_module_builtin_table)
    (m4_set_module_macro_table): ...here, and renamed. Changed all
    callers.
    * m4/m4module.c (m4_module_data): This...
    * m4/m4private.c (struct m4_module_data): ...and this...
    * m4/module.c (module_data) ...consolidated here and no longer
    exported.  Changed all callers.

commit 362858ad9255faf9a6f3f4affa1c691a1ce93e40
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Jun 16 10:43:44 2003 +0000

    Begin work on lifting the curse of the global variables.  To start
    with create a `struct m4' context container, and replace
    `m4__symtab' with `context->symtab' throughout.  This means
    initialising a context container in main, and adjusting many
    functions between main and the module entry points so that the
    container gets passed through.  It would have been nice to
    defer this until after 1.5, but it has a major effect on the
    user's module writing ABI, so it needs to be addressed now - at
    least in the areas that impact the ABI.  An interrelatated change
    in the symtab API removes the dependency on a global symbol table,
    and instead focuses on a passed table (from the context
    container).
    
    * TODO: Reminders for finishing context functionality.
    * m4/Makefile.am (libm4_la_SOURCES): Add m4.c.
    * m4/m4.c: New file. Manage new struct m4 objects to eliminate
    global variables and eventually allow m4 to be reentrant.
    * m4/m4private.h (m4): Define the new structure here...
    (M4_SYMTAB, m4_get_symtab): ...so we can have fast accessors that
    don't carry the overhead of a function call.
    * m4/m4module.h: Prototype extern functions from m4/m4.c.
    (m4): Declare type for new struct m4 objects.
    (M4SYMTAB): User macro to ease finding the symbol table for the
    current context for module developers.
    (m4_symbol_token): Renamed to m4_symbol_set_token which contains a
    verb.
    (M4_BUILTIN, m4_builtin_func, M4_BUILTIN_HANDLER)
    (m4_builtin_define, m4_builtin_pushdef, m4_builtin_table_install)
    (m4_call_macro, m4_dump_symbols, m4_expand_input)
    (M4_FINISH_HANDLER, M4_INIT_HANDLE, m4_macro_define)
    (m4_macro_pushdef, m4_macro_table_install, m4_module_load)
    (m4_module_unload, m4_process_macro, m4_symbol_set_token): Add an
    m4* context parameter. Changed definitions and all callers.
    (m4_symtab): Alias for m4_hash to decouple the
    m4_symtab api from m4_hash.
    (m4_symtab_apply, m4_symtab_apply_func): Use m4_symtab instead of
    m4_hash.
    (m4_symtab_create): New function to return an initialised
    m4_symtab.
    (m4_symtab_delete): New function to delete an m4_symtab's memory.
    (m4_symbol_define, m4_symbol_delete, m4_symbol_lookup)
    (m4_symbol_popdef, m4_symbol_pushdef): Add an m4_symtab parameter
    instead of simply using the global m4__symtab.  Changed
    definitions and all callers.
    * m4/m4private.h (m4__symtab_remove_module_references): Ditto.
    * m4/symtab.c (m4__symtab_init, m4__symtab_exit): Removed.
    * src/main.c (main): Create a context and use that instead of the
    former global m4__symtab.

commit 1f2f1e997980014af57a7780809ede5d6dbeacc6
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Jun 13 13:54:34 2003 +0000

    * m4/hash.c (m4_hash_apply): Pass an initial hash table parameter
    to the callback.  Callbacks should not need to hardcode the
    hashtable they are working from, nor should we have to waste the
    userdata parameter to pass the table in.
    * m4/hash.h (m4_hash_apply_func): Require the initial table
    parameter.
    * m4/symtab.c (symtab_destroy): Use the passed table instead
    of hardcoding m4__symtab.
    (m4_symbol_popdef): Don't use the userdata parameter to pass the
    table to arg_destroy.
    (arg_destroy): Use the hash parameter, ignore userdata.
    * modules/m4.c (set_trace): Make it fit the m4_hash_apply_func
    prototype.
    (traceon, traceoff): Call set_trace with the extra initial
    parameter.

commit b0fc0de4c13a33f1d60b109166f621fc61c19804
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Jun 13 13:05:45 2003 +0000

    More refactoring to stabilise the module api, this time for
    symtab.c.  Additionally, start to pay attention to function names
    that don't contain a verb like they should.
    
    * m4/m4module.h (m4_symtab_apply): Reintroduced this function as a
    wrapper for m4_hash_apply to decouple the symtab module from the
    hash module.
    (m4_symbol_builtin, m4_symbol_macro): Renamed to
    m4__symbol_set_builtin and m4__symbol_set_macro.  Changed all
    callers.
    (m4_symbol_delete): Create a macro version to save a function
    call.
    (m4_token_t, m4_data_t): These violate the POSIX reserved
    namespace.  Renamed to m4_token_type and m4_symbol_type. Changed
    all callers.
    (m4_token_type): Renamed to m4_token_get_type.
    (m4_symtab, m4_symtab_init, m4_symtab_remove_module_references)
    (m4_symtab_exit): Removed from the exported module
    api...
    * m4/m4private.h (m4__symtab, m4__symtab_init)
    (m4__symtab_remove_module_references, m4__symtab_exit): ...and
    renamed and added to the internal api. Changed all callers.
    (m4_symtab_apply): A faster macro version of the function for
    users of the internal api.
    * m4/symtab.c (m4_symbol_destroy, m4_arg_destroy): Renamed to
    symbol_destroy and arg_destroy.
    (symtab_debug): Added a prototype.
    (m4_symtab_apply, m4_symbol_delete): Moved to the end of the file
    so that callers in this file get the faster macro versions from
    m4/m4private.h.

commit efbbe4e349ee137b0aa55adbc863cfd88536be25
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 12 16:31:58 2003 +0000

    Refactoring modules to rationalise the API into an external
    documented (eventually!) API for use by modules in the `m4_'
    namespace declared in m4/m4module.h, an internal API between the
    source files we ship (including our shipped modules) in the `m4__'
    namespace declared in m4/m4private.h and making the rest as
    cohesive as possible with liberal use of the `static' keyword.
    This change represents an audit to m4/module.c along these
    guidelines.
    
    * m4/m4module.h (m4_module_close_all, m4_module_find_by_builtin):
    Removed.  No longer used.
    (m4_module_close): Removed prototypes.
    (m4_module_init, m4_module_open, m4_module_unload_all): Removed
    from the exported module api...
    * m4/m4private.h (m4__module_init, m4__module_open)
    (m4__module_exit): ...and renamed and added to the internal api.
    Changed all callers.
    (BUILTIN_SYMBOL, MACRO_SYMBOL, INIT_SYMBOL, FINISH_SYMBOL):
    Centralised definitions after renaming...
    * m4/module.c (M4_BUILTIN_SYMBOL, M4_MACRO_SYMBOL, M4_INIT_SYMBOL)
    (M4_FINISH_SYMBOL): ...and removing from here.
    (m4_module_dlerror, m4_module_remove, m4_module_close)
    (m4_caller_id): Not exported at all, so renamed to module_dlerror,
    module_remove, module_close and caller_id.
    (MODULE_SELF_NAME): New macro to make reporting self errors
    easier.
    (m4_module_load, module_close, module_remove): Use it.
    * m4/m4private.h (USER_MODULE_PATH_ENV): Macro to hold "M4MODPATH"
    name.
    * src/main.c (main): Use it.

commit 2e49f05f5234c9c41f47f418987751be24a05bf4
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 12 10:28:48 2003 +0000

    * README: Remove references to --enable-changeword, which has been
    removed from the code.

commit 1af1427564eb3112c3398ed9265507ebb14983ac
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jun 11 17:07:39 2003 +0000

    Getting rid of the annoying bug with configure --enable-debug,
    which spewed -e: command not found errors.  This was an interaction
    between libtool-1.5's LT_AC_COMPILER_OPTION, and config/debug.m4.
    You'll need to re-bootstrap the m4 tree with cvs libtool (HEAD or
    branch-1-5) to get the full fix.
    
    * config/debug.m4 (M4_AC_CHECK_DEBUGGING): Require libtools version
    of AC_LIBTOOL_COMPILER_OPTION (which now requires LT_AC_PROG_SED),
    and then use the probed value of $SED.
    (AC_LIBTOOL_COMPILER_OPTION): Removed. Don't conditionally define
    this, it messes up the AC_REQUIRE stack.

commit 6cceb57a3ded5e5d85684676c3facd725d9ed898
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Jun 10 11:51:08 2003 +0000

    * m4/symtab.c (m4_symbol_popdef): Need to pass the hash address to
    the destroy callback.
    (m4_arg_destroy): Use the hash address to free the hash node key
    field.

commit f54a4fcdfdcbac8177a4082580787400a60e8c40
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Jun 6 16:14:05 2003 +0000

    First cut at formal parameters in macros.
    
    * configure.ac (AC_REPLACE_FUNCS): Add xstrzdup.
    * m4/xstrzdup.c: New file.
    * m4/builtin.c (M4_ARG_SIGNATURE_DEFAULT_SIZE): Start size for
    associative array of parameter names to details.
    (m4_symbol_token): Capture macro names with parameter lists.
    (m4_arg_signature_parse): And build an associative array to hang
    from the symbol structure to map names to details.
    * m4/hash.c (m4_hash_new): Break the m4_hash_new followed by
    m4_hash_resize idiom.  Now that we potentially add a little hash
    table to many of the entries in the symbol table, added an extra
    arg to set the initial size.  Changed all callers.
    (m4_hash_apply): New function that is basically a generalised
    version of...
    * m4/symtab.c (m4_symbol_apply): ...this.  Now deleted.  Adjusted
    all callers to call m4_hash_apply instead.
    (m4_arg_destroy): Recycle memory used by an m4_token_arg.
    (m4_symbol_popdef): Use m4_arg_destroy to help recycle the
    m4_arg_signature association that might be attached to the symbol,
    * m4/hash.h (m4_hash_apply_func): Replacement type for...
    * m4/m4module.h (m4_symtab_apply_func): ...this.  Now deleted.
    (M4_SYNTAX_ASSIGN): Placeholder for assigning default values in
    parameter lists.
    (M4_IS_ASSIGN): Detect characters with M4_SYNTAX_ASSIGN syntax.
    (M4_IS_IDENT): Detect characters that can be safely used in
    parameter names.
    * m4/syntax.c (m4_syntax_init): Add an M4_SYNTAX_ASSIGN character.
    * m4/macro.c: Corrected grammar in some comments.  Use `token'
    rather than `td' for m4_token variables.
    (m4_process_macro): If we find a dollar followed by some
    M4_IS_IDENT characters, replace that with the contents of the argv
    entry with offset stored in the m4_token_arg associated with the
    collected identifier.

commit c611d1ade20c646de230bde0192fd16378fcb802
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 5 16:12:16 2003 +0000

    Begin preparations for supporting formal parameters in m4 macros.
    
    * m4/m4private.h (struct m4_token_arg): Placeholder for holding
    the details of a formal parameter.
    (m4_token): Add an arg_signature member to hold a hash table for
    looking up formal parameters.
    * m4/input.c: Update more bitrotted comments.
    (m4_push_builtin): Initialise arg_signature member.
    (init_builtin_token): Copy arg_signature member.
    * m4/m4module.h (m4_builtin_pushdef, m4_builtin_define)
    (m4_macro_pushdef, m4_macro_define): Rewritten as macros to
    replace...
    * m4/builtin.c (m4_builtin_pushdef, m4_builtin_define)
    (m4_macro_pushdef, m4_macro_define): ...these, And...
    (m4_symbol_token): ...wrapped around this new function, which
    vastly simplifies the arguments required by the functions it
    replaces.
    Changed all callers.

commit 0b197af13141a9d9e4a28a106a0a40da04153851
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Jun 5 16:06:00 2003 +0000

    * m4/macro.c: Format changes.

commit 7994a2ed35f478e92294f80fcdfea83bd220ad3b
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Jun 4 10:56:32 2003 +0000

    * m4/input.c: Updated various bitrotted comments.
    (m4_push_builtin): Just pass the whole m4_token, rather than
    extracting all the fields in the caller.  This also allows us to
    check the token type for consistency.
    (macro_funcs, macro_peek, macro_read, m4_push_macro, CHAR_MACRO):
    Renamed to builtin_funcs, builtin_peek, builtin_read,
    m4_push_builtin and CHAR_BUILTIN for consistency with the rest of
    the code.  Changed all callers.
    (struct input_block): Similarly renamed u_m member to u_b, and
    changed all callers.
    (m4_next_token): Use bzero to initialise the data fields.
    * m4/m4module (m4_push_macro): Renamed to m4_push_builtin.

commit b3851535a5795f49e73c192e4b949648f6bb806e
Author: Gary V. Vaughan <address@hidden>
Date:   Fri May 30 15:13:31 2003 +0000

    These changes were necessary to get m4 to build on my iBook
    running "powerpc-apple-darwin6.6" using Apples build of gcc "gcc
    (GCC) 3.1 20020420 (prerelease)":
    
    * src/main.c: Don't include dlfcn.h, ltdl.h handles correct
    inclusion of module loader headers.
    * modules/Makefile.am: Use AM_LDFLAGS, not LDFLAGS.
    * m4/Makefile.am: Ditto.
    (libm4_la_LIBADD): Added $(LTLIBINTL).
    * m4/utility.c (program_name): Removed declaration in favour of
    the one already in error.c!
    * m4/m4module.h (program_name): Define to program_invocation_name
    when using GNU C library. Use an explicit extern declaration.
    (interactive, sync_output, debug_level, hash_table_size)
    (no_gnu_extensions, prefix_all_builtins, max_debug_argument_length)
    (suppress_warnings, warning_status, nesting_limit, discard_comments)
    (lquote, rquote, bcomm, ecomm, m4_bad_argc, m4_skip_space)
    (m4_numeric_arg, m4_shipout_int, m4_shipout_string, m4_dump_args)
    (m4_debug, m4_debug_init, m4_debug_exit, m4_debug_decode)
    (m4_debug_flush_files, m4_debug_set_output, m4_debug_message_prefix)
    (m4_trace_prepre, m4_trace_pre, m4_trace_post, m4_sysval)
    (m4_expansion_level, m4_expand_ranges, m4_expand_input)
    (m4_call_macro, m4_process_macro, m4_syntax_table, m4_current_file)
    (m4_current_line, m4_current_diversion, m4_output_current_line):
    Don't rely on default, use an explicit extern.
    * m4/error.h (error, error_at_line, error_print_progname)
    (error_message_count, error_one_per_line): Ditto.
    * m4/ltdl.c: Update from CVS libtool.
    * m4/ltdl.h: Ditto.
    * commit: Update from CVS cvs-utils.

commit 5510341a5491c7fdb9eebf30f923f02a57faf153
Author: Akim Demaille <address@hidden>
Date:   Wed Nov 6 09:35:15 2002 +0000

    * doc/m4.texinfo (Esyscmd): Don't grep, use something easier:
    running m4 itself.
    * tests/others.at (iso8859): Use abs_srcdir, not srcdir.

commit 01f545bc5646c1c402d83e65926108d9bc19abd6
Author: Akim Demaille <address@hidden>
Date:   Mon Nov 4 17:39:32 2002 +0000

    Ship regex.m4.

commit 8f027541d36a4954b1c016d76bbb1599d87709d9
Author: Akim Demaille <address@hidden>
Date:   Mon Nov 4 16:32:56 2002 +0000

    * config/Makefile.am (ACLOCAL_MACROS): Ship the Gettext macros.

commit 554c1ff35ccde595e1cb6d271b11960b58edf29e
Author: Akim Demaille <address@hidden>
Date:   Mon Nov 4 16:31:04 2002 +0000

    * configure.ac: Automake 1.7.1, Autoconf 2.54, Gettext 0.11.5,
    used as `external', and Libtool 1.4.3.
    (LINGUAS): Remove.
    (LTLIBOBJS): Don't play with it.
    * intl/: Remove.
    * Makefile.am (SUBDIRS): Remove intl.
    (ACLOCAL_AMFLAGS): Add -I config.
    (EXTRA_DIST): Add config/config.rpath.
    * po/LINGUAS: New.
    * po/Makevars: New.
    * modules/perl.c (M4INIT_HANDLER): Don't prototype xs_init.

commit 4a46c1859daec5ef3922409dba84107c503fe61b
Author: Akim Demaille <address@hidden>
Date:   Mon Nov 4 14:28:44 2002 +0000

    Regen.

commit 7059176d1874d26a1cd0f619b5c886519b3c2515
Author: Akim Demaille <address@hidden>
Date:   Mon Nov 4 12:18:41 2002 +0000

    Fix the headers.

commit 79dbd4513058423065f7e7f08e67e8b7d6a33b47
Author: Akim Demaille <address@hidden>
Date:   Mon Nov 4 09:38:20 2002 +0000

    Regen.

commit de11cb28a57e7d1196a587f24dc83f1b492570b3
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 29 18:06:42 2002 +0000

    Preparations for refactoring syntax tables to allow reverse
    lookups [fetch me a M4_SYNTAX_OPEN], without compromising the
    speed of normal lookups in an array of unsigned short.

commit 86b1ec4e3585a53151d88f754a342819d3dc6b06
Author: Gary V. Vaughan <address@hidden>
Date:   Wed May 29 03:10:31 2002 +0000

    * bootstrap (aclocal_apiversion): The aclocal apiversion is
    distinct from the automake release number (in that the apiversion
    apparently has no micro-version-component).
    (aclocal_apilibdir): Use it.

commit fdc60b9d80d167ad91ad5a3d03489373c3d25309
Author: Gary V. Vaughan <address@hidden>
Date:   Tue May 28 21:46:37 2002 +0000

    * m4/hash.c (m4_hash_resize): New function.
    * m4/hash.h: Add prototype.
    * m4/symtab.c (m4_symtab_init):  Use it.  This could do with some
    benchmarking to find a good value for, say, autoconf.  This is
    already a little quicker than before for me.

commit 93f99fc4af26bfba091e262f80da5e5da8a0c913
Author: Gary V. Vaughan <address@hidden>
Date:   Tue May 28 21:30:24 2002 +0000

    * m4/symtab.c (m4_symtab_hash, m4_symtab_cmp): Moved from here...
    * m4/hash.c (m4_hash_string_hash, m4_hash_string_cmp): .. to here,
    and reenamed.
    * m4/hash.h: Adjust prototypes.

commit 72682637947e9ebd6c5c22065cfba880b938ff2a
Author: Akim Demaille <address@hidden>
Date:   Tue Jan 22 16:24:26 2002 +0000

    * bootstrap (aclocal_apilibdir): New, to cope with Automake's new
    APIVERSION scheme.
    * tests/Makefile.am (package.m4): New.
    * tests/atlocal.in: Adjust to CVS Autotest.
    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Use AC_LIBOBJ.
    * configure.ac: LIBOBJ is a forbidden string.
    Simplify AM_INIT_AUTOMAKE invocation.
    * config/Makefile.am (ACLOCAL_MACROS): Add amversion.m4 and
    options.m4.

commit 025ea5cb5e657b725e42b16151ec913ff7127afb
Author: Akim Demaille <address@hidden>
Date:   Mon Jan 21 15:14:43 2002 +0000

    Regen.

commit 4cda4c902b31d7a9e1c0b4b6f83189057af45151
Author: Akim Demaille <address@hidden>
Date:   Fri Oct 19 15:36:39 2001 +0000

    Regen.

commit 241807718cbdfae3673fea79275cddb5fef642de
Author: Akim Demaille <address@hidden>
Date:   Fri Oct 19 15:35:11 2001 +0000

    * m4/module.c, m4/output.c, src/main.c: Normalize error messages.

commit ca3f7bd38a4f92ea061c6e07f0fccc779f1d4123
Author: Akim Demaille <address@hidden>
Date:   Fri Oct 19 09:44:08 2001 +0000

    * m4/input.c (m4_next_token): Display where was opened what is
    not closed.

commit 4adf5c73331a964865e9d85cac7937768d9e5324
Author: Akim Demaille <address@hidden>
Date:   Fri Oct 19 09:43:51 2001 +0000

    * m4/macro.c (expand_argument): Display where was opened what is
    not closed.

commit 17ee9a90bdee6ce4eb03b2fad344c51f7ede83ac
Author: Akim Demaille <address@hidden>
Date:   Thu Oct 18 21:27:36 2001 +0000

    * m4/input.c, modules/m4.c: Formatting changes.

commit 90f886e415b2bd71e81351e1f2b12123b9e11f56
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Oct 17 17:37:41 2001 +0000

    * bootstrap: s/configure.in/configure.ac/

commit 3c8f27fde86af3e70a6831944f9c8fb8c8832ae2
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Oct 16 02:28:08 2001 +0000

    * m4/symtab.c (m4_symbol_destroy): This function calls
    m4_symbol_popdef, which recycles a symbols memory when the last
    definition is popped.  Since we were passing the address of the
    symbol name found in the symbol table, and it was being removed
    partway through m4_symbol_destroy() we were referencing freed
    memory for the balance of the function.  Now we take a copy of the
    symbol name tring and use that as a key into the symbol
    table... that way if the original symbol name is freed, the copy
    is still valid.

commit 6824038a20a744643ee0f817a45720da81a6a5d5
Author: Akim Demaille <address@hidden>
Date:   Sun Oct 14 11:44:41 2001 +0000

    * m4/ltdl.c: Update.

commit 68b7a268914dce22455880d8d951f30e7fdb55b8
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 08:56:48 2001 +0000

    * src/main.c, src/freeze.c, m4/debug.c, m4/input.c, m4/macro.c:
    Don't gettextize internal error messages.

commit c016d639a9be399d51527c5309155f61b2d7354c
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 08:56:30 2001 +0000

    * tests/macros.at (Arity and defn): New failing test.
    (Arity, defn, and freeze): New.
    Fix `Arity and defn'.
    * m4/input.c (m4_push_macro): Don't forget the arity.
    * modules/m4.c (defn): Likewise.

commit 4728a8dfbe880d135af4c4ed0fc82db4776d21e4
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 08:55:55 2001 +0000

    * tests/builtins.at (pushdef/popdef, trace, trace2, trace3): Move
    to...
    * tests/macros.at (pushdef/popdef, Tracing Hanoi Towers)
    (Propagation of traceon, Propagation of --trace): this new file.

commit 605ddc9be08ab2b4c109aa85aef08b24c4d1e356
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 08:55:43 2001 +0000

    * m4/utility.c (m4_numeric_arg): Use the usual (argc, argv, ...)
    interface instead of (name, argc...).
    Upon failure, specify which argument was guilty.
    Adjust callers.

commit 538c62623115eb0cdfe3ef2af73d6f04c4447733
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 08:55:09 2001 +0000

    * modules/evalparse.c: Save translators' time: don't translate
    internal error messages.
    (m4_evaluate): Simplify/normalize error messages.
    * doc/m4.texinfo (Eval): Adjust.

commit 07e86aedb2121c12835bde1735d2dbcaecee3811
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 08:54:53 2001 +0000

    * m4/macro.c (expand_macro): Let m4_bad_argc handle the cases
    where no checking is needed.
    * m4/utility.c (m4_bad_argc): Use the usual (argc, argv, ...)
    interface instead of (name, argc...).
    Adjust callers.
    * modules/gnu.c (m4_patsubst_do): Don't check argc, done
    elsewhere.

commit 656e73c0b0c4cae21e337f68e9f32cbe194cfa49
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 08:54:17 2001 +0000

    * m4/utility.c (m4_bad_argc): Display user argument counts, i.e.,
    exclude the builtin name from the count.
    * modules/m4.c (ifelse): Do not use the regular argc mechanism, as
    calling ifelse with a single argument is valid.
    * doc/m4.texinfo (Ifelse): Add an example where ifelse is invoked
    with 1 and 2 args, mostly to strengthen the test suite.

commit 5c05d40b691d5cdc74de122fd2f7e4072844a5f5
Author: Akim Demaille <address@hidden>
Date:   Sat Oct 13 06:28:10 2001 +0000

    * m4/output.c (m4_make_diversion, m4_insert_file)
    (m4_insert_diversion, +m4_freeze_diversions): Ansify.

commit de5a5cd5204c7700fb3f50b5abccb7f126381c80
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Oct 12 20:29:15 2001 +0000

    * m4/input.c (init_builtin_token):  Renamed from init_macro_token,
    since we call these things builtins in the rest of the code!

commit b2ffcd7ac27c40055bf1ee4f21f7f61b52d73db3
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Oct 12 20:15:14 2001 +0000

    * modules/gnu.c (m4_regexp_compile): s/%0/%s/

commit 008a582dc6f7e2939a4df30f5d07771babc1defb
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Oct 12 19:57:29 2001 +0000

    Rather than forcing each builtin definition to manage its own
    argument range checking, tabulate the maxima and minima for all
    builtins in each module.  This forces us to consider what the
    valid ranges for each builtin should be, and moves the checking
    code out of each builtin implementation and into the builtin
    caller infrastructure.
    
    * m4/m4module.h (struct m4_builtin): Add argument minima and
    maxima.
    * m4/m4private.h (struct m4_token): Reflect them here too.
    * m4/input.c (struct input_block): ...and here.
    (m4_token_copy): New function for token copying.
    (init_macro_token): Copy them from a token to the input stack.
    (m4_next_token): Don't forget to initialise them for text
    macros.
    * m4/macro.c (expand_argument): Use m4_token_copy, and also
    check argument counts before calling the builtin handler.
    * m4/symtab.c (m4_symbol_builtin): Take minima and maxima params.
    (m4_symbol_macro): Likewise.
    * m4/builtin.c (m4_builtin_pushdef): Add min_args and max_args
    parameters.  Updated all callers.
    (m4_builtin_define): Ditto.
    (m4_macro_pushdef, m4_macro_define): Ditto.
    * m4/symtab.c (m4_symbol_builtin, m4_symbol_define): Ditto.
    * modules/evalparse.c:  Declare argument counts for defined
    builtins and remove explicit calls to m4_bad_argc().
    * modules/gnu.c: Ditto.
    * modules/load.c: Ditto.
    * modules/m4.c: Ditto.
    * modules/modtest.c: Ditto.
    * modules/mpeval.c: Ditto.
    * modules/perl.c: Ditto.
    * modules/shadow.c: Ditto.
    * modules/stdlib.c: Ditto.
    * modules/time.c: Ditto.
    * TODO: Updated.

commit 6c0ddae3701d611c9981505c414f12ab1f0c5217
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Oct 11 21:09:15 2001 +0000

    The trace semantics now attach the trace bit to a symbol name.
    For as long as a traceon(`foo') is active, calls to foo will be
    traced regardless of intervening undefines or module unloads.
    Fixed the flag propogation issues differently to the fixes
    reverted with the last attempt at nailing down trace:
    
    * m4/m4private.h:  This file is not visible outside of the m4
    source tree, so I removed all the `M4_' and `m4_' prefixes to save
    on typing.  Updated all clients.
    (m4_token): New typedef contains the fields that need to be passed
    around with the low level tokeniser.
    (m4_token_data):  Removed.
    (m4_symbol): Now contains the traced flag again.
    * m4/symtab.c:  Rewritten again.  Now we don't remove symbols with
    the trace bit set.  This change is contained entirely within this
    module and doesn't leak out into the callers.  Updated all
    clients.
    (m4_symbol_builtin, m4_symbol_macro):  Adjusted to make use of the
    new fields in m4_token.  Updated all clients.
    * m4/builtin.c (m4_builtin_pushdef):  Needs a flags argument so
    that `groks_macro_args' and `blind_if_no_args' flags are retained
    when defn() results are passed around in m4 code.  Updated all
    callers.
    (m4_builtin_define): Ditto.
    (m4_macro_pushdef, m4_macro_define): Ditto.
    * m4/input.c (struct input_block): Add a flags field to facilitate
    the above.
    (m4_push_macro):  ...use it.
    (init_macro_token):  Retrieve it.
    (m4_next_token): Initialise it.
    * m4/macro.c (expand_argument):  Copy it.
    * m4/m4module.h: Adjust.
    * tests/builtins.at:  Adjust the expected output of the trace
    tests to reflect the change in semantics.
    * tests/modules.at (modules: trace):  Check that unloading a
    module which supplies a traced symbol definition doesn't lose te
    trace bit.

commit 1576ed0111bd466628c1b33915cc4b121e33a2bb
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Oct 7 16:33:08 2001 +0000

    * modules/gnu.c (m4_macro_table): Display the timetamp when
    expanding __m4_version__.

commit 9de01d8bd15d6b911e8bf49740b64b77ab841b8d
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Oct 7 12:39:49 2001 +0000

    * configure.ac (--with-modules): Forgot a comma in the
    AC_HELP_STRING parameter list.

commit ff73035f97fdc0a995f766023f9ae587cbeb5243
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Oct 5 18:42:58 2001 +0000

    * bootstrap: Remove aclocal.m4t when it is no longer required.

commit 0d239577b0c314c6e545b231856c2c5111702626
Author: Akim Demaille <address@hidden>
Date:   Fri Oct 5 07:53:07 2001 +0000

    Typo.

commit 9ac5d60503e3435a5a87b99a9d8bd61512c15297
Author: Akim Demaille <address@hidden>
Date:   Fri Oct 5 07:50:26 2001 +0000

    * tests/Makefile.am: Adjust for gnuprog2.
    * tests/m4.in: There can be a leading path.
    * tests/modules.at (AT_CHECK_M4_MODTEST): No need for $4 and $5.
    * tests/testsuite.at: Adjust to the most recent Autotest.
    (AT_CHECK_M4_FILTER): Fix and rename as...
    (AT_TEST_M4): this.
    * tests/others.at: Use it.

commit 2f00ef879174cc214e8f529786c679ade0734975
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Oct 4 22:14:20 2001 +0000

    * configure.ac: `rm -f $m4_getopt_h' was lost.

commit 7cf6f4f5df9a09993b9243174da200747c472f6e
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Oct 4 21:14:37 2001 +0000

    * configure.ac (TIMESTAMP): Display with AS_BOX at configure
    time.  Define it for config.h in order to...
    * src/main.c (main): ...display the timestamp for --version.

commit 631f338b7fe618ea9b7ae843c9868e1eb1d033e0
Author: Akim Demaille <address@hidden>
Date:   Thu Oct 4 08:10:48 2001 +0000

    typo.

commit 6c0bc891b3248f6222a6e5b67eabc080586f501f
Author: Akim Demaille <address@hidden>
Date:   Thu Oct 4 08:03:18 2001 +0000

    * modules/gnu.c (m4_regexp_do, m4_patsubst_do): Extracted from
    previous builtins `regexp' and `patsubst'.
    (regexp, patsubst): Use them.
    (eregexp, epatsubst): New builtins.
    * doc/m4.texinfo (Patsubst, Regexp): Rename and complete as...
    (Epatsubst and Patsubst, Eregexp and Regexp): these.
    (Extensions): More info on REs.

commit 340cf036685671f3e86009bdc637d16d2b6c8374
Author: Akim Demaille <address@hidden>
Date:   Thu Oct 4 07:48:51 2001 +0000

    Adjust.

commit 813c7c02b576d733f0ce5d5508d64d8a53ad7d21
Author: Akim Demaille <address@hidden>
Date:   Thu Oct 4 07:47:45 2001 +0000

    * modules/modtest.c (init_handler): Consistently output to stderr.
    (finish_handler): New.
    (test): The `if' is an `assert'.
    * tests/modules.at: Adjust.

commit 34d5bc330bc104cc3a10e4badd874e8476ba8e2d
Author: Akim Demaille <address@hidden>
Date:   Thu Oct 4 07:47:29 2001 +0000

    * m4/utility.c (m4_bad_argc): Detail the mismatches.

commit 0fd60165fb99431623d4e645b4f12da1b2cb00df
Author: Akim Demaille <address@hidden>
Date:   Mon Oct 1 07:57:00 2001 +0000

    * tests/generate.awk: Tag the tests with `documentation'.
    * tests/modules.at (AT_CHECK_M4_MODTEST): New.
    Use the make the existing modtest tests more uniform, and complete
    the set of possibilities.

commit 7ea3ed5e60ca496fa183fe0d10f89e24e7f5945e
Author: Akim Demaille <address@hidden>
Date:   Mon Oct 1 07:56:20 2001 +0000

    * config/gmp.m4: Consult the user before using GMP: use
    --without-gmp.
    * configure.ac: Adjust.
    * modules/gmp.c: No protection needed as the module is not built
    if GMP is not used.

commit 93a1d3bf2a6db08fd0990b0814f602f3242b7e0a
Author: Akim Demaille <address@hidden>
Date:   Mon Oct 1 07:38:48 2001 +0000

    * tests/generate.awk: Remove debugging code.
    (fatal): Specify the current location.
    * m4/debug.c, m4/macro.c, m4/utility.c, modules/format.c,
    * modules/gnu.c, modules/m4.c: Use M4ARG.

commit 9b47c0687932d7eb51ee3db4cffb5efb84e9e51d
Author: Akim Demaille <address@hidden>
Date:   Mon Oct 1 07:23:58 2001 +0000

    * modules/gnu.c (RE_SYNTAX_BRE, RE_SYNTAX_ERE): New.
    (m4_regexp_compile): New.
    (regexp, patsubst): Use it.

commit 9a17e39435d6b053ba955c19bf9c808ab26a0f1a
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Sep 30 22:26:57 2001 +0000

    Reinstate the memory handling improvements from the patch I just
    reverted.  Relevant ChangeLog entries repeated here:
    
    * m4/module.c (m4_module_remove): New function that holds the core
    of the old m4_module_unload.
    (m4_module_unload): Use it.
    (m4_module_unload_all): When we know the modules will never be
    used again (i.e. on exit), free up as much module memory as
    possible.  There are still some artifacts from resident modules
    living inside ltdl.c, but everything else is freed.
    * m4/debug.c (m4_debug_exit): Free memory allocated in
    m4_debug_init().
    * m4/input.c (m4_input_exit): Ditto wrt m4_input_init().
    * m4/output.c (m4_output_exit): Ditto wrt m4_output_init ().
    * src/stackovf.c (stackovf_exit): Ditto wrt setup_stackovf_trap ().
    * m4/m4module.h: Updated prototypes.
    * m4/hash.c (m4_hash_exit): Free the nodes on the free list.
    * m4/hash.h: Updated prototypes.
    * src/main.c (main): Use all these new functions to clean up as
    much memory as possible before exit.

commit ca6af9acfda5ecb37d3e96fe5b9554568a3138a5
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Sep 30 14:43:37 2001 +0000

    Reverted my large patch for removing the old m4_symbol
    structure on 2001-09-20.  We are still not happy about the way
    trace works in conjunction with defn and undefine, and leaving
    the reverted patch active prevents us from moving the traced
    bit from the definition back to the symbol.

commit fc3a835ad3b966cfc5d05aecca9312dd5b739be8
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Sep 30 14:23:27 2001 +0000

    * configure.in: Moved to...
    * configure.ac: ...here.  Added a libtool like timestamped
    banner, and tidied up the libltdl cruft.
    * config/mkstamp: Script to extract a timestamp from ChangeLog.
    * modules/Makefile.am (INCLTDL):  Removed.  This is required
    only when libltdl is configured in a subdirectory.
    * src/Makefile.am: Ditto.
    (LIBADD_DL):  No need to add this again, libtool already knows
    that libm4.la depends on it.
    * m4/Makefile.am: Automake sets variables from AC_SUBST.  Use
    them.

commit f01a217a607ecd27675139dcba0133ed1e877f65
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Sep 30 11:55:18 2001 +0000

    * TODO: stackovf.c is basically broken.
    Reported by Marc Espie <address@hidden>

commit fd895eecfc06802d1edc7fc90130f5652033b621
Author: Akim Demaille <address@hidden>
Date:   Fri Sep 28 14:02:54 2001 +0000

    * tests/Makefile.am (EXTRA_DIST): `m4' is not to be shipped.

commit 919fd245f8752e14bfbcd35a8432173f2632364a
Author: Akim Demaille <address@hidden>
Date:   Thu Sep 27 10:03:49 2001 +0000

    Add configure signature.

commit 5a32bbc3921edc2d4174c3b6d6a6a8916659fbcc
Author: Akim Demaille <address@hidden>
Date:   Thu Sep 27 09:59:55 2001 +0000

    * tests/m4.in: Don't use short options.
    Simplify the stderr signature normalization.

commit 858172ac2985161f2a485ab97c95a3fc9d371b1b
Author: Akim Demaille <address@hidden>
Date:   Thu Sep 27 09:28:07 2001 +0000

    tests/m4 shall be position independent.
    * tests/m4.in: New.
    * tests/m4: Remove.
    * tests/testsuite.at: No args to AT_INIT.
    * configure.in, tests/Makefile.am: Adjust.

commit a66a1ccdb409bf694ab36c1725a575a69751bbbe
Author: Akim Demaille <address@hidden>
Date:   Sat Sep 22 16:57:09 2001 +0000

    Autotest has changed again.
    * tests/Makefile.am (DISTCLEANFILES): Add package.m4.
    (package.m4): Remove.
    * configure.in: Adjust to LIBADD_GMP.

commit 2fe608e0e7475917619ddda394e5ff4add7409a7
Author: Akim Demaille <address@hidden>
Date:   Sat Sep 22 16:16:02 2001 +0000

    Update.

commit 9a19492892dbd9ed018c347ede2dec22ee0b07e5
Author: Akim Demaille <address@hidden>
Date:   Sat Sep 22 16:14:36 2001 +0000

    Adjust.

commit 16fda89eaa7ace336b58aa25c612ea516f800033
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 21 00:13:29 2001 +0000

    * config/gmp.m4 (AC_ARG_WITH): Removed.
    (GMP_LIB): Renamed to LIBADD_GMP for consistency.
    (AC_LIB_GMP): When performing a test compile against libgmp,
    include the header gmp.h if possible, and link against -lgmp.  If
    they both work define USE_GMP.
    * modules/Makefile.am (mpeval_la_LIBADD): Add LIBADD_GMP.
    (mpeval_LTX_init_func): Complain on load that there was no libgmp
    at compile time.

commit 17b9a9aacd7c866276ca54619a12ec76b326694e
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 20 22:01:34 2001 +0000

    * m4/evalparse.c: Moved to...
    * modules/evalparse.c:  ...here.  This code is shared between
    modules/mpeval.c and modules/m4.c, so there is no need to pollute
    the libm4 API with its details.  Moderately rewritten to interface
    into its clients more simply.
    * m4/eval.c: Deleted.  Migrated functionality to...
    * modules/m4.c: ...here.
    (builtin_eval):  Implemented in terms of the new interface style.
    * modules/mpeval.c (builtin_mpeval): Ditto.
    * m4/m4module.h: Removed references to the former m4/eval.c.
    * m4/Makefile.am (libm4_la_SOURCES):  Removed eval.c.
    (EXTRA_libm4_la_SOURCES): Deleted.
    * modules/Makefile.am (EXTRA_m4_la_SOURCES): Reference evalparse.c.
    (EXTRA_mpeval_la_SOURCES): Reference evalparse.c.

commit 5ef2f5adbc24ca75f0464a7d78387f4fbdcfbd99
Author: Akim Demaille <address@hidden>
Date:   Thu Sep 20 08:49:30 2001 +0000

    * config/gmp.m4 (AM_WITH_GMP): Rename as...
    (AC_LIB_GMP): this.
    By default, use gmp.
    Massive revamping.
    * configure.in: Adjust.
    Use Automake conditionals for USE_GMP.
    Always compute sizeof (long long int).
    This was a bug BTW, as `eval' (not `mpeval') depends on it:
    before, it was used _only_ if mpeval was not activated.
    * modules/Makefile.am (pkglibexec2dir, +pkglibexec2_LTLIBRARIES)
    (mpeval_la_LIBADD): New macros.
    * modules/mpeval.c: No longer be conditioned by WITH_GMP.
    Indent.
    * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): Create package.m4.
    * tests/atlocal.in, tests/builtins.at: Depend upon USE_GMP, not
    WITH_GMP.

commit c9cae3ef59101a1f92367783de73bbca3c590694
Author: Akim Demaille <address@hidden>
Date:   Thu Sep 20 08:37:27 2001 +0000

    Regen.

commit 5844bf256c77a56cd57146bfe2af214feb478d7b
Author: Akim Demaille <address@hidden>
Date:   Thu Sep 20 07:49:23 2001 +0000

    * tests/Makefile.am (package.m4): New.
    * tests/testsuite.at: Adjust AT_INIT and AT_VICTIMS.

commit 64fc3407b9b88f6ccf9d5737b1af7df141b0eae6
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 20 03:48:05 2001 +0000

    More cleanup.  After the last patch, m4_symbol holds nothing but
    the head of a chain of m4_token_data.  So I have removed the old
    m4_symbol, so that m4_token_data chains are stored directly in the
    value cell of a hash table node.  But there's more... m4_symbol
    was a more natural name for the symbol value cell, and now that it
    is gone I have renamed the former m4_token_data structure to
    m4_symbol.  This change turned out to be a pig to get right, since
    the original code didn't need to modify the value cell itself,
    since changing the chain happened inside the m4_symbol that used
    to be returned -- I had to pass the address of the value cell
    across various function calls, incase the head value changed.  I
    also tightened up the memory management to help me find a nasty
    memory corruption bug that took me all night to track down...
    
    * m4/m4private.h (struct m4_symbol): Removed.
    (struct m4_token_data): Renamed to `struct m4_symbol'.  Updated
    all references.
    * m4/hash.c (m4_hash_iterator_value): Return the address of the
    value cell.  Updated all callers.
    * m4/symtab.c: Took advantage of the simplification in the data
    structures to rewrite a lot of this file more simply.  There is
    still some room for optimisation here, but we should tackle that
    systematically closer to the release.
    
    * m4/ltdl.c: Added dmalloc support, and fixed some memory leaks it
    revealed.  This version is ahead of CVS libtool until I get chance
    to flush my changes.
    * m4/module.c (m4_module_remove): New function that holds the core
    of the old m4_module_unload.
    (m4_module_unload): Use it.
    (m4_module_unload_all): When we know the modules will never be
    used again (i.e. on exit), free up as much module memory as
    possible.  There are still some artifacts from resident modules
    living inside ltdl.c, but everything else is freed.
    * m4/debug.c (m4_debug_exit): Free memory allocated in
    m4_debug_init().
    * m4/input.c (m4_input_exit): Ditto wrt m4_input_init().
    * m4/output.c (m4_output_exit): Ditto wrt m4_output_init ().
    * src/stackovf.c (stackovf_exit): Ditto wrt setup_stackovf_trap ().
    * m4/m4module.h: Updated prototypes.
    * m4/hash.c (m4_hash_exit): Free the nodes on the free list.
    * m4/hash.h: Updated prototypes.
    * src/main.c (main): Use all these new functions to clean up as
    much memory as possible before exit.

commit 27eb054a1624832edff40788d3fd0930fac04dd3
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 18 01:07:09 2001 +0000

    The `traced' flag needs to be attached to the definition of a
    symbol rather than the current symbol containing the definition.
    Implementing this showed up some long standing post 1.4 bugs in
    flag propogation which I also fixed.
    
    * m4/m4private.h (struct m4_symbol): Remove the traced flag.
    (struct m4_token_data): And add it back in here.
    * m4/input.c (init_macro_token): Propogate the traced flag
    correctly.
    * m4/macro.c (expand_argument): Ditto.
    * tests/builtins.at (trace2, trace3): New tests based on Akim's
    sadistic email ;-)

commit 4dca933acda6c9271b4597b364faddc8fb860ffa
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 8 02:36:47 2001 +0000

    * m4/m4private.h (struct m4_token_data): Simplified by removing
    the redundant `traced' flag, and one level of structure nesting.
    (M4_TOKEN_DATA_FUNC_TRACED): Removed.
    * m4/input.c (init_macro_token): No need to initialise removed
    `traced' field.
    * m4/macro.c (expand_argument): No need to copy it either.
    * m4/utility.c (m4_token_data_func_traced): Or provide an access
    function.

commit c4e7197b4b9976d1404b439f644887467af398dd
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 8 02:13:17 2001 +0000

    * m4/hash.c (m4_hash_bucket_insert): Symbol shadowing is no longer
    dependant on multiple symbols with the same key, so preserving
    relative symbol order in each bucket during resizing is no longer
    required.  The resize function is considerably faster as a result.

commit bce902a7fe4194cc0cfbe75d410ad2f057f78746
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 8 01:56:34 2001 +0000

    * m4/m4module.h, m4/builtin.c, m4/symtab.c:
    s/m4_symbol_insert/m4_symbol_define/g;
    s/m4_builtin_insert/m4_builtin_define/g;
    s/m4_macro_insert/m4_macro_define/g.  Updated all callers.

commit 5e49288b592ef8382db4ddc7b397f9c808a3ab3f
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 8 01:40:47 2001 +0000

    Get rid of m4_symbol_lookup_t entirely.  With Akim's earlier
    commits, the m4_lookup_symbol dispatch function is split into
    specialised functions that must be called directly.
    
    * m4/m4module.h (m4_symbol_lookup_t): Removed.
    * m4/symtab.c (m4_lookup_symbol): Removed.
    (m4_symbol_builtin, m4_symbol_macro): New functions.
    * m4/builtin.c (m4_builtin_define): Split into...
    (m4_builtin_pushdef, m4_builtin_insert): ...these.
    (m4_macro_define): Split into...
    (m4_macro_pushdef, m4_macro_insert): ...these.
    * src/main.c (main): Set command line macros from `-D' parameters
    using `m4_macro_define'.

commit 7a6010fe44aec44428f1cdf2b39692d23bcdcf3b
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 7 23:47:28 2001 +0000

    * m4/symtab.c (m4_symtab_remove_module_references):  Renamed as
    this from m4_remove_table_reference_symbols().
    * m4/m4module.h, m4/module.c: Updated all references.

commit 610714d84d99c45e646e01ffd49b6174ba144854
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 7 23:42:24 2001 +0000

    Revert my last patch... too fast on the commit button, will try again in 
small
    pieces presently.

commit 9213b2fd06bc0e94b0debcfa427a2341013f8264
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Sep 7 23:36:41 2001 +0000

    * m4/symtab.c (m4_symtab_remove_module_references):  Renamed as
    this from m4_remove_table_reference_symbols().

commit 759fae532b2ac5f952f742dd14ab547ba76947bd
Author: Akim Demaille <address@hidden>
Date:   Fri Sep 7 10:49:59 2001 +0000

    * modules/stdlib.c, modules/times.c: Misc cleanups.

commit b1c731c8f27d7735c6317a1368a144ded0d42d03
Author: Akim Demaille <address@hidden>
Date:   Fri Sep 7 10:46:33 2001 +0000

    * configure.in: We now need Autoconf 2.52e.
    * m4/m4module.h (m4_symbol_lookup_t): Remove `M4_SYMBOL_POPDEF'
    and `M4_SYMBOL_DELETE'.
    * m4/symtab.c (m4_lookup_symbol, symtab_debug): Adjust.
    * src/main.c (main): Adjust.

commit 17c36f8b030aec43612b8b9a79f270293ac69975
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Sep 6 20:13:12 2001 +0000

    Fix the obstack.h problem once and for all!  At configure time we
    can test for a system supplied obstack.h:  depending on the
    result, we now generate system.h with an #include of the correct
    header.  As a bonus, I've also added a --with-included-obstack,
    incase the user doesn't like the system obstack for some
    reason... and also we can test the shipped obstack on a system
    that has oe of its own.  We also now need to be careful to add
    build directories to the include search path, since the generated
    system.h will be in the build tree.
    
    * configure.in (AC_CONFIG_FILES): Generate system.h from
    system-h.in.
    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Determine whether to
    include the system obstack header or the copy shipped with M4.
    Allow the user to override configure and force the build to use
    the shipped version.
    * m4/system-h.in: New file, template for...
    * m4/system.h: ...this.  Now deleted.
    * m4/m4module.h: Include system.h before everything else.
    * src/freeze.c: Ditto.
    * m4/Makefile.am (dist-hook): Remove generated system.h.
    (INCLUDES): Check builddir for generated headers before checking
    srcdir.
    * modules/Makefile.am (INCLUDES): Ditto.
    * src/Makefile.am (INCLUDES): Ditto.

commit ee586f8a57ff813b4b67ee327d283b2fe10c6f4d
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Sep 5 17:43:37 2001 +0000

    * TODO: Remove the items that have been addressed already.

commit 3750689abe3d0f75dbe6650770a2e4d740b43f6d
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 09:06:49 2001 +0000

    * src/main.c (main): Standardize --version.

commit 31a1f9353db24afbcbcf34a60683ecbb24dc5f41
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 08:15:38 2001 +0000

    Add dist-bzip2 to Automake options.

commit 8baec5fa4aead5408188cd7c76f451fc1bc7a721
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 07:51:59 2001 +0000

    * modules/format.c (format): Have a bigger `str'.

commit 68c7e1edbd1499bed2d06b176bb9c7c8a0872901
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 07:51:41 2001 +0000

    Rationalize warnings, reporting the macro name as if it were a
    program name, and assertions.
    * m4/m4module.h (m4_lookup_symbol): Prototype, it is still used.
    (M4WARN): New.
    * m4/symtab.c (m4_lookup_symbol, m4_symbol_popdef)
    (m4_symbol_delete):
    Use assert for internal errors.
    * m4/utility.c (m4_bad_argc, m4_numeric_arg, m4_dump_symbols): Use
    M4WARN.
    * modules/m4.c (undefine, defn, traceon, traceoff, dumpdef): use
    M4WARN and assert.
    * tests/builtins.at (pushpop): Adjust.

commit 8f32bb4bb3fc29989941b4a246d2d9b96c5324fa
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 07:50:36 2001 +0000

    * m4/symtab.c (m4_symbol_insert): Don't use `foo () || bar ()'
    with pointers.

commit 39277f46c86c27083b6be0a3b90c7311e167013b
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 07:49:45 2001 +0000

    * m4/m4module.h (m4_symbol_lookup): Remove M4_SYMBOL_LOOKUP.
    * m4/macro.c, m4/symtab.c: Adjust.

commit 39836cbf63672f11424645eea128fb666a58a61e
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 07:28:49 2001 +0000

    * m4/symtab.c (m4_symbol_popdef, m4_symbol_delete): Rename as...
    (m4_symbol_pop, m4_symbol_del): this.
    (m4_symbol_lookup, m4_symbol_pushdef, m4_symbol_insert)
    (m4_symbol_popdef, m4_symbol_delete): New.
    (m4_lookup_symbol): Adjust.
    * m4/m4module.h, src/main.c, modules/gnu.c, modules/m4.c: Adjust.

commit 31a5547cac113e73aa051f1142eaa4345b30f81e
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 07:27:00 2001 +0000

    * m4/m4module.h (m4_symbol_lookup): Rename as...
    (m4_symbol_lookup_t): this.

commit e07a1fc649d82a32d7e4b33e306b5cc690cf387c
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 5 07:24:58 2001 +0000

    * m4/m4module.h (m4_symbol_lookup): Remove M4_SYMBOL_IGNORE,
    unused.
    * m4/symtab.c (m4_lookup_symbol): Adjust.

commit 146924c22280e37a0ad4b1fe147ca0899fb3fccb
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Sep 4 00:15:33 2001 +0000

    Bootstrap will now work with Libtool 1.4.1 or higher:
    * bootstrap: Remove stale autom4te.cache files when
    rebootstrapping.
    * config/Makefile.am (ACLOCAL_MACROS):  Add ltdl.m4 and
    libtool.m4.
    * bootstrap: Ignore acinclude.m4 now the we include ltdl.m4 and
    libtool.m4 directly.
    Run libtoolize to refresh ltmain.sh.
    * config/ltmain.sh:  Deleted.
    * acinclude.m4: Deleted.
    * m4/ltdl.c, m4/ltdl.h: Updated from libtool-1.4.1.

commit 93746f50fc0d2e57a47ae92f4a68eadc2c2cb532
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Sep 3 22:58:35 2001 +0000

    * config/debug.m4 (AC_LIBTOOL_COMPILER_OPTION): Provide a fallback
    implementation for the cvs impaired libtool user.

commit 73784f2ed16cb97707728e0ee0a46849a97f9b4b
Author: Akim Demaille <address@hidden>
Date:   Mon Sep 3 15:06:24 2001 +0000

    * m4/symtab.c (m4_lookup_symbol): Give more details when reporting
    internal errors.
    Avoid using `default' in switch, as it hides useful compiler
    warnings when a case is forgotten.

commit 3ba245e6c93df09a1ae5098b87dd5ff441ffeaf5
Author: Akim Demaille <address@hidden>
Date:   Mon Sep 3 15:05:30 2001 +0000

    * src/main.c (MODULE_SHORTOPT, MODULEPATH_SHORTOPT): Remove, there
    is no such thing as `WITH_MODULES'.

commit e0ef437cf49699ce0d10adab45853d99e38668c7
Author: Akim Demaille <address@hidden>
Date:   Mon Sep 3 15:05:12 2001 +0000

    Improve the test suite's selfcontainedness.
    * doc/m4.texinfo: Let `input.m4' be the input file, not `in'.
    (Include, Undivert): Tag the other input files.
    * tests/generate.awk: Catch address@hidden file:'.
    `-I $src' is no longer needed.
    `next' is really like `return': the rest is skipped.
    Adjust to `input.m4'.
    (fatal): New function.
    * tests/foo, tests/incl.m4: Remove.

commit c33cb8fcbff9b93658ee0a6b878d40c61c97fabd
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Sep 2 09:05:14 2001 +0000

    * m4/hash.c, m4/hash.h: forgot to cvs add these files.

commit 95e22ae00e2b4e468fc753feed6e0afac7555b87
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 1 20:05:27 2001 +0000

    The shadowing mechanism and, infact, the whole symbol table
    implementation was creaking under the weight of the features piled
    on top of it.  We now have a separate hash table module which will
    dynamically resize to keep symbol density withing good performace
    limits, and a new symtab module layered above it.  Symbol lookups
    are now marginally more efficient (since the shadowed flag is no
    longer required) and symbol removal, such as on module unload, is
    considerably faster due to a reorganisation of the data structures
    used in symtab.c.
    
    * src/main.c (main):  Don't mention `-H'.
    * doc/m4.texinfo (Invoking m4): Document that -H no longer has any
    effect.
    * NEWS: Updated.
    * m4/hash.c: New generalised dynamic hash table data structure
    management module.
    * m4/hash.h: Public interface.
    * m4/Makefile.am (pkginc_HEADERS): Add hash.h.
    (libm4_la_SOURCES): Add hash.c.
    * m4/symtab.c: More or less rewritten from scratch, within the
    bounds of the previous API.
    (m4_symtab_apply): A cleaner version of the old hack_all_symbols
    call.  Updated all callers.
    * m4/m4module.c: #include <m4/hash.h>, and changed all affected
    declarations to reflect API changes.
    (M4INIT): Generate a declaration too, to avoid the warning with
    --enable-debug builds.
    (M4FINISH): Ditto.
    (HASHMAX): Removed.
    * m4/utility.c (hash_table_size):  Removed.
    (m4_dump_symbols): Rewritten to build and qsort an array of symbol
    names, which are then looked up by builtin_dumpdef() as necessary.
    This implies a small speedup in builtin_symbols(), which discarded
    all of the symbol info under the old call.
    * m4/m4private.h (m4_symbol): Removed shadowed flag -- symbol
    shadowing is implicit in respect to the new data structures.
    symbol names are no longer duplicated here, they are stored in the
    key field of the hash table.
    Moved macro_args and blind_no_args...
    (m4_token_data): ...to here.
    m4/macro.c (expand_macro):  Added a name argument since the symbol
    name is no longer copied into each struct m4_symbol.  Modified all
    callers.
    (collect_arguments):  Ditto.
    * modules/m4.c (set_trace): Ditto.
    * modules/gnu.c (builtin_symbols): Updated.
    * src/freeze.c (produce_symbol_dump): Much improved in light of
    the improved symbol table layout.

commit 17d52d2909333844becacd4f8b4eb48034ecb8a2
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 1 16:10:40 2001 +0000

    * m4/m4private.h (SYMBOL_NEXT): Move into m4's name space; renamed
    to M4_SYMBOL_NEXT.
    (SYMBOL_TRACED): Similarly renamed by prefixing with `M4_'.
    (SYMBOL_SHADOWED, SYMBOL_MACRO_ARGS, SYMBOL_BLIND_NO_ARGS,
    SYMBOL_NAME, SYMBOL_TYPE, SYMBOL_TEXT, SYMBOL_FUNC,
    SYMBOL_HANDLE): Ditto.
    * m4/builtin.c, m4/macro.c, m4/symtab.c, m4/utility.c,
    modules/gnu.c, modules/m4.c, src/freeze.c,
    src/main.c:  Updated all references.

commit 098cb9229b9ba0a9fc0bddb457c6f1b3ab49adce
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 1 10:31:19 2001 +0000

    * src/Makefile.am (m4_SOURCES): Don't list $(M4OBJS) here, since
    Automake 1.5 chokes on dynamic source file lists,  Besides, it is
    already listed in m4_LDADD... how did that ever used to work?
    * configure.in (getopt.h): Use AC_CONFIG_LINKS instead of a manual
    link.
    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Ditto.
    Suggested by Tim Van Holder <address@hidden>

commit 025cb5fccf0905b6370c35981f161139e763e3c6
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Sep 1 03:22:10 2001 +0000

    * tests/m4: Don't call the m4 wrapper script with libtool, it
    works fine all by itself.

commit 524bc8fc2a70ce52981cf15de5c5791db29dfc54
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 30 21:57:00 2001 +0000

    The experimental `changeword' feature never took off, and has
    no obvious advantages over `changesyntax' to compensate the
    enormous speed penalty it carries:
    * configure.in (ENABLE_CHANGEWORD): Removed.
    * m4/m4module.h (m4_set_word_regexp): Removed.
    * m4/m4private.h (m4_token_data): Removed original_text field.
    * m4/utility.c (m4_token_data_orig_text): Removed.
    * m4/input,c: Removed all conditional ENABLE_CHANGEWORD code.
    * m4/macro.c: Ditto.
    * src/main.c: Ditto.
    * modules/Makefile.am (changeword.la): Removed.
    * modules/changeword.c: File removed.
    * doc/m4.texinfo: References to changeword and --word-regexp
    removed.
    * po/POTFILES.in: modules/changeword.c removed.
    * tests/atlocal.in (ENABLE_CHANGEWORD): Removed.
    * tests/builtins.at (changeword): Test removed.

commit 484d91785093ac59b89902329a5b2af979e52b4d
Author: Akim Demaille <address@hidden>
Date:   Thu Aug 30 12:13:42 2001 +0000

    * bootstrap.sh: Create aclocal.m4 instead of modifying it.
    This also help having a single list of m4 files: in
    config/Makefile.am.
    * config/Makefile.am (STANDARD_MACROS): Rename as...
    (ACLOCAL_MACROS): this.
    (list-standard-macros): Remove.
    (spy): New.

commit 357f605bf67ef7f7f16932f73b3d0ea9f4cee6ef
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Aug 29 20:06:51 2001 +0000

    In an attempt to moderate my egomania...
    * tests/modules.at: Remove attributions.

commit fb102740712e88a354bf6fc8a013f0f0d5e19f3d
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Aug 29 19:59:09 2001 +0000

    * tests/generate.awk: When making substitutions to "@&t@", either
    "&" or "\&" in the substitution string argument to gsub refer back
    to the matched text.  "@\\&t@" seems to work though, Tests 43 and
    67 now pass for me.

commit 7b79218175ab680beb995a5ad710ade522420a43
Author: Akim Demaille <address@hidden>
Date:   Wed Aug 29 13:14:36 2001 +0000

    * tests/others.at (changeword, ddivert, debug, esyscmd, exp, gmp)
    (include, indir, multiquotes, patsubst, pushdef/popdef, regexp)
    (sync-lines, trace, translit, undivert, wrap): Move to...
    * tests/builtins.at: this new file.
    * tests/others.at (Discard comments, import-environment): Move to...
    * tests/options.at: this new file.

commit 7285d718eabf0d3181d59b29a6cfcb8da099028d
Author: Akim Demaille <address@hidden>
Date:   Wed Aug 29 13:14:21 2001 +0000

    * tests/others.at (Freezing modules)
    (--module-directory: absolute path, modpath2, modpath3)
    (M4MODPATH: absolute path, modtest, shadow, unload): Move to...
    * tests/modules.at: here, new file.
    * tests/others.at, tests/generate.awk: Add a banner.
    * tests/testsuite.at: Adjust.
    (AT_CHECK_M4_FILTER): New, but unused.

commit ee521a6fa291d38181bdba8e0486eb6cf677ab03
Author: Akim Demaille <address@hidden>
Date:   Wed Aug 29 13:14:02 2001 +0000

    * tests/testsuite.at (AT_CHECK_M4): Don't pass -I, let the tests
    handle that.
    * tests/others.at (wrap): Inline wrap.m4.
    (shadow): Inline shadow.m4.
    (iso8859): Don't specify the path from top_srcdir, but from srcdir.
    * tests/m4: Simplify.

commit ffe5d70677e2139feaa018eaed59b23b0144f86f
Author: Akim Demaille <address@hidden>
Date:   Wed Aug 29 13:13:45 2001 +0000

    * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): Use autom4te's
    --language.

commit bf959d6c93df0303acede3773d4f54a85d8aea61
Author: Akim Demaille <address@hidden>
Date:   Wed Aug 29 13:13:19 2001 +0000

    * tests/generate.awk (normalize): s/@__@/@&t@/.

commit b4a63938825de08f17e716078e8384c8c020f407
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 28 09:20:54 2001 +0000

    * examples/indir.m4, tests/others.at (indir): s/nonsens/nonsense/.

commit f9adac71f413e8b449ca55d16ea921c04f10d89b
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Aug 28 03:06:14 2001 +0000

    * bootstrap (generate.awk): Generate test cases with new script.

commit 1305043e719ac46f51ed7ab9fa9275b41b9bdf1e
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 08:36:35 2001 +0000

    Typo.

commit 89476d8431a0f59c2c89a449d852049a03aced0f
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 08:32:37 2001 +0000

    Regen.

commit 87c6dee1fc31802faa81256bdbed0c8cefb0f214
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 08:03:52 2001 +0000

    * tests/Makefile.am (installcheck-local): Don't use
    `dc_install_base' which is not visible here, but `exec_prefix'
    which is clearly the RT anyway.
    * tests/testsuite.at (AT_CHECK_M4): Don't pass -M here since it is
    related to testing a now installed m4.
    * tests/m4: Do it here.

commit 0c765b9ec08c2138768719c16e0c202cec36f716
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 08:03:36 2001 +0000

    * tests/others.at (indir): Formatting change.

commit 77832d885094d82bf4d125b5a8f242b0ec84d742
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 08:03:20 2001 +0000

    * tests/Makefile.am (installcheck-local): New.
    * tests/testsuite.at (AT_CHECK_M4): Pass `-b' so that C-c works on
    the test suite.
    Prefer options over envvars.
    * src/main.c (main): First bug caught by the test suite (yeah!):
    --batch lacked a `break' which resulted in an accidental
    invocation of --discard-comments.

commit f10a195503783004c0998b84a37f7185e4b25b65
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 08:03:00 2001 +0000

    * tests/others.at (capitalize, changeword, comments, ddivert)
    (debug, esyscmd, exp, foreach, forloop, fstab, hanoi, include)
    (misc, multiquotes, patsubst, pushdef/popdef, regexp, reverse)
    (sysv-args, trace, translit, undivert): Don't rely on files in
    examples/: AT_DATA them.

commit 3f36c80284afba11ebe2d51829933a21de582c87
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 08:02:19 2001 +0000

    Let the test suite use a wrapper around the not installed m4 to
    pretend it is (installed).
    * bootstrap (aclocal.m4): Output AC_SUBST's and AM_CONDITIONAL's in
    such a way that m4 does not process them.
    * configure.in: The package name seems to be `m4', not `M4'.
    * tests/m4: New.
    * tests/atlocal.in (at_package, M4): Remove.
    * tests/testsuite.at, tests/others.at: Use m4, not $M4.

commit f2f6afbc0df797bbc9a5c61ee1f60c87d8829a25
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 07:52:50 2001 +0000

    * tests/Makefile.am (CLEANFILES): Remove.
    (DISTCLEANFILES, clean-local): New.
    * examples/mktests.sh: Remove.

commit 81f23173cd453540255cc239d56946aab757a524
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 27 07:49:30 2001 +0000

    * Makefile.am (AUTOMAKE_OPTIONS): 1.5.
    Don't use aclocal: it's written by hand.
    * aclocal.m4: m4_include all the files instead of being built by
    aclocal.
    * bootstrap: Help automake find the AC_SUBSTs and AM_CONDITIONALs
    until it reads the traces by itself.
    * configure.in: Require Autoconf 2.42c as we are now using
    AC_CONFIG_TESTDIR instead of AT_CONFIG.
    Catch unexpanded `jm_' macros.
    * config/atconfig.m4: Remove.
    * config/error.m4: new.
    * config/Makefile.am: Ship the files included by aclocal.m4.
    * tests/Makefile.am (TESTSUITE_SOURCES): Rename as...
    (TESTSUITE_AT): this, to please Automake.
    (TESTSUITE): This target uses autotest/autotest.m4, not
    autotest/general.m4.
    * tests/testsuite.at: Prereq Autotest 2.52c.
    * examples/Makefile.am (pkgdata_DATA): Rename as...
    (dist_pkgdata_DATA): this.
    * doc/Makefile.am (man_MANS): Rename as...
    (dist_man_mans): this.

commit ea42747e1814a3909e170e22fcf6b34b1db710ad
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Aug 20 20:25:25 2001 +0000

    * m4/system.h [cygwin*]:  Thanks to Paul Sokolovsky and
    Robert Collins, building on Cygwin no longer requires Windows
    import and export symbol decorations.
    * m4/m4module.h (M4_SCOPE) [cygwin*]:  Deleted all occurences.
    * m4/error.h (M4_SCOPE) [cygwin*]: Ditto.
    * m4/debug.c (M4_GLOBAL_DATA) [cygwin*]:  Ditto.
    * m4/error.c (M4_GLOBAL_DATA) [cygwin*]:  Ditto.
    * m4/input.c (M4_GLOBAL_DATA) [cygwin*]:  Ditto.
    * m4/macro.c (M4_GLOBAL_DATA) [cygwin*]:  Ditto.
    * m4/output.c (M4_GLOBAL_DATA) [cygwin*]:  Ditto.
    * m4/utilty.c (M4_GLOBAL_DATA) [cygwin*]:  Ditto.
    * m4/xmalloc.c (M4_GLOBAL_DATA) [cygwin*]:  Ditto.
    * configure.in (LIBM4_DLL_IMPORT) [cygwin*]:  Don't set this
    anymore.
    * src/Makefile.am (AM_CPPFLAGS) [cygwin*]: Don't use it either!
    * modules/Makefile.am (AM_CPPFLAGS) [cygwin*]: Ditto.

commit 7053e603ff3768cf3be0b80bb82c58f4d30ed7a4
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Aug 20 19:42:38 2001 +0000

    Ansify the source.  Previously we had a mix, where my code was
    in a K&R compatible style, and the preexisting code was in ANSI
    style.  Nothing is lost wrt release 1.4 by reverting to ANSI,
    and now the code base is much cleaner.
    
    * m4/system.h:  Remove M4_PARAMS macro and all users.  Remove
    VOID macro and all users.
    * m4/m4module.h:  Ansify function prototypes and headers.
    * m4/builtin.c:  Ditto.
    * m4/evalparse.c:  Ditto.
    * m4/input.c:  Ditto.
    * m4/macro.c:  Ditto.
    * m4/module.c:  Ditto.
    * m4/output.c:  Ditto.
    * m4/path.c:  Ditto.
    * m4/symtab.c:  Ditto.
    * m4/utility.c:  Ditto.
    * modules/format.c:  Ditto.
    * modules/gnu.c:  Ditto.
    * modules/m4.c:  Ditto.
    * modules/mpeval.c:  Ditto.
    * src/freeze.c:  Ditto.
    * src/m4.h:  Ditto.
    * src/main.c:  Ditto.

commit 8eb4598b4a9b2c12a1e0628c3e848ad38acc5d7d
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 20 18:34:13 2001 +0000

    * config/atconfig.m4: s/EOF/ATEOF/, so that configure can be
    generated with stock 2.52.

commit 7e030405b006eb0efa3fa805cae47777523e3a57
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 20 17:03:32 2001 +0000

    Remove.

commit 75731a3dea9ddd818537a96ce2948a2a74984a5e
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 20 16:09:03 2001 +0000

    * config/atconfig.m4: New, until part of Autoconf per se.
    * configure.in (AT_CONFIG): Use it.
    Adjust.
    * tests/mkconfig.sh, tests/atconfig.in, tests/defs: Remove.
    * tests/atlocal.in: New.
    * tests/generate.awk: For the time being, the empty quadrigraph is
    address@hidden@'.
    * tests/others.at (changeword, gmp): Check the configuration
    variable against `yes'.
    * tests/testsuite.at (dnl): Allow it, as it's used all over the
    place.

commit 7aa7611155fc2585ceef9ed5caf5478419202c34
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 20 15:52:50 2001 +0000

    * m4/utility.c (m4_numeric_arg): Spell out the culprit.
    * modules/m4.c (undivert): Disable the possibility of undiverting
    several files at once: it is not documented, it is inconsistent
    with the other macros, it can be straightforwardly mocked by
    several invocations, and most importantly, it prevents the
    possibility of other kinds of extension.
    Use `m4_numeric_arg'.

commit 122542adf4a37eab13d2bfa0645187be6b980aac
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 20 15:44:26 2001 +0000

    * examples/include.m4: Typo.
    * tests/generate.awk: Really add it.
    * tests/Makefile.am: Adjust.
    * tests/others.at (Discard comments): It sure fails without `-c'.
    (include, undivert): Add -I examples/.

commit 3826243e67aef975aa0c3f190c0fb2a8a519c3cb
Author: Akim Demaille <address@hidden>
Date:   Mon Aug 20 15:43:00 2001 +0000

    Use sprintf, not ecft and friends since it is standard, portable,
    simplifies the code, and since the latter is even deprecated
    according to the GNU libc documentation.
    * modules/format.c: Drop evct support.

commit 0a7af6da176dd12bcb96b52a6cbc60cea12202b6
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Aug 19 10:53:56 2001 +0000

    * c-boxes.el: Deleted.
    * m4/builtin.c: Reformat box comments to be closer to GNU
    standards.
    * m4/debug.c:  Ditto.
    * m4/eval.c:  Ditto.
    * m4/evalparse.c:  Ditto.
    * m4/input.c:  Ditto.
    * m4/m4module.h:  Ditto.
    * m4/macro.c:  Ditto.
    * m4/output.c:  Ditto.
    * m4/symtab.c:  Ditto.
    * m4/utility.c:  Ditto.
    * modules/changeword.c:  Ditto.
    * modules/format.c:  Ditto.
    * modules/gnu.c:  Ditto.
    * modules/load.c:  Ditto.
    * modules/m4.c:  Ditto.
    * modules/modtest.c:  Ditto.
    * modules/mpeval.c:  Ditto.
    * modules/perl.c:  Ditto.
    * modules/shadow.c:  Ditto.
    * modules/stdlib.c:  Ditto.
    * modules/time.c:  Ditto.
    * src/freeze.c:  Ditto.
    * src/main.c:  Ditto.

commit 96f4a9aec45acc4d4b6eea03e6e8bae41eff7bb5
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Aug 19 10:27:10 2001 +0000

    * config/debug.m4 (M4_AC_CHECK_DEBUGGING): Cleaned up.  Don't test
    for `-pipe' here...
    * configure.in: ...do it here instead.

commit 8645da0eb787d324a2c4ec4c6bc2a4d35c99cecc
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 17 23:17:25 2001 +0000

    * bootstrap: revert my last patch.  commited from the wrong directory.
    I am a dumbass!
    * tests/.cvsignore: Ditto.

commit 462581addec5e2489f1b6a6947afab844e857471
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 17 22:40:11 2001 +0000

    * tests/generated-tests/.cvsignore: Deleted, so that 'cvs up -Pd'
    doesn't keep the empty directory around.

commit 3d69cd60f74ef46986296284c37154d47167baaa
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 17 22:16:17 2001 +0000

    * tests/generated-tests/.cvsignore: Deleted, so that 'cvs up -Pd'
    doesn't keep the empty directory around.

commit bb50e1b6e553d7997148626b5b3731b8a40e40b5
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Aug 17 17:29:48 2001 +0000

    * m4/module.c: Fixup some errors in the description comment.

commit a40a381270b76b53302086850a9c3dfb58bc4d45
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 15:09:15 2001 +0000

    Remove.

commit 548387859be0fb70158dcb4a4598624bbf3c6483
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 15:06:28 2001 +0000

    Adjust.

commit e96ac84d4a867ec37929c105553d364a2c2248a9
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 14:41:16 2001 +0000

    * tests/others.at (iso8859): Specify the path to the M4 test file.
    * tests/testsuite.at (AT_CHECK_M4): Normalize the path of input
    files in error messages.

commit b88955b124483559dc8208fce4476fab4d9e04f6
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 14:12:27 2001 +0000

    * tests/testsuite.at (AT_CHECK_M4): Anchor M4PATH in $top_srcdir.
    * tests/others.at: Adjust input files paths.
    * tests/atconfig.in: Set top_builddir.
    * tests/Makefile.am: Adjust.
    `testsuite' is in src, not build.

commit aae20667c49046701439b0063efc379e084c2ab1
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 13:41:35 2001 +0000

    Regen.

commit 7d3c16a8d64befadb5fb9a90ff2ada8daf56b0a9
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 13:02:15 2001 +0000

    * tests/Makefile.am (EXTRA_DIST): Ship generate.awk.
    (generate.at): Install a temporary hack until the actual
    generate.awk is added to the repository.
    * tests/atconfig.in: New.

commit 645c8bc7d48995f31a447209923b2d419b890e73
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 13:00:17 2001 +0000

    Add.

commit 98eb21193ee0196e7405d21e74beedccc8b21053
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 12:57:22 2001 +0000

    Really apply the patch ``Drop Autoconf 2.13 compatibility.''

commit ed9586e13a9792ea6506e98ed12f6aec91be9929
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 12:55:56 2001 +0000

    More ignores.

commit f4fd08cf292478d64b2d3721ee9cb6fa2a300101
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 12:13:26 2001 +0000

    Fix a serious problem with a patch application.

commit ea3281fd04adff13366a2b98f6bf996dd7a02350
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 12:06:17 2001 +0000

    * doc/m4.texinfo: Promote proper quotation.

commit 05b5a5eeda823863c2979496c805cd88e4d081b6
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 12:05:50 2001 +0000

    Remove the non Autotest tests.
    * tests/other-tests/capitalize.test,
    * tests/other-tests/changeword.test,
    * tests/other-tests/comments.test, tests/other-tests/ddivert.test,
    * tests/other-tests/debug.test,
    * tests/other-tests/discard-comments.m4,
    * tests/other-tests/discard-comments.test,
    * tests/other-tests/esyscmd.test, tests/other-tests/exp.test,
    * tests/other-tests/foreach.test, tests/other-tests/forloop.test,
    * tests/other-tests/frozen.m4, tests/other-tests/fstab.test,
    * tests/other-tests/gmp.m4, tests/other-tests/gmp.test,
    * tests/other-tests/hanoi.test,
    * tests/other-tests/import-environment.m4,
    * tests/other-tests/import-environment.test,
    * tests/other-tests/include.test, tests/other-tests/indir.test,
    * tests/other-tests/iso8859.m4, tests/other-tests/iso8859.test,
    * tests/other-tests/misc.test, tests/other-tests/modfreeze.test,
    * tests/other-tests/modpath1.test, tests/other-tests/modpath2.test,
    * tests/other-tests/modpath3.test, tests/other-tests/modpath4.test,
    * tests

commit 0130b158df166aba38c4e47059d611e60bb7eca2
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:58:27 2001 +0000

    others.at no longer depends on other-tests/.
    * tests/others.at (stackovf): You're actually...
    (sync-lines): this.
    (modfreeze, modpath1, modpath2, modpath3, modpath4, modtest, shadow)
    (unload.test): Keep their authorship.
    (discard-comments, gmp, import-environment, modfreeze)
    (sync-lines): Embed the input files.
    * tests/stackovf.test: Copy from other-tests/stackovf.test.
    * tests/iso8850.m4: Copy from other-tests/iso8859.m4.

commit 3d6033fefc39d0636a6614b7fb7ec0b2cc5024b3
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:51:58 2001 +0000

    * doc/m4.texinfo (Esyscmd): Fix the paths in the Vice example.
    (M4exit): Tag the exit status of the example.
    * tests/get-them: Adjust.
    * tests/generate.awk: New, based on get-them.
    * tests/Makefile.am: Adjust to generate `generated.at'.
    * tests/testsuite.at: Adjust.
    (AT_CHECK_M4): Don't overquote.  Blush...

commit c0f68e401529f2a2afb3465fcdb42fadc0eaf9a4
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:51:45 2001 +0000

    Start using Autotest.  atconfig creation is still lacking.
    * examples/patsubst.m4, modules/modtest.m4, modules/shadow.m4,
    * examples/reverse.m4, tests/other-tests/import-environment.m4,
    * tests/other-tests/iso8859.m4: Don't produce trailing blanks.
    * tests/other-tests/import-environment.test: Don't check LANGUAGE
    as it might be `unset', or set to `C'.
    * tests/other-tests/iso8859.test, tests/other-tests/modpath1.test,
    * tests/other-tests/modpath2.test, tests/other-tests/modpath3.test,
    * tests/other-tests/modpath4.test, tests/other-tests/modtest.test,
    * tests/other-tests/patsubst.test, tests/other-tests/reverse.test,
    * tests/other-tests/shadow.test: Adjust.
    * tests/testsuite.at, tests/others.at: New.
    * tests/Makefile.am: Adjust.

commit 27589afca4d1ed2ebe45d3084f7047cb693d7716
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:51:12 2001 +0000

    Drop Autoconf 2.13 compatibility.
    * configure.in (changeword): No need to undefine it, as anyway if
    it's defined, M4sugar moved it as m4_changeword.
    And anyway, proper quotation is enough.
    (m4_pattern_allow): As it exists in 2.50, just use it.
    (AC_OUTPUT): Split in AC_CONFIG_FILES and AC_CONFIG_COMMANDS.
    Don't handle Gettext's duties, let it handle them.
    * config/gnu-obstack.h: Use m4_pattern_allow directly.
    # Configure template for GNU m4.                    -*-Autoconf-*-
    # Copyright 1991-1994, 2000, 2001  Free Software Foundation, Inc.
    # This program is free software; you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation; either version 2 of the License, or
    # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
    # 02111-1307  USA
    AC_PREREQ(2.52)
    AC_CONFIG_SRCDIR([src/m4.h])
    AC_CONFIG_AUX_DIR(config)
    AM_CONFIG_HEADER(config.h:config-h.in)
    AC_PROG_CC
    AC_ISC_POSIX
    AC_PROG_CPP
    AC_PROG_CC_C_O
    ALL_LINGUAS="

commit 8084dbb14bef5a65d21fcb616c5f1fbacaae77d6
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:50:14 2001 +0000

    * modules/Makefile.am (ETAGS_ARGS): New.

commit 60c55d1a1f7d2524836ba11bf1c20182c68959f2
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:48:28 2001 +0000

    * m4/symtab.c (m4_hack_all_symbols, m4_lookup_symbol): Formatting
    changes.

commit a763a4e40cf762e5e6ba36d0f97f25378bca4378
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:48:15 2001 +0000

    * m4/builtin.c (m4_macro_define): Do not reset SYMBOL_TRACED.

commit fbc93405e609fd09a51346166d3800dd325a6e10
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 17 11:40:46 2001 +0000

    * m4/m4module.h (m4/list.h): Don't include it.

commit 93f6aa339d5a8443ae14108b62fc5e1ab113781f
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 16 22:21:30 2001 +0000

    m4_modules are no more, we use lt_dlhandles directly and let
    latest libltdl features manage the list of loaded modules.
    * acinclude.m4: Regenerated.
    * m4/ltdl.c: Updated from master copy.
    * m4/module.c: Reimplemented to take advantage of advances in
    libltdl.
    * m4/builtin.c (m4_builtin_find_by_name): Traverse loaded module
    list with lt_dlhandle_next.
    (m4_builtin_find_by_func): Ditto.
    (m4_builtin_table_install): Use lt_dlhandle.
    (m4_macro_define): Ditto.
    (m4_macro_table_install): Ditto.
    m4/module.h: Prototype new module management API.
    (m4_modules): No longer required.
    (m4_module_init_t, m4_module_finish_t): POSIX namespace
    violations, renamed to...
    (m4_module_init_func, m4_module_finish_func): ...these,
    respectively.
    (M4INIT_HANDLER): Clean way to declare init functions in modules.
    (M4FINISH_HANDLER):  And similarly for finish functions.
    * m4/system.h (_CONC): Used by M4INIT_HANDLER and M4FINISH_HANDLER
    -- Add indirection to the CONC macro so that arguments are
    correctly expa

commit ec17d26c75af6bf96fccdd6cdf0184c43eac1f82
Author: Akim Demaille <address@hidden>
Date:   Wed Aug 15 11:47:40 2001 +0000

    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Be sure `m4/' exists
    when creating `m4/obstack.h'.
    * tests/Makefile.am (TESTS_ENVIRONMENT): Pass top_srcdir and
    top_builddir.
    * tests/defs: Make them absolute.
    (CDPATH) Neutralize.
    * tests/gethem: Use them.

commit 8a5a465d36100bd1ee85a822b565464fc323ff32
Author: Akim Demaille <address@hidden>
Date:   Wed Aug 15 11:47:11 2001 +0000

    Regen.

commit 2e95948db4b8ddb5f4c474a89a009f1a9e8ee71b
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Aug 14 02:43:34 2001 +0000

    * config/ltmain.sh: Doh!  Import again for a quoting fix that
    prevented any regression test from passing.

commit 3e94491ce48d87420b5b38cf5e7a274e6539a600
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Aug 14 02:39:28 2001 +0000

    * m4/m4module.h (obstack.h): Choose between installed version
    and shipped version based on configure tests.
    * src/freeze.c (obstack.h): Ditto.

commit 3b2a4b3ca75d4b74febc58f70f4ad46480036898
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Aug 14 02:26:11 2001 +0000

    * acconfig.h: Removed.  No longer required.

commit f4ffb2431e6587ba074f91036ee9ac6cdb88f327
Author: Gary V. Vaughan <address@hidden>
Date:   Tue Aug 14 01:19:07 2001 +0000

    * bootstrap: Rewritten to play nicely with Autoconf 2.5x.
    * configure.in (MY_NAME, MY_VERSION): Define these once, and feed
    them to AC_INIT and AM_INIT_AUTOMAKE.
    * Makefile.am (AUTOMAKE_OPTIONS): Remove `gnits' which would
    disallow MY_NAME and MY_VERSION arguments to AM_INIT_AUTOMAKE.
    * config/gnu-obstack.m4 (M4_AC_FUNC_OBSTACK): Don't choke on
    shell variable m4_cv_func_obstack_h.
    * tests/defs (M4): Be more careful about relative path to libtool
    script and m4 binary by using $srcdir.

commit b51fc681d0bb8b6d1e3dbbb0fa32bd8851ff6fd8
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Aug 13 23:37:43 2001 +0000

    * src/main.c (main): Use lt_dlinsertsearchdir to prepend -M
    optargs to the existing libltdl search path.
    * acinclude.m4: Regenerate from latest libtool,m4 and ltdl.m4.
    * m4/ltdl.c: Updated.
    * m4/ltdl.h: Ditto.
    * config/ltmain.sh: Ditto.

commit 5be9d6aa86557e2ada201b21629fd5a487c86fb4
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Aug 11 01:32:24 2001 +0000

    * src/main.c (main): Add `-b' (for `batch') mode switch to force
    interactive mode off.

commit 7915ef6640ed995ba23f3bd5691eca527d1b9a8d
Author: Akim Demaille <address@hidden>
Date:   Fri Aug 10 12:28:39 2001 +0000

    * configure.in: Require Autoconf 2.52.
    (AC_ARG_PROGRAM): Remove, handled by Automake.
    (m4_getopt): Rename as...
    (m4_getopt_h): this.
    Allow the tokens `m4_cv_*', `m4_top_srcdir', and `m4_getopt_h'.
    Undefine `changeword' only if defined.
    * config/gnu-obstack.m4: Require Autoconf 2.52.
    (M4_AC_FUNC_OBSTACK): Rename `m4_obstack' and `m4_obstack_h'.
    Allow this token.

commit f7c33a1dbd4f00f61d2d748629a171fb941671ce
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 9 21:25:43 2001 +0000

    * doc/m4.texinfo: Fix some typos, and apply some small
    clarifications.

commit 7072bc13847a549eca9d45b7502895e9a467bff5
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Aug 9 20:06:17 2001 +0000

    * src/main.c (main): Fix improper uses of error (missing format
    string).

commit 2e0ec781c8cf0048a9d5dcdb014de6b8225b5423
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Aug 8 23:45:14 2001 +0000

    * ChangeLog:  Cleaned.  Gettextize has a stutter

commit 01afe165555875aab03fdd92fcaeb8950a3ff01a
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 12:53:19 2001 +0000

    Improve `make distcheck'.
    * configure.in: Be sure to be able to run `mkconfig.sh' when src
    != build.
    * Makefile.am (dist-hook): Remove, as it is no longer needed.
    * doc/m4.texinfo (Include): Add missing blank.
    * m4/Makefile.am (EXTRA_DIST): Distribute gnu-obstack.h and
    obstack.c.

commit ac34892cc1049cae98cb287a5226abc282e0aac7
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 12:08:15 2001 +0000

    * m4/evalparse.c: A better introductory comment.
    * m4/m4module.h (M4_DEBUG_PRINT2): s/M4_debug/m4_debug/.
    * m4/macro.c: Adjust old comments.
    * modules/README: Typo.

commit f6955a7d11b3bc6cd3b5dc7c1498541dcd63e65b
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 10:41:11 2001 +0000

    Perl out the trailing blanks.

commit a46fe102feec96223fbd6c5a0fd2a0e4d7791c43
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 10:35:59 2001 +0000

    * m4/evalparse.c: A better introductory comment.
    * m4/m4module.h (M4_DEBUG_PRINT2): s/M4_debug/m4_debug/.
    * m4/macro.c: Adjust old comments.
    * modules/README: Typo.

commit d807e5bf7142f674fb34441d432a6650149ed7b8
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 10:26:06 2001 +0000

    More ignores, and fix some typos.

commit a09255b299d15e01f8467795a4d2a3a51214b1c1
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 10:23:50 2001 +0000

    * config/gnu-obstacks.m4: New.

commit d0cc02e609e7ddae65f2e5bd791ae145557262f0
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 10:02:25 2001 +0000

    * config/Makefile.am, config/stackovf.m4: New.
    * configure.in, Makefile.am: Adjust.

commit cbc2dc661092f724852613f4fff29a8de0b071ed
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 09:59:13 2001 +0000

    Update.

commit f67d711bb3f2859b488daded8bbc5b13b27fb5c5
Author: Akim Demaille <address@hidden>
Date:   Tue Aug 7 08:51:05 2001 +0000

    Update.

commit 0fb36e12c3269d59d40bf12d558ca25c030107dd
Author: Gary V. Vaughan <address@hidden>
Date:   Sun Apr 8 00:05:07 2001 +0000

    * modules/format.c (format):  Formatting for %f was not
    interpreting the position of the decimal point correctly for
    whole numbers.

commit 469788807b6d4decc9576f7caa30040074994426
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Dec 2 02:13:16 2000 +0000

    * TODO:  Removed m4exit bug.
    * modules/load.c (m4_resident_module): Make this module resident.
    * module/m4.c (m4_resident_module): Ditto.
    * m4/modules.c (m4_module_load):  Use new ltdl resident modules
    feature to mark modules as resident if they export
    `m4_resident_module' as TRUE.
    (m4_module_unload): Do not remove resident modules, and take care
    with symbol insertion and deletion with resident modules.
    * m4/ltdl.c, m4/ltdl.h: Update to latest unreleased versions to
    use resident modules feature.

commit a22e63db30c535a04cfacf7e7f9f8871658aa388
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Dec 1 01:22:41 2000 +0000

    * TODO: Updated.  Removed some cruft that has since been fixed
    or implemented.  Added some more entries.
    * NEWS: Updated.
    * README: Updated.
    * modules/README: Updated.
    * doc/m4.texinfo: Updated.
    
    * modules/gnu.c (builtin_functions): Make indir orthogonal to
    builtin, in that each is recognised as a macro only with parameters
    (builtin_indir): Passing 0 arguments is now an error, as with
    builtin.
    
    * src/main.c (usage): Added missing description of `-c' option.

commit e3edaa5279a297133bd148fc0852e2b17198f282
Author: Gary V. Vaughan <address@hidden>
Date:   Thu Nov 30 01:00:53 2000 +0000

    Consolidate the myriad of dispersed test scripts into the
    tests subdirectory.  I think I now have all the file where I
    want them, so there shouldn't be anymore upheaval =)O|
    Honest!
    * tests/Makefile.am: Updated to run the new tests added below.
    * tests/other-tests/capitalize.test, tests/other-tests/comments.test,
    tests/other-tests/ddivert.test, tests/other-tests/debug.test,
    tests/other-tests/esyscmd.test, tests/other-tests/exp.test,
    tests/other-tests/foreach.test, tests/other-tests/forloop.test,
    tests/other-tests/frozen.m4, tests/other-tests/fstab.test,
    tests/other-tests/hanoi.test, tests/other-tests/include.test,
    tests/other-tests/indir.test, tests/other-tests/misc.test,
    tests/other-tests/modfreeze.test, tests/other-tests/modpath1.test,
    tests/other-tests/modpath2.test, tests/other-tests/modpath3.test,
    tests/other-tests/modpath4.test, tests/other-tests/modtest.test,
    tests/other-tests/multiquotes.test, tests/other-tests/patsubst.test,
    tests/other-tests/pushpop.test, tests/oth

commit 799a7195748a4baa2f8bc0bddf930f1f57981917
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Nov 29 23:26:08 2000 +0000

    Move the implementation of GMP support for the mpeval() builtin
    into a loadable module that depends on libgmp.  mpeval() and
    eval() share a common parser, now in m4/evalparser.c; the code
    in m4/numb.c and m4/numb.h is now physically split between
    m4/eval.c (the eval() backend) and modules/mpeval.c (the
    mpeval() backend), rather than being differentiated by cpp
    macros and multiple inclusion.  The mpeval module is always
    built but will generate an diagnostic if it is used from an
    installation that didn't link in the gmp library.
    * modules/Makefile.am: build and install the new mpeval module.
    * modules/mpeval.c: Now contains the former parts of m4/numb.c
    and m4/numb.h that are required for gmp support in mpeval().
    * m4/Makefile.am (libm4_la_SOURCES): Removed evalmp.c.
    * m4/evalmp.c:  Removed.
    * m4/m4module.h: Removed conditional prototype for
    m4_mp_evaluate().
    * m4/eval.c: Rewritten.  Contains the former parts of m4/numb.c
    and m4/numb.h that do not rely on gmp.
    * m4/evalparse.c

commit d7c7dd09fbf95405228c77f32f8f59acc1f27139
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Nov 29 23:13:02 2000 +0000

    * tests/other-tests/changeword.test: New test.  Rudimentary
    testing of changeword builtin runs only if --wnable-changeword
    was used at configure time.
    * tests/mkconfig.sh: Solaris sed (at least) does not parse nested
    alternation correctly.  Split into two expressions to compensate.
    * m4/input.c (m4_input_init): Use m4_ prefix on m4_set_word_regexp.
    * modules/Makefile.am: Build changeword module.
    * modules/changeword.c (m4_macro_table): Define __m4_changeword__
    only when --enable-changeword was passed to configure.
    (builtin_changeword): If --enable-changeword was not used, then
    report that changeword() builtin has no support in m4 binary.

commit cd20972ba0020647c9109a03b63006a4e61cb6ca
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Nov 29 00:20:48 2000 +0000

    Remove generated files from CVS.

commit b4925d1d03d740be6e518d2851034357739645c9
Author: Gary V. Vaughan <address@hidden>
Date:   Wed Nov 29 00:18:03 2000 +0000

    * src/main.c (main): Fixed a particularly nasty bug is
    user_search_path setting -- the -M flag processing must be
    extremely careful with search path ordering, or else the default
    installed module directory (possibly containing modules from a
    previous release) is placed earlier in the search path than any -M
    arguments (which are relied upon to load uninstalled modules with
    most of the tests in the regresion suite).
    
    * modules/load.c (builtin_load):  Nasty hack to prevent adding
    symbols to symtab again if a module is loaded more than once.
    * modules/m4.c (builtin_ifelse): removed unused variable argv0.
    
    * m4/symtab.c (m4_remove_table_reference_symbols):  Fixed a
    possible NULL pointer dereference.
    
    * m4/module.c (m4_module_find_by_modname): Renamed from
    m4_module_modname_find.   Fixed all references.
    (m4_module_find_by_builtin):  New function.
    
    * modules/modfreeze.test: load the `load' module with each
    invocation.
    * src/freeze.c (produce_frozen_state): Simplified in light of
    module field in m4_symbol.  Allow a third argument for text macros
    to name the originating module.
    (reload_frozen_state): ditto.
    * m4/m4module.h:  Fixup prototypes.
    * m4/builtin.h (m4_builtin_define): Add a module argument so
    that symbols can be registered against the defining module.
    (m4_macro_define): ditto.
    * m4/m4private.h (m4_symbol): Make the module field const to save
    on casting in the rest of the code.
    (SYMBOL_MODULE): New macro.
    
    * m4/symtab.c (m4_remove_table_reference_symbols): Fixed stupid
    symbol reference maintenance bugs when removing a symbol from the
    symtab.
    
    * src/stackovf.c (setup_stackovf_trap): Fixed some memory leaks.
    
    * configure.in (m4_cv_func_obstack): A better check for whether
    libc has an obstack implementation.
    * m4/Makefile.am (EXTRA_libm4_la_SOURCES): add gnu-obstack.h.

commit 74724608de4b22cd753abf0b7822b467be8a3147
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Nov 27 23:28:45 2000 +0000

    * configure.in (--with-modules): Changed semantics.  This
    option is now used to list modules to be preopened.
    * src/m4.h: #include "ltdl.h" unconditionally.
    * src/main.c: Removed all dependencies on WITH_MODULES.
    * src/freeze.c: ditto.
    * modules/Makefile.am: ditto.
    * m4/m4.c (builtin_m4exit): ditto.
    * modules/modpath1.test: ditto.
    * modules/modpath2.test: ditto.
    * modules/modpath3.test: ditto.
    * modules/modpath4.test: ditto.
    * modules/modtest.test: ditto.
    * modules/shadow.test: ditto.
    * modules/unload.test: ditto.
    
    * m4/Makefile.am (libm4_la_SOURCES): Removed obstack.c, since it
    comes up on demand in LTLIBOBJS now.
    * configure.in (getopt_long):  Creating and relying on a link for
    getopt.h on hosts with no getopt_long() of thier own works
    correctly now.  This is necessary so that callers of getopt_long()
    can simply `#include <getopt.h>': the naive way of doing this
    would end up using our own getopt.h and the installed
    getopt_long(), which is asking for trouble!
    (obstack_init): A similar argument applies to obstack.h and
    obstack_init().

commit effe106d7f2145fb62e9c9d4e9985d0dcca1d88a
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Nov 27 22:54:22 2000 +0000

    * m4/Makefile.am (libm4_la_SOURCES): Removed obstack.c, since it
    comes up on demand in LTLIBOBJS now.
    * configure.in (getopt_long):  Creating and relying on a link for
    getopt.h on hosts with no getopt_long() of thier own works
    correctly now.  This is necessary so that callers of getopt_long()
    can simply `#include <getopt.h>': the naive way of doing this
    would end up using our own getopt.h and the installed
    getopt_long(), which is asking for trouble!
    (obstack_init): A similar argument applies to obstack.h and
    obstack_init().

commit a8a58f3171f5ce7c1e7655d421b0ceb42d66d043
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Nov 27 22:48:11 2000 +0000

    Clear up the file droppings from a cvs -nq up.

commit 5e27e0df7b13906d07ab6cea3abd46968a9b6291
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Nov 27 22:26:42 2000 +0000

    * m4/ltdl.c: Upgraded to latest bleeding edge version again.
    On Solaris-2.5 (at least) the native dlopen implementation
    gets confused about m4.o when looking for module "m4".  This
    version always looks for .la an .$lib_ext suffixed names first
    to work around the problem.  Sigh.

commit a95a114b1d01028c1ea4d5b8e151a4453823694e
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Nov 27 22:20:03 2000 +0000

    Should have been cvs rm'ed a while back...

commit 5e8200459bcdbfa46b6a70cd1054fb470db052ed
Author: Gary V. Vaughan <address@hidden>
Date:   Mon Nov 27 22:19:26 2000 +0000

    * po/POTFILES.in: Take account of these file movements.
    * src/Makefile.am (m4_SOURCES): removed eval.c.
    (EXTRA_m4_SOURCES): removed numb.c and numb.h.
    * m4/Makefile.am (libm4_la_SOURCES): added eval.c.
    (EXTRA_libm4_la_SOURCES): added numb.c and numb.h.
    * modules/m4.c (builtin_eval): Use m4_evaluate().
    * m4/eval.c: Moved here from src/eval.c to facilitate
    implementation of eval() builtin as part of the `m4' loadable
    module.
    (m4_evaluate): renamed from evaluate for namespace cleanliness.
    * m4/numb.c: Moved here from src/numb.c, since it is #included
    into eval.c at compile time.
    * m4/m4module.h (m4_evaluate): Added prototype.
    * src/m4.h (evaluate): Removed prototype.

commit 8a78ed8bfdd9eece7c3c411b7638e44008546ad6
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 03:29:06 2000 +0000

    * modules/perl.c (builtin_perleval):  Use PL_na for
    compatibility with perl-5.6.

commit bf75b7c5a25393af1e559493bf9517f24f3c8104
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 02:55:23 2000 +0000

    * src/main.c (main):  It is now safe to
    ``m4_module_install("m4")'', without tripping over the m4
    binary itself!
    * m4/ltdl.h, m4/ltdl.c: Upgraded to latest bleeding edge
    versions having fixed the insidious module search order bug.

commit 7c0bd3da051ad3bca42588af4ebcd4ec7cf01190
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 01:23:43 2000 +0000

    Regenerated.

commit dff82f53d81650751297e797e3cc9327f8410f27
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 01:23:04 2000 +0000

    * m4/Makefile.am (libm4_la_LIBADD): New magic -- we are
    supposed to be using @LIBADD_DL@; @DLLDFLAGS@ is dead.

commit b3d254d4b5d211cb26d736efa02fe5af05c36076
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 01:20:41 2000 +0000

    * configure.in: Figure out whether to use the installed
    getopt.h or the supplied one.
    * src/Makefile.am: ditto.

commit 65f6dfc35b48f124bb7dc3a0e26d0c30abffa464
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 01:12:51 2000 +0000

    These files are generated, and needn't be in CVS.

commit ee58dbb3adea45f715f4d8d0b7d8c2ab13435add
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 01:11:42 2000 +0000

    * po/POTFILES.in: List files in their new positions.

commit 1b291af14992d6d330e7fd034d7103da4353f85d
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 00:36:24 2000 +0000

    typo.

commit e9109737dc514fa3b338095cc910dc72de855625
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 00:29:17 2000 +0000

    mv m4.c main.c

commit 479ae72f19645ef8a2d5b742baccd285c64844a5
Author: Gary V. Vaughan <address@hidden>
Date:   Sat Nov 25 00:17:10 2000 +0000

    * config/ltmain.sh:  This needs to be checked in to match the
    libtool macros copied to acinclude.m4 (until a released
    libtool copes with m4's needs).
    * bootstrap:  Run gettextize.

commit 1691fa49fb62043d4f660397c2d15742cb2aa4dd
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Nov 24 23:24:33 2000 +0000

    Modularization of all builtins by extenstion of libm4.

commit c2f262a05ac862842363dd86ba47962009c068ac
Author: Gary V. Vaughan <address@hidden>
Date:   Fri Nov 24 01:31:32 2000 +0000

    Resynchronise with my local tree.

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


hooks/post-receive
--
GNU M4 source repository




reply via email to

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