| 2008-05-05 Gary V. Vaughan <gary@gnu.org> |
| |
| Factor load functionality into include builtin. |
| * m4/module.c (m4__module_open): Instead of calling lt_dlopenext |
| right away, use the preload hint first incase path searching has |
| been disabled by POSIXLY_CORRECT. Otherwise fallback to a |
| manual path search to override libltdl's algorithm. |
| * m4/m4module.h: Adjust. |
| * m4/path.c (FILE_SUFFIXES): Order to try suffixes in our path |
| search algorithm. |
| (NO_SUFFIXES): Alternatively, how to to search a path without |
| adding file suffixes. |
| (m4_path_search): Add a new suffixes parameter defaulting to |
| NO_SUFFIXES. Adjust all callers. |
| (m4_load_filename): New generic load function that tries to |
| open a matched file first as a module, and if that fails fall |
| back to as (possibly frozen) m4 input. |
| (m4_fopen): New function with close on exec functionality. |
| * modules/m4.c (include, sinclude): Use m4_load_filename to |
| overload these builtins to work with modules too. |
| * modules/load.c (load): Removed this builtin. |
| * src/main.c: Remove Dynamic loading features section, and |
| M4MODPATH support. |
| (long_options): Remove "load-module", "unload-module" and |
| "module-directory" options. |
| (OPTSTRING): Remove 'M' and 'm' options. |
| (process_file): Use m4_load_filename to support module names |
| on the command line. |
| * Makefile.am (TESTS_ENVIRONMENT): No need for abs_top_builddir |
| any more. |
| * doc/m4.texinfo: Update examples. |
| (Dynamic loading features, Load): Removed. |
| (Command line files): Describe how non-option arguments are |
| treated to try to find a matching macro file or dso. |
| (Include): Describe additional dso loading features if a |
| suitable text file cannot be found. |
| (Modules): Updated. |
| * tests/builtins.at, tests/m4.in, tests/modules.at, |
| tests/options.at: Adjust test cases and calling conventions |
| to new semantics. |
| * NEWS: Updated. |
| |
| 2008-05-05 Eric Blake <ebb9@byu.net> |
| |
| Stage 22: allow builtin token concatenation outside $@. |
| Adjust the input and argument parsing engines to append builtins |
| alongside text. Make define warn when builtins must be |
| flattened. |
| Memory impact: slight penalty, with fewer builtins flattened. |
| Speed impact: slight penalty, from more bookkeeping. |
| * 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. |
| |
| 2008-05-03 Eric Blake <ebb9@byu.net> |
| |
| Document define_blind. |
| * doc/m4.texinfo (Ifelse): Add a new composite macro. |
| * THANKS: Update. |
| Suggested by Mike R. |
| |
| 2008-05-01 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 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. |
| |
| 2008-04-21 Eric Blake <ebb9@byu.net> |
| |
| Simplify previous patch. |
| * tests/m4.in: Compress assignment. |
| Suggested by Gary V. Vaughan. |
| |
| Fix --disable-shared testsuite regression from previous patch. |
| * tests/m4.in: Export M4MODPATH, so that recursive m4 invocations |
| will also work. |
| |
| Fix spelling of attribution to Christopher Strachey. |
| * doc/m4.texinfo (History, Inhibiting Invocation): Fix typo. |
| * THANKS: Update. |
| Reported by Fernando Carrijo. |
| |
| 2008-04-17 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-04-15 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 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. |
| |
| 2008-04-14 Eric Blake <ebb9@byu.net> |
| |
| Stage 21b: $@ concatenates builtins, m4wrap takes builtins. |
| Improve arg_print to handle builtin tokens when printing to a |
| known chain, rather than always flattening builtins. This allows |
| m4wrap and $@ back-references to handle embedded builtin tokens. |
| Memory impact: none. |
| Speed impact: slight penalty, from more bookkeeping. |
| * 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. |
| |
| Stage 21a: Optimize checks for end of input. |
| Create a new polymorphic input block type, which always fails with |
| CHAR_EOF, so that remaining input routines no longer have to check |
| for NULL input block. |
| Memory impact: none. |
| Speed impact: noticeable improvement, from fewer conditionals. |
| * 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. |
| |
| 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. |
| |
| Ensure __m4_version__ is unquoted. |
| * tests/builtins.at (__m4_@&t@version__): Augment test. |
| |
| Avoid GNU make failure on tarball. |
| * Makefile.am (EXTRA_DIST): Distribute cfg.mk and maint.mk. |
| |
| 2008-04-10 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 2008-04-09 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-04-08 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-03-28 Eric Blake <ebb9@byu.net> |
| |
| Use GNUmakefile module. |
| * ltdl/m4/gnulib-cache.m4: Import gnumakefile module. |
| * Makefile.am: Split off maintainer rules... |
| * maint.mk: ...into this new file. |
| |
| 2008-03-18 Eric Blake <ebb9@byu.net> |
| |
| Stage 20b: make m4wrap obey POSIX fifo ordering. |
| Improve input engine to support location changes within symbol |
| chains, then convert m4wrap to always build symbol chain. |
| Memory impact: none. |
| Speed impact: slight penalty, from more m4wrap bookkeeping. |
| * 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. |
| |
| 2008-03-17 Eric Blake <ebb9@byu.net> |
| |
| Stage 20a: reduce unget's in input engine. |
| Now that out-of-range input placeholders like CHAR_BUILTIN are |
| consumed outside of next_char, next_token should always consume |
| rather than peek at the first character. Fewer peeks results in |
| less ungetc overhead. |
| Memory impact: none. |
| Speed impact: noticeable improvement, from fewer function calls. |
| * 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. |
| |
| Update for fresh bootstrap. |
| * ltdl/m4/gnulib-cache.m4: Updated copyright from upstream. |
| |
| 2008-03-15 Eric Blake <ebb9@byu.net> |
| |
| 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 composite macro join. |
| (Incompatibilities): Move documentation of LIFO vs. FIFO... |
| (M4wrap): ...here, to match improved example. |
| |
| 2008-03-13 Eric Blake <ebb9@byu.net> |
| |
| Stage 19c: allow builtin tokens in more macros. |
| Allow builtin tokens inside symbol chains, although for now, they |
| are not allowed inside comments or quotes. Enable builtin token |
| handling in more macros, if only to consistently diagnose invalid |
| macro names. |
| Memory impact: none. |
| Speed impact: slight impact, due to more bookkeeping. |
| * 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. |
| |
| Stage 19b: invert sense of bit for handling builtin tokens. |
| Pass builtin tokens by default, rather than as the exception, so |
| that the logic can consistently refer to flattening arguments. |
| Memory impact: none. |
| Speed impact: none. |
| * 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. |
| |
| Stage 19a: sort and cache builtins loaded by a module. |
| Rather than repeatedly using dlsym to browse the builtin table, |
| copy off the table at module load time. Then, the input engine |
| merely refers to the copy instead of duplicating information. |
| Memory impact: slight penalty, due to more memory per module, but |
| offset by less memory in input engine. |
| Speed impact: slight improvement, due to faster builtin lookups. |
| * 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. |
| |
| 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. |
| |
| 2008-03-06 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-03-04 Eric Blake <ebb9@byu.net> |
| |
| The gnulib module free was deprecated. |
| * ltdl/m4/gnulib-cache.m4: Remove free module. |
| |
| 2008-02-29 Eric Blake <ebb9@byu.net> |
| |
| Import news from 1.4.10b. |
| * NEWS: Update from branch. |
| |
| 2008-02-23 Eric Blake <ebb9@byu.net> |
| |
| Stage 18: try harder to reuse argv in recursion. |
| When pushing arguments that contain an existing $@ ref, reuse the |
| ref rather than creating another layer of wrappers. |
| Memory impact: noticeable improvement, due to better $@ reuse. |
| Speed impact: noticeable improvement, due to O(n^2) to O(n) |
| reduction in unboxed 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. |
| |
| 2008-02-22 Eric Blake <ebb9@byu.net> |
| |
| Update NEWS. |
| * NEWS: Document change to __gnu__ on 2008-02-11. |
| |
| Stage 17: pass argv through quoted strings. |
| Allow the concatenation of $@ references with other text input |
| inside quoted contexts, which requires distinguishing between a |
| wrapper around many arguments vs. a reference serving as part of a |
| single argument. Also optimize based on whether argv contains |
| builtin tokens that might need flattening to the empty string. |
| Memory impact: noticeable improvement, due to O(n^2) to O(n) |
| reduction from total reuse of $@ references. |
| Speed impact: noticeable improvement, due to O(n^2) to O(n) |
| reduction in boxed recursion. |
| * 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. |
| |
| 2008-02-22 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2008-02-20 Eric Blake <ebb9@byu.net> |
| |
| Stage 16: cache quotes and improve m4_arg_print. |
| Cache rather than always copying quotes when pushing $@ refs; in |
| particular, reconstruct single-byte quotes on the fly. Allow NUL |
| through m4wrap. Improve sharing of code that prints arguments. |
| Memory impact: slight improvement, due to cached quotes. |
| Speed impact: slight improvement, due to less copying. |
| * 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. |
| |
| 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. |
| |
| * doc/m4.texinfo (Debuglen, Changesyntax): Fix typos. |
| |
| 2008-02-19 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| * src/main.c (usage): Fix typo. |
| |
| 2008-02-18 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-02-16 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| Stage 15: return argv refs back to collect_arguments. |
| Collect an entire $@ reference at once rather than one argument at |
| a time, outside of quotes (but inside quotes, $@ is still |
| flattened for now). The skip_last field allows concatenation of |
| $@ with other text when collecting arguments. |
| Memory impact: noticeable improvement, due to better reuse of $@. |
| Speed impact: noticeable improvement, due to less parsing. |
| * 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. |
| |
| 2008-02-15 Eric Blake <ebb9@byu.net> |
| |
| * modules/gnu.c (regexp_compile): Use a fastmap for regex speed. |
| |
| 2008-02-13 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-02-11 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| Use gnulib's git-merge-changelog driver when available. |
| * .gitattributes: Add merge attributes for ChangeLog. |
| * bootstrap: Install driver, if not already present. |
| |
| 2008-02-06 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| Using raw strtod is not portable. |
| * ltdl/m4/gnulib-cache.m4: Import the strtod module. |
| |
| 2008-02-02 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| Stage 14b: allow pushing argv references. |
| Push a $@ reference to the input engine in one go, rather than |
| pushing each element. For now, argument collection still gets one |
| argument of a $@ at a time; but the penalties of this patch make |
| it easier to manage $@ efficiently in future patches. |
| Memory impact: noticeable penalty, due to larger struct and O(n) |
| to O(n^2) on unboxed recursion. |
| Speed impact: noticeable penalty, due to more bookkeeping. |
| * 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. |
| |
| Stage 14a: allow printing argv references. |
| Refactor symbol-value printing code for better sharing, and to |
| allow printing a contiguous text representation of a $@ ref. |
| Memory impact: none. |
| Speed impact: none. |
| * 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. |
| |
| 2008-01-31 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-01-31 Gary V. Vaughan <gary@gnu.org> |
| and Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-01-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| Fix build failure if installed libltdl is used. |
| * Makefile.am (m4_libm4_la_DEPENDENCIES): Use $(LTDLDEPS). |
| |
| 2008-01-28 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-01-27 Eric Blake <ebb9@byu.net> |
| |
| Stage 13: push composite text tokens. |
| Support pushing composite tokens, allowing back-references to be |
| reused through multiple macro expansions. Add hueristic that |
| avoids creating new reference when pushing existing references. |
| Memory impact: noticeable improvement due to better reference |
| reuse, except for O(n) to O(n^2) copying in boxed recursion. |
| Speed impact: slight penalty, due to more bookkeeping. |
| * 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. |
| |
| 2008-01-26 Eric Blake <ebb9@byu.net> |
| |
| Stage 12c: add macro for m4_arg_len. |
| Make a common action easier to type. |
| Memory impact: none. |
| Speed impact: none. |
| * 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. |
| |
| Stage 12b: add m4_string_pair. |
| Make passing quote delimiters around more efficient. |
| Memory impact: none. |
| Speed impact: slight penalty, due to more bookkeeping. |
| * 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. |
| |
| Stage 12a: make m4_symbol_chain a union. |
| Shrink size of symbol chains by using a union. |
| Memory impact: slight improvement, due to smaller struct. |
| Speed impact: slight improvement, due to less bookkeeping. |
| * 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, composite_print, 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. |
| |
| 2008-01-23 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-01-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| and Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2008-01-22 Eric Blake <ebb9@byu.net> |
| |
| Doc tweak. |
| * doc/m4.texinfo (Renamesyms): Avoid underfull hbox, and improve |
| example. |
| |
| 2008-01-21 Eric Blake <ebb9@byu.net> |
| |
| 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; O(n^2) to O(n) on boxed recursion. |
| 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. |
| |
| 2008-01-16 Eric Blake <ebb9@byu.net> |
| |
| Stage 10: avoid extra copying of strings and comments. |
| When collecting tokens that are immune to further expansion, avoid |
| copying data from one obstack to another by outputting it into the |
| destination obstack to begin with. Also reduce copying done in |
| format builtin. |
| Memory impact: slight improvement, due to better obstack usage. |
| Speed impact: noticeable improvement, due less data copying. |
| * 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. |
| |
| 2008-01-15 Eric Blake <ebb9@byu.net> |
| |
| * TODO: Update with some newer URLs. |
| |
| Verify linear `index'. |
| * tests/builtins.at (index): New test. |
| (translit): Make test take longer, to make quadratic algorithms |
| more apparent. |
| |
| 2007-12-20 Eric Blake <ebb9@byu.net> |
| |
| Stage 9: share rather than copy single-arg refs. |
| Use hooks of previous patch to create back-references to arguments |
| in the input engine, and inline short text rather than always |
| creating a FIFO link. Also start testing embedded NUL behavior. |
| Until the argument collection engine also shares references, the |
| memory usage increases. |
| Memory impact: noticeable penalty, due to longer life of argv |
| changing O(n) to O(n^2) on boxed recursion. |
| Speed impact: slight improvement, due less data copying. |
| * 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. |
| |
| 2007-12-17 Eric Blake <ebb9@byu.net> |
| |
| Stage 8: extend life of references into argv. |
| Add hooks to lengthen the lifetime of arguments reused in a macro |
| expansion, rather than always discarding arguments at the end of |
| expand_macro. Rework the expand_macro obstacks to handle longer |
| lifetimes. For now, the hooks remain unused. |
| Memory impact: slight penalty, due to larger structs. |
| Speed impact: slight penalty, due to more bookkeeping. |
| * 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. |
| |
| 2007-12-13 Eric Blake <ebb9@byu.net> |
| |
| Yet more rewording. |
| * doc/m4.texinfo (Inhibiting Invocation): Missed one instance in |
| the previous patch. |
| |
| * THANKS: Update. |
| |
| 2007-12-13 Paolo Bonzini <bonzini@gnu.org> (tiny change) |
| |
| * doc/m4.texinfo (Inhibiting Invocation): Fix quoting of a quoting |
| example. |
| Reported by Giovanni Toffetti. |
| |
| 2007-12-11 Eric Blake <ebb9@byu.net> |
| |
| Stage 7: use chained input support in input parser. |
| Allow the LIFO input engine to rescan a macro expansion composed |
| of smaller chunks of FIFO data, rather than the old approach of a |
| monolithic string. For now, all chunks are still copied. |
| Memory impact: slight penalty, due to FIFO chain overhead. |
| Speed impact: slight penalty, due to extra bookkeeping. |
| * 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. |
| |
| 2007-12-08 Eric Blake <ebb9@byu.net> |
| |
| Stage 6: convert builtins to push arg at a time. |
| Add new methods to factor all builtins whose expansion includes an |
| argument, making back-reference creation easier in future patches. |
| Factor out length-limited printing to obstacks, and use -1 rather |
| than 0 for unlimited length. |
| Memory impact: none. |
| Speed impact: slight improvement, due to better code sharing. |
| * 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. |
| |
| 2007-12-07 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| Stage 5: add notion of quote age. |
| Cache the quoting rules that were in effect when a string was |
| parsed, to avoid reparsing that string if no changequote or other |
| quote age change took place in the meantime. A quote_age of 0 is |
| always safe, but does not benefit from caching. |
| Memory impact: slight improvement, due to smaller struct in input |
| engine. |
| Speed impact: slight penalty, due to more bookkeeping. |
| * 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. |
| |
| 2007-12-04 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-11-29 Eric Blake <ebb9@byu.net> |
| |
| Stage 4: route indir, builtin through ref; make argv opaque. |
| Finish making struct opaque to all but the input engine, by |
| reworking obstack usage in expand_macro to better support creation |
| of a $@ reference. Canonicalize the empty argument, to allow |
| pointer comparison optimizations. |
| Memory impact: slight penalty, due to larger struct. |
| Speed impact: slight improvement, due to fewer function calls. |
| * 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. |
| |
| Stage 3b: cache length, rather than computing it, in modules. |
| Use cached token length in builtins and output engine. |
| Memory impact: none. |
| Speed impact: noticeable improvement, due to fewer function calls. |
| * 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. |
| |
| 2007-11-28 Eric Blake <ebb9@byu.net> |
| |
| Stage 3a: cache length, rather than computing it, in libm4. |
| Cache the length of a token in the input engine and symbol table, |
| to avoid repeating lots of strlen calls. Additionally, by using |
| obstack length rather than strlen, the input engine can now |
| support embedded NUL. |
| Memory impact: slight penalty, due to larger struct. |
| Speed impact: slight improvement, due to fewer function calls. |
| * 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. |
| |
| 2007-11-27 Eric Blake <ebb9@byu.net> |
| |
| Stage 2: use accessors, not direct reference, into argv. |
| Outside of macro.c, use accessor methods rather than direct access |
| into the argv struct. |
| Memory impact: none. |
| Speed impact: slight penalty, due to increased function calls. |
| * 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. |
| |
| 2007-11-24 Eric Blake <ebb9@byu.net> |
| |
| Stage 1: convert m4_symbol_value** into new object. |
| Pass a variable-size wrapper structure instead of an array to |
| builtins, so that subsequent optimizations in the structure need |
| not impact every builtin client. |
| Memory impact: slight penalty, since struct is larger than array. |
| Speed impact: slight penalty, due to increased bookkeeping. |
| * 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. |
| |
| 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. |
| |
| 2007-11-23 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 2007-11-14 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-11-13 Eric Blake <ebb9@byu.net> |
| |
| Note: Patches titled Stage 0 through N form a series of patches |
| which decreases the algorithmic complexity of tail recursion in |
| macro expansions from O(n^2) to O(n) in both time and memory, then |
| performs cleanups, such as handling of embedded NUL, made easier |
| by the code refactoring. |
| |
| Stage 0: Fix memory leak in tail recursion. |
| Free expansion text in the input engine as soon as it is parsed, |
| rather than when the recursive expansion completes. |
| Memory impact: noticeable improvement, due to reduction from |
| O(n^2) to O(n) on recursion. |
| Speed impact: minor improvement, due to better memory usage. |
| * m4/input.c (pop_input): Add flag parameter and return type. |
| (next_char): Adjust caller. |
| (m4_push_string_init): Let go of memory earlier. |
| |
| 2007-11-07 Eric Blake <ebb9@byu.net> |
| |
| * tests/macros.at (Rescanning macros): Test more corner cases. |
| |
| 2007-11-06 Eric Blake <ebb9@byu.net> |
| |
| * build-aux/mkstamp: Rename from ltdl/config/mkstamp. |
| |
| * Makefile.am (tests/package.m4): Work around bash bug. |
| Reported by Ralf Wildenhues. |
| |
| 2007-11-05 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-11-02 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| Update to recent gnulib changes. |
| * ltdl/m4/gnulib-cache.m4: Replace fprintf-posix, vasprintf-posix, |
| xprintf, and xvasprintf with xprintf-posix and xvasprintf-posix. |
| |
| 2007-11-01 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-10-31 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-10-28 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-10-28 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * Makefile.am: Adjust getopt handling to latest gnulib layout. |
| |
| 2007-10-27 Eric Blake <ebb9@byu.net> |
| |
| Document one use of changequote(`(',`)'). |
| * doc/m4.texinfo (Changequote): Add new test, based on recent |
| autoconf addition of m4_expand. |
| |
| 2007-10-24 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * Makefile.am (dist_pkgdata_DATA): Add examples/capitalize2.m4. |
| |
| 2007-10-22 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-10-18 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-10-09 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 2007-10-02 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-10-01 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-09-29 Eric Blake <ebb9@byu.net> |
| |
| Optimize for Autoconf usage pattern. |
| * modules/gnu.c (regexp, patsubst): Handle empty regex faster. |
| |
| * tests/testsuite.at (AT_CHECK_M4): Slight optimization. |
| |
| 2007-09-24 Eric Blake <ebb9@byu.net> |
| |
| Create .gitignore alongside .cvsignore. |
| * bootstrap (version control): Update to reflect git usage. |
| |
| 2007-09-13 Eric Blake <ebb9@byu.net> |
| |
| * AUTHORS: Fix typo. |
| |
| 2007-09-12 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2007-09-07 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| * AUTHORS: Simplify, to match libtool and autoconf layout. |
| * THANKS: Sync with branch. |
| |
| 2007-09-06 Eric Blake <ebb9@byu.net> |
| |
| 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_makeresident, m4_module_refcount): New functions. |
| (m4_module_unload, m4__module_next, m4__module_find): Use new |
| wrapper. |
| (m4__module_open): Populate new wrapper, and associate it with the |
| lt_dlhandle. |
| (m4__module_exit): Use new wrapper. |
| (module_remove): Likewise. Reclaim storage on last use. |
| (module_close): Delete, and inline into module_remove. |
| * m4/symtab.c (m4__symtab_remove_module_references): Use new |
| wrapper. |
| * modules/load.c (load_init): Use new API. |
| * modules/m4.c (m4_export_table): Kill unused declaration. |
| (m4_init): Use new API. |
| * modules/shadow.c (shadow_init): Use new API. |
| * src/main.c (main): Adjust callers. |
| * src/freeze.c (reload_frozen_state): Likewise. |
| * tests/modules.at (unload load module): New test. |
| |
| 2007-09-03 Gary V. Vaughan <gary@gnu.org> |
| |
| * bootstrap (ltdl/m4/.cvsignore): Add xstrtol module macros. |
| * src/m4/.cvsignore: Add xstrtol module sources. |
| |
| 2007-09-03 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2007-08-29 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2007-08-11 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-08-10 Eric Blake <ebb9@byu.net> |
| |
| Documentation improvements. |
| * doc/m4.texinfo (Defn): Resync with branch. |
| (Compatibility, Extensions): Sync with branch. |
| |
| 2007-08-07 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-08-06 Eric Blake <ebb9@byu.net> |
| |
| 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/evalparse.c: Likewise. |
| * modules/format.c: Likewise. |
| * modules/gnu.c: Likewise. |
| * modules/import.c: Likewise. |
| * modules/load.c: Likewise. |
| * modules/m4.c: Likewise. |
| * modules/m4.h: Likewise. |
| * modules/modtest.c: Likewise. |
| * modules/mpeval.c: Likewise. |
| * modules/perl.c: Likewise. |
| * modules/shadow.c: Likewise. |
| * modules/stdlib.c: Likewise. |
| * modules/time.c: Likewise. |
| * modules/traditional.c: Likewise. |
| * po/Makevars: Likewise. |
| * src/freeze.c: Likewise. |
| * src/m4.h: Likewise. |
| * src/main.c: Likewise. |
| * src/stackovf.c: Likewise. |
| * tests/builtins.at: Likewise. |
| * tests/freeze.at: Likewise. |
| * tests/generate.awk: Likewise. |
| * tests/m4.in: Likewise. |
| * tests/macros.at: Likewise. |
| * tests/modules.at: Likewise. |
| * tests/options.at: Likewise. |
| * tests/others.at: Likewise. |
| * tests/stackovf.test: Likewise. |
| * tests/testsuite.at: Likewise. |
| |
| 2007-07-22 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-07-20 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-07-16 Eric Blake <ebb9@byu.net> |
| |
| * po/POTFILES.in: Track recent translation additions from gnulib |
| updates. |
| |
| 2007-07-14 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-07-10 Eric Blake <ebb9@byu.net> |
| |
| 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.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/evalparse.c: Likewise. |
| * modules/format.c: Likewise. |
| * modules/gnu.c: Likewise. |
| * modules/import.c: Likewise. |
| * modules/load.c: Likewise. |
| * modules/m4.c: Likewise. |
| * modules/m4.h: Likewise. |
| * modules/modtest.c: Likewise. |
| * modules/mpeval.c: Likewise. |
| * modules/perl.c: Likewise. |
| * modules/shadow.c: Likewise. |
| * modules/stdlib.c: Likewise. |
| * modules/time.c: Likewise. |
| * modules/traditional.c: Likewise. |
| * po/Makevars: Likewise. |
| * src/freeze.c: Likewise. |
| * src/m4.h: Likewise. |
| * src/main.c: Likewise. |
| * src/stackovf.c: Likewise. |
| * tests/builtins.at: Likewise. |
| * tests/freeze.at: Likewise. |
| * tests/generate.awk: Likewise. |
| * tests/m4.in: Likewise. |
| * tests/macros.at: Likewise. |
| * tests/modules.at: Likewise. |
| * tests/options.at: Likewise. |
| * tests/others.at: Likewise. |
| * tests/stackovf.test: Likewise. |
| * tests/testsuite.at: Likewise. |
| |
| 2007-07-09 Eric Blake <ebb9@byu.net> |
| |
| * modules/format.c (format): Avoid undefined behavior with %c. |
| |
| 2007-07-01 Gary V. Vaughan <gary@gnu.org> |
| |
| The translation project has moved. |
| * bootstrap (func_get_translations): Use the new translation |
| project url. |
| (TP_URL): Removed. |
| |
| 2007-06-26 Karl Berry <karl@freefriends.org> (tiny change) |
| |
| Match Free Software Directory categories. |
| * doc/m4.texinfo (dircategory): Update. |
| |
| 2007-05-31 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-05-30 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-05-28 Eric Blake <ebb9@byu.net> |
| |
| * tests/options.at (--syncoutput): Add xfailed test. |
| |
| 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. |
| |
| 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. |
| |
| 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. |
| |
| 2007-05-25 Eric Blake <ebb9@byu.net> |
| |
| * m4/system_.h: Include <stdint.h>, for intmax_t. |
| * THANKS: Update. |
| Reported by Daniel Richard G. |
| |
| 2007-05-24 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 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. |
| |
| 2007-04-25 Eric Blake <ebb9@byu.net> |
| |
| Test that regression in 1.4.9's eval doesn't recur. |
| * doc/m4.texinfo (Eval): Check negative division. |
| * THANKS: Update. |
| |
| 2007-04-12 Eric Blake <ebb9@byu.net> |
| |
| Allow for running test in sticky or setgid directory. |
| * tests/builtins.at (mkdtemp): Adjust test. |
| |
| Don't test for broken sed too soon. |
| * tests/others.at (stdin seekable): Rearrange subtests. |
| |
| 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. |
| |
| Enable autobuild usage. |
| * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import |
| autobuild'. |
| * configure.ac (AB_INIT): Output autobuild information. |
| |
| 2007-04-11 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-04-10 Eric Blake <ebb9@byu.net> |
| |
| * tests/macros.at (Arity and defn): Fix quoting. |
| |
| 2007-04-09 Eric Blake <ebb9@byu.net> |
| |
| Address failure of 'seekable stdin' on Mac OS X. |
| * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import |
| fflush'. |
| |
| 2007-04-07 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-04-03 Eric Blake <ebb9@byu.net> |
| |
| * modules/m4.c (numb_ratio, numb_divide, numb_modulo): Avoid |
| SIGFPE on x86 architectures. |
| Reported by Ralf Wildenhues. |
| |
| 2007-04-02 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-04-02 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2007-04-02 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2007-03-28 Gary V. Vaughan <gary@gnu.org> |
| |
| * Makefile.am (stamp-vcl): Removed. |
| (CONFIG_STATUS_DEPENDENCIES): Depend directly on ChangeLog. |
| |
| 2007-03-28 Eric Blake <ebb9@byu.net> |
| |
| * src/main.c (usage): Improve note to TRANSLATORS. |
| * m4/system_.h (EXIT_FAILURE): Reflect gnulib changes. |
| |
| * tests/builtins.at (__m4_version__): Fix bug when TIMESTAMP is |
| empty. |
| |
| 2007-03-24 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2007-03-07 Eric Blake <ebb9@byu.net> |
| |
| * AUTHORS: Update |
| |
| 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. |
| |
| 2007-03-03 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2007-03-01 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo: Improve the indices. |
| (Concept index): Rearrange to be last. |
| (Sysval): Merge from branch. |
| |
| * doc/m4.texinfo (Syscmd, Esyscmd): Merge more doc sections. |
| |
| 2007-02-28 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 2007-02-26 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-02-25 M. Levinson <levinsm@users.sourceforge.net> (tiny change) |
| |
| * src/freeze.c (reload_frozen_state): Avoid dereferencing freed |
| memory. Fixes regression introduced 2007-01-20. |
| |
| 2007-02-25 Eric Blake <ebb9@byu.net> |
| |
| * tests/freeze.at (loading format 2): Augment test to catch |
| regression introduced on 2007-01-20. |
| * THANKS: Update. |
| Reported by M. Levinson. |
| |
| * m4/system_.h (includes, EXIT_SUCCESS, EXIT_FAILURE): Adjust to |
| latest gnulib. |
| |
| 2007-02-05 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * tests/others.at (stdin seekable): Fix bug in test. |
| * ltdl/m4/gnulib-cache.m4: Gnulib module strstr no longer exists. |
| |
| * m4/input.c (struct m4_input_block): Remove unused field traced. |
| |
| 2007-02-03 Eric Blake <ebb9@byu.net> |
| and Bruno Haible <bruno@clisp.org> (tiny change) |
| |
| * doc/m4.texinfo (Input processing, Quoting Arguments): Beef up |
| the examples. |
| Reported by Bruno Haible. |
| |
| 2007-01-31 Eric Blake <ebb9@byu.net> |
| |
| * m4/resyntax.c (m4_regexp_syntax_encode): Detect allocation |
| failure. |
| |
| 2007-01-26 Eric Blake <ebb9@byu.net> |
| |
| * m4/symtab.c (includes): Adjust to latest gnulib. |
| * modules/m4.c (includes): Likewise. |
| |
| 2007-01-23 Eric Blake <ebb9@byu.net> |
| |
| * 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 |
| m4wrap to obey POSIX. |
| (Using frozen files): Start merging from branch. |
| * NEWS: Update. |
| |
| 2007-01-20 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2007-01-16 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2007-01-15 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2007-01-13 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2007-01-12 Eric Blake <ebb9@byu.net> |
| |
| * 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'. |
| |
| 2007-01-08 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/m4.texinfo: Fix a couple of typos. |
| |
| 2007-01-08 Eric Blake <ebb9@byu.net> |
| |
| * ltdl/m4/gnulib-cache.m4: Update for new year. |
| * ltdl/m4/gmp.m4 (_M4_LIB_GMP): Cover all error cases. |
| Reported by Ralf Wildenhues. |
| |
| 2007-01-06 Eric Blake <ebb9@byu.net> |
| |
| * 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 parse radix 1 numbers. |
| (condition_term, comma_term): New parse functions. |
| (shift_term): Support >>>. |
| (m4_evaluate): Port patch from branch to output radix 1 numbers. |
| Warn instead of error for most parse problems. |
| * doc/m4.texinfo (Limits control, Eval): Document these changes. |
| * NEWS: Document new operators and new command line option. |
| |
| 2007-01-04 Eric Blake <ebb9@byu.net> |
| |
| * configure.ac (AC_SYS_LARGEFILE): Guarantee large file support. |
| |
| 2007-01-03 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-12-27 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo (Substr, Patsubst): Merge more sections from the |
| branch. |
| * modules/m4.c (substr): Merge from branch. |
| |
| 2006-12-26 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo (Changesyntax): Check for regressions with |
| changesyntax(W=...). |
| |
| 2006-12-22 Eric Blake <ebb9@byu.net> |
| |
| * 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, in order to match traditional |
| implementations. |
| * src/freeze.c (reload_frozen_state): Update caller. |
| * doc/m4.texinfo (Changequote, Changecom): Merge from branch, with |
| modifications. |
| (Changeresyntax): Revise to match style of surrounding sections |
| and add more examples. |
| (Changesyntax): Likewise, and update to new semantics. |
| * NEWS: Document this change. |
| |
| * doc/m4.texinfo (Operation modes): Avoid underfull hbox. |
| (M4wrap, Eval, Errprint): Fix typos. |
| (Divnum): Not necessary to redivert in example. |
| |
| 2006-12-21 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo (Len, Index macro, Regexp): More section merging |
| from branch. |
| |
| 2006-12-19 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-12-16 Eric Blake <ebb9@byu.net> |
| |
| * src/main.c: Fix missing include. |
| |
| * 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. |
| |
| 2006-12-14 Eric Blake <ebb9@byu.net> |
| |
| * modules/m4.c (m4_sysval_flush): Flush stdin before exiting, as |
| required by POSIX. |
| * tests/others.at (stdin seekable): New test. |
| |
| 2006-12-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/m4.texinfo: Fix some typos. |
| |
| 2006-12-04 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo (Undivert, Divnum, Cleardivert): Merge more doc |
| sections. |
| (Modules): Make style consistent. |
| |
| 2006-11-16 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-11-14 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| * m4/resyntax.c (m4_regexp_syntax_encode): Avoid bug with signed |
| char. |
| |
| 2006-11-13 Eric Blake <ebb9@byu.net> |
| |
| 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 line define): Improve. |
| * tests/options.at (--traceon and --traceoff, --syncoutput): New |
| tests. |
| (POSIXLY_CORRECT): Likewise. |
| (deprecated options): Augment. |
| (--regexp-syntax): Update, now that -r takes optional arg. |
| * NEWS: Reformat. Document new options. |
| |
| 2006-11-11 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| * 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. |
| |
| 2006-11-09 Eric Blake <ebb9@byu.net> |
| |
| * bootstrap: Validate that installed M4 is powerful enough. |
| Reported by Gary V. Vaughan, analyzed by Stepan Kasal. |
| |
| 2006-11-08 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2006-11-07 Eric Blake <ebb9@byu.net> |
| |
| * m4/output.c (cleanup_tmpfile, m4_insert_diversion_helper): Check |
| for failure. |
| |
| * 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, m4_output_exit): Ensure that atexit handler |
| invoked from m4_error sees consistent state. |
| |
| * 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. |
| |
| 2006-11-02 Eric Blake <ebb9@byu.net> |
| |
| * bootstrap: Update bootstrap requirement wording. |
| Reported by Bruno Haible. |
| |
| 2006-10-31 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-10-30 Eric Blake <ebb9@byu.net> |
| |
| * m4/m4private.h (m4_get_symbol_value_module): Delete accidental |
| checkin. |
| * m4/symtab.c (m4_get_symbol_value_module): Likewise. |
| |
| * 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'. |
| |
| 2006-10-28 Eric Blake <ebb9@byu.net> |
| |
| * ltdl/m4/gnulib-cache.m4: Augment with 'gnulib-tool --import |
| config-h.' |
| |
| 2006-10-27 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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_table): Likewise. |
| * src/freeze.c (reload_frozen_state): Likewise. |
| * modules/gnu.c (builtin): Make it possible to retrieve a builtin |
| token, even after the builtin has been undefined. |
| * doc/m4.texinfo (Builtin): Document new capability. |
| * NEWS: Likewise. |
| |
| * 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. |
| |
| 2006-10-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * Makefile.am (dist_pkgdata_DATA): Distribute recently-added |
| files. |
| |
| 2006-10-26 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 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. |
| |
| 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. |
| |
| 2006-10-25 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * src/m4.h (includes): Need <locale.h> after all; fixes |
| regression from yesterday. |
| |
| * 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. |
| |
| 2006-10-24 Eric Blake <ebb9@byu.net> |
| |
| * src/m4.h (includes): Add gettext.h, for N_. Assume setlocale. |
| |
| 2006-10-23 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo (Macro Arguments, Incompatibilities): Remerge |
| from branch regarding stripped leading whitespace. |
| |
| * 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. |
| |
| 2006-10-21 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| * doc/m4.texinfo (titlepage): Add myself as author. |
| * src/main.c (AUTHORS): Likewise. |
| |
| 2006-10-19 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-10-16 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-10-14 Eric Blake <ebb9@byu.net> |
| |
| * tests/others.at (stdin closed): Update to match previous patch. |
| |
| * m4/input.c (file_clean): Don't close stdin twice, POSIX says it |
| is not portable. |
| Reported by Ralf Wildenhues. |
| |
| * 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. |
| |
| 2006-10-13 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-10-12 Eric Blake <ebb9@byu.net> |
| |
| * m4/input.c (m4_print_token) [DEBUG_INPUT]: Modernize. |
| |
| * 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 characters, as the input engine now |
| guarantees we don't need it. |
| (file_unget, string_unget, m4_input_print, unget_input): |
| Strengthen assertions. |
| (file_init_funcs, file_read_init): New for file reading. |
| (string_init_funcs, string_read_init): New for wrapped text. |
| (m4_push_string_init, m4_push_string_finish, m4_push_wrapup): |
| Support wrapped text with locations. |
| (m4_skip_line): Support dnl across include file boundary. |
| (peek_char): Don't pop input when peeking. |
| (file_peek): Peek can be called at the end of the file. |
| (string_read): Don't read beyond string bounds. |
| * m4/macro.c (expand_token, collect_arguments): Update callers. |
| (expand_macro): Report errors at location of open parenthesis. |
| (expand_token, expand_argument, process_macro): Avoid negative |
| array dereferences with m4_has_syntax. |
| * m4/utility.c (skip_space): Likewise. |
| * modules/m4.c (m4wrap): Update caller. |
| * tests/builtins.at (__file__, __line__, dnl): New tests. |
| * tests/options.at (--debugmode): Normalize the output. |
| * doc/m4.texinfo (Macro Arguments, Dnl, History, Location): |
| Remerge recent changes from branch. |
| (Improved fatal_error): New node from branch. |
| |
| 2006-10-11 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-10-10 Eric Blake <ebb9@byu.net> |
| |
| 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, esyscmd, multiquotes, syscmd): Update |
| to match behavior change. |
| * tests/options.at (--debug): Likewise. |
| * tests/macros.at (Propagation of traceon) |
| (Propagation of --trace): Likewise. |
| * tests/others.at (stderr closed, stdout closed, stdin closed): |
| Likewise. |
| * doc/m4.texinfo (Forloop): Simplify. |
| (Trace): Update to changed behavior. |
| (Debugmode): Document this change. |
| * src/main.c (usage): Likewise. |
| * NEWS: Likewise. |
| |
| 2006-10-09 Eric Blake <ebb9@byu.net> |
| |
| * m4/path.c (m4_include_env_init): Don't alter result of getenv. |
| Reported by Ralf Wildenhues. |
| |
| * modules/gnu.c (gnu_buf): Rename from buf to silence -Wshadow. |
| |
| 2006-10-07 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-10-06 Eric Blake <ebb9@byu.net> |
| |
| * m4/output.c (cleanup_tmpfile): Exit nonzero on failure to clean |
| up. |
| * tests/others.at (stdout closed): Fix final check. |
| |
| 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. |
| |
| * 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. |
| |
| * modules/m4.c (m4exit): Fix typo. Ensure desired exit status in |
| case closing a module exits. |
| |
| * modules/m4.c (m4exit): Merge from branch. |
| * m4/m4.c (m4_delete): Avoid assertion triggered by last patch. |
| |
| 2006-10-05 Eric Blake <ebb9@byu.net> |
| |
| * ltdl/m4/gnulib-cache.m4: Augment with gnulib-tool --import |
| closeout. |
| * Makefile.am (m4_libm4_la_DEPENDENCIES): Add missing dependency. |
| * src/main.c (main): Close stdout on exit. |
| * m4/debug.c (set_debug_file): Check for write failure. |
| * m4/m4.c (m4_delete): Don't mask write failure. |
| * tests/testsuite.at (AT_CHECK_M4): Allow tracing by expanding |
| macros before calling AT_CHECK. |
| (M4_ONE_MEG_DEFN): New helper macro. |
| * tests/others.at (stdout full): New test. |
| (stderr closed, stdin closed, stdout closed): Augment. |
| * tests/builtins.at (syscmd): New test. |
| (esyscmd): Augment. |
| |
| 2006-10-04 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-10-03 Eric Blake <ebb9@byu.net> |
| |
| 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_diversions, m4_shipout_text, m4_make_diversion) |
| (m4_insert_diversion): Likewise. |
| * m4/input.c (file_clean, m4_push_file): Likewise. |
| * src/freeze.c (reload_frozen_state): Likewise. |
| * src/main.c (main, usage): Likewise. |
| |
| 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. |
| |
| 2006-09-29 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-09-28 Eric Blake <ebb9@byu.net> |
| |
| * tests/options.at: Alphabetize the tests. |
| |
| 2006-09-27 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-09-26 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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.c: Likewise. |
| * modules/m4.c: Likewise. |
| * modules/modtest.c: Likewise. |
| * modules/mpeval.c: Likewise. |
| * modules/perl.c: Likewise. |
| * modules/shadow.c: Likewise. |
| * modules/stdlib.c: Likewise. |
| * modules/time.c: Likewise. |
| * modules/traditional.c: Likewise. |
| |
| 2006-09-21 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo (Invoking m4): Add clarification on option |
| processing behavior. |
| * tests/options.at (option grouping): Test this. |
| * THANKS: Update. |
| Reported by Mikhail Teterin. |
| |
| * bootstrap: Add --force option, based on idea from coreutils. |
| * README: Document that ./bootstrap and autoreconf are for |
| developers, and not lightly done in tarballs. |
| |
| 2006-09-20 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 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. |
| |
| 2006-09-19 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-09-18 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-09-14 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2006-09-13 Eric Blake <ebb9@byu.net> |
| |
| * tests/modules.at (AT_CHECK_M4_MODTEST): Use AT_CHECK_M4, for |
| stderr filtering. |
| Reported by Ralf Wildenhues. |
| |
| 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. |
| |
| 2006-09-08 Eric Blake <ebb9@byu.net> |
| |
| * bootstrap: Kill unrelated copy-n-paste code from argument |
| parsing. Let Makefile generate testsuite. |
| * Makefile.am (EXTRA_DIST): Remove examples/WWW/man/Makefile. |
| |
| 2006-09-07 Eric Blake <ebb9@byu.net> |
| |
| * 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_input): Update signature, to distinguish between `(' token |
| and multi-char quote or comment beginning with `('. |
| (m4_input_exit): Cleanup now done in m4_pop_wrapup. |
| (m4__peek_token): New function, ported from branch. |
| (m4__next_token): Update to new token types. |
| * m4/macro.c (expand_token, expand_argument): Use peek_token. |
| * doc/m4.texinfo (Pseudo Arguments, Defn, Answers): Fix typos. |
| (Invoking m4): Remerge from branch. |
| |
| * Makefile.am ($(TESTSUITE)): Revert patch from 2006-09-05... |
| (check-local): and put dependency here. |
| Reported by Ralf Wildenhues. |
| |
| 2006-09-05 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-09-05 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * doc/m4.texinfo: Fix some typos. |
| * tests/others.at: Likewise. |
| |
| 2006-09-05 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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 NDEBUG. |
| Handle pending expansions. |
| * modules/gnu.c (indir): Update to new prototype. |
| * doc/m4.texinfo: Fix menus to be consistent with section names. |
| (Defn): Add test that macro tokens flatten to empty string; |
| triggered an assert before this patch. |
| (Ifelse): Merge another node. |
| (Loops): Split into... |
| (Forloop, Foreach): New nodes; work is still underway on them. |
| (Answers): Add more info on foreach macro; work is still underway. |
| (Indir): Add test that indir collects arguments before looking up |
| macro. |
| * TODO: Update based on this patch. |
| |
| 2006-09-01 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-08-30 Eric Blake <ebb9@byu.net> |
| |
| * 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_MODTEST): Likewise. |
| |
| * 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. |
| |
| 2006-08-29 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-08-28 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-08-25 Eric Blake <ebb9@byu.net> |
| |
| * 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_functions): Likewise. |
| * modules/perl.c (builtin_functions): Likewise. |
| * modules/shadow.c (builtin_functions): Likewise. |
| * modules/stdlib.c (builtin_functions): Likewise. |
| * modules/time.c (builtin_functions, mktime_functions) |
| (strftime_functions): Likewise. |
| * doc/m4.texinfo (Loops): Update test now that shift is blind. |
| (Macro Arguments): Fix typo in test. |
| (Patsubst): Fix typo in test. |
| * modules/gnu.c (m4_regexp_substitute): Don't skip empty match at |
| end of string. Fix return value when ignore_duplicates. |
| * tests/builtins.at (patsubst): Fix typo in test. |
| |
| * 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 option. |
| |
| 2006-08-25 Bruno Haible <bruno@clisp.org> (tiny change) |
| and Eric Blake <ebb9@byu.net> |
| |
| * bootstrap: Run autopoint before gnulib-tool, since autopoint |
| 0.15 installs macros obsoleted by current gnulib. |
| |
| 2006-08-25 Eric Blake <ebb9@byu.net> |
| |
| * doc/m4.texinfo (Macro Arguments): Another section merged; |
| testsuite failures now exposed. |
| |
| 2006-08-23 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-08-22 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 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. |
| |
| * 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: Likewise. |
| * tests/options.at: Likewise. |
| * tests/others.at: Likewise. |
| * tests/testsuite.at: Likewise. |
| * m4/utility.c: Spell out copyright years. |
| * src/main.c: Likewise. |
| |
| * doc/m4.texinfo (Bugs, Manual, Syntax): Sync from branch. |
| |
| 2006-08-21 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-08-20 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-08-16 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-08-14 Eric Blake <ebb9@byu.net> |
| |
| * src/main.c (usage): Document --import-environment. |
| * doc/m4.texinfo (History, Invoking m4): Synchronize from branch. |
| |
| 2006-08-11 Eric Blake <ebb9@byu.net> |
| |
| * bootstrap (func_get_translations): Only remove files when doing |
| full update. |
| (func_update_po): Avoid CDPATH problems. |
| |
| 2006-08-10 Eric Blake <ebb9@byu.net> |
| |
| * bootstrap (func_get_translations): New function. |
| (func_update_po): Borrow ideas from tar to correctly pull in |
| translations from newer location. |
| |
| 2006-08-09 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| * modules/evalparse.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. |
| * tests/macros.at: Adjust to new message format. |
| * tests/builtins.at: Likewise. |
| * tests/freeze.at: Likewise. |
| * tests/modules.at: Likewise. |
| * doc/m4.texinfo: Likewise. |
| |
| * configure.ac (AM_GNU_GETTEXT, AM_GNU_GETTEXT_VERSION): Require |
| newer gettext 0.15. |
| |
| 2006-08-03 Eric Blake <ebb9@byu.net> |
| |
| * src/stackovf.c (setup_stackovf_trap): Port patch from branch to |
| gracefully handle ENOSYS. |
| * TODO: Update. |
| * THANKS: Update. |
| |
| 2006-07-28 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 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. |
| * tests/freeze.at (loading format 1): Allow warning when |
| popdef'ing undefined function. |
| |
| 2006-07-27 Paul Eggert <eggert@cs.ucla.edu> (tiny change) |
| |
| * 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. |
| |
| 2006-07-27 Eric Blake <ebb9@byu.net> |
| |
| * src/main.c (usage): Update to match branch. |
| (main): Update --version info to distinguish between program name |
| `m4' and package name `GNU M4'. |
| (AUTHORS): Translate René Seindal's name. |
| * configure.ac (TIMESTAMP): Remove now-redundant parentheses. |
| * Makefile.am (doc/m4.1): Update to match branch. |
| * m4/m4.c (DEFAULT_NESTING_LIMIT): Raise to 1024, to match |
| branch. |
| |
| * 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. |
| |
| 2006-07-22 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * modules/format.c (format): Avoid compiler warning that str may |
| be used uninitialized. |
| |
| * 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. |
| |
| 2006-07-20 Eric Blake <ebb9@byu.net> |
| |
| * ltdl/m4/gnulib-cache.m4: gnulib-tool has changed again. |
| Regenerate to explicitly ask for --assume-autoconf=2.60. |
| |
| 2006-07-19 Eric Blake <ebb9@byu.net> |
| |
| * po/ChangeLog: Merge into main ChangeLog, then delete file. |
| * THANKS: Update. |
| |
| * doc/m4.texinfo (copying): Relax restriction on front-cover and |
| back-cover texts. |
| |
| 2006-07-17 Eric Blake <ebb9@byu.net> |
| |
| * configure.ac (AM_GNU_GETTEXT_VERSION): Bump requirement to |
| 0.14.5. |
| |
| * 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. |
| |
| 2006-07-17 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2006-07-17 Gary V. Vaughan <gary@gnu.org> (tiny change) |
| |
| * bootstrap: Correct typo in --download-po argument parsing. |
| |
| 2006-07-15 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-07-14 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2006-07-14 Gary V. Vaughan <gary@gnu.org> (tiny change) |
| |
| * Makefile.am (TESTSUITE_AT): Add missing tests/freeze.at. |
| |
| 2006-07-14 Eric Blake <ebb9@byu.net> |
| |
| * src/main.c (main): Avoid compiler warning. |
| * modules/gnu.c (renamesyms): Remove unused variable. |
| |
| 2006-07-14 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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 regexp syntax |
| survives freezing. |
| * tests/generate.awk (m4_pattern_allow): Updated for renamesyms. |
| * doc/m4.texinfo (Erenamesyms and Renamesyms, Eregexp and Regexp) |
| (Epatsubst and Patsubst): Renamed to... |
| (Renamesyms, Regexp, Patsubst): ...these respectively. Updated |
| documentation and added new examples. |
| (Changeresyntax): New section describing changeresyntax builtin, |
| and regexp syntax names. |
| (Regular expression syntax): New section describing differences |
| between various regular expression syntaxes. |
| (Frozen files): Document 'R' directive. |
| * NEWS: Updated. |
| |
| 2006-07-13 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2006-07-11 Eric Blake <ebb9@byu.net> |
| |
| * Makefile.am (doc/m4.1): Port patch from branch that avoids |
| intermediate file. |
| * ltdl/m4/gnulib-cache.m4: Regenerate since upstream gnulib-tool |
| changed. |
| |
| 2006-07-10 Gary V. Vaughan <gary@gnu.org> (tiny change) |
| |
| * tests/builtin.at (patsubst, regexp): Adjust these tests, now |
| that `\0' is no longer accepted. |
| |
| * src/main.c (usage): Alphabetize options within their sections. |
| |
| * modules/gnu.c (m4_regexp_search, regsub, substitute) |
| (esyscmd): Improve comments. |
| |
| * modules/gnu.c (substitute): Remove old warning for \0. |
| (substitute_warned): No longer required. Removed. |
| |
| * modules/gnu.c: Put macro definitions into alphabetical order. |
| |
| 2006-07-07 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 2006-07-05 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2006-07-05 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2006-07-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2006-06-22 Eric Blake <ebb9@byu.net> |
| |
| * Makefile.am (EXTRA_DIST): Distribute gnulib-cache.m4. |
| Reported by Bruno Haible. |
| |
| 2006-06-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * m4/module.c (m4__module_exit): Avoid ltdl memory leak. |
| |
| 2006-06-19 Eric Blake <ebb9@byu.net> |
| |
| * THANKS: Update. |
| |
| 2006-06-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * 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. |
| |
| 2006-06-19 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-06-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * 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. |
| |
| 2006-06-19 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-06-16 Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2006-06-15 Eric Blake <ebb9@byu.net> |
| |
| * configure.ac (M4_DEFAULT_PRELOAD): Fix typo in last commit. |
| |
| * 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. |
| |
| 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. |
| |
| 2006-06-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * Makefile.am (modules_mpeval_la_LIBADD): Readd $(LIBADD_GMP). |
| |
| 2006-06-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| and Eric Blake <ebb9@byu.net> |
| |
| 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. |
| |
| 2006-06-13 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * 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. |
| |
| 2006-06-13 Eric Blake <ebb9@byu.net> |
| |
| * THANKS: Update. |
| |
| 2006-06-12 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-06-10 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| * 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. |
| |
| 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. |
| |
| 2006-06-10 Andreas Schwab <schwab@suse.de> (tiny change) |
| Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-05-08 Bruno Haible <bruno@clisp.org> (tiny change) |
| |
| * 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. |
| |
| 2006-05-06 Eric Blake <ebb9@byu.net> |
| |
| * po/Makevars (MSGID_BUGS_ADDRESS): Add. |
| * po/POTFILES.in (src/getopt.c, src/version-etc.c): These files live |
| in src, not gnu. |
| |
| 2006-05-06 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-05-05 Eric Blake <ebb9@byu.net> |
| |
| * Makefile.am (doc/m4.1): Use $@, not $(srcdir)/doc/$@. |
| |
| * THANKS: Update. |
| |
| 2006-05-05 Bruno Haible <bruno@clisp.org> |
| and Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2006-05-04 Eric Blake <ebb9@byu.net> |
| |
| * Makefile.am (doc/m4.1): Use EXEEXT on built binary. |
| Cleanup whitespace. |
| |
| 2005-12-05 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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 <ebb9@byu.net> |
| |
| 2005-12-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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 <ebb9@byu.net> |
| |
| 2005-10-20 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2005-10-20 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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 <ebb9@byu.net> |
| |
| 2005-07-07 Paul Eggert <eggert@cs.ucla.edu> |
| |
| * ltdl/m4/m4-gnulib.m4: Update FSF contact address. Somehow this |
| file escaped the address updates on 2005-05-01. |
| |
| 2005-07-07 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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 <ebb9@byu.net> |
| |
| 2005-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> |
| |
| * ltdl/m4/debug.m4 (m4_CHECK_DEBUGGING): Make sure that both $rm |
| and $RM are defined for various versions of |
| AC_LIBTOOL_COMPILER_OPTION. |
| |
| * bootstrap (AUTORECONF): New variable to allow user overriding of |
| autoreconf path. |
| |
| 2005-07-07 Gary V. Vaughan <gary@gnu.org> |
| |
| * doc/m4.texinfo (History): Add better notes on the ancestory of |
| GNU m4, and other historical interest. |
| |
| 2005-05-08 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2005-05-07 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2005-05-07 Gary V. Vaughan <gary@gnu.org> |
| |
| * configure.ac (gl_MODULES): Add mkstemp for machines that don't |
| have a native implementation. |
| |
| 2005-05-06 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/m4.h (EXIT_SUCCESS, EXIT_FAILURE): Removed. These are |
| handled already by gnu/exit.h. |
| |
| * configure.ac (gl_MODULES): Add assert to support a |
| --disable-assert configure time option for NDEBUG setting. |
| |
| * Makefile.am (src_m4_SOURCES): Add version-etc-fsf.c. |
| * bootstrap (src_modules): Add version-etc-fsf. |
| * src/main.c (version_etc_copyright): Removed. |
| |
| * ltdl/m4/m4-getopt.m4 (m4_GETOPT): Synch with gnulib/getopt.m4. |
| |
| 2005-05-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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 <bolo@bolo.com> |
| |
| 2005-05-04 Vincent Lonngren <Vincent.lonngren.759@student.lu.se> |
| |
| 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. |
| |
| 2005-05-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * m4/m4private.h: Make errno visible for the sources patched |
| below. |
| |
| 2005-05-04 Paul Eggert <eggert@twinsun.com> |
| |
| * 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. |
| |
| * 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>. |
| |
| 2005-05-04 Santiago Vila <sanvila@debian.org> |
| |
| * tests/stackovf.test: Use tempfile if available. |
| |
| 2005-05-04 Robert Bihlmeyer <robbe@orcus.priv.at> (tiny change) |
| |
| 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. |
| |
| 2005-05-04 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2005-05-02 Matt Kraai <kraai@debian.org> (tiny change) |
| |
| 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. |
| |
| 2005-05-01 Gary V. Vaughan <gary@gnu.org> |
| |
| 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'. |
| |
| 2005-03-11 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (tiny change) |
| |
| * tests/Makefile (clean-local): Ignore testsuite cleanup |
| failures. |
| |
| 2005-03-11 Per Bothner <per@bothner.com> (tiny change) |
| |
| * tests/Makefile (clean-local): Only run the testsuite cleanup |
| if the testsuite has been generated. |
| |
| 2005-02-11 Stepan Kasal <kasal@ucw.cz> |
| |
| * TODO: slight clarification of the example of qindir usage. |
| |
| 2005-02-08 Gary V. Vaughan <gary@gnu.org> |
| |
| * TODO: Add qindir requirement, and defn bug. |
| From Stepan Kasal <kasal@ucw.cz> |
| |
| 2005-02-08 Stepan Kasal <kasal@ucw.cz> |
| |
| * TODO: Add ``execution stack'', fix a typo. |
| * doc/m4.texinfo: Typos. |
| |
| 2004-12-24 Eric Blake <ebb9@byu.net> |
| |
| * 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. |
| |
| 2004-10-14 Noah Misch <noah@cs.caltech.edu>, |
| Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2004-09-23 Gary V. Vaughan <gary@gnu.org> |
| |
| * po/POTFILES.in: Reflect move of gnulib files from gnulib/m4 |
| to gnu. |
| |
| 2004-09-23 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/main.c: Include gnulib files from the correct directory. |
| |
| * 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. |
| |
| 2004-07-15 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| |
| 2004-06-17 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2004-06-14 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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/getopt1.c, |
| gnulib/m4/obstack.c, gnulib/m4/obstack.h, gnulib/m4/regex.c, |
| gnulib/m4/unlocked-io.h, gnulib/m4/version-etc.c, |
| gnulib/m4/xmalloc.c, gnulib/m4/getopt.c, gnulib/m4/getopt.h: |
| Updated source files from latest gnulib. |
| |
| 2004-02-29 Gary V. Vaughan <gary@gnu.org> |
| |
| * config/mailnotify: New file for mailing commit notifications, |
| imported from cvs-utils. |
| * commit: Updated from cvs-utils and tweaked for m4. |
| |
| 2003-12-01 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| 2003-11-18 Gary V. Vaughan <gary@gnu.org> |
| |
| * modules/Makefile.am (pkglibexec_LTLIBRARIES): Remove perl.la |
| from the standard build. It is too fragile. |
| |
| * gnulib/acm4/libtool.m4, m4/ltdl.c, m4/ltdl.h: Reimported from |
| CVS libtool after merging m4 changes across to libtool. |
| |
| * m4/symtab.c (m4_symtab_create): Fix a careless use of sizeof. |
| * m4/path.c (search_path_add): Ditto. |
| |
| 2003-11-13 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-11-13 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-11-13 Gary V. Vaughan <gary@gnu.org> |
| |
| * tests/module.at: Comment typo. |
| |
| 2003-10-10 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * tests/modules.at (modules: importing): Edit the generated stderr |
| output to canonicalize strerror output, before a comparison. |
| |
| 2003-10-10 Gary V. Vaughan <gary@gnu.org> |
| |
| 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 <mmokrejs@natur.cuni.cz> |
| |
| 2003-10-08 Paul Eggert <eggert@twinsun.com> |
| |
| 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. |
| |
| 2003-10-07 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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/onceonly_2_57.m4, gnulib/config/po.m4, |
| gnulib/config/progtest.m4, gnulib/config/realloc.m4, |
| gnulib/config/regex.m4, gnulib/config/restrict.m4. |
| gnulib/config/stdbool.m4, gnulib/config/stdint_h.m4, |
| gnulib/config/strerror_r.m4, gnulib/config/strndup.m4, |
| gnulib/config/strnlen.m4, gnulib/config/strtol.m4, |
| gnulib/config/uintmax_t.m4, gnulib/config/ulonglong.m4, |
| gnulib/config/unlocked-io.m4, gnulib/config/xalloc.m4, |
| gnulib/config/xstrndup.m4: Removed. |
| * gnulib/acm4/alloca.m4, gnulib/acm4/codeset.m4, |
| gnulib/acm4/error.m4, gnulib/acm4/exitfail.m4, |
| gnulib/acm4/extensions.m4, gnulib/acm4/free.m4, |
| gnulib/acm4/getopt.m4, gnulib/acm4/gettext.m4, |
| gnulib/acm4/glibc21.m4, gnulib/acm4/iconv.m4, |
| gnulib/acm4/intdiv0.m4, gnulib/acm4/inttypes-pri.m4, |
| gnulib/acm4/inttypes.m4, gnulib/acm4/inttypes_h.m4, |
| gnulib/acm4/isc-posix.m4, gnulib/acm4/lcmessage.m4, |
| gnulib/acm4/lib-ld.m4, gnulib/acm4/lib-link.m4, |
| gnulib/acm4/lib-prefix.m4, gnulib/acm4/malloc.m4, |
| gnulib/acm4/nls.m4, gnulib/acm4/obstack.m4, |
| gnulib/acm4/onceonly_2_57.m4, gnulib/acm4/po.m4, |
| gnulib/acm4/progtest.m4, gnulib/acm4/realloc.m4, |
| gnulib/acm4/regex.m4, gnulib/acm4/restrict.m4. |
| gnulib/acm4/stdbool.m4, gnulib/acm4/stdint_h.m4, |
| gnulib/acm4/strerror_r.m4, gnulib/acm4/strndup.m4, |
| gnulib/acm4/strnlen.m4, gnulib/acm4/strtol.m4, |
| gnulib/acm4/uintmax_t.m4, gnulib/acm4/ulonglong.m4, |
| gnulib/acm4/unlocked-io.m4, gnulib/acm4/xalloc.m4, |
| gnulib/acm4/xstrndup.m4: Reimported from CVS gnulib with |
| gnulib/import script. |
| * gnulib/m4/alloca.c, gnulib/m4/alloca_.h, gnulib/m4/error.c, |
| gnulib/m4/error.h, gnulib/m4/exitfail.c, gnulib/m4/free.c, |
| gnulib/m4/malloc.c, gnulib/m4/obstack.c, gnulib/m4/obstack.h, |
| gnulib/m4/realloc.c, gnulib/m4/regex.c, gnulib/m4/strtol.c, |
| gnulib/m4/version-etc.c, gnulib/m4/version-etc.h, |
| gnulib/m4/xalloc.h, gnulib/m4/xmalloc.c: Updated from CVS |
| gnulib with gnulib/import script. |
| * configure.ac, gnulib/m4/Makefile.am: Manually insert anticipated |
| guards ready for gnulib-tool to autoupdate on import. |
| * config/debug.m4, config/gmp.m4, config/m4-error.m4, |
| config/m4-gettext.m4, config/m4-obstack.m4, config/m4-regex.m4, |
| config/stackovf.m4: Moved from here... |
| * acm4/debug.m4, acm4/gmp.m4, acm4/m4-error.m4, |
| acm4/m4-gettext.m4, acm4/m4-obstack.m4, acm4/m4-regex.m4, |
| acm4/stackovf.m4: ...to here, to separate aclocal macros from |
| configure time helper scripts. |
| * config/error.m4: Removed; superceded by gnulib/acm4/error.m4. |
| * m4/hash.c, m4/m4.c, m4/macro.c, m4/module.c, m4/output.c, |
| m4/path.c, m4/symtab.c, m4/syntax, m4/system_.h, modules/m4.c, |
| src/main.c, src/stackovf.c: s/xfree/free/g to comply with new |
| gnulib xalloc.h. |
| * src/main.c (version_etc_copyright): Only output the current |
| year. |
| (version_etc): Call with new variadic API. |
| |
| 2003-09-16 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| 2003-09-15 Charles Wilson <cygwin@cwilson.fastmail.fm>, |
| Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-09-15 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-09-12 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| 2003-09-12 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-12 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| * 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. |
| |
| * gnulib/m4/Makefile.am (EXTRA_DIST): Removed malloc.c and |
| realloc.c: automake distributes these files already. |
| |
| 2003-09-12 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-11 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-10 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-09 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-09 Gary V. Vaughan <gary@gnu.org> |
| |
| * gnulib/m4/Makefile.am (MOSTLYCLEANFILES): Typo |
| s/gettext_.h/gettext.h/. |
| |
| * bootstrap: Revert 2003-09-04 patch now that CVS autoconf and |
| automake have been fixed. |
| |
| * 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. |
| |
| 2003-09-09 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-05 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-05 Gary V. Vaughan <gary@gnu.org> |
| |
| * config/Makefile.am: Reverting yesterdays patch for VPATH builds. |
| |
| 2003-09-04 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-04 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-09-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * bootstrap: CVS autoreconf leaves file droppings. Remove |
| aclocal.m4t incase autoreconf doesn't. |
| |
| 2003-08-29 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| * 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. |
| |
| 2003-08-27 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| * modules/stdlib.c: Ditto. |
| * modules/time.c: Ditto. |
| * modules/traditional.c: Ditto. |
| * src/freeze.c: Ditto. |
| * src/getopt.c: Ditto. |
| * src/getopt1.c: Ditto. |
| * src/m4.h: Ditto. |
| * src/main.c: Ditto. |
| * src/stackovf.c: Ditto. |
| |
| * 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. |
| |
| * configure.ac (AC_CONFIG_FILES): Add tests/atlocal. |
| * tests/Makefile.am (TESTS_ENVIRONMENT): Revert the 2003-08-14 |
| delta. |
| |
| 2003-08-15 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-08-15 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-08-14 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| * 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. |
| |
| 2003-08-11 Gary V. Vaughan <gary@gnu.org> |
| |
| 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 symbol access if it is not loaded already. |
| |
| * 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. |
| |
| 2003-08-07 Gary V. Vaughan <gary@gnu.org> |
| |
| * m4/m4module.c (m4_string): Moved from here... |
| * m4/m4private.c (m4_string): ...to here. |
| |
| * m4/utility.c (dumpdef_cmp): Removed stale declaration. |
| |
| 2003-07-29 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-07-28 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-07-24 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-07-24 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-07-24 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-07-23 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| 2003-07-23 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-07-17 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-07-15 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * NEWS: Note `$' syntax class. |
| |
| 2003-07-08 Paul Eggert <eggert@twinsun.com> and |
| Gary V. Vaughan <gary@gnu.org> |
| |
| Conform to POSIX if the POSIXLY_CORRECT environment is set. |
| --traditional `define' now smashes all the definitions. |
| |
| * 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. |
| |
| 2003-06-27 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * doc/m4.texinfo (Eregexp and Regexp): Typo. |
| (Epatsubst and Patsubst): Typo. |
| (Eval): Typo. |
| |
| 2003-06-26 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-26 Gary V. Vaughan <gary@gnu.org> |
| |
| * doc/STYLE: Added notes on callback naming schemes. |
| |
| * 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. |
| |
| * 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. |
| |
| 2003-06-20 Gary V. Vaughan <gary@gnu.org> |
| |
| 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 its 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. |
| |
| 2003-06-19 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-18 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-18 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-17 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-16 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-16 Gary V. Vaughan <gary@gnu.org> |
| |
| 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 interrelated 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. |
| |
| 2003-06-13 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-06-13 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-12 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-12 Gary V. Vaughan <gary@gnu.org> |
| |
| * README: Remove references to --enable-changeword, which has been |
| removed from the code. |
| |
| 2003-06-11 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-10 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-06-06 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-05 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2003-06-05 Gary V. Vaughan <gary@gnu.org> |
| |
| * m4/macro.c: Format changes. |
| |
| 2003-06-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2003-05-29 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2002-11-04 gettextize <bug-gnu-gettext@gnu.org> |
| |
| * po/Makefile.in.in: Upgrade to gettext-0.11.5. |
| * po/boldquot.sed: New file, from gettext-0.11.5. |
| * po/en@boldquot.header: New file, from gettext-0.11.5. |
| * po/en@quot.header: New file, from gettext-0.11.5. |
| * po/insert-header.sin: New file, from gettext-0.11.5. |
| * po/quot.sed: New file, from gettext-0.11.5. |
| * po/remove-potcdate.sin: New file, from gettext-0.11.5. |
| * po/Rules-quot: New file, from gettext-0.11.5. |
| |
| 2002-11-04 Akim Demaille <akim@epita.fr> |
| |
| * doc/m4.texinfo (Esyscmd): Don't grep, use something easier: |
| running m4 itself. |
| * tests/others.at (iso8859): Use abs_srcdir, not srcdir. |
| |
| 2002-11-04 Akim Demaille <akim@epita.fr> |
| |
| * config/Makefile.am (ACLOCAL_MACROS): Ship the Gettext macros. |
| |
| 2002-11-04 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2002-05-29 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| * m4/input.c (single_quotes, single_comments, use_macro_escape): |
| Moved from here... |
| * m4/m4private.h (m4__single_quotes, m4__single_comments, |
| m4__use_macro_escape): ...to here, and renamed. The `m4__' prefix |
| is for internal symbols which unavoidably pollute the global |
| namespace, but are not published APIs. |
| Adjusted all callers. |
| * m4/input.c (m4_syntax_init, m4_syntax_code, m4_set_quotes, |
| m4_set_comment, m4_set_syntax, set_syntax_internal, |
| unset_syntax_attribute): Moved from this file... |
| * m4/syntax.c: New. ...to this file. |
| Also added an m4_syntax_exit stub for orthogonality. |
| * src/main.c (main): Use it. |
| * m4/Makefile.am (libm4_la_SOURCES): Add syntax.c. |
| * m4/m4module.h: Reformatting. New prototypes. |
| |
| 2002-05-29 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2002-05-28 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| 2002-01-22 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2002-01-21 gettextize <bug-gnu-utils@gnu.org> |
| |
| * po/Makefile.in.in: Upgrade to gettext-0.10.40. |
| |
| 2001-10-19 Akim Demaille <akim@epita.fr> |
| |
| * m4/module.c, m4/output.c, src/main.c: Normalize error messages. |
| |
| 2001-10-19 Akim Demaille <akim@epita.fr> |
| |
| * m4/input.c (m4_next_token): Display where was opened what is |
| not closed. |
| |
| 2001-10-19 Akim Demaille <akim@epita.fr> |
| |
| * m4/macro.c (expand_argument): Display where was opened what is |
| not closed. |
| |
| 2001-10-18 Akim Demaille <akim@epita.fr> |
| |
| * m4/input.c, modules/m4.c: Formatting changes. |
| |
| 2001-10-17 Gary V. Vaughan <gary@gnu.org> |
| |
| * bootstrap: s/configure.in/configure.ac/ |
| |
| 2001-10-16 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * m4/ltdl.c: Update. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * src/main.c, src/freeze.c, m4/debug.c, m4/input.c, m4/macro.c: |
| Don't gettextize internal error messages. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * modules/evalparse.c: Save translators' time: don't translate |
| internal error messages. |
| (m4_evaluate): Simplify/normalize error messages. |
| * doc/m4.texinfo (Eval): Adjust. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-13 Akim Demaille <akim@epita.fr> |
| |
| * m4/output.c (m4_make_diversion, m4_insert_file) |
| (m4_insert_diversion, +m4_freeze_diversions): Ansify. |
| |
| 2001-10-12 Gary V. Vaughan <gary@gnu.org> |
| |
| * m4/input.c (init_builtin_token): Renamed from init_macro_token, |
| since we call these things builtins in the rest of the code! |
| |
| * modules/gnu.c (m4_regexp_compile): s/%0/%s/ |
| |
| 2001-10-12 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-10-10 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-10-07 Gary V. Vaughan <gary@gnu.org> |
| |
| * modules/gnu.c (m4_macro_table): Display the timetamp when |
| expanding __m4_version__. |
| |
| * configure.ac (--with-modules): Forgot a comma in the |
| AC_HELP_STRING parameter list. |
| |
| 2001-10-05 Gary V. Vaughan <gary@gnu.org> |
| |
| * bootstrap: Remove aclocal.m4t when it is no longer required. |
| |
| 2001-10-05 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| * config/gmp.m4 (_AC_LIB_GMP): In order to read the content of a |
| variable in shell scripts, one uses `$'... |
| |
| 2001-10-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * configure.ac: `rm -f $m4_getopt_h' was lost. |
| |
| 2001-10-04 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2001-10-04 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-04 Akim Demaille <akim@epita.fr> |
| |
| * modules/modtest.c (init_handler): Consistently output to stderr. |
| (finish_handler): New. |
| (test): The `if' is an `assert'. |
| * tests/modules.at: Adjust. |
| |
| 2001-10-04 Akim Demaille <akim@epita.fr> |
| |
| * m4/utility.c (m4_bad_argc): Detail the mismatches. |
| |
| 2001-10-01 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-01 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-01 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-10-01 Akim Demaille <akim@epita.fr> |
| |
| * modules/gnu.c (RE_SYNTAX_BRE, RE_SYNTAX_ERE): New. |
| (m4_regexp_compile): New. |
| (regexp, patsubst): Use it. |
| |
| 2001-09-30 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-09-30 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-09-30 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * TODO: stackovf.c is basically broken. |
| Reported by Marc Espie <espie@schutzenberger.liafa.jussieu.fr> |
| |
| 2001-09-28 Akim Demaille <akim@epita.fr> |
| |
| * tests/Makefile.am (EXTRA_DIST): `m4' is not to be shipped. |
| |
| 2001-09-27 Akim Demaille <akim@epita.fr> |
| |
| * tests/m4.in: Don't use short options. |
| Simplify the stderr signature normalization. |
| |
| 2001-09-27 Akim Demaille <akim@epita.fr> |
| |
| 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. |
| |
| 2001-09-22 Akim Demaille <akim@epita.fr> |
| |
| Autotest has changed again. |
| |
| * tests/Makefile.am (DISTCLEANFILES): Add package.m4. |
| (package.m4): Remove. |
| * configure.in: Adjust to LIBADD_GMP. |
| |
| 2001-09-21 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2001-09-20 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2001-09-20 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-09-20 Akim Demaille <akim@epita.fr> |
| |
| * tests/Makefile.am (package.m4): New. |
| * tests/testsuite.at: Adjust AT_INIT and AT_VICTIMS. |
| |
| 2001-09-20 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-09-18 Gary V. Vaughan <gary@gnu.org> |
| |
| 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 ;-) |
| |
| 2001-09-08 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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. |
| |
| * 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. |
| |
| 2001-09-08 Gary V. Vaughan <gary@gnu.org> |
| |
| 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'. |
| |
| 2001-09-08 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2001-09-07 Akim Demaille <akim@epita.fr> |
| |
| * modules/stdlib.c, modules/times.c: Misc cleanups. |
| |
| 2001-09-07 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-09-06 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-09-05 Gary V. Vaughan <gary@gnu.org> |
| |
| * TODO: Remove the items that have been addressed already. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| * src/main.c (main): Standardize --version. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| * modules/format.c (format): Have a bigger `str'. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| 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. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| * m4/symtab.c (m4_symbol_insert): Don't use `foo () || bar ()' |
| with pointers. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| * m4/m4module.h (m4_symbol_lookup): Remove M4_SYMBOL_LOOKUP. |
| * m4/macro.c, m4/symtab.c: Adjust. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| * m4/m4module.h (m4_symbol_lookup): Rename as... |
| (m4_symbol_lookup_t): this. |
| |
| 2001-09-05 Akim Demaille <akim@epita.fr> |
| |
| * m4/m4module.h (m4_symbol_lookup): Remove M4_SYMBOL_IGNORE, |
| unused. |
| * m4/symtab.c (m4_lookup_symbol): Adjust. |
| |
| 2001-09-03 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| * config/debug.m4 (AC_LIBTOOL_COMPILER_OPTION): Provide a fallback |
| implementation for the cvs impaired libtool user. |
| |
| 2001-09-03 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-09-03 Akim Demaille <akim@epita.fr> |
| |
| * src/main.c (MODULE_SHORTOPT, MODULEPATH_SHORTOPT): Remove, there |
| is no such thing as `WITH_MODULES'. |
| |
| 2001-09-03 Akim Demaille <akim@epita.fr> |
| |
| 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 `@comment 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. |
| |
| 2001-09-01 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-09-01 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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 <tim.van.holder@pandora.be> |
| |
| * tests/m4: Don't call the m4 wrapper script with libtool, it |
| works fine all by itself. |
| |
| 2001-08-30 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-08-30 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-29 Gary V. Vaughan <gary@gnu.org> |
| |
| In an attempt to moderate my egomania... |
| * tests/modules.at: Remove attributions. |
| |
| * 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. |
| |
| 2001-08-29 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-29 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-29 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-29 Akim Demaille <akim@epita.fr> |
| |
| * tests/Makefile.am ($(srcdir)/$(TESTSUITE)): Use autom4te's |
| --language. |
| |
| 2001-08-29 Akim Demaille <akim@epita.fr> |
| |
| * tests/generate.awk (normalize): s/@__@/@&t@/. |
| |
| 2001-08-28 Akim Demaille <akim@epita.fr> |
| |
| * examples/indir.m4, tests/others.at (indir): s/nonsens/nonsense/. |
| |
| 2001-08-28 Gary V. Vaughan <gary@gnu.org> |
| |
| * bootstrap (generate.awk): Generate test cases with new script. |
| |
| 2001-08-27 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-27 Akim Demaille <akim@epita.fr> |
| |
| * tests/others.at (indir): Formatting change. |
| |
| 2001-08-27 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-27 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-27 Akim Demaille <akim@epita.fr> |
| |
| 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. |
| |
| 2001-08-27 Akim Demaille <akim@epita.fr> |
| |
| * tests/Makefile.am (CLEANFILES): Remove. |
| (DISTCLEANFILES, clean-local): New. |
| * examples/mktests.sh: Remove. |
| |
| 2001-08-27 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-20 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2001-08-20 Gary V. Vaughan <gary@gnu.org> |
| |
| 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. |
| |
| 2001-08-20 Akim Demaille <akim@epita.fr> |
| |
| * config/atconfig.m4: s/EOF/ATEOF/, so that configure can be |
| generated with stock 2.52. |
| |
| 2001-08-20 Akim Demaille <akim@epita.fr> |
| |
| * 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 |
| `@__@'. |
| * 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. |
| |
| 2001-08-20 Akim Demaille <akim@epita.fr> |
| |
| * 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'. |
| |
| 2001-08-20 Akim Demaille <akim@epita.fr> |
| |
| * 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/. |
| |
| 2001-08-20 Akim Demaille <akim@epita.fr> |
| |
| 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. |
| |
| 2001-08-19 Gary V. Vaughan <gary@gnu.org> |
| |
| * config/debug.m4 (M4_AC_CHECK_DEBUGGING): Cleaned up. Don't test |
| for `-pipe' here... |
| * configure.in: ...do it here instead. |
| |
| * 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. |
| |
| 2001-08-17 Gary V. Vaughan <gary@gnu.org> |
| |
| * m4/module.c: Fixup some errors in the description comment. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| Really apply the patch ``Drop Autoconf 2.13 compatibility.'' |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * doc/m4.texinfo: Promote proper quotation. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| 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/other-tests/modtest.test, |
| * tests/other-tests/multiquotes.test, |
| * tests/other-tests/patsubst.test, tests/other-tests/pushpop.test, |
| * tests/other-tests/regexp.test, tests/other-tests/reverse.test, |
| * tests/other-tests/shadow.test, tests/other-tests/stackovf.test, |
| * tests/other-tests/sync-lines.m4, |
| * tests/other-tests/sync-lines.test, |
| * tests/other-tests/sysv-args.test, tests/other-tests/trace.test, |
| * tests/other-tests/translit.test, tests/other-tests/undivert.test, |
| * tests/other-tests/unfrozen.m4, tests/other-tests/unload.test, |
| * tests/other-tests/wrap.test: Remove. |
| |
| * tests/run-test, tests/get-them: Remove. |
| * tests/Makefile.am: Adjust. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| 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. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * 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... |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| 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. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| 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.m4: Use m4_pattern_allow directly. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * modules/m4.c (m4_dumpdef): Output to stderr, not m4_debug. |
| (m4_errprint): Use fputs. |
| * doc/m4.texinfo (Invoking m4) <--error-output>: errprint and |
| dumpdef are not concerned. |
| (Dumpdef, Errprint): Emphasize their insensitivity to |
| --error-output. |
| * doc/Makefile.am: Add `TAGS' support. |
| (MAINTAINERCLEANFILES): Remove texinfo.tex and mdate-sh which are |
| in `config/' now. |
| * config/Makefile.am (MAINTAINERCLEANFILES): New. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * modules/Makefile.am (ETAGS_ARGS): New. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * m4/symtab.c (m4_hack_all_symbols, m4_lookup_symbol): Formatting |
| changes. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * m4/builtin.c (m4_macro_define): Do not reset SYMBOL_TRACED. |
| |
| 2001-08-17 Akim Demaille <akim@epita.fr> |
| |
| * m4/m4module.h (m4/list.h): Don't include it. |
| |
| 2001-08-16 Gary V. Vaughan <gary@gnu.org> |
| |
| 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 expanded. |
| * modules/modtest.c (m4_init_module): Replaced with M4INIT_HANDLER. |
| * modules/shadow.c (m4_init_module): Ditto. |
| Due to new init function semantics, be careful to perform the |
| initialisation only on first load. |
| * modules/perl.c (m4_init_module): Ditto. And Ditto. |
| (m4_finish_module): Replaced with M4FINISH_HANDLER. |
| Due to new finish function semantics, be careful to perform the |
| finalisation only on first load. |
| * m4/m4private.h (m4_module): Removed in favour of... |
| (m4_module_data): ...structure without all the wrapper fields. |
| Instances of this new structure are stored associated lt_dlhandles |
| with lt_dlcaller_data_set(). |
| * m4/builtin.c (m4_builtin_define): Takes a handle argument |
| instead of the old module argument. |
| (m4_builtin_table_install): Ditto. |
| * modules/load.c (m4_resident_module): Removed. This is no |
| longer implemented as a magic symbol... |
| * modules/m4.c (m4_resident_module): Ditto. |
| * modules/load.c (M4INIT_HANDLER): ...the module init function now |
| uses the ltdl api to make the module resident. |
| * modules/m4.c (M4INIT_HANDLER): Ditto. |
| * modules/load.c (builtin_modules): Traverse the loaded module |
| list with lt_dlhandle_next. |
| (builtin_load): Much simplified in light of the reimplemented |
| module loader. |
| * src/freeze.c (produce_module_dump): Cleaned up and optimised in |
| light of the m4/module.c rewrite. |
| (produce_symbol_dump): Ditto. |
| (reload_frozen_state): Ditto. |
| * m4/list.c, m4/list.h: Files deleted. No longer required. |
| * m4/Makefile.am (pkginc_HEADERS): Delete list.h reference. |
| (libm4_la_SOURCES): Delete list.c reference. |
| * m4/m4private.h (m4_token_data): Add a handle field. This |
| eliminates many of the searches to find the handle associated with |
| various tokens that are passed between functions. |
| (struct m4_symbol): Removed the module field. The |
| module association does not belong with the symbol... |
| * m4/input.c (struct m4_builtin): ...it belongs with the builtin |
| that the module implementation code is from. Added a handle |
| field. |
| (m4_push_macro): Add a `handle' argument. Changed all callers. |
| (init_macro_token): Set the `handle' field for the |
| m4_token_data. |
| * m4/macro.c (expand_argument): Copy the new handle field during |
| reassignment. |
| * modules/m4.c (macro_install): Use the new handle field to |
| optimise the search for the correct builtin structure, and pass |
| the handle details to m4_builtin_define. |
| |
| 2001-08-15 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-14 Gary V. Vaughan <gary@gnu.org> |
| |
| * config/ltmain.sh: Doh! Import again for a quoting fix that |
| prevented any regression test from passing. |
| |
| * m4/m4module.h (obstack.h): Choose between installed version |
| and shipped version based on configure tests. |
| * src/freeze.c (obstack.h): Ditto. |
| |
| * acconfig.h: Removed. No longer required. |
| |
| * 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. |
| |
| * 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. |
| |
| 2001-08-11 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/main.c (main): Add `-b' (for `batch') mode switch to force |
| interactive mode off. |
| |
| 2001-08-10 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-09 Yuji Minejima <ggb01164@nifty.ne.jp> |
| |
| * doc/m4.texinfo: Fix some typos, and apply some small |
| clarifications. |
| |
| 2001-08-09 Andreas Schwab <schwab@suse.de> |
| |
| * src/main.c (main): Fix improper uses of error (missing format |
| string). |
| |
| 2001-08-07 Akim Demaille <akim@epita.fr> |
| |
| 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. |
| |
| 2001-08-07 Akim Demaille <akim@epita.fr> |
| |
| * 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. |
| |
| 2001-08-07 Akim Demaille <akim@epita.fr> |
| |
| * config/gnu-obstack.m4: New. |
| |
| 2001-08-07 Akim Demaille <akim@epita.fr> |
| |
| * config/Makefile.am, config/stackovf.m4: New. |
| * configure.in, Makefile.am: Adjust. |
| |
| 2001-08-05 gettextize <bug-gnu-utils@gnu.org> |
| |
| * po/Makefile.in.in: Upgrade to gettext-0.10.39. |
| * po/cat-id-tbl.c: Remove file. |
| * po/stamp-cat-id: Remove file. |
| |
| 2001-04-08 Roderick Koehle <Roderick.Koehle@infineon.com> |
| |
| * modules/format.c (format): Formatting for %f was not |
| interpreting the position of the decimal point correctly for |
| whole numbers. |
| |
| 2000-12-01 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2000-11-30 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2000-11-29 Gary V. Vaughan <gary@gnu.org> |
| |
| 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/other-tests/regexp.test, |
| tests/other-tests/reverse.test, tests/other-tests/shadow.test, |
| tests/other-tests/sysv-args.test, tests/other-tests/trace.test, |
| tests/other-tests/translit.test, tests/other-tests/undivert.test, |
| tests/other-tests/unfrozen.m4, tests/other-tests/unload.test, |
| tests/other-tests/wrap.test: New tests based on the contents |
| of the tests removed below. |
| * examples/Makefile.am, modules/Makefile.am: Updated to |
| reflect removed tests. |
| * examples/defs,modules/defs: Removed. |
| * examples/capitalize.test, examples/comments.test, |
| examples/ddivert.test, examples/debug.test, |
| examples/esyscmd.test, examples/exp.test, |
| examples/foreach.test, examples/forloop.test, |
| examples/fstab.test, examples/hanoi.test, |
| examples/include.test, examples/indir.test, |
| examples/misc.test, examples/multiquotes.test, |
| examples/patsubst.test, examples/pushpop.test, |
| examples/regexp.test, examples/reverse.test, |
| examples/sysv-args.test, examples/trace.test, |
| examples/translit.test, examples/undivert.test, |
| examples/wrap.test, modules/frozen.m4, modules/modfreeze.test, |
| modules/modpath1.test, modules/modpath2.test, |
| modules/modpath3.test, modules/modpath4.test, |
| modules/modtest.test, modules/shadow.test, |
| modules/unfrozen.m4, modules/unload.test: Removed. |
| |
| 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: New file, contains the shared parts of the |
| eval() and evalmp() parser implementations, and is no longer |
| unencumbered by cpp magic to uncover the right parts. |
| * m4/numb.h: Removed. It's former contents are split between |
| m4/eval.c and modules/mpeval.c. |
| * m4/numb.c: ditto. |
| |
| * 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. |
| |
| 2000-11-28 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| 2000-11-27 Gary V. Vaughan <gary@gnu.org> |
| |
| * 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. |
| |
| * 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(). |
| |
| * 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. |
| |
| * 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. |
| |
| 2000-11-25 Gary V. Vaughan <gary@gnu.org> |
| |
| * modules/perl.c (builtin_perleval): Use PL_na for |
| compatibility with perl-5.6. |
| |
| * 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. |
| |
| * m4/Makefile.am (libm4_la_LIBADD): New magic -- we are |
| supposed to be using @LIBADD_DL@; @DLLDFLAGS@ is dead. |
| |
| * configure.in: Figure out whether to use the installed |
| getopt.h or the supplied one. |
| * src/Makefile.am: ditto. |
| |
| * po/POTFILES.in: List files in their new positions. |
| |
| * 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. |
| |
| 2000-11-24 Gary V. Vaughan <gary@gnu.org> |
| |
| * AUTHORS: Added my details. |
| * TODO: updated. |
| * NEWS: updated. |
| * bootstrap: temporary update until released libtool catches up. |
| |
| * All files: Use new GNU GPL copyright blurb with current contact |
| address. |
| |
| * configure.in (LTLIBOBJS): Use canonical code for calculation of |
| this variable. |
| |
| * config: renamed acm4 directory to config to be more like |
| other autoconfiscated packages. |
| |
| * configure.in (M4_AC_CHECK_DEBUGGING): Use it. |
| * config/debug.m4: New file implementing configure macros to add |
| suitable debug flags to the compiler invocation. |
| |
| * modules/load.c: New file implementing the ``load'' and |
| ``unload'' builtins. |
| * tests/get-them: Set the module search directory to the modules |
| build directory in generated tests. |
| * modules/shadow.test: ditto. |
| * modules/modtest.test: ditto. |
| * modules/modpath1.test: ditto. |
| * modules/modpath2.test: ditto. |
| * modules/modpath3.test: ditto. |
| * modules/modpath4.test: ditto. |
| * modules/modtest.test: ditto. |
| * modules/modfreeze.test: ditto. |
| * modules/unload.test: ditto. |
| |
| * modules/changeword.c: New file implementing the ``changeword'' |
| builtin as a loadable module. |
| * modules/mpeval.c: New file implementing the ``mpeval'' builtin |
| as a loadable module. |
| |
| * src/main.c (main): Load the gnu module if m4 was started |
| normally -- i.e. without the -G option. |
| * modules/gnu.c: New file implementing a new loadable module wuth |
| definitions for all the gnu extension builtins. |
| * modules/format.c: Moved here from src/format.c. Now included |
| directly by gnu.c. |
| |
| * src/main.c (main): Load the traditional module if m4 was |
| started in `no_gnu_extensions' mode. |
| * modules/traditional.c: New file implementing the ``unix'' macro, |
| required when m4 is executed in traditional mode, as a loadable |
| module. |
| |
| * src/main.c: Renamed from m4.c to avoid confusion with |
| modules/m4.c. |
| (main): Always load the m4 module. |
| * modules/m4.c: New file implementing a new loadable module with |
| definitions for all m4 builtins that are not gnu extensions. |
| |
| * m4/Makefile.am: Adjusted to take new files below into account. |
| * m4/m4module.h: Prototypes for exported functions and types moved |
| to this directory from the src directory. |
| * m4/m4private.h: Moved here from src/m4private.h to facilitate |
| the migration of all builtin implementations to loadable modules. |
| * m4/macro.c: Moved this file here from the src directory, |
| renaming all exported symbols to use the prefix ``m4_''. |
| * m4/builtin.c: ditto. |
| * m4/module.c: ditto. |
| * m4/symtab.c: ditto. |
| * m4/debug.c: ditto. |
| * m4/input.c: ditto. |
| * m4/output.c: ditto. |
| * m4/path.c: ditto. |
| * m4/ltdl.h, m4/ltdl.c: ditto. |
| * m4/utility.c: Odd functions moved here from files in the src |
| directory to facilitate builtin migration. |
| |
| 2000-08-12 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/builtin.c (dump_symbols): Use "Undefined name `%s'" for |
| error message, to make translators' jobs a little easier. |
| (builtin_builtin): ditto. |
| (builtin_traceon): ditto. |
| (builtin_traceoff): ditto. |
| Reported by Akim Demaille <akim@epita.fr> |
| |
| * m4/Makefile.am (pkgincdir): Deleted. Use automake's built in |
| pkgincludedir instead. |
| |
| * m4/m4module.h (rquote): Renamed with a prefix of `m4_' since |
| it is exported globally. Fixed all references. |
| (lquote): ditto. |
| (bcomm): ditto. |
| (ecomm): ditto. |
| (DEF_RQUOTE): Renamed with a prefix of `M4_' since it is exported |
| globally. Fixed all references. |
| (DEF_LQUOTE): ditto. |
| (DEF_BCOMM): ditto. |
| (DEF_ECOMM): ditto. |
| |
| 2000-07-28 Gary V. Vaughan <gary@gnu.org> |
| |
| * NEWS: updated. |
| * TODO: updated. |
| |
| * configure.in (AC_CHECK_FUNCS): added bzero and calloc. |
| (AC_OUTPUT): touch stamp-h.in, not stamp-h. |
| |
| * doc/m4.texinfo: Fixed to work with --html option of makeinfo. |
| Removed `Prev', `Next' and `Up' fields of all @nodes now that |
| makeinfo calculates them for us, and to make any future |
| reorganisation easier. |
| (Frozen files): Document format version 2. |
| `V' now takes argument `2'. |
| `F' can take a single argument if symbol and builtin names |
| are the same, or 3 arguments if the builtin is from a module. |
| New `S' specification for saving syntax table contents. |
| New `M' specification for saving loaded module names. |
| * src/freeze.c: Implement them. |
| * src/input.c (syntax_code): For interpreting frozen syntax |
| state. |
| |
| * examples/Makefile.am: Add the contents of the WWW directory to |
| the distribution. |
| * examples/WWW/Makefile: ditto, |
| (%.htm): Compares file contents (not just sizes) to determine |
| whether a change has occured. |
| * examples/WWW/_header.htm: Bumped version number. |
| * examples/WWW: Regenerated content. |
| |
| * m4/Makefile.am (AUTOMAKE_OPTIONS): Support for non-ANSI |
| compilers comes much easier without ansi2knr. |
| * src/Makefile.am (AUTOMAKE_OPTIONS): ditto. |
| |
| * m4/list.c: New generic list container type. |
| * m4/list.h: Interface to new container type. |
| * m4/Makefile.am (pkginc_HEADERS): Install list.h. |
| (libm4_la_SOURCES): compile and link list.c. |
| * src/builtin.c (builtin_tables): Use list container. |
| * src/module.c (symtab): ditto. |
| * src/symtab.c (symtab): ditto. |
| |
| * m4/system.h: New file for common preprocessor definitions. |
| * m4/Makefile.am (pkginc_HEADERS): install system.h. |
| * m4/error.c: Use system.h in place of inline preprocessor. |
| * m4/error.h: ditto. |
| * m4/module.c: ditto. |
| * m4/module.h: ditto. |
| * m4/xmalloc.c: ditto. |
| |
| * m4/error.h (error_one_per_line): Make M4_GLOBAL_DATA for WIN32 |
| compatibility. |
| * m4/xmalloc.c (xmalloc_exit_failure): ditto. |
| |
| * m4module.h (syntax_table): Renamed with a prefix of `m4_' since |
| it is exported globally. Fixed all references. |
| (builtin): ditto. |
| (module_init_t): ditto. |
| (module_finish_t): ditto. |
| (token_data): ditto. |
| (SYNTAX_OTHER): Renamed with a prefix of `M4_' since |
| it is exported globally. Fixed all references. |
| (SYNTAX_IGNORE): ditto. |
| (SYNTAX_SPACE): ditto. |
| (SYNTAX_OPEN): ditto. |
| (SYNTAX_CLOSE): ditto. |
| (SYNTAX_COMMA): ditto. |
| (SYNTAX_DOLLAR): ditto. |
| (SYNTAX_ACTIVE): ditto. |
| (SYNTAX_ESCAPE): ditto. |
| (SYNTAX_ALPHA): ditto. |
| (SYNTAX_NUM): ditto. |
| (SYNTAX_ALNUM): ditto. |
| (SYNTAX_LQUOTE): ditto. |
| (SYNTAX_RQUOTE): ditto. |
| (SYNTAX_BCOMM): ditto. |
| (SYNTAX_ECOMM): ditto. |
| (SYNTAX_VALUE): ditto. |
| (SYNTAX_MASKS): ditto. |
| (IS_OTHER): ditto. |
| (IS_IGNORE): ditto. |
| (IS_SPACE): ditto. |
| (IS_OPEN): ditto. |
| (IS_CLOSE): ditto. |
| (IS_COMMA): ditto. |
| (IS_DOLLAR): ditto. |
| (IS_ACTIVE): ditto. |
| (IS_ESCAPE): ditto. |
| (IS_ALPHA): ditto. |
| (IS_NUM): ditto. |
| (IS_ALNUM): ditto. |
| (IS_LQUOTE): ditto. |
| (IS_RQUOTE): ditto. |
| (IS_BCOMM): ditto. |
| (IS_ECOMM): ditto. |
| (TOKEN_EOF): ditto. |
| (TOKEN_NONE): ditto. |
| (TOKEN_STRING): ditto. |
| (TOKEN_SPACE): ditto. |
| (TOKEN_WORD): ditto. |
| (TOKEN_SIMPLE): ditto. |
| (TOKEN_MACDEF): ditto. |
| |
| * m4/m4module.h (voidstar): Removed in favour of `VOID' for |
| consistency. Fixed all references. |
| (STRING): Renamed to `m4_string' for consistency, and because if |
| is exported globally. Fixed all references. |
| (token_type): Renamed to `m4_token_t' for the same reasons. |
| (token_data_type): Renamed to `m4_token_data_t' for the same |
| reasons. |
| |
| * m4/m4module.h (XCALLOC): Wrapper macro which handles type |
| sizes. |
| (XMALLOC): ditto. |
| (XREALLOC): ditto. |
| (XFREE): Wrapper macro which avoids freeing NULL pointers. |
| |
| * m4/m4module.h (m4_macro): New type for module defined user |
| macros. |
| * modules/modtest.c (m4_macro_table): Define module user macros. |
| * modules/shadow.c (m4_macro_table): ditto. |
| |
| * m4/m4module.h (M4BUILTIN_HANDLER): For defining handlers |
| declared with M4BUILTIN. |
| |
| * m4/xmalloc.c: Use memset if bzero is not available when |
| emulating calloc with malloc. |
| (xcalloc): Fallback to malloc/bzero if calloc is not available. |
| (xfree): Added for consistency. Will not try to free NULL |
| pointers. |
| * src/m4.c (xfree): Deleted in favour of the above. |
| * m4/xmalloc.c (WITH_DMALLOC): preprocess away the entire file if |
| linking with libdmalloc. |
| * m4/xstrdup.c (WITH_DMALLOC): ditto. |
| |
| * modules/frozen.m4: New test case. |
| * modules/unfrozen.m4: ditto. |
| * modules/modfreeze.test: New test. |
| * modules/unload.test: ditto. |
| * modules/Makefile.am (EXTRA_DIST): Distribute them. |
| (TESTS): Use them. |
| * modules/modpath1.test: Don't try this test if module support is |
| not compiled in. |
| * modules/modpath2.test: ditto. |
| * modules/modpath3.test: ditto. |
| * modules/modpath4.test: ditto. |
| * modules/modtest.test: ditto. |
| * modules/shadow.test: ditto. |
| |
| * modules/perl.c: New module. |
| * modules/perl.m4: Example of using it. |
| * modules/Makefile.am (perl_la_SOURCES): Build new perl module. |
| |
| * src/m4.c (main): Assume interactive mode if STDIN is connected |
| to a tty. |
| Changed startup sequence slightly so that syntax is not |
| initialised from here when loading a frozen file. |
| |
| * src/builtin.c: Much improved macro definition style. |
| * src/m4private.h: Internal structures for m4_builtin and |
| m4_macro instances. These are not exposed to module writers. |
| * src/module.c (module_modname_find): Find a module structure |
| from the its name. |
| (make_macro_table): Build an internal macro table from a external |
| definition. |
| (make_builtin_table): Build an internal builtin table from an |
| external definition. |
| |
| * src/module.c (module_unload): Be extremely careful to remove |
| builtins and macros that match the module being unloaded -- no |
| longer assume that the top element can be removed incase another |
| odule defines an identical name. |
| * src/symtab.c (remove_table_reference_symbols): remove all symbol |
| table entries which refer to a given builtin table. |
| * src/builtin.c (remove_tables): Use it! |
| |
| 2000-07-13 Thomas Tanner <tanner@ffii.org> |
| |
| * Makefile.am (SUBDIRS): we need modules/ for "make dist" |
| * acm4/modules.m4: deleted |
| * bootstrap: don't libtoolize libltdl! |
| * configure.in: AC_SUBST INCLTDL and LIBLTDL, -with-modules flag: |
| if set, enable WITH_MODULES and add modules to DLPREOPEN |
| * examples/misc.test: redirect standard output |
| * lib/Makefile.am: don't use DLLDFLAGS |
| * lib/m4module.c: include necessary headers to silence GCC -Wall |
| * lib/m4regex.c: fixes to silence GCC -Wall |
| * modules/Makefile.am: don't use DLLDFLAGS, add INCLTDL to INCLUDES, |
| build modules conditionally |
| * modules/shadow.c: define symbol aliases before using them |
| * modules/test.c: define symbol aliases before using them |
| * po/de.po: update translation |
| * src/Makefile.am: delete pathconf.h, set MODULE_PATH to |
| pkglibexecdir, don't use DLLDFLAGS, add INCLTDL to INCLUDES and |
| LIBLTDL to LIBS. |
| * src/m4.c: initialize libltdl's preloaded symbols via |
| LTDL_SET_PRELOADED_SYMBOLS |
| * src/module.c: libltdl's memory management must be initialized |
| before calling lt_dlinit!, fix warnings |
| |
| 2000-01-18 Gary V. Vaughan <gary@gnu.org> |
| |
| * README: Caveat about nls not supported by dll architecture on |
| Windows. |
| |
| * TODO (MODULE SPECIFIC ISSUES): more ideas for the future. |
| |
| * tests/Makefile.am (stamp-TESTS): now works with VPATH. |
| * src/Makefile.am (m4_LDADD): use $(builddir) for VPATH. |
| * modules/Makefile.am (LIBS): ditto. |
| (INCLUDES): search $(top_srcdir) (for eg. <m4/error.h>) and then |
| $(top_srcdir)/m4 (for only <m4module.h>). |
| * modules/shadow.test: fixed for VPATH. |
| * modules/modtest.test: ditto. |
| * modules/modpath4.test: ditto. |
| * modules/modpath3.test: ditto. |
| * modules/modpath2.test: ditto. |
| * modules/modpath1.test: ditto. |
| |
| * modules/time.test: Removed due to timezone dependence, |
| * modules/Makefile.am (TESTS): Removed time.test. |
| |
| * configure.in: Use $3 of AC_DEFINE so that we can,,, |
| * acconfig.h: Remove everything except the gettext parameters. |
| * acm4/gmp.m4: Add a serial number, and take advantage of $3 of |
| AC_DEFINE. |
| * acm4/ltdl.m4: Updated to latest from libtool cvs. |
| * acm4/modules.m4: Remove code which duplicates ltdl.m4 and |
| increment serial number. |
| |
| * Makefile.am (SUBDIRS): Moved @MODULES_DIR@ to compile before |
| src dir and immediately after libm4 is built for confidence that |
| it doesn't rely on the src directory. |
| (SUBDIRS): Moved doc dir to the end since helptoman.pl and |
| makeinfo stop the build on cygwin (because they don't work). |
| |
| * src/m4.h: use GNU standard #if HAVE_CONFIG_H ideom. |
| |
| * m4/m4private.h: ...is not a public header, so moved to src. |
| Add `#include <config.h>', `#define _COMPILING_M4' and |
| `#include "m4.h". |
| * m4/Makefile.am (noinst_HEADERS): remove m4private.h. |
| * src/Makefile.am (noinst_HEADERS): add m4private.h. |
| * src/builtin.c: `#include "m4private.h"' now takes care of the |
| above. Duplicates removed. |
| * src/debug.c: ditto. |
| * src/eval.c: ditto. |
| * src/evalmp.c: ditto. |
| * src/format.c: ditto. |
| * src/freeze.c: ditto. |
| * src/input.c: ditto. |
| * src/m4.c: ditto. |
| * src/macro.c: ditto. |
| * src/module.c: ditto. |
| * src/numb.h: ditto. |
| * src/output.c: ditto. |
| * src/path.c: ditto. |
| * stackovf.c: ditto. |
| * symtab.c: ditto. |
| |
| * po/POTFILES.in: compensate for renaming of lib/*. |
| * m4/Makefile.am (CLEANFILES): @EXEEXT@ left libtool wrapper behind. |
| (INCLUDES): Look first in $(top_srcdir) (for eg. <m4/error.h>), |
| and then in $(top_srcdir)/lib (for eg. "m4private.h"). |
| * src/Makefile.am (m4_LDADD): replace libi/libm4.la with |
| m4/libm4.la. |
| * m4/m4error.h: Renamed error.h, for installation to |
| $prefix/include/m4.. |
| * m4/m4obstack.h: Renamed obstack.h, for same reason. |
| * m4/m4regex.h: Renamed regex.h, for same reason. |
| * m4/m4error.c: Renamed error.c, and use #include "error.h". |
| * m4/m4obstack.c: Renamed obstack.c, and fix #includes. |
| * m4/m4regex.c: Renamed regex.c, and fix #includes. |
| |
| * lib: moved to m4 to easily support header installation to |
| $prefix/include/m4. |
| * Makefile.am (SUBDIRS): renamed lib dir to m4. |
| * configure.in (AC_OUTPUT): reference m4/Makefile.in. |
| * acm4/regex.m4: Point to m4/regex.c. |
| |
| * examples/foreach.m4: Sanitise quoting. |
| * examples/foreach.test: New torture test. |
| From Akim Demaille <akim@epita.fr> |
| |
| 2000-01-17 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/ltdl.c: Use access() to abort doomed module load attempts |
| if module file does not exist. |
| |
| * src/Makefile.am (m4_SOURCES, EXTRA_SOURCES): getopt.o and |
| getopt1.o will already be used if appropriate, so I moved getopt.c |
| and getopt1.c from m4_SOURCES to EXTRA_SOURCES. |
| |
| * modules/modpath1.test: Use correct filename in header line. |
| * modules/modpath2.test: ditto. |
| * modules/modpath3.test: ditto. |
| * modules/modpath4.test: ditto. |
| |
| Without these changes lt_dlopen("test") attempts to |
| LoadLibrary("/bin/test") on Windows, which although harmless |
| generates a spurious error message which spoils most of the tests: |
| * modules/Makefile.am (EXTRA_DIST): s/test.m4 /modtest.m4 / |
| (TESTS): s/test.test /modtest.test / |
| (pkglibexec_LTLIBRARIES): s/test.la /modtest.la / |
| (test_la_SOURCES, test_la_LDFLAGS): renamed to use modtest. |
| * modules/modpath1.test: s/test.m4 /modtest.m4 / |
| * modules/modpath2.test: ditto. |
| * modules/modpath4.test: ditto. |
| * modules/modpath3.test: s/-m test /-m modtest / |
| * modules/shadow.m4: use {un,}loadmodule(`modtest'). |
| |
| 2000-01-16 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/ltdl.c (find_file): Updated to new version with fixed memory |
| allocation bug in `next'. |
| * src/ltdl.h: updated to match. |
| |
| * modules/Makefile.am: Cleaned up and reordered. |
| |
| 2000-01-16 René Seindal <rene@seindal.dk> |
| |
| * modules/Makefile.am (TESTS): New tests for the module system. |
| |
| * modules/*.test: New files. |
| |
| * src/m4.c (main): Added call to module_init(). |
| Treats -M and -m as the arguments -D -U and -t, ie deferred. |
| |
| * src/m4.h: Added declaration of module_init(). |
| |
| * src/module.c (module_init): No longer static |
| |
| * modules/Makefile.am ({test,shadow,time,stdlib}_la_LDFLAGS): |
| Added to shut up automake about non standard libtool library |
| names. |
| |
| * src/module.c: Disabled DEBUG by default. |
| |
| * modules/README: Changed example from unload.m4 to shadow.m4 |
| |
| * modules/shadow.m4: Renamed from unload.m4 |
| |
| * modules/Makefile.am (EXTRA_DIST): Removed unload.m4. |
| |
| * src/m4.c (main): Functionality for -m and -M were reversed. |
| Fixed. |
| |
| 2000-01-12 Gary V. Vaughan <gary@gnu.org> |
| |
| * doc/help2man.pl: updated to version 1.020. |
| |
| * lib/COPYING.LIB: updated to version 2.1. |
| |
| * lib/m4module.h: restructure the M4_SCOPE code to work when |
| creating a dll which links with libm4.la and both DLL_EXPORT |
| (for the new dll) and LIBM4_DLL_IMPORT (for m4module.h) are |
| both defined. |
| |
| 2000-01-11 Gary V. Vaughan <gary@gnu.org> |
| |
| Merged the following changes from my tree: |
| |
| 1999-06-15 Gary V. Vaughan <gary@gnu.org> |
| |
| * configure.in (AC_LIBTOOL_WIN32_DLL): Declare that m4 has been |
| ported to compile shared libs. |
| |
| * configure.in (LIBM4_DLL_IMPORT): Discover whether we need to |
| use `__declspec(dllimport)' when linking libm4.la on win32. |
| * src/Makefile.am (m4_LDFLAGS): Use dllimport if necessary. |
| |
| * configure.in (M4OBJS): Discover whether we need the shipped |
| implementation of getopt_long. |
| * src/Makefile.am (m4_LDADD): Link the getopt objects into the |
| main binary here, as opposed to the module library in lib/libm4.la. |
| |
| 1999-06-14 Gary V. Vaughan <gary@gnu.org> |
| |
| * modules/README: Updated to describe the improved libltdl based |
| module scheme. |
| * README (cygwin): Added some compilation notes for building m4 |
| correctly under cygwin. |
| * TODO: Cleaned out the entries for the module system since they |
| are now implemented. |
| |
| * *.[ch]: __P is in the compiler's reserved namespace, so replaced |
| all instances of __P with M4_PARAMS. |
| |
| * lib/getdate.h: removed unreferenced file. |
| |
| * lib/m4private.h: New file to define the private interface to the |
| token_data struct, which must be shared between m4module.c, and |
| builtin.c but not exported to modules built from the installed |
| m4module.h since it's size changes depending on compile time |
| options. |
| |
| * src/m4.h: Lots of stuff moved to lib/m4module.h. |
| |
| * lib/m4module.h: New file to define the interface available when |
| compiling m4 modules. |
| * lib/m4module.c: Moved parts of builtin.c, and m4.c which are |
| necessary for module compilation into this new file. |
| |
| * lib/Makefile.am (include_HEADERS): install headers (renamed to |
| avoid nameclash with other system headers) necessary for compiling |
| modules. |
| (libm4_la_SOURCES): always include error.c, obstack.c and regex.c |
| so that modules can include the (renamed) installed headers and |
| be guaranteed a matching implementation. |
| * lib/m4error.h: renamed from error.h. |
| * lib/m4obstack.h: renamed from obstack.h. |
| * lib/m4regex.h: renamed from regex.h. |
| * configure.in (AC_REPLACE_FUNCS): Don't look for a system |
| implementation, simply include the shipped version |
| unconditionally, otherwise it is hard for a module to know |
| whether the m4obstack.h header it is using matches the |
| implementation it ends up linking against. |
| (jm_WITH_REGEX): Include regex into libm4 unconditionally for |
| the same reason. |
| |
| 1999-05-18 Gary V. Vaughan <gary@gnu.org> |
| |
| * examples/misc.test: Don't run this test on machines which don't |
| have a root user in /etc/passwd (e.g. cygwin). |
| |
| * tests/get-them (/^@example$/): Error messages might have a |
| ``.exe'' suffix to the program name, or else use the libtool |
| ``.libs/lt-m4'' binary, or generally have an unexpected path. All |
| of these cases are now catered for when comparing error messages |
| in generated tests. |
| * tests/other-tests/*.test: ditto. |
| * examples/*.test: ditto. |
| |
| * tests/defs (M4): use libtool execute mode. |
| * examples/defs (M4): ditto. |
| |
| * tests/get-them (END): explicitly close any open file. |
| (printthem): In a regular expression, '{' is the start of a repeat |
| count! Use `[{]' for a literal open brace. |
| (/^@node /): Don't use substr on a string shorter than the trim |
| length. |
| |
| 1999-05-17 Gary V. Vaughan <gary@gnu.org> |
| |
| * configure.in (LTLIBOBJS): calculated from LIBOBJS, and |
| substituted. |
| (AC_LIBTOOL_DLOPEN): declare that this package will use dlopen. |
| |
| 2000-01-10 Andreas Schwab <schwab@suse.de> |
| |
| * tests/other-tests/gmp.test: Find config.sh in build directory. |
| |
| * configure.in: Find tests/mkconfig.sh in $srcdir. |
| |
| * configure.in: Define HAVE_SIGINFO_T if siginfo_t is defined in |
| <signal.h> (for SUS2 compliant systems). |
| |
| * src/stackovf.c: Check for HAVE_SIGINFO_T in addition to |
| HAVE_SIGINFO_H. |
| |
| 2000-01-10 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4o. |
| |
| * TODO, NEWS: Cleaned up and updated. |
| |
| * src/m4.c (main): New variable exit_status for exit status in |
| case of unreadable files. Now m4 will exit with EXIT_FAILURE if a |
| file cannot be read instead of EXIT_SUCCESS. |
| |
| * src/builtin.c (m4_indir): Changed error message to help |
| translators (from Akim Demaille <demaille@inf.enst.fr>). |
| |
| * lib/obstack.[hc], getopt*.[ch]: Updated to newest version from |
| Cygnus. |
| |
| * lib/error.[hc], lib/regex.[hc], lib/strtol.c: Updated to version |
| from glic 2.1.2. |
| |
| * src/input.c (match_input): Reordering of code, to avoid multiple |
| calls to push_string_init() from obstack_grow(), which can happen |
| with some compilers (found and fixed by James Bonfield |
| <jkb@mrc-lmb.cam.ac.uk>). |
| |
| * src/stackovf.c: Added prototypes for ultrix. |
| (setup_stackovf_trap): Added __P to cast. |
| (Both reported by John David Anglin <dave@hiauly1.hia.nrc.ca>) |
| |
| 2000-01-09 René Seindal <rene@seindal.dk> |
| |
| * doc/m4.texinfo (Changequote): Added comment about changing |
| quotes when the old quote is a part of the new. |
| |
| * src/builtin.c (expand_ranges): Added break after trailing dash. |
| This caused misbehavious on some systems (found and fixed by Akim |
| Demaille <demaille@inf.enst.fr>). |
| |
| * AUTHORS: Thomas Tanner included |
| |
| * acconfig.h: Added entry for ss_sp (see below). |
| |
| * configure.in (use_stackovf): Added check for stack_t with member |
| ss_base instead of ss_sp (BSDI notably). (Reported by Paul Eggert |
| <eggert@twinsun.com>). |
| |
| * doc/m4.texinfo (Frozen files): Added a simpler example for |
| generating frozen files from several input files. |
| |
| 1999-11-14 Paul Eggert <eggert@twinsun.com> |
| |
| * po/POTFILES.in: Add lib/getopt.c, lib/obstack.c, |
| lib/regex.c, lib/xmalloc.c. |
| |
| 1999-11-10 René Seindal <rene@seindal.dk> |
| |
| * Makefile.am (ACLOCAL_AMFLAGS): Passes -I acm4 to aclocal. |
| |
| * src/module.c: reindented. |
| (module_load): return if this is a repeated load of same module. |
| (module_init): slight change of logic to avoid repeated |
| initialisation debug messages. |
| |
| * Makefile.am (DIST_SUBDIRS): Added to ensure modules/ is included |
| in the distribution. |
| |
| * modules/Makefile.am (test_la_LDFLAGS): set to -module to silence |
| automake warnings about missing lib prefix. |
| (time_la_LDFLAGS): ditto |
| (stdlib_la_LDFLAGS): ditto |
| |
| 1999-11-10 Paul Eggert <eggert@twinsun.com> |
| |
| * src/m4.h: Include error.h, since our macros use error. |
| * src/m4.c: Don't need to include error.h. |
| |
| 1999-11-09 Paul Eggert <eggert@twinsun.com> |
| |
| * src/m4.h (voidstar): Define to void * if __STDC__ is defined |
| and zero, as Solaris 7 cc does. |
| (bcopy): Remove macro; no longer needed with new obstack.h. |
| |
| * src/output.c (freeze_diversions): Don't assume that a |
| diversion size can fit in `int'. Check for diversion file |
| size too large to be printed with `unsigned long'. |
| |
| * src/Makefile.am (CFLAGS): Omit -Wall. |
| |
| * src/stackovf.c (setup_stackovf_trap): Remove cast to unsigned. |
| |
| * src/debug.c (trace_format): |
| Use ANSI C if (defined __STDC__ && __STDC__) || defined PROTOTYPES. |
| |
| * src/freeze.c (produce_frozen_state): |
| Don't assume string lengths fit in int. |
| |
| 1999-10-13 René Seindal <rene@seindal.dk> |
| |
| * po/cs.po: Czech translation added. |
| |
| * po/sv.po: Updated Swedish translation. |
| |
| * po/ru.po: Updated Russian translation. |
| |
| * po/pl.po: Updated Polish translation. |
| |
| * po/el.po: Greek translation added. |
| |
| 1999-10-13 René Seindal <rene@seindal.dk> |
| |
| * configure.in (ALL_LINGUAS): Added Greek translation (el). |
| (ALL_LINGUAS): Added Czech translation (cs). |
| |
| 1999-03-30 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/builtin.c: moved module loading functions into... |
| * src/module.c: entirely new implementation using libltdl. |
| * po/POTFILES.in: added src/module.c. |
| * modules/Makefile.am (LTLIBRARIES): Removed lib prefix as these |
| are modules, not linktime libraries. |
| (LDFLAGS): added -no-undefined -module and -avoid-version flags. |
| * modules/stdlib.c (m4_macro_table): use <name>_LTX collision |
| avoidance on exported symbols. |
| * modules/test.c (m4_macro_table, m4_init_module, |
| m4_finish_module): ditto. |
| * modules/time.c (m4_macro_table): ditto. |
| |
| * modules/time2.m4: new file which requires command line loading |
| of modules. |
| * src/m4.c (--load-module): dynamically load named runtime module |
| into running executable before reading the source. |
| (--module-directory): prepend a directory to the module search |
| path. |
| (module_init()): Do this the first time we load a module instead; |
| if the module subsystem is broken normal m4 scripts can still run. |
| * src/m4.h (install_builtin_table): is now exported. |
| |
| 1999-03-26 Gary V. Vaughan <gary@gnu.org> |
| |
| * src/module.c: removed. No longer required. |
| * po/POTFILES.in: removed src/module.c. |
| |
| * Makefile.am (MAINTAINERCLEANFILES): Remove all the files that |
| the bootstrap script can recreate. |
| * acm4/Makefile.am (MAINTAINERCLEANFILES): ditto. |
| * doc/Makefile.am (MAINTAINERCLEANFILES): ditto. |
| * examples/Makefile.am (MAINTAINERCLEANFILES): ditto. |
| * lib/Makefile.am (MAINTAINERCLEANFILES): ditto. |
| (AUTOMAKE_OPTIONS): reduced strictness to allow COPYING.LIB. |
| * modules/Makefile.am (MAINTAINERCLEANFILES): ditto. |
| * src/Makefile.am (MAINTAINERCLEANFILES): ditto. |
| * tests/Makefile.am (MAINTAINERCLEANFILES): ditto. |
| |
| * acinclude.m4: removed. `aclocal -I acm4' handles this much |
| better. |
| * acm4/Makefile.am (ACINCLUDE_M4): ditto. |
| * acm4/gettext.m4: removed. It causes a multiple definition vs. |
| the installed gettext.m4 file when running aclocal. |
| |
| 1999-03-25 Gary V. Vaughan <gary@gnu.org> |
| |
| * configure.in (AM_INIT_AUTOMAKE): bumped version number to |
| distinguish this from the last prerelease. |
| (AC_LIBLTDL_CONVENIENCE): build libltdl as a convenience library |
| in its own subdirectory. |
| |
| * modules/Makefile.am (*_SOURCES): renamed to use libtool's "no |
| lib prefix on a module" feature. |
| (LDFLAGS): Added `-module -avoid-version' flags to build |
| versionless module libraries. |
| * src/builtin.c (m4_load_module): use libltdl. |
| (module_unload_all): use libltdl. |
| * src/m4.c (module_init): initialise module loading on demand for |
| better diagnostics, and so that m4 will still work even if |
| the module code is broken. |
| * src/m4.h (module_init): removed. No longer relevant. |
| * modules/stdlib.c (m4_macro_table): use stdlib_LTX_ prefix on |
| exported symbols for compatibility with dlpreopening. |
| * modules/test.c (m4_macro_table, m4_init_module, |
| m4_finish_module): ditto. |
| * modules/time.c (m4_macro_table): ditto. |
| |
| * bootstrap: New file. Runs all the autoutils in the right order |
| after a fresh checkout, or a make maintainer-clean. |
| |
| 1999-02-18 Akim Demaille <demaille@inf.enst.fr> |
| |
| * src/builtin.c (dump_symbols): New function, factoring common |
| content of m4_dumpdef and m4_symbols. |
| (m4_dumpdef): Use it. |
| (m4_symbols): New function, implementing `symbols'. Use it. |
| * doc/m4.texinfo: Fixed missing commas after @xref, so that the |
| file compile with modern makeinfo. |
| (Symbols): New node, documenting symbols. |
| (direntry): Modernize. |
| |
| 1998-12-11 René Seindal <rene@seindal.dk> |
| |
| * src/builtin.c (predefined_tab): New predefined macros |
| __m4_changeword__, __m4_gmp__ and __m4_modules__ for testing for |
| configure time options. |
| |
| 1998-12-01 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> |
| |
| * src/module.c (module_try_load): Don't try to be clever and |
| overwrite argument string. Instead allocate all constructed |
| strings locally, since they can have arbitrary lengths. Make |
| arguments pointers to const. |
| (module_search): Simplify due to above change. |
| |
| 1998-11-29 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4n. |
| |
| * tests/Makefile.am (OTHER_TESTS, OTHER_FILES): New tests. |
| |
| * tests/other-tests/import-environment.{m4,test}: New test. |
| |
| * tests/other-tests/discard-comments.{m4,test}: New test. |
| |
| * doc/m4.texinfo (Invoking m4): Updated for --discard-comments. |
| |
| * src/m4.c (main): New option -c --discard-comments. |
| New global variable discard_comments. |
| |
| * src/m4.h (token_type): New TOKEN_NONE for tokens to be |
| discarded, ie never returned from next_token(). |
| Added declaration of discard_comments. |
| |
| * src/input.c (next_token): Now loops until token type is not |
| TOKEN_NONE. Comments are now given this type when comments should |
| be discarded. |
| |
| * doc/m4.texinfo (Invoking m4): Updated for --import-environment |
| and mpeval. |
| |
| 1998-11-28 René Seindal <rene@seindal.dk> |
| |
| * src/m4.c (main): New option --import-environment (no single |
| letter option). |
| |
| * When configured with --with-gmp both the normal (fast) eval() |
| and the gmp aware mpeval() are defined. To restore previous |
| bahaviour use "define(`eval', defn(`mpeval'))". |
| |
| * tests/other-tests/gmp.m4: Changed to use mpeval(). |
| |
| * src/evalmp.c: New file for compiling eval.c as gmp aware. |
| Just defines USE_GMP if WITH_GMP is defined and includes eval.c. |
| |
| * src/eval.c: Now includes "numb.c" directly. Everything in this |
| file must by static, except evaluate(), which is changed to |
| mp_evaluate() if USE_GMP in force. |
| |
| * src/numb.c: Changed to be included by eval.c instead of being |
| compiled separately. Everything is declared static. |
| |
| * src/numb.h: Removed declarations of functions, as numb.c is now |
| included by eval.c. |
| |
| * src/builtin.c: Declaration of m4_mpeval() added. |
| Inserted `mpeval' in builtin table. |
| (do_eval): New function with common code for m4_eval and m4_mpeval. |
| (m4_mpeval): New function for gmp version of eval. |
| |
| * src/m4.h: Declaration of mp_evaluate(). |
| |
| * src/Makefile.am (m4_SOUCES): Includes mpeval.c. |
| (EXTRA_m4_SOURCES): Now has numb.c and numb.h |
| |
| * src/m4.c (main): m4 --version also shows which options were used |
| for compilation, such as: "GNU m4 1.4n (options: modules gmp)" |
| |
| 1998-11-27 René Seindal <rene@seindal.dk> |
| |
| * Error messages now always print program name before input file |
| name as specified by GNU coding standards. Reported by Akim |
| Demaille <demaille@inf.enst.fr>. |
| |
| * doc/m4.texinfo (Include): Change due to changed error message |
| format. |
| (Eval): Do. |
| |
| * tests/get-them: Minor change to sed script due to changed error |
| message format. |
| |
| * src/m4.c (print_program_name): New func used to print program |
| name, input file and line number in error (). Used as an |
| error_print_progname handler. |
| (reference_error): Removed. |
| (main): Assigns error_print_progname. |
| |
| * src/m4.h (M4ERROR): Removed reference_error (). |
| |
| 1998-11-25 René Seindal <rene@seindal.dk> |
| |
| * Updated to libtool 1.2b. |
| |
| * src/builtin.c (install_builtin_table): Added braces to avoid |
| warning of ambiguous 'else'. |
| |
| * src/module.c: Inserted search path code from path.c modified to |
| use new interface. |
| (module_init): Configured default path used only if M4MODPATH is |
| not set. |
| (module_try_load): Now reads libMODULE.la as generated by libtool |
| for actual module name. |
| (module_load): Gives better error messages on failure. |
| |
| * src/m4.h: Added declarations of structures and functions for |
| generic search path handling. |
| |
| * src/path.c: Removed all module specific code and introduced new |
| functions of more generic search path handling. |
| |
| 1998-11-24 René Seindal <rene@seindal.dk> |
| |
| * configure.in: Defines INTLINCL to -I$(top_srcdir)/intl if using |
| included gettext, as <libintl.h> might not be found |
| otherwise. Reported by Andrew Bettison <andrewb@zip.com.au>. |
| |
| 1998-11-22 René Seindal <rene@seindal.dk> |
| |
| * src/output.c (insert_diversion): Fixed bug that might cause m4 |
| to read from standard output! Triggered by input |
| 'divert(1)undivert(0)'. Test for divnum>0 changed to divnum>=0, |
| so now 'undivert(0)' does nothing. |
| |
| 1998-11-18 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4m. |
| |
| * src/input.c (set_word_regexp): Fixed a bug, where word_regexp |
| could be changed when compiling a illegal regexp, causing later |
| use of the regexp to dump core. |
| |
| * src/module.c (module_load): Changed error message to conform to |
| standards. |
| |
| * src/m4.c (usage): Added message about reporting bugs. |
| |
| * doc/m4.texinfo (Changeword): Corrected a wrong example. |
| (Changeword): Added note about the type of regexps used. |
| |
| * ltconfig, ltmain.sh: New files from Libtool 1.2. |
| |
| * configure.in: Added calls to AM_ENABLE_SHARED, AM_DISABLE_STATIC |
| and AM_PROG_LIBTOOL. |
| |
| * acm4/modules.m4 (AM_WITH_MODULES): Redone completely to work |
| with libtool. |
| |
| * modules/Makefile.am: Changed completely to compile modules using |
| libtool. The modules are compiled as shared libraries, and are |
| renamed when installed. |
| |
| * src/m4.h, src/module.c, acm4/modules.m4, acconfig.h: Renamed |
| USE_SHL_LOAD to HAVE_SHL_LOAD |
| |
| * src/builtin.c (shipout_string): Now tests for a NULL string. |
| |
| * src/module.c: New level of indirection around non-portable |
| functions to load shared objects. Intended to encapsulate the non |
| portable parts better and to reduce the number of #ifdefs in the |
| code. |
| |
| * Makefile.am (DIST_SUBDIRS): Instead of EXTRA_DIST for added |
| directory modules/ to the distribution. |
| |
| 1998-11-15 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4l. |
| |
| * modules/stdlib.c: New module `stdlib' defining some standard |
| functions: getcwd, getlogin, getpid, getppid, getuid, getpwnam, |
| getpwuid, hostname, rand, srand, getenv, setenv, unsetenv, uname. |
| |
| * src/builtin.c (shipout_string): New convenience function for |
| builtins and modules. |
| |
| * src/module.c (module_load): Tentative support for |
| shl_load/shl_findsym, but I cannot test it. Copied from MetaHTML. |
| |
| * Makefile.am (SUBDIRS): Directory modules added if configured. |
| |
| * modules/Makefile.am: Now correctly compiles and installs |
| modules in pkglibexecdir. |
| |
| * src/m4.h: WITH_MODULES defined iff HAVE_DLOPEN or USE_SHL_LOAD. |
| These two are now initialised by autoconf macros. |
| |
| * src/path.c (module_env_init): MODULE_PATH is always on the |
| search path. |
| |
| * src/Makefile.am: Now generated pathconf.h which defined the |
| default MODULE_PATH. |
| |
| * configure.in (pkglibexecdir): Added defintion of pkglibexecdir, |
| where modules are installed. |
| |
| * acm4/modules.m4: Enhanced with code from MetaHTML, contributed |
| by Brian J. Fox <bfox@datawave.net>. This change allow modules to |
| build and install automatically, and it is prepared for other |
| interfacec than dlopen(). |
| |
| * src/builtin.c (predefined_tab): Added __m4_version__ for the |
| current version of GNU m4. It is a GNU extension. |
| |
| 1998-11-14 René Seindal <rene@seindal.dk> |
| |
| * tests/Makefile.am (GENERATED_TESTS): Added new |
| generated-tests/changesy.8.test |
| |
| * doc/m4.texinfo (Changesyntax): Documentation for escape |
| syntax class. |
| |
| * src/macro.c (expand_token): Check for escaped macro call before |
| symbol table lookup. |
| |
| * src/builtin.c (m4_changesyntax): Added `@' flag to define escape |
| characters |
| |
| * src/input.c: New static variable use_macro_escape, which is TRUE |
| iff some character has code SYNTAX_ESCAPE |
| (input_init): Added initialisation of use_macro_escape. |
| (check_use_macro_escape): New function to synchronise |
| use_macro_escape with the syntax table. |
| (set_quotes): Added call to check_use_macro_escape() |
| (set_comment): Do. |
| (set_syntax): Do. |
| (next_token): Added new case for IS_ESCAPE. |
| |
| * src/m4.h (SYNTAX_ESCAPE): Defined as simple syntax category. |
| |
| 1998-10-13 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4k. |
| |
| * tests/Makefile.am (GENERATED_TESTS): Renamed gentest to |
| generated-tests. |
| |
| * tests/Makefile.am (OTHER_TESTS, OTHER_FILES): Added manually |
| maintained tests in tests/other-tests. These currently tests for |
| 8-bit transparency, multiple precision arithmetic and sync-line |
| output. Test for stackoverflow detection does not work. |
| |
| * examples/Makefile.am (TESTS): Added tests for all example files. |
| |
| * examples/mktests.sh: New file. Help program for creating test |
| files. |
| |
| * tests/mkconfig.sh: New file to generate tests/config.m4 and |
| tests/config.sh. This is for tests of configure selectable |
| features. Picks up all set WITH_ and ENABLE_ veriables from |
| config.h |
| |
| * src/path.c (path_search): Added argument 'char **expanded_name' |
| to return the expanded name. |
| |
| * src/m4.h: Added 2nd argument to declaration of path_search(). |
| |
| * src/m4.c (main): Added 2nd argument to path_search(). |
| |
| * src/freeze.c (reload_frozen_state): Do. |
| |
| * src/builtin.c (m4_undivert): Do. |
| (include): Do. |
| |
| 1998-10-11 René Seindal <rene@seindal.dk> |
| |
| * acm4/Makefile.am (ACINCLUDES_M4): Added gmp.m4 and modules.m4 |
| |
| * acm4/modules.m4: New file. Defines AM_WITH_MODULES. |
| |
| * acm4/gmp.m4: New file. Defines AM_WITH_GMP. |
| |
| * configure.in: Introduced AM_WITH_MODULES and AM_WITH_GMP. |
| |
| * AUTHORS, ChangeLog: Changed all dates to ISO 8601. |
| |
| * intl/: Updated to GNU gettext 0.10.35. |
| |
| * doc/m4.texinfo (Format): Documented that format is blind. |
| |
| * src/builtin.c (builtin_tab): Builtin format marked as blind. |
| |
| 1998-10-07 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4j. |
| |
| * tests/Makefile.am (GENERATED_TESTS): Changed .m4 extension to |
| .test, as the files are no longer just m4 input. |
| |
| * tests/get-them (FILE): Changed .m4 extension to .test. |
| |
| * src/m4.h (token_type): New token type TOKEN_SPACE introduced. |
| Otherwise quoted strings with leading whitespace first in a macro |
| argument would be eliminated. |
| |
| * src/macro.c (expand_token): Handles new token type TOKEN_SPACE. |
| (expand_argument): Do. |
| |
| * src/input.c (next_token): SPACE and NUM/OTHER characters are only |
| grouped together iff both quote and comment strings are single |
| character. Otherwise they might include a comment/quote leader. |
| (next_token): Returns new token type TOKEN_SPACE. |
| |
| * src/builtin.c (push_builtin_table): New function to push a |
| builtin_table on the stack without installing its contents. |
| (find_builtin_by_name): Added call to push_builtin_table() if |
| reading frozen files. Otherwise the builtins named in the frozen |
| files could not be found. |
| (install_builtin_table): Changed to use push_builtin_table() |
| |
| 1998-10-04 René Seindal <rene@seindal.dk> |
| |
| * po/pl.po: Polish translation added. |
| |
| * po/POTFILES.in: src/module.c added. |
| |
| 1998-10-04 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4i. |
| |
| * configure.in (ALL_LINGUAS): Added Polish pl.po |
| |
| 1998-10-03 René Seindal <rene@seindal.dk> |
| |
| * Many files: Incorporated changes to implement dynamic modules. |
| Detailed comments in src/modules.c and modules/README |
| |
| * src/module.c: New file, implements the OS dependant parts of |
| dynamic module loading. |
| |
| * src/Makefile.am (m4_SOURCES): Added module.c |
| |
| * src/builtin.h: New file, declares some functions from builtin.c |
| that are of use for other modules (shipout_int, numeric_arg, |
| skip_space, bad_argc), and the macros ARG() and DECLARE(). |
| |
| * src/builtin.c (install_builtin_table): New function. Each |
| module brings in a builtin_table, which is pushed on a stack. |
| (struct builtin_table): New struct for list of builtin_tables. |
| (m4_loadmodule): New function to implement builtin "loadmodule". |
| (shipout_int): No longer static, to be used by modules. |
| (numeric_arg): do. |
| (skip_space): do. |
| (bad_argc): do. |
| (builtin_init): changed to call install_builtin_table() |
| (find_builtin_by_name): Now searches all builtin_tables |
| (find_builtin_by_addr): do. |
| |
| * src/path.c: Reorganised to allow for two search paths, one for |
| include files and one for modules. |
| |
| * src/m4.h: Added declarations for new functions in module.c and |
| in path.c. |
| |
| * src/m4.c (main): Added call to module_init(). |
| |
| * modules: New directory with a few demo modules. |
| |
| * Makefile.am (EXTRA_DIST): Added modules/* since modules/ is not |
| in SUBDIRS. |
| |
| * configure.in: Added modules/Makefile to AC_OUTPUT. |
| |
| * configure.in: Added code to implement --with-modules. Tests for |
| <dlfcn.h> and -ldl. |
| |
| * acconfig.h: Added WITH_MODULES |
| |
| 1998-10-02 René Seindal <rene@seindal.dk> |
| |
| * examples/Makefile.am (pkgdata_DATA): Removed special target for |
| check and variables TESTS. These tests are now run from the |
| tests/ directory. |
| |
| * tests/Makefile.am (OTHER_TESTS): Added tests from the example/ |
| directory. The files stay there but the tests are run from the |
| tests/ directory. |
| |
| * tests/Makefile.am (EXTRA_DIST): Added run-test. |
| |
| * tests/run-test: New file. Run a test manually |
| |
| * tests/Makefile.am, tests/get_them: Moved automatically generated |
| tests (from the manual) to sub directory tests/gentest/. The |
| tests/ directory had gotten a bit messy. |
| |
| 1998-09-06 Erick Branderhorst <Erick.Branderhorst@asml.nl> |
| |
| * examples/{comments,ddivert,debug,iso8859,reverse,sysv-args,\ |
| wrap}.test: Added a few testcases. |
| |
| 1998-08-21 Erick Branderhorst <Erick.Branderhorst@asml.nl> |
| |
| * Prerelease 1.4h. |
| |
| * lib/Makefile.am (noinst_HEADERS): regex.h added |
| |
| * configure.in (jm_WITH_REGEX, jm_PREREQ_ERROR): |
| acm4/{error,regex}.m4 (from fileutils-3.16u.tar.gz). |
| |
| * acm4/Makefile.am: created providing rules to create |
| $(top_srcdir)/acinclude.m4 to be used by aclocal. |
| |
| * tests/defs (LANGUAGE, LC_ALL, LANG): force them to be |
| `C'. Reported by Ulrich Drepper. |
| |
| * Makefile.am (SUBDIRS): Removed checks directory |
| * configure.in (AC_OUTPUT): Removed checks/Makefile |
| |
| * doc/m4.texinfo (Patsubst,example): @comment added to preserve |
| the space when m4.texinfo is edited and whitespace.el is active. |
| (Defn,example): idem. |
| |
| 1998-08-20 Erick Branderhorst <Erick.Branderhorst@asml.nl> |
| |
| * doc/m4.texinfo (Esyscmd): grep ../Makefile instead of |
| ../COPYING. ../Makefile is a file which is certainly present when |
| test is executed in testSubDir. One can't be sure that the COPYING |
| file is in .. or ../.. in all situations, the ../Makefile is |
| always there. |
| |
| * doc/m4.texinfo (Include): adjusted expected test output |
| according to new tests, i.e. the input will always come from the |
| file `in' created by the test. |
| |
| * tests/Makefile.am: Added three lines at the top to get |
| esyscmd.1.test working. |
| |
| * tests/get-them: modified to generate clearer tests who will need |
| less maintenance when new test examples are created in |
| `doc/m4.texinfo'. All tests are small (nearly stand-alone, they |
| need the generic file `defs') shell scripts creating `in', `ok', |
| `out' and when apropriate `okerr' and `err' in the directory |
| `testSubDir' when executed. The compare of `ok' and `out' |
| (and of `okerr' and `err') will be the exit status of the test. |
| `out' must match `ok' (and `okerr' must match `err') for the test |
| to be succesful. |
| |
| * tests/[a-b]\{1,8\}.[0-9]+.test: This namespace is reserved for |
| the tests generated by tests/get-them getting it input normally |
| from doc/m4.texinfo. The namespace tests/[a-b]+[0-9]+.test (no `.' |
| (dot) before the numeric part) is reserved for all other (hand |
| written) tests. The `+' means one or more times. |
| |
| 1998-08-12 Erick Branderhorst <Erick.Branderhorst@asml.nl> |
| |
| * doc/Makefile.am (EXTRA_DIST): helptoman.pl and $(MANS) to |
| supported short man page to refer to info documentation |
| * helptoman.pl: added |
| * configure.in: AC_PATH_PROG(PERL,perl) |
| * Makefile.am (SUBDIRS): doc after src |
| |
| * libitized with libit 0.5 from |
| ftp://ftp.iro.umontreal.ca/pub/contrib/pinard/maintenance/libit. |
| |
| * configure.in (AC_REPLACE_FUNCS): added xmalloc xstrdup |
| * lib/Makefile.am (libm4_a_SOURCES): removed automakely supported |
| replacement functions, (libm4_a_LIBADD): @LIBOBJS@ |
| * configure.in (AM_WITH_REGEX), acconfig.h (WITH_REGEX): added |
| lib/rx.{c,h}: added |
| * configure.in (AC_CHECK_FUNC): getopt_long |
| |
| * src/m4.c (usage): Report bugs to m4-bugs@gnu.org. |
| |
| * TODO: added entry about dependencies |
| |
| 1998-08-10 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4f |
| |
| * doc/m4.texinfo (Changesyntax): Added documentation for the macro |
| "changesyntax". |
| |
| * src/builtin.c (m4_changesyntax): Added builtin macro |
| "changesyntax" to modify the syntax table. |
| |
| * src/input.c, src/m4.h, src/macro.c: Implemented an input syntax |
| table. All categories are assigned a syntax code and tokens are |
| read according to this table. |
| |
| 1998-08-09 René Seindal <rene@seindal.dk> |
| |
| * src/numb.{c,h}: New files, implements multiple precision eval |
| using GNU gmp. Originally submitted by John Gerard Makecki |
| (johnm@vlibs.com), later modified. Tested with GNU gmp 2.0.2. |
| |
| * doc/m4.texinfo (Eval): Added documentation for multiple |
| precision arithmetic library support. |
| |
| * src/m4.{c,h}, src/eval.c, src/builtin.c, configure.in: Changes |
| to accommodate multiple precision eval. |
| |
| 1998-08-07 René Seindal <rene@seindal.dk> |
| |
| * src/input.c (MATCH, match_input), src/m4.h: changed definition |
| of comment and quote strings to `unsigned int' to allow eight bit |
| chars (reported by andrewb@zip.com.au (Andrew Bettison)). |
| |
| * src/builtin.c, doc/m4.texinfo: Builtin `syncoutput' added by |
| patch from Mike Howard <mike@clove.com> |
| |
| 1998-08-06 René Seindal <rene@seindal.dk> |
| |
| * gettext.m4: corrected AM_WITH_NLS to handle use of installed |
| -lintl. |
| |
| 1998-08-03 René Seindal <rene@seindal.dk> |
| |
| * Prerelease 1.4e |
| |
| * src/m4.h: Added ifdef ENABLE_NLS around include of <libintl.h> |
| and _ macro. M4 now builds with --disable-nls. |
| |
| * src/m4.c (main): reintroduced textdomain(PACKAGE) to get gettext |
| to look for right message catalogs. Call indef'ed by ENABLE_NLS. |
| |
| * configure.in (ALL_LINGUAS): Added complete list of translations: |
| de fr it ja nl ru sv. |
| |
| 1998-05-23 Erick Branderhorst <Erick.Branderhorst@asml.nl> |
| |
| * po/nl.po: Dutch translation by Erick Branderhorst. |
| |
| * po/fr.po: French translation by Erick Branderhorst, based on the |
| translations by François Pinard in fr.msg and m4.cod. |
| |
| 1998-05-22 Erick Branderhorst <Erick.Branderhorst@asml.nl> |
| |
| * Prerelease 1.4d. |
| |
| * src/m4.c: #include <signal.h> not <sys/signal.h>. |
| |
| * src/Makefile.am: CFLAGS = -Wall @CFLAGS@. |
| |
| * checks/Makefile.am: explicit list tests in CHECKS. |
| |
| * configure.in, {,src,doc,lib,examples,checks}/Makefile.am, |
| src/{ansi2knr.{1,c}} doc/{m4.texinfo,mdate-sh}, missing, |
| mkinstalldirs, install-sh: Added automake (1.3) support. |
| |
| * lib/{alloca.c,error.{c,h},get{date.h,opt.{c,h},opt1.c}, |
| obstack.{c,h},regex.{c,h},strtol.c,xmalloc.c,xstrdup.c}: |
| Used libitize (0.4) to update. |
| |
| * configure.in, ABOUT-NLS, intl/*, po/*: Added gettextize |
| (0.10.25) support. Removed LOCALE, fr.msg, m4.cod and adjusted |
| README accordingly. |
| |
| * src/stackovf.c: #ifdef USE_STACKOVF ... #endif to (de-)activate |
| stack overflow functionality. |
| |
| 1994-12-03 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Prerelease 1.4.1. |
| |
| * Makefile.in (realclean-local): Delete stamp-h.in. |
| |
| * configure.in, {,src,lib}/Makefile.in, src/m4.h, src/m4.c: |
| Localize, adapting from how it is done in sharutils. |
| |
| * fr.tt: New file, for French. |
| |
| * configure.in, {,*/}Makefile.in, acconfig.h, src/m4.c, |
| src/freeze.c: Rename PRODUCT to PACKAGE. |
| |
| 1994-11-26 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Check for <libintl.h> and <locale.h>. |
| * src/m4.h, src/builtin.c, src/debug.c, src/eval.c, src/macro.c, |
| src/stackovf.c: Rename _ to __P. |
| * src/m4.h: Declare _ as a macro returning its argument, or else, |
| include <libintl.h> and declare _ as gettext. |
| * src/m4.c: Possibly include <locale.h> and call setlocale. |
| * src/m4.c, src/builtin.c, src/debug.c, src/eval.c, src/freeze.c, |
| src/input.c, src/macro.c, src/output.c, src/path.c, |
| src/stackovf.c, src/symtab.c: Use _ macro over all localizable |
| strings. |
| |
| 1994-11-07 François Pinard <pinard@iro.umontreal.ca> |
| |
| * doc/Makefile.in (stamp-vti): Use new -r option to date. |
| |
| * configure.in: Put --with-gmp in place, in prevision for John |
| Gerard's work. |
| * acconfig.h: Document WITH_GMP. |
| |
| 1994-11-05 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Release 1.4. |
| |
| * doc/Makefile.in (realclean): Also remove stamp-vti. |
| Reported by Eric Backus. |
| |
| 1994-11-02 François Pinard <pinard@iro.umontreal.ca> |
| |
| * src/freeze.c (produce_frozen_state): If the frozen file cannot |
| be opened, return immediately after producing the error message. |
| Reported by Andreas Schwab. |
| |
| * configure.in: Check for const only after having found possible |
| ANSIfying compiler flags, this is of no use to check it before. |
| Reported by Alexander Lehmann. |
| |
| 1994-11-01 François Pinard <pinard@iro.umontreal.ca> |
| |
| * src/macro.c (collect_arguments): Cast obstack arguments to |
| (voidstar), so avoiding compiler warnings. |
| Reported by Joseph E. Sacco. |
| |
| * src/freeze.c (produce_frozen_state): Cast printed lengths to |
| (int) so they correspond to %d format items. |
| Reported by Joseph E. Sacco. |
| |
| * src/m4.c (main): Cast the argument to xfree to (voidstar). |
| * src/symtab.c (free_symbol): Idem. |
| Reported by Karl Vogel. |
| |
| 1994-10-31 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (DISTFILES): Distribute BACKLOG. |
| |
| * configure.in: Define PRODUCT and VERSION. |
| * acconfig.h: Document PRODUCT and VERSION. |
| * src/m4.c, src/freeze.c: Use PRODUCT and VERSION instead of the |
| constant string m4 and variable or parameter named version. |
| |
| 1994-10-30 François Pinard <pinard@iro.umontreal.ca> |
| |
| * src/m4.h, src/debug.c: Replace all #ifdef __STDC__ by #if |
| __STDC__. Alliant FX/2800 Concentrix 2.2 (i860-BSD4.3) compiler |
| defines __STDC__ to 0, for indicating it is *not* ANSI! |
| Reported by Kaveh R. Ghazi. |
| |
| * configure.in: Added obsolescent tests for AIX and Minix. |
| |
| * doc/Makefile.in (mostlyclean): Remove texclean in dependencies, |
| which texclean does not exist anymore. |
| Reported by Eric Backus, Jim Meyering, John David Anglin and |
| Joseph E. Sacco. |
| |
| 1994-10-29 François Pinard <pinard@iro.umontreal.ca> |
| |
| * aclocal.m4 (fp_C_PROTOTYPES): Force -D_HPUX_SOURCE with -Aa. |
| Reported by John David Anglin. |
| |
| * src/ansi2knr.c: New version, sent by Peter Deutsch. |
| * aclocal.m4 (fp_C_PROTOTYPES): Substitute empty or ansi2knr for |
| ANSI2KNR, depending on the fact the compiler is ANSI or not. |
| * src/Makefile.in: Use -Ovarargs=convert on ansi2knr calls. |
| Remove the sed filter after ansi2knr for debug.c. Use $O instead |
| of $U, put underline in extensions rather than in basenames. Use |
| implicit rules, now that regularity makes this possible. |
| Have $(OBJECTS) depend on $(ANSI2KNR), so to trigger compilation |
| of ansi2knr whenever it is needed. |
| * configure.in: Adjusted for correct STACKOVF substitution. |
| * src/debug.c (trace_format): When not __STDC__, use (...) as a |
| parameter list, so ansi2knr will convert it to (va_alist) va_dcl. |
| Reported by David MacKenzie. |
| |
| * Makefile.in: Remove binprefix. Use transform_name instead. |
| Reported by David MacKenzie. |
| |
| * doc/Makefile.in: Create version.texi, use it, clean it. |
| Reported by Jim Meyering. |
| |
| 1994-10-28 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (all, install, uninstall): Depend on Makefile. |
| |
| * Makefile.in: For actions invoking $(MAKE) from within compound |
| sh statements, exit non-zero if the sub-make fails. Otherwise, |
| the top-level make may exit successfully when it should fail. |
| Reported by Jim Kingdon. |
| |
| * {,/*}Makefile.in: Use && after all cd, in case they fail. |
| |
| * {,*/}Makefile.in: Declare PRODUCT and VERSION macros. |
| (dist): Use PRODUCT and VERSION instead of tricks on .fname. |
| * configure.in: Substitute PRODUCT and VERSION. |
| |
| * {,*/}Makefile.in (dist): Always try a hard link before a copy. |
| |
| 1994-10-27 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (mostlyclean-local): Do not remove *~. |
| * */Makefile.in (mostlyclean): Idem. |
| Reported by Robert E. Brown and Richard Stallman. |
| |
| 1994-10-09 François Pinard <pinard@iro.umontreal.ca> |
| |
| * src/m4.h: Get rid of CONFIG_BROKETS. |
| |
| 1994-10-02 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Use AC_ARG_PROGRAM. |
| * aclocal.m4 (fp_C_PROTOTYPES): Substitute @kr@ by kr or empty. |
| Reported by David MacKenzie. |
| |
| 1994-10-01 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Do not add -O to CFLAGS for GNU C, now that |
| configure does it automatically. |
| Reported by Jim Meyering. |
| |
| 1994-09-23 François Pinard <pinard@iro.umontreal.ca> |
| |
| * src/stackovf.c: Declare the handler_t typedef earlier in the |
| code, use it for stackovf_handler. |
| (setup_stackovf_trap): Use RETSIGTYPE instead of void while |
| casting sigsegv_handler. |
| Reported by Robert Bernstein. |
| |
| * src/m4.c (main): Initialize program_name to argv[0] without |
| basename'ing it. |
| Reported by Karl Berry. |
| |
| 1994-09-18 François Pinard <pinard@iro.umontreal.ca> |
| |
| * src/Makefile.in (TAGS): Include a ../lib/TAGS reference. |
| Reported by Karl Berry. |
| |
| 1994-09-14 François Pinard <pinard@iro.umontreal.ca> |
| |
| * lib/Makefile.in (mostlyclean): Added. |
| (TAGS): Make in $(srcdir). |
| |
| * configure.in: Use `choke me' in test, like everywhere! |
| |
| * {doc,examples,lib,src}/Makefile.in (check): Deleted, as |
| unreacheable and useless. |
| |
| * doc/Makefile.in (texclean): Deleted, merged in mostlyclean. |
| |
| * lib/Makefile.in (DISTFILES): Distribute TAGS. |
| (distclean): Do not remove TAGS. |
| (realclean): Remove it. |
| * Makefile.in: Make TAGS in lib also, not just in src. |
| Reported by Karl Berry. |
| |
| * Makefile.in (distclean, realclean): Instead of recursively |
| calling $(MAKE) for the -local part, allow parallel execution of |
| -recursive and -local, only delay the removal of config.status, |
| which is repeated in both goals. |
| |
| 1994-09-13 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Release 1.3. |
| |
| * Makefile.in: Group all *clean-recursive goals in one, using sed |
| to remove `-recursive' while calling make recursively. Also, use |
| a subshell for each recursive $(MAKE). |
| Reported by Jim Meyering. |
| |
| * src/m4.h (memcpy): Define with bcopy for BSD systems. |
| Reported by Kaveh R. Ghazi. |
| |
| * src/Makefile.in (ansi2knr): Use $(LIBS) while linking, for SunOS |
| 4.1.3 requires -ldl to link even ansik2nr, and we need a way to |
| specify it. |
| |
| * configure.in: Use date instead of touch for stamp-h. |
| * Makefile.in (stamp-h.in): Idem. |
| |
| * Makefile.in (distclean, realclean): Force serial execution of |
| both goals, in case parallel makes are being used. |
| Reported by Jim Meyering. |
| |
| * src/Makefile.in (DISTFILES): Distribute TAGS. |
| (distclean): Do not remove TAGS. |
| (realclean): Remove it. |
| Reported by Karl Berry. |
| |
| 1994-09-10 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Use fp_ to match aclocal.m4. Revert _OS_ macros |
| to old names, for following Autoconf. |
| |
| 1994-09-08 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (MDEFINES): Remove INSTALL substitutions, for |
| ./install.sh will not be correctly referred to in sub-Makefiles. |
| Reported by John David Anglin. |
| |
| * doc/Makefile.in (texclean): Remove *.cps and *.fns too. |
| Reported by Eric Backus. |
| |
| * Makefile.in, checks/Makefile.in, doc/Makefile.in, |
| examples/Makefile.in, lib/Makefile.in, src/Makefile.in: Limit |
| config.status into remaking this directory's Makefile only. |
| * Makefile.in (stamp-h): Do not check nor touch stamp-h. |
| * configure.in (AC_OUTPUT): Touch stamp-h if CONFIG_HEADERS. |
| Reported by Jim Meyering. |
| |
| 1994-09-06 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Correct stack overflow detection logic, taking |
| care of systems having only incomplete implementations (like for |
| Pyramid 9820 OSx 5.0d). |
| Reported by Kaveh R. Ghazi. |
| |
| * src/Makefile.in (TAGS): Remote -t from etags call. |
| |
| 1994-09-02 François Pinard <pinard@iro.umontreal.ca> |
| |
| * lib/Makefile.in (install): Depend on all. |
| |
| 1994-08-31 François Pinard <pinard@iro.umontreal.ca> |
| |
| * examples/Makefile.in (mostlyclean): Do not depend on texclean. |
| Reported by Jim Meyering and John David Anglin. |
| |
| * Makefile.in (distclean-local): Delete config.log. |
| Reported by Jim Meyering. |
| |
| Solidify frozen files with respect to -P: |
| * src/m4.c: Have -P set prefix_all_buitins variable instead of |
| calling a function by that name. Declare the variable. |
| * src/m4.h: Adjust declaration for prefix_all_buitins. |
| * src/builtin.c (builtin_init): Merge in functionality from |
| previous prefix_all_buitins function, while making entries in the |
| symbol table, but not modifying the builtin description itself. |
| |
| * src/freeze.c (reload_frozen_state): Add a useless `break;', |
| because *many* compilers do not accept an empty `default:'. |
| Reported by Akiko Matsushita, Eric Backus, John David Anglin, |
| Joseph E. Sacco, Kaveh R. Ghazi, Tom McConnell and Ulrich Drepper. |
| |
| * configure.in: Use AC_TYPE_SIGNAL. |
| * src/stackovf.c (setup_stackovf_trap): Use RETSIGTYPE. |
| Reported by Robert Bernstein. |
| |
| * checks/Makefile.in (check): Modify PATH so check-them will find |
| m4 in the src directory. |
| * Makefile.in (check): Don't. |
| Reported by Akiko Matsushita and Jim Meyering. |
| |
| * src/output.c (make_room_for, output_character_helper): New |
| functions, for implementing a global MAXIMUM_TOTAL_SIZE instead of |
| a per buffer MAXIMUM_BUFFER_SIZE. |
| |
| * src/output.c (output_text): New function, for optimizing the |
| output of strings of characters. Use it. |
| |
| 1994-08-30 François Pinard <pinard@iro.umontreal.ca> |
| |
| * doc, src: New directories reorganizing the distribution. |
| * doc/Makefile.in, src/Makefile.in, examples/Makefile.in: New |
| files. |
| * Makefile.in: Adjusted. |
| * configure.in: Configure new Makefiles. |
| |
| * m4.h: Declare STRING typedef. Use it for comment and quote |
| strings, adjusting all references. (This is the rudiments of a |
| beginning for the eventual withdrawal of NUL terminated strings.) |
| * output.c (shipout_text): Accept a length parameter, and use it. |
| All callers adjusted. |
| |
| 1994-08-29 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Include <unistd.h> if it exists. |
| * stackovf.c: Don't. |
| |
| Clean up for current_diversion variable: |
| * output.c: Move current_diversion from builtin.c. |
| * m4.h: Declare current_diversion so builtin.c can access it. |
| * output.c (output_init, make_diversion): Initialize or update |
| current_diversion. |
| * builtin.c (builtin_init, m4_divert): Leave current_diversion |
| alone. |
| |
| Remove limit on number of diversions: |
| * output.c: Replace ndiversion by diversions, declare it. |
| (output_init): Allocate only diversion 0. |
| (make_diversion): Allocate new diversions as needed. |
| * m4.h, m4.c: Remove NDIVERSIONS and ndiversion related stuff. |
| * m4.c: Still accept -N, but do nothing with it. |
| Reported by David MacKenzie. |
| |
| Freeze diversions: |
| * output.c (freeze_diversions): New function. |
| * m4.h: Declare freeze_diversions. |
| * freeze.c: Document frozen file format, revise it, call |
| freeze_diversions to add diversions to frozen format, and code to |
| reload them properly. |
| * m4.c: Do not undivert automatically at end when status being |
| frozen. Do not call builtin_init when reloading frozen state. |
| |
| Speed up diversion processing: |
| * output.c: Add INITIAL_BUFFER_SIZE, MAXIMUM_BUFFER_SIZE, |
| COPY_BUFFER_SIZE, in-memory diversion buffers, struct diversion |
| structure and variables, cached variables out of output_diversion, |
| reallocate_diversion_for and OUTPUT_CHARACTER. |
| (shipout_text, make_diversion, insert_diversion): Adapted to new |
| structures. |
| (insert_file): Use better buffering. |
| Reported by David MacKenzie. |
| |
| 1994-08-28 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in, lib/Makefile.in, checks/Makefile.in: Arrange so |
| dist works from another build directory. |
| |
| 1994-08-27 François Pinard <pinard@iro.umontreal.ca> |
| |
| * symtab.c (hack_all_symbols): Use hash_table_size instead of |
| constant HASHMAX, for -H option to work better. |
| |
| * builtin.c (DECLARE): Simplify by using _ (). |
| |
| * freeze.c: New file. |
| * Makefile.in: Compile it, distribute it. |
| * m4.c: Recognize, document and process --freeze-state (-F) and |
| --reload-state (-R) options. Pass a true flag to builtin_init |
| only if no reloading some state. |
| * builtin.c (define_builtin): Remove static specifier. |
| (find_builtin_by_name): Remove static specifier. |
| (builtin_init): Accept and obey a flag argument. |
| * m4.h: Add declarations for freeze.c, changes for builtin.c. |
| |
| 1994-08-24 François Pinard <pinard@iro.umontreal.ca> |
| |
| * builtin.c (dumpdef_cmp): Rewrite so the cast protect the const |
| specifier. |
| |
| * configure.in: Implement --with-dmalloc. |
| * acconfig.h: Document WITH_DMALLOC. |
| * m4.h: Add code for when WITH_DMALLOC. |
| |
| 1994-08-15 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c (long_options): Use "error-output", the dash was missing. |
| Reported by Akiko Matsushita. |
| |
| 1994-08-12 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Include <sys/types.h>. |
| * builtin.c, debug.c, m4.c, output.c, stackovf.c: Don't. |
| * m4.h: Declare len_lquote and len_rquote as size_t, not int. |
| int. |
| * input.c: Declare len_lquote, len_rquote, len_bcomm and len_ecomm |
| as size_t, not int. |
| * builtin.c (dump_args): Declare len as size_t, not int. |
| |
| * debug.c: Prototype the forward declaration of debug_set_file. |
| |
| * builtin.c (m4_undivert): Replace div by file, for avoiding the |
| shadowing of this variable. |
| * output.c (insert_diversion): Idem. |
| |
| * input.c: Delete def_rquote, def_lquote, def_bcomm and def_ecomm. |
| (input_init): Duplicate default quote and comment strings. |
| (set_quotes): Free previous quote strings in all cases. Duplicate |
| even default quote strings. |
| (set_comment): Free previous comment strings in all cases. |
| Duplicate even default comment strings. |
| |
| * configure.in: Updated for Autoconf 2.0. |
| * Makefile.in (distclean-local): Also delete config.cache. |
| |
| * m4.c (usage): Reorganize the --help output by topic. Include a |
| description for debugging flags. |
| |
| 1994-07-29 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: If sigaction is available and SA_ONSTACK defined, |
| use sigaction. Otherwise, if sigvec is available and SV_ONSTACK |
| defined, use sigvec. Else don't compile stackovf.c. |
| * stackovf.c (setup_stackovf_trap): Idem. |
| Reported by Jim Avera, Karl Berry, Kaveh R. Ghazi, Matthias Rabe |
| and Simon Leinen. |
| |
| 1994-07-21 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c (usage): Replace printf par fputs. |
| |
| 1994-07-18 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Release 1.2 |
| |
| 1994-07-17 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Check for sigaction and sigvec. Add a new delayed |
| check for RLIMIT_STACK, combine in the checking for getrlimit. |
| All those things are not universally available. |
| * stackovf.c: Split setting up the trap handler and catching |
| signals, for better taking care of various configure outcomes. |
| * examples/stackovf.sh: Correct a typo. |
| Reported by Eric Backus, Jim Avera and Jim Meyering. |
| |
| 1994-07-16 François Pinard <pinard@iro.umontreal.ca> |
| |
| * ansi2knr.c: New version sent by its author, Peter Deutsch. |
| |
| 1994-07-15 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in: Modify so parallel make will not try making |
| lib/libm4.a twice simultaneously. |
| Reported by Jim Meyering. |
| |
| 1994-07-14 François Pinard <pinard@iro.umontreal.ca> |
| |
| * stackovf.c (setup_stackovf_trap): Replace "Don't" by "Do not" in |
| error message, for when no code possibility exists. Even if this |
| line is completely #ifdef'ed out, it brings a syntax error. |
| Reported by Andreas Schwab, Jim Meyering and Joseph E. Sacco. |
| |
| * Makefile.in (install): Have install depend on all too, for lib |
| to be remade as needed. |
| |
| * examples/stackovf.sh: Try ksh, bsh and bash for shells |
| providing ulimit, instead of using only ksh. |
| Reported by Jim Avera and Joseph E. Sacco. |
| |
| 1994-07-12 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (check): Have it depend on all instead of m4. In |
| this way, a change in lib will be detected and processed. |
| |
| * builtin.c (numeric_arg): Use strtol and verify the conversion, |
| instead of using sscanf which stops as soon as there is a |
| non-digit in the input. Previously, incr(1xyzzy), eval(1,2xyzzy) |
| and divert(1xyzzy) were all accepted without any warning or error |
| messages. |
| * m4.h: Declare strtol as long if not including stdlib.h. |
| * configure.in: Check for limits.h, and replace strtol if missing. |
| * lib/Makefile.in: Substitute LIBOBJS. Distribute strtol.c. |
| * lib/strtol.c: New file, from elsewhere. |
| Reported by Andreas Schwab. |
| |
| 1994-07-07 François Pinard <pinard@iro.umontreal.ca> |
| |
| * macro.c (expand_macro): Cast value to (boolean) prior to |
| assigning it to traced. |
| Reported by Tom McConnell. |
| |
| * Makefile.in (m4): Always make all in lib first. |
| Reported by Jim Meyering. |
| |
| 1994-07-06 Jim Avera <jima@netcom.com> |
| |
| * stackovf.c: Isolated OS-dependent sections; Improved portability, |
| adding support for SunOS/BSD (sigvec, sigstack, and 4-parameter signal |
| handlers), and a default error message if the fault address is not |
| available (when neither siginfo.h nor BSD sigcontext are supported). |
| * configure.in: Changes for stackovf.h: Check for sigcontext, |
| sigaction, sigstack, and define rlim_t as int if necessary. |
| * acconfig.h: Added HAVE_SIGCONTEXT and rlim_t. |
| * examples/stackovf.sh: Run m4 -L99999999 to allow stack overflow. |
| * ansi2knr.c: Fix for func-ptr args; convert "..." to varargs syntax. |
| |
| 1994-07-05 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Use AC_SET_MAKE. |
| * Makefile.in: Use @SET_MAKE@. |
| Reported by Jim Meyering. |
| |
| * checks/check-them: Do not trap on SIGQUIT or SIGALRM. |
| Reported by Ian Taylor. |
| |
| 1994-07-02 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Remove dependency of USE_STACKOVF on STDC_HEADERS, |
| because siginfo.h is unrelated to standard headers, and siginfo.h |
| is already checked for. |
| Reported by Joseph E. Sacco. |
| |
| * acconfig.h, aclocal.m4, m4.h: Replace HAVE_PROTOTYPES by |
| PROTOTYPES. |
| * aclocal.m4, configure.in: Replace AC_HAVE_PROTOTYPES by |
| AC_PROTOTYPES. |
| |
| 1994-06-29 François Pinard <pinard@iro.umontreal.ca> |
| |
| * builtin.c (substitute): Use \& to represent this part of the |
| string which was matched by the whole regexp, instead of |
| representing the whole string. Any usage of \0 issues a warning |
| and acts like \&, it will disappear in some subsequent release. |
| |
| 1994-06-27 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c: Complete prototype for forwarded declaration of usage. |
| |
| * input.c (init_macro_token): Correct own reference in error |
| message. Previous name get_macro_func was referred to instead. |
| (next_char): Correct own reference in error message. Previous |
| name advance_input was referred to instead. |
| |
| * m4.h: Declare eval_t and unsigned_eval_t typedefs to 32 bits. |
| * eval.c (logical_or_term, logical_and_term, or_term, xor_term, |
| and_term, not_term, logical_not_term, cmp_term, shift_term, |
| add_term, mult_term, exp_term, unary_term, simple_term): Add |
| prototype to forwarded declarations. Declare parameter v1 as |
| eval_t * instead of int *. Same for local variable v2 in dyadic |
| functions. Same for result in exp_term. |
| * builtin.c (m4_eval): Declare value as eval_t instead of int. |
| (ntoa): Declare value as eval_t instead of int. Declare uvalue as |
| unsigned_eval_t instead of unsigned int. Change casts accordingly. |
| (shipout_int): Cast first argument of ntoa to eval_t. |
| Reported by Thorsten Ohl. |
| |
| * macro.c: Complete the prototypes of forwarded expand_macro and |
| expand_token. |
| Reported by Thorsten Ohl. |
| |
| * m4.h: Define voidstar as void * or char * depending on __STDC__. |
| The Ultrix 3.1 compiler cannot do much with void pointers. |
| |
| * builtin.c (dumpdef_cmp): Replace void * by voidstar. |
| * m4.c (xfree): Replace void * by voidstar. |
| Reported by Tom McConnell. |
| |
| * ansi2knr.1: New, from elsewhere. |
| * Makefile.in (DISTFILES): Distribute ansi2knr.1 |
| |
| * Makefile.in (stamp-h.in): Avoid running ./config.status if |
| stamp-h does not exist yet. This avoids running it a second time |
| just after the initial ./configure. |
| Reported by David MacKenzie and Tom McConnell. |
| |
| * m4.h: Replace the enum debug_info declaration with a series of |
| #define's. The Ultrix 3.1 compiler would otherwise need casting |
| (int) to most references, when used in expressions. |
| Reported by Tom McConnell. |
| |
| 1994-06-25 François Pinard <pinard@iro.umontreal.ca> |
| |
| * aclocal.m4: Replace FP_PROTOTYPES by AC_HAVE_PROTOTYPES, |
| following an idea from Brook G. Milligan. AC_HAVE_PROTOTYPES |
| calls the compiler. Previously, FP_PROTOTYPES was only calling |
| the preprocessor; by not being subject to CFLAGS, this was |
| discouraging those flags asking for ANSI compilation. |
| * acconfig.h: Document HAVE_PROTOTYPES. |
| * configure.in: Use AC_HAVE_PROTOTYPES instead of FP_PROTOTYPES. |
| * m4.h: Define _() according to HAVE_PROTOTYPES, not __STDC__. |
| Reported by Eric Backus. |
| |
| * configure.in: Substitute CFLAGS and LDFLAGS, taking their value |
| from the environment. Default CFLAGS to -g if not set. |
| * Makefile.in: Have CFLAGS and LDFLAGS substituted from configure. |
| * lib/Makefile.in: Have CFLAGS substituted from configure. |
| Reported by Eric Backus and Tom McConnell. |
| |
| * configure.in: m4_undefine changeword before using AC_ENABLE. |
| |
| * m4.h: Declare prototypes for error (for ANSI compilers only), |
| prefix_all_builtins and reference_error. |
| Reported by Tom McConnell. |
| |
| * input.c (set_word_regexp): Do not try to initialize the array |
| test from a string, this does not work with non-ANSI compilers. |
| Reported by Eric Backus. |
| |
| * Makefile.in (dist): Clean examples/ before saving it. |
| (distclean-local): Also remove stamp-h. |
| Reported by Eric Backus. |
| |
| * Makefile.in (_stackovf.c): Goal for compiling stacokovf.c with |
| non ANSI compilers. |
| Reported by Tom McConnell. |
| |
| * checks/Makefile.in (clean): Depends on mostlyclean. |
| (mostlyclean): New goal. |
| |
| 1994-06-24 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (DISTFILES): Distribute install.sh. |
| * install.sh: New file, copied from elsewhere. |
| Reported by Assar Westerlund and Kaveh R. Ghazi. |
| |
| 1994-06-23 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Define ENABLE_CHANGEWORD if --enable-changeword. |
| * acconfig.h: Explain ENABLE_CHANGEWORD. |
| |
| [These modifs all depend upon ENABLE_CHANGEWORD and are adapted |
| from code provided by Pete Chown] |
| * m4.h: Add original_text field to u_t variant of union u. |
| Declare TOKEN_DATA_FUNC macro. |
| * builtin.c: Declare changeword. |
| (m4_changeword): New function. |
| * input.c: Include "regex.h", define variables with word regexps. |
| (input_init): Initialize the word regexp. |
| (set_word_regexp): New. |
| (next_token): Declare local variables, use the previous code if |
| default_word_regexp is true. Else, match using a new code. Save |
| the original text. |
| * macro.c (expand_token): Ship out original text if not a macro |
| name. |
| Reported by Krste Asanovic and Pete Chown. |
| |
| [These modifs all depend upon ENABLE_CHANGEWORD] |
| * m4.h: Declare external user_word_regexp. |
| * m4.c: Declare user_word_regexp, and initialize it from |
| --word-regexp or -W, or NULL if not specified. |
| * input.c: Use user_word_regexp if specified, instead of |
| DEFAULT_WORD_REGEXP. |
| |
| * Makefile.in (m4): Revert Jan 3 1994 change. I'm unable to |
| agree with it. |
| |
| * Makefile.in, lib/Makefile.in: Limit suffixes to .c and .o. |
| * checks/Makefile.in: Empty the suffix list. |
| Reported by Geoff Russell, Joel Sherrill and Roland McGrath. |
| |
| * m4.c: Declare nesting_limit and initialize it to 250. |
| Implement -LNUMBER or --nesting-limit=NUMBER to change its |
| value. |
| * m4.h: Declare nesting_limit as external. |
| * macro.c (expand_macro): Stop execution whenever nesting limit |
| is exceeded. |
| Reported by Bengt Mertensson. |
| |
| * eval.c (evaluate): Diagnose excess characters in eval input. |
| Things like `eval(08)' used to return 0 with no diagnostic. |
| |
| * m4.h: Capitalize first letter of all macro arguments in |
| definitions. |
| |
| * m4.c: Declare warning_status, initialize it to 0. Add new |
| option -E, or --fatal-warnings, which sets warning_status to |
| EXIT_FAILURE instead. |
| * m4.h: Declare external warning_status. Define EXIT_SUCCESS and |
| EXIT_FAILURE if not otherwise done by header files. |
| * m4.c: Delete declarations for EXIT_SUCCESS and EXIT_FAILURE. |
| * m4.c, input.c, output.c, symtab.c, builtin.c, macro.c, debug.c, |
| eval.c: Replace 0 by warning_status and 1 by EXIT_FAILURE in first |
| argument of all M4ERROR calls. |
| Reported by Noah Friedman. |
| |
| * examples/incl-test.m4: Renamed from incl_test.m4. |
| * examples/include.m4: Include incl-test.m4 instead of |
| incl_test.m4. |
| * examples/multiquotes.m4: Renamed from multi-quotes.m. |
| |
| 1994-06-22 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Avoid USE_STACKOVF if <siginfo.h> not found. Note |
| that Jim developped stackovf.c on a 486 running SVR4.0 (ESIX), and |
| also tested it on a Sun Sparc workstation running SunOS 4.x. |
| |
| * format.c (format): When not HAVE_EFGCVT, m4 was failing the |
| 49.format check, abusing a `union values' argument with sprintf |
| without selecting the proper field. Now, save the formatting type |
| first, delaying the fetch of the corresponding argument. |
| Reported by Joseph E. Sacco and Tom Quinn. |
| |
| * format.c (format): Remove const from char *fmt declaration when |
| not HAVE_EFGCVT, because a NUL may be forced into it. |
| |
| * m4.h: Declare atof() when not STDC_HEADERS. |
| Reported by Joseph E. Sacco. |
| |
| * Regenerate configure using Autoconf 1.11, this corrects a |
| problem about an incorrect cpp seting on NeXT 3.1. |
| Reported by Alexander Lehmann. |
| |
| 1994-06-05 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h (_): Change argument from `x' to `Args'. |
| |
| 1994-04-22 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Rename Args() to _(). |
| * m4.h: Remove extern specifier from all function declarations. |
| |
| 1994-04-22 Jim Avera <jima@netcom.com> |
| |
| * stackovf.c: New file implementing stack-overflow detection. |
| * configure.in: Check for getrlimit, sigaction. If all of |
| standard headers, getrlimit and sigaction, define USE_STACKOVF and |
| substitute ${U}stackovf.o for STACKOVF. |
| * acconfig.h: Declare USE_STACKOVF. |
| * Makefile.in: Distribute stackovf.c, link with $(STACKOVF). |
| * m4.h: Declare setup_stackovf_trap(). |
| * m4.c: Call setup_stackovf_trap(). |
| * tests/stackovf_test.sh: New file. |
| |
| 1994-04-13 François Pinard <pinard@iro.umontreal.ca> |
| |
| * checks/Makefile.in: Rename .all-stamp to stamp-checks. |
| |
| * Makefile.in (Makefile, etc.): Adapt for Autoconf 1.8. |
| |
| 1994-01-30 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Remove definition of volatile, not used anymore. |
| Reported by Jim Meyering and Joseph E. Sacco. |
| |
| * m4.h: Consistently use `do { ... } while (0)' in macros, instead |
| of `if ... else /* nothing */' for if macros. |
| Reported by Jim Meyering. |
| |
| * builtin.c (m4_regexp): Reorganize the code for avoiding a |
| warning from gcc about `repl' possibly used before defined. |
| Reported by Jim Meyering. |
| |
| * m4.h: Avoid a pre-ANSI <memory.h> together with <string.h>. |
| Reported by Jim Meyering. |
| |
| 1994-01-25 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Move the conditional definition of volatile after the |
| inclusion of system files, because they may define it first. |
| |
| 1994-01-04 François Pinard <pinard@iro.umontreal.ca> |
| |
| * checks/Makefile.in (CHECKS): Add a useless `*' before `[', to |
| get around a problem with Alpha make seeing a syntax error, there. |
| Reported by Vern Paxson. |
| |
| 1994-01-03 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in: Do not define LDFLAGS, use CFLAGS on link calls. |
| Reported by Richard Stallman. |
| |
| 1993-12-25 François Pinard <pinard@iro.umontreal.ca> |
| |
| * configure.in: Correct test for strerror, AC_FUNC_CHECK was used |
| instead of AC_HAVE_FUNCS. |
| Reported by Noah Friedman. |
| |
| 1993-12-01 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c: Initialize show_help and show_version to zero. |
| |
| * m4.c: Ensure EXIT_SUCCESS and EXIT_FAILURE are defined. |
| Use them in exit() and usage() calls. |
| |
| 1993-11-27 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Delete extern sys_nerr, sys_errlist declarations, and |
| syserr() macro. Delete errref, add reference_error and M4ERROR. |
| * m4.c: Replace errref, which was returning an input reference |
| string, with reference_error, which prints it on standard error. |
| * builtin.c, output.c: Use errno as second parameter to error, |
| instead of using syserr() with %s. |
| * *.c: Use M4ERROR instead of error: no more errref() with %s. |
| Doing so, the program name appears after the input reference |
| instead of before, which eases M-x next-error processing. |
| |
| 1993-11-24 François Pinard <pinard@iro.umontreal.ca> |
| |
| * checks/get-them: Escape braces with backslashes in patterns, |
| because HPUX-9.01 awk needs this. |
| Reported by Jim Meyering. |
| |
| 1993-11-22 François Pinard <pinard@iro.umontreal.ca> |
| |
| * builtin.c: Declare "FILE *popen ();". |
| |
| * m4.h: Remove MESSAGE{,1,2}, WARNING1, FATAL{,1}, INTERNAL_ERROR |
| macros, replace error_message_prefix() declaration by errref()'s. |
| Declare xrealloc, for use in errref(). |
| * m4.c: Delete error_message_prefix() function, add errref(). |
| * *.c: Use error() systematically in place of all error macros, |
| now that error() flushes stdout first. Make needed adjustments. |
| |
| * m4.h: Remove const in sys_errlist[] declaration, it creates |
| conflicts on SGI and Alpha. |
| Reported by Kaveh R. Ghazi. |
| |
| 1993-11-20 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c: Include <getopt.h> instead of "getopt.h". |
| |
| * configure.in: Output to config.h. Use HAVE_FUNCS preferably. |
| * acconfig.h: New, for documenting HAVE_EFGCVT. |
| * Makefile.in: Distribute acconfig.h, .stamp-h.in and config.h.in, |
| use them wherever appropriate. Also use -I. for compilations. |
| * lib/Makefile.in: Use -I.. for compilations. |
| * *.c: Include <config.h> or "config.h". |
| |
| * m4.h: Test for HAVE_MEMORY_H instead of NEED_MEMORY_H. |
| * configure.in: Use AC_HAVE_HEADERS(memory.h), delete AC_MEMORY_H. |
| |
| 1993-11-17 François Pinard <pinard@iro.umontreal.ca> |
| |
| * builtin.c (m4_eval): Cast strlen to (int) before comparing. |
| |
| * input.c (input_init): Initialize quote and comment strings |
| explicitely instead of calling set_quotes and set_comment: by |
| doing so, we ensure we do not free uninitialized variables. |
| |
| * checks/check-them: Reverse arguments to both diff, so the |
| expected is on the left and the obtained on the right. |
| |
| * m4.h: Add MESSAGE{,1,2}, WARNING1, FATAL{,1} and INTERNAL_ERROR |
| macros. Delete declarations for m4error, warning, fatal and |
| internal_error, add declaration for error_message_prefix. |
| * m4.c: Delete m4error, warning, fatal and internal_error |
| routines, add error_message_prefix routine. |
| * *.c: Replace m4error routine calls with MESSAGE* macro calls, |
| warning with WARNING*, fatal with FATAL* and internal_error with |
| INTERNAL_ERROR*. |
| * Makefile.in (_m4.c): Do not adjust ansi2knr output for va_alist, |
| this is not needed anymore. |
| |
| * m4.h: Declare extern FILE *debug. Add DEBUG_PRINT{1,3} and |
| DEBUG_MESSAGE{,1,2} macros. Delete declarations for debug_print |
| and debug_message, add declaration for debug_message_prefix. |
| * debug.c: Remove static specifier for FILE *debug declaration. |
| Delete debug_print and debug_message routines, add |
| debug_message_prefix routine. |
| * builtin.c, debug.c: Replace debug_print routine calls with |
| DEBUG_PRINT* macro calls. |
| * input.c, path.c: Replace debug_message routine calls with |
| DEBUG_MESSAGE* macro calls. |
| |
| * m4.h: Remove inclusion of <varargs.h>. |
| * debug.c: Include <stdarg.h> or <varargs.h>. |
| (trace_format): Use stdarg instead of varargs if __STDC__. |
| |
| * configure.in: Remove checks for vfprintf and _doprnt. These |
| implementations use varargs tricks which are not portable enough. |
| * lib/vfprintf.c: Deleted. |
| * lib/_doprnt.c: Deleted. |
| * lib/Makefile.in: Adjusted accordingly. Remove LIBOBJS. |
| Reported by Joel Sherrill. |
| |
| * path.c (add_include_directory): Use xstrdup. |
| |
| * builtin.c (find_builtin_by_name): Declare static. |
| |
| * *.[ch]: Add const to a few "char *" declarations. |
| |
| * configure.in: Remove commented tests for fileno() and fstat(). |
| * debug.c: Remove comments about HAVE_FILENO and HAVE_FSTAT. |
| |
| * debug.c (debug_flush_files): New. |
| * m4.h: Declares it. |
| * builtin.c (m4_syscmd, m4_esyscmd): Use it. |
| Reported by Nicolas Pioch. |
| |
| 1993-11-12 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (m4.dvi): Use m4.texinfo instead of m4.texi. |
| Reported by Joel Sherrill. |
| |
| * builtin.c (prefix_all_builtins): Instead of the table size, use |
| the null entry at end for stopping the loop. It was overwritten. |
| Reported by Andreas Schwab and Jim Meyering. |
| |
| * builtin.c (prefix_all_builtins): Cast xmalloc to (char *). |
| Reported by Kaveh R. Ghazi. |
| |
| * macro.c (call_macro): Add * in (*SYMBOL_FUNC (sym)) (...). |
| Reported by Karl Vogel. |
| |
| 1993-11-09 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Do not define volatile if already defined. |
| Reported by René Seindal. |
| |
| * lib/Makefile.in: Add a forgotten ALLOCA=@ALLOCA@. Grrr! |
| |
| Reported by Bernhard Daeubler, Eric Backus, Hal Peterson, Hoang |
| Uong, Ian Taylor, Kaveh R. Ghazi, Tom McConnell and Walter Wong. |
| |
| 1993-11-08 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Define strchr and strrchr in terms of index and rindex, |
| instead of the other way around. |
| * builtin.c, m4.c, path.c: Use strchr instead of index. |
| |
| * input.c (next_char): Remove a "break;" after a "return ...;". |
| Reported by Tom McConnell. |
| |
| 1993-11-08 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Release 1.1 |
| |
| * configure.in: Do not copy check files in the build hierarchy. |
| * checks/check-them: Identify the m4 version being checked. For |
| finding m4, look in $PATH instead of in the parent directory. |
| * Makefile.in (check): Prepend `pwd` to $PATH before checking. |
| * checks/Makefile.in (.all-stamp): Always create check files in |
| the source hierarchy, not anymore in the build hierarchy. |
| (check): cd to the source hierarchy before performing checks. |
| Do not copy nor clean COPYING anymore, take it from `..'. |
| Reported by Tom McConnell. |
| |
| * Makefile.in (Makefile): Use $(SHELL). |
| (config.status): Use $(SHELL). Use "config.status --recheck" |
| instead of "configure --no-create", which is obsolete. |
| Reported by Tom McConnell. |
| |
| 1993-11-05 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c (usage): Use "%s" instead of "m4" in format string. |
| Reported by Jim Meyering. |
| |
| * Makefile.in: Distribute mkinstalldirs. |
| Reported by Pierre Gaumond. |
| Reported by Jim Meyering. |
| Reported by Tom McConnell. |
| Reported by Andreas Gustafsson. |
| |
| * checks/check-them: Renamed from checks/check_them. |
| * checks/get-them: Renamed from checks/get_them. |
| * checks/.all-stamp: Renamed from checks/.all_stamp. |
| * checks/Makefile.in: Changed accordingly. |
| Reported by Jim Meyering. |
| |
| 1993-11-04 François Pinard <pinard@iro.umontreal.ca> |
| |
| * lib/Makefile.in (dist): Correct permissions on files. |
| |
| * output.c: Declare tmpfile, some systems don't. |
| |
| 1993-11-03 François Pinard <pinard@iro.umontreal.ca> |
| |
| * checks/Makefile.in (dist): Correct permissions on files. |
| |
| * Makefile.in (dist): Ensure recursive linking for subdirectory |
| `examples', also set read/write permissions on all its files. |
| |
| * mkinstalldirs: New, from elsewhere. |
| * Makefile.in: Use it. |
| |
| * debug.c: Synchronize debug messages and regular output when |
| the debug file and stdout are redirected to the same file. |
| * configure.in: Add (commented) checks for fileno and fstat. |
| Reported by Jim Avera. |
| |
| * builtin.c (m4_ifelse): Diagnose excess arguments if 5, 8, 11, |
| etc., arguments, then ignore the superfluous one. m4 used to |
| diagnose missing arguments and return the empty string. |
| Reported by Nick S. Kanakakorn. |
| |
| 1993-11-02 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c (main): At end of all input, ensure all undiverted text |
| goes to the main output stream. |
| Reported by Andreas Gustafsson. |
| |
| * m4.c (main): exit (0), instead of return 0. |
| |
| * m4.c: Implement -P and --prefix-builtins. |
| * builtin.c: Delete const specifier on builtin_tab. |
| (prefix_all_builtins): New. |
| Reported by Noah Friedman. |
| Reported by Scott Bartram. |
| |
| * c-boxes.el: New, from elsewhere. |
| * Makefile.in: Distribute it. |
| |
| * m4.h: Do not define bcopy if <string.h> defines it. |
| Reported by Stephen Perkins. |
| |
| * builtin.c (define_macro): Allow a missing second argument, in |
| which case it is implied empty. Affects define and pushdef. |
| Reported by Eric Allman. |
| |
| 1993-11-01 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Add blind_if_no_args in struct builtin, blind_no_args in |
| struct symbol adn SYMBOL_BLIND_NO_ARGS macro. |
| * builtin.c: Initialize all the blindness fields in builtin_tab. |
| (define_builtin): Copy the blindness of a builtin into its symbol. |
| * macro.c (expand_token): Avoid processing a blind builtin if the |
| next character is not an opening parenthesis. |
| Reported by David MacKenzie. |
| Reported by Noah Friedman. |
| |
| * configure.in: Ensure an exit status of 0 on completion. |
| Reported by Vivek P. Singhal. |
| |
| * eval.c (eval_lex): Admit both lower and upper case letters for |
| bases greater than 10. Only lower case letters were accepted. |
| |
| * eval.c (eval_lex): Recognize 0bDIGITS and 0rRADIX:DIGITS syntax. |
| Reported by Krste Asanovic. |
| |
| * eval.c: Rename NOT to LNOT. Add XOR, NOT, LSHIFT and RSHIFT. |
| * eval.c (logical_not_term): New name for not_term. |
| * eval.c (xor_term): New, between or_term and and_term. |
| * eval.c (not_term): New, between and_term and logical_not_term. |
| * eval.c (shift_term): New, between cmp_term and add_term. |
| Reported by Krste Asanovic: ~, ^, <<, >>. |
| Reported by Ben A. Mesander: ** vs ^. |
| |
| * m4.c: Delete xmalloc.c, xrealloc.c, xstrdup.c. |
| * m4.h: Delete xrealloc.c. |
| * lib/xmalloc.c: New, from elsewhere. |
| * lib/xstrdup.c: New, from elsewhere. |
| * lib/Makefile.in: Distribute and compile them. |
| |
| * m4.c: Change progname to program_name. |
| * builtin.c, eval.c, m4.c, m4.h: Rename error to m4error. |
| * lib/error.c: New, from elsewhere. |
| * lib/Makefile.in: Distribute and compile error.c. |
| * configure.in: Check AC_VPRINTF and for strerror. |
| * m4.c: Delete cmd_error. Use error instead. |
| * m4.c: Change label capitalisation to "ERROR", "Warning", etc. |
| |
| * m4.h: Delete #define const, let Autoconf takes care of this. |
| |
| * m4.c: Remove all code conditionalized by IMPLEMENT_M4OPTS. |
| Merge parse_args into main. Declare argv to be `char *const *', |
| then remove superfluous casts. |
| |
| * m4.c: Rename --no-gnu-extensions to --traditional. |
| Reported by Ben A. Mesander. |
| |
| * m4.c (usage): Add a status parameter. Supply one in various |
| calls. Add --help processing. Remove -V for --version. |
| |
| * lib/Makefile.in: Put $(CFLAGS) last in .c.o rule. |
| |
| * lib/Makefile.in: Have an AR=ar declaration. |
| Reported by Eric Backus. |
| Reported by Bjorn R. Bjornsson. |
| Reported by Tom Tromey. |
| Reported by Kristine Lund. |
| Reported by Marion Hakanson. |
| |
| 1993-10-30 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (m4.info): Use -I$(srcdir) on $(MAKEINFO). |
| Reported by Noah Friedman. |
| |
| 1993-10-25 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in: Remove MDEFINES and cleanup. |
| |
| 1993-06-09 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (dist): Replace "echo `pwd`" by a mere "pwd". |
| Create a gzip file. |
| |
| 1993-02-06 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in, lib/Makefile.in, check/Makefile.in: In dist goals, |
| ensure 777 mode for directories, so older tar's will restore file |
| modes properly. |
| |
| 1993-01-17 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in, lib/Makefile.in: Put $(CFLAGS) after $(CPPFLAGS), |
| so the installer can override automatically configured choices. |
| Reported by Karl Berry. |
| |
| 1993-01-15 François Pinard <pinard@iro.umontreal.ca> |
| |
| * lib/vfprintf.c: Stolen from Oleo distribution and adapted. The |
| previous version was not working properly on m68k-hp-bsd4.3. |
| Reported by Roland McGrath. |
| |
| * lib/_doprnt.c: Stolen from Oleo distribution. |
| * configure.in: Check for _doprnt.c if vfprintf.c selected. |
| * lib/Makefile.in: Distribute _doprnt.c. |
| Do not distribute regex.[ch].old anymore. |
| |
| 1993-01-01 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in, lib/Makefile.in: Reinstate $(CPPFLAGS), use it. |
| Richard wants it there. |
| |
| 1992-12-27 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in: Add DEFS to MDEFINES. |
| * lib/Makefile.in (.c.o): Remove $(CPPFLAGS). |
| (libm4.a): Remove the library before creating it. |
| (distclean): Remove tags and TAGS too. |
| |
| 1992-12-23 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (dvi, m4.dvi): New goals. |
| |
| * builtin.c, eval.c, format.c, input.c, m4.[ch], m4.texinfo, |
| macro.c, output.c, path.c, symtab.c: Change Copyright from |
| 1989-1992 to the explicit enumeration 1989, 1990, 1991, 1992. |
| |
| * examples/divert.m4: Deleted, this bug has been corrected. |
| |
| * Makefile.in (texclean, mostlyclean): New goals. |
| |
| * Makefile.in (clean): Remove clutter from ansi2knr. |
| Reported by Pierre Gaumond. |
| |
| 1992-12-20 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in: Remove $(CPPFLAGS) from the .c.o rule. The user |
| might well use CFLAGS is s/he needs it. |
| |
| * Makefile.in: Allow installation of info files from a separate |
| build directory. |
| Reported by Jason Merrill. |
| Reported by David MacKenzie. |
| Reported by Skip Montanaro. |
| Reported by Erez Zadok. |
| Reported by Assar Westerlund. |
| |
| 1992-12-19 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Release 1.0.3 |
| This is still a beta release for the future GNU m4 version 1.1. |
| |
| * lib/alloca.c: New, from elsewhere. |
| * lib/Makefile.in: Distribute it. Define and use $(ALLOCA). |
| |
| * m4.h: Do not define index/rindex if already defined. If |
| FALSE/TRUE are already defined, do not redefine them, but merely |
| define boolean typedef to int. |
| |
| * Makefile.in: Use $(DEFS) while compiling ansi2knr. |
| * ansi2knr.c: Rewrite #ifdef HAVE_STRING_H || STDC_HEADERS, |
| because some C compilers do not like connectives with #ifdef. |
| * m4.h: Define `volatile' only if __GNUC__, instead of once for |
| __GNUC__ and once for __STDC__. |
| * lib/regex.h: Leave const alone, AC_CONST will take care of it. |
| |
| * checks/Makefile.in: Use .all_stamp instead of $(CHECKS) for |
| Makefile dependencies. Without it, make keeps destroying and |
| remaking $(CHECKS) in a loop (why?). Distribute .all_stamp. |
| |
| * m4.h, m4.c, builtin.c, output.c: Change all divertion/DIVERTION |
| to diversion/DIVERSION, this was a spelling error. |
| |
| * m4.c: Declare version[], remove #include "version.h". |
| * version.h: Deleted. |
| * Makefile.in: Remove references to version.h. |
| |
| * output.c (shipout_text): Centralize all `#line NUM ["FILE"]' |
| production, by using a simpler and more robust algorithm. This |
| solves the problem of synclines sometimes written in the middle of |
| an output line. Delete sync_line() and output_lines variable. |
| * m4.h: Remove sync_line prototype and output_lines declaration. |
| * input.c (next_char), output.c (shipout_text): Remove references |
| to output_lines. |
| * input.c (push_file, pop_file): Merely put the value -1 in |
| output_current_line instead of calling sync_line, for delaying a |
| single `#line NUM FILE' before next output line. Do not test |
| for sync_output, because this is unnecessary clutter. |
| * output.c (make_divertion, insert_divertion): Idem. |
| * input.c: Rename must_advance_line to start_of_input_line, for |
| consistency. |
| |
| * debug.c (trace_header): Select a new debug line format, which |
| better complies with GNU standards for formatting error messages. |
| With option `-dfl', M-x next-error might be used on the output. |
| * m4.c (vmesg): Adjust format of error output to GNU standards. |
| * m4.texinfo: Adjust examples for `make check' to work. |
| |
| * m4.h, builtin.c, debug.c, input.c, macro.c, path.c: Use upper |
| case for enum debug_info constants, which were all lower case. |
| |
| * builtin.c (m4_regexp, m4_patsubst): Use re_search instead of |
| re_search_2. |
| * lib/regex.[ch]: Use new version from textutils 1.3.6, with some |
| collected patches. I tried a few times using newer regex.[ch], it |
| mysteriously stopped aborting with this one. Insecure feeling... |
| * lib/Makefile.in: Distribute regex.[ch].old, just in case! |
| |
| 1992-12-18 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.c: Change `--no-warnings' to `--silent'. |
| Reported by David MacKenzie. |
| |
| * m4.c: Put all M4OPTS code upon IMPLEMENT_M4OPTS control, and |
| leave it off for now. See comment in m4.c for justification. |
| Reported by David MacKenzie. |
| |
| * configure.in: Replace AC_USG by AC_HAVE_HEADERS(string.h). |
| * m4.h, ansi2knr.c, lib/regex.h: Replace USG by HAVE_STRING_H. |
| |
| * Makefile.in: Add a new `info' goal. Use macro MAKEINFO. |
| |
| * Makefile.in: Ensure recursive cleaning is done before local |
| cleaning for all clean goals. |
| |
| * builtin.c (ntoa): Ensure the value is always interpreted as a |
| signed quantity, whatever the radix is. |
| |
| 1992-11-18 Jim Meyering <meyering@idefix> |
| |
| * builtin.c, format.c, input.c: Split long lines. |
| * m4.c: Use typedef macro_definition instead of struct |
| macro_definition. |
| * symtab.c: Use typedef symbol instead of struct symbol. |
| |
| 1992-11-17 François Pinard <pinard@iro.umontreal.ca> |
| |
| * *.[ch]: Remove all trailing whitespace, in code and comments. |
| |
| * configure.in: Find some awk. |
| * Makefile.in: Add $(AWK) to MDEFINES. |
| * checks/Makefile.in: Transmit $(AWK) to get_them. |
| * checks/get_them: Use $AWK instead of gawk. Add a close in the |
| awk script when switching files, because without this, mawk runs |
| out of file descriptors. |
| |
| 1992-11-16 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (realclean): Delete m4.info*. |
| Reported by Jim Meyering. |
| |
| * Makefile.in: Adjust and link with checks/Makefile. |
| * checks/Makefile.in: New. |
| * configure.in: Output checks/Makefile. |
| |
| * checks/get_them: Have the dnl header of each test more |
| recognizable by next-error, also use a better message. |
| |
| 1992-11-16 Jim Meyering <meyering@idefix> |
| |
| * m4.h [__GNUC__]: Use __volatile__ instead of `volatile.' |
| And use that only if __GNUC__ since we're using it's GCC-specific |
| semantics that tell the compiler the associated function doesn't |
| return. |
| |
| * builtin.c (substitute): Don't use character as an array index. |
| (dumpdef_cmp): Make formal arguments `const void *' to avoid |
| warnings with gcc -W -Wall on systems with qsort prototype. |
| (m4_errprint): Cast obstack_finish to `char *' to avoid warnings |
| from gcc -W -Wall. |
| |
| * eval.c (most functions): Add parentheses to assignments used |
| as truth values go avoid warnings from gcc -Wall. |
| |
| * input.c, m4.c, output.c, path.c, symtab.c: Declare static |
| any functions that don't need external scope. |
| |
| * builtin.c, debug.c, format.c, m4.c, m4.h, macro.c, symtab.c |
| (many functions and arrays): Declare `const'. |
| |
| 1992-11-15 François Pinard <pinard@iro.umontreal.ca> |
| |
| * *.[ch]: Rename nil to NULL, using the declaration from <stdio.h>, |
| removing the declaration from m4.h. Also rename false to FALSE |
| and true to TRUE. |
| |
| * lib/Makefile.in (Makefile): New goal. |
| |
| * Makefile.in, lib/Makefile.in: Add a .c.o rule, so CFLAGS is not |
| so heavily loaded. It gets more easily overridable, calling make. |
| Reported by Jim Meyering. |
| |
| * Makefile.in (dist): Get .fname from the current directory name, |
| instead of from version.h. I need updating many files manually, |
| when the version changes, version.h is just one of them. |
| |
| 1992-11-14 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Remove the tag `boolean' on the enum introducing typedef |
| `boolean'. This tag conflicts with <sys/types.h> on SVR4. |
| Reported by Tom McConnell. |
| |
| 1992-11-13 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.texinfo: Correct the examples for 33.divert, 38.divnum, |
| 39.cleardiv, which were describing missing or spurious newlines. |
| Modify examples 52.eval, 53.esyscmd and 54.sysval so the results |
| do not depend on machine word size, `/bin/false' implementation, |
| or `wc' output format. `make check' is more dependable, now. |
| |
| * checks/check_them: Summarize the failed tests by listing their |
| name, at end. If none, issue `All checks successful'. Output |
| `Checking' instead of `Input file:'. |
| |
| * checks/get_them, checks/check_them: Reindented. |
| |
| * Makefile.in (dist): chmod a+r before making the tar file. |
| |
| 1992-11-12 François Pinard <pinard@iro.umontreal.ca> |
| |
| * builtin.c (m4_dnl): Diagnose any parameter to `dnl'. |
| |
| * input.c (next_token): Reinitialize token_buttom just after using |
| it as a watermark with obstack_free. Or else, a future token, big |
| enough for triggering reallocation of the obstack chunk, could |
| void the initialized value of token_buttom, later causing panic in |
| obstack_free. Rename token_buttom to token_bottom everywhere. |
| |
| * m4.h: Before declaring errno, first include <errno.h> and |
| ensure that it does not define errno. |
| Reported by Richard Stallman. |
| |
| 1992-11-11 François Pinard <pinard@iro.umontreal.ca> |
| |
| * builtin.c: Define and use DECLARE macro for builtins. |
| |
| * builtin.c (m4_ifelse): Avoid any diagnostic when exactly one |
| argument, this is a common idiom for introducing long comments. |
| |
| * builtin.c (m4_ifelse): If 3n + 2 arguments, diagnose missing |
| arguments. The last argument was silently ignored. |
| |
| * m4.c (cmd_error): Add a missing semicolon before va_end(). |
| |
| 1992-11-10 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in: Now handle protoized sources. Define and use U. |
| Compile and use ansi2knr with old compilers. Update DISTFILES. |
| Add `aclocal.m4' to `configure' dependencies. |
| * ansi2knr.c: New, from Ghostscript distribution. |
| * configure.in: Define U through FP_PROTOTYPES for old compilers. |
| Add AC_ISC_POSIX, AC_CONST, AC_SIZE_T. |
| * aclocal.m4: New, provide FP_PROTOTYPES. |
| * m4.h: Conditionnaly protoized through Args, save for varags. |
| * builtin.c: Protoized. Then: |
| Include <sys/types.h> if size_t is not defined, before "regex.h". |
| (m4_ifelse): Fetch built-in name properly for diagnostic. |
| (m4_dumpdef): Remove wrong (char *) cast calling dump_symbol. |
| (m4_regexp): Add const to `msg' declaration. |
| (m4_patsubst): Add const to `msg' declaration. |
| * debug.c: Protoized, save for varargs. |
| * eval.c: Protoized. |
| * format.c: Protoized. |
| * input.c: Protoized. |
| * m4.c: Protoized, save for varargs. Then: |
| (xfree): Accept void * instead of char *. |
| (xmalloc): Return void * instead of char *. |
| (xrealloc): Accept and return void * instead of char *. |
| * macro.c: Protoized. |
| * output.c: Protoized. |
| * path.c: Protoized. Then cast some (char *) over xmalloc's. |
| * symtab.c: Protoized. |
| |
| 1992-11-06 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.texinfo: Remove directory from diagnostics in 30.include, |
| 51.eval, 56.errprint and 57.m4exit tests. |
| |
| * m4.h: Remove declarations for int or void system functions, they |
| cause more conflicting trouble than they make good. |
| |
| * configure.in: Avoid configuration header file. Add some tests. |
| * m4.h: Remove #include "config.h". |
| * Makefile.in, lib/Makefile.in: Implement Autoconf interface. |
| Then, rewritten for better compliance with GNU standards. |
| |
| 1992-11-05 François Pinard <pinard@iro.umontreal.ca> |
| |
| * format.c (format): Avoid syntax error if not HAVE_EFGCVT, |
| because of a misplaced #endif. |
| |
| * Many *.[hc] files: Correct intra-line spacing here and there, |
| according to GNU indent 1.6 advice. |
| |
| * configure.in: New, using Autoconf 1.2. |
| * m4.h: Reverse NO_MEMORY_H to NEED_MEMORY_H. |
| * Delete old configure.in, configure, etc/configure.in, |
| etc/configure, lib/configure.in, lib/configure and config/*. |
| Reported by Jason Merrill. |
| |
| * symtab.c (hash): Change (char) NULL to '\0'. |
| Reported by Jason Merrill. |
| |
| * Delete .vers, etc/newdist.sh, etc/newvers.sh and |
| etc/nextvers.sh. Release numbers will be edited `by hand'. |
| * version.h: De-automatize, force value in. |
| |
| * m4.c: Changes in order to use a newer getopt.h. |
| Reported by David MacKenzie. |
| |
| * checks/: New name for examples/. |
| * checks/get_them: New location for etc/get_examples. |
| * checks/check_them: New location for etc/check_examples. |
| * Makefile.in, checks/get_them, checks/check_them: Adjust. |
| * lib/vfprintf.c: New location for etc/vfprintf.c. |
| * Delete empty etc/. |
| * examples/: New name for test/. |
| |
| 1992-03-10 François Pinard <pinard@iro.umontreal.ca> |
| |
| * Makefile.in (check): Add m4 as dependency. |
| |
| * m4.c: Accept --no-warnings instead of --no_warnings, and |
| --no-gnu-extensions instead of --no_gnu_extensions. Make the |
| usage message more informative. |
| Reported by David MacKenzie. |
| |
| 1992-03-09 François Pinard <pinard@iro.umontreal.ca> |
| |
| * etc/check_examples: New name for check_examples.sh. |
| * etc/get_examples: New name for get_examples.sh. |
| * Makefile.in, etc/Makefile.in: Use new names. |
| |
| * Makefile.in: Transmit $(CC) while making in lib. |
| |
| * Many *.[hc] files: GNU indent'ed, with further fine tuning of |
| code disposition by hand. |
| |
| 1992-03-08 François Pinard <pinard@iro.umontreal.ca> |
| |
| * m4.h: Delete definitions for abort() and exit(). |
| Reported by Richard Stallman. |
| |
| * config/hmake-unicos, config/s-unicos.h: New files. |
| Reported by Hal Peterson. |
| |
| * eval.c (exp_term): Have N^0 return 1. |
| Reported by Michael Fetterman. |
| |
| * eval.c, input.c, m4.h: Remove last comma in enums. |
| Reported by Mike Lijewski. |
| |
| * Transfer of maintenance duties from René to François. |
| |
| 1991-10-24 René Seindal <seindal@diku.dk> |
| |
| * Release 1.0. Many thanks to those, who provided me with bug |
| reports and feedback. |
| |
| * Uses GNU configure, taken from the gdb distribution. |
| |
| * Uses GNU getopt(), with long option names. |
| |
| * The -Q/+quiet option is added, which suppresses warnings about |
| missing or superflous arguments to built-in macros. |
| |
| * Added default options via the M4OPTS environment variable. |
| |
| * The built-in format can now be configured to use sprintf as |
| the formatting engine, for systems without [efg]cvt(3). |
| |
| * GNU library code is moved to the ./lib subdirectory; other |
| utility files are now in ./etc. |
| |
| * Several minor bugs have been fixed. |
| |
| 1991-07-26 René Seindal <seindal@diku.dk> |
| |
| * Fixed various bugs. Release 0.99, manual 0.09. Many thanks to |
| François Pinard and Roland H. Pesch for providing me with reports. |
| |
| * The builtins incr and decr are now implemented without use of |
| eval. |
| |
| * The builtin indir is added, to allow for indirect macro calls |
| (allows use of "illegal" macro names). |
| |
| * The debugging and tracing facilities has been enhanced |
| considerably. See the manual for details. |
| |
| * The -tMACRO option is added, marks MACRO for tracing as soon |
| as it is defined. |
| |
| * Builtins are traced after renaming iff they were before. |
| |
| * Named files can now be undiverted. |
| |
| * The -Nnum option can be used to increase the number of |
| divertions available. |
| |
| * Calling changecom without arguments now disables all comment |
| handling. |
| |
| * The function m4_patsubst() is now consistently declared |
| static. |
| |
| * A bug in dnl is fixed. |
| |
| * A bug in the multi-character quoting code is fixed. |
| |
| * Several typos in the manual has been corrected. More probably |
| persist. |
| |
| * The m4.info file is now installed along with the program. |
| |
| 1990-11-15 René Seindal <seindal@diku.dk> |
| |
| * Updated and enhanced version. Release 0.75, manual 0.07. |
| |
| * Implemented search path for include files (-I option and |
| M4PATH envronment variable). |
| |
| * Implemented builtin "format" for printf-like formatting. |
| |
| * Implemented builtin "regexp" for searching for regular |
| expressions. |
| |
| * Implemented builtin "patsubst" for substitution with regular |
| expressions. |
| |
| * Implemented builtin "esyscmd", which expands to a shell |
| commands output. |
| |
| * Implemented "__file__" and "__line__" for use in error |
| messages. |
| |
| * Implemented character ranges in "translit". |
| |
| * Implemented control over debugging output. |
| |
| * Implemented multi-character quotes. |
| |
| * Implemented multi-character comment delimiters. |
| |
| * Changed predefined macro "gnu" to "__gnu__". |
| |
| * Changed predefined macro "unix" to "__unix__", when the -G |
| option is not used. With -G, "unix" is still defined. |
| |
| * Changed "shift", "$@" and "$*" to not insert spaces afters |
| commas. |
| |
| * Added program name to error messages. |
| |
| * Fixed two missing null bytes bugs. |
| |
| 1990-01-22 René Seindal <seindal@diku.dk> |
| |
| * Initial beta release. Release 0.50, manual 0.05. |
| |
| |
| ----- |
| |
| Local Variables: |
| coding: utf-8 |
| End: |
| |
| Copyright (C) 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2003, |
| 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
| |
| Copying and distribution of this file, with or without |
| modification, are permitted provided the copyright notice |
| and this notice are preserved. |