23 Commits

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

Signed-off-by: Eric Blake <ebb9@byu.net>
2008-03-13 21:09:32 -06:00
Eric Blake
88382ff9ef Stage 12c: add macro for m4_arg_len.
* m4/m4module.h (M4ARGLEN): New macro.
* m4/macro.c (process_macro): Adjust all callers.
* m4/utility.c (m4_dump_args): Likewise.
* modules/m4.c (divert, maketemp, mkstemp, m4wrap, len, index)
(substr): Likewise.
* modules/gnu.c (builtin, indir, mkdtemp, patsubst, regexp)
(renamesyms): Likewise.
* modules/stdlib.c (setenv): Likewise.

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

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-11-29 06:55:21 -07:00
Eric Blake
32ab6f9f81 Pass only macro name to utility functions.
* m4/m4module.h (m4_bad_argc, m4_numeric_arg): Adjust signature.
* m4/utility.c (m4_bad_argc, m4_numeric_arg): Adjust
implementation.
* m4/macro.c (m4_macro_call): Adjust callers.
* modules/gnu.c (builtin, debuglen): Likewise.
* modules/m4.c (ifelse, incr, decr, divert, undivert, m4exit)
(substr): Likewise.
* modules/evalparse.c (m4_evaluate): Likewise.
* modules/stdlib.c (setenv, getpwuid, srand): Likewise.
* modules/time.c (ctime, gmtime, localtime, mktime, strftime):
Likewise.

Signed-off-by: Eric Blake <ebb9@byu.net>
2007-11-24 07:04:18 -07:00
Eric Blake
5ced71a68d Normalize all GPL license notices.
* m4/COPYING.LIB: Delete - libm4 is not distributed under LGPLv2
at this time.
* Makefile.am: Update license wording.
* bootstrap: Likewise.
* commit: Likewise.
* configure.ac: Likewise.
* ltdl/config/mailnotify: Likewise.
* ltdl/config/mkstamp: Likewise.
* ltdl/m4/debug.m4: Likewise.
* ltdl/m4/gmp.m4: Likewise.
* ltdl/m4/m4-error.m4: Likewise.
* ltdl/m4/m4-getopt.m4: Likewise.
* ltdl/m4/m4-gettext.m4: Likewise.
* ltdl/m4/m4-obstack.m4: Likewise.
* ltdl/m4/m4-regex.m4: Likewise.
* ltdl/m4/stackovf.m4: Likewise.
* m4/builtin.c: Likewise.
* m4/debug.c: Likewise.
* m4/hash.c: Likewise.
* m4/hash.h: Likewise.
* m4/input.c: Likewise.
* m4/m4.c: Likewise.
* m4/m4module.h: Likewise.
* m4/m4private.h: Likewise.
* m4/macro.c: Likewise.
* m4/module.c: Likewise.
* m4/output.c: Likewise.
* m4/path.c: Likewise.
* m4/resyntax.c: Likewise.
* m4/symtab.c: Likewise.
* m4/syntax.c: Likewise.
* m4/system_.h: Likewise.
* m4/utility.c: Likewise.
* modules/evalp
2007-10-06 07:08:43 -06:00
Eric Blake
4755abc0ee 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.
2007-10-06 07:08:39 -06:00
Gary V. Vaughan
1722215a83 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-10-06 07:08:19 -06:00
Eric Blake
6ec3170c49 * 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.
2007-10-06 06:58:58 -06:00
Eric Blake
92a30082b1 * 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
2007-10-06 06:58:56 -06:00
Eric Blake
832c5ebd68 * m4/m4module.h (M4_BUILTIN_GROKS_MACRO, M4_BUILTIN_BLIND)
(M4_BUILTIN_SIDE_EFFECT): New enumerators.
(struct m4_builtin): New member flags replaces groks_macro_args,
blind_if_no_args.  min_args and max_args are now 0-based.
Rearrange members to reduce size on platforms where function
pointers are 64 bits but regular pointers are 32.
(m4_bad_argc): Add argument.
* m4/m4private.h (VALUE_SIDE_EFFECT_ARGS_BIT): New define.
* m4/utility.c (m4_bad_argc): Simplify calculation, and take side
effect into account.
* m4/module.c (install_builtin_table): Adjust all users affected
by this API change.
* m4/macro.c (m4_macro_call): Likewise.
* src/freeze.c (reload_frozen_state): Likewise.
* modules/m4.c (builtin_functions, ifelse, syscmd): Likewise.
* modules/gnu.c (builtin_functions, builtin, esyscmd): Likewise.
* modules/import.c (builtin_functions): Likewise.
* modules/load.c (builtin_functions): Likewise.
* modules/modtest.c (builtin_functions): Likewise.
* modules/mpeval.c (builtin_f
2007-10-06 06:53:26 -06:00
Gary V. Vaughan
e46a681a9f 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'.
2007-10-05 22:01:03 -06:00
Gary V. Vaughan
f2d311322e * 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.
2007-10-05 22:00:20 -06:00
Gary V. Vaughan
e3a1824b18 * 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.
2007-10-05 22:00:18 -06:00
Gary V. Vaughan
8b0c435a0f 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.
2007-10-05 21:58:41 -06:00
Gary V. Vaughan
5ebfef1256 Two related changes, and a huge knockon effect throughout the
source: Moved the option variables out of global space and into
`struct m4'; made `m4_symtab' a real datatype, so that it's api
is not marred passing `struct m4' around just so it can decide
whether to keep traced symbol names or not.  Added setters and
getters for the formerly global option variables, and obviously
changed a vast number of functions to take a `struct m4' and use
the getter funcs to find option values.

* m4/utility.c (interactive, sync_output, debug_level)
(no_gnu_extensions, prefix_all_builtins, suppress_warnings)
(max_debug_argument_length, warning_status, nesting_limit)
(discard_comments): Removed.
* m4/m4module (warning_status, no_gnu_extensions, nesting_limit)
(debug_level, max_debug_argument_length, prefix_all_builtins)
(suppress_warnings, discard_comments, interactive, sync_output):
Removed from here...
* m4/m4private.h (struct m4): ...and equivalent fields added to
this structure.
(m4_get_warning_status_opt, m4_get_no_gnu_extensions_opt)
(m4_get_nesting_limit_opt, m4_get_debug_level_opt)
(m4_get_max_debug_arg_length_opt, m4_get_prefix_builtins_opt)
(m4_get_suppress_warnings_opt, m4_get_discard_comments_opt)
(m4_get_interactive_opt, m4_get_sync_output_opt): Fast access
macros for the new fields.
* m4/m4module.h (m4_context_field_table)
(m4_context_opt_bit_table): Helper macros used to generate
prototypes, setters and getters for new option fields
consistently.
* m4/m4.c (m4_get_warning_status_opt, m4_get_no_gnu_extensions_opt)
(m4_get_nesting_limit_opt, m4_get_debug_level_opt)
(m4_get_max_debug_arg_length_opt, m4_get_prefix_builtins_opt)
(m4_get_suppress_warnings_opt, m4_get_discard_comments_opt)
(m4_get_interactive_opt, m4_get_sync_output_opt)
(m4_set_warning_status_opt, m4_set_no_gnu_extensions_opt)
(m4_set_nesting_limit_opt, m4_set_debug_level_opt)
(m4_set_max_debug_arg_length_opt, m4_set_prefix_builtins_opt)
(m4_set_suppress_warnings_opt, m4_set_discard_comments_opt)
(m4_set_interactive_opt, m4_set_sync_output_opt): Addressable
setter and getter functions generated by cpp from
m4_context_field_table and m4_context_opt_bit_table, exported as
part of the module api.  Changed all callers.
* m4/symtab (struct m4_symtab): Used as the concrete type for
m4_symtab now.
(m4_symtab_create): Allocate and initialise a new struct.
(m4_symtab_apply): New function that works like m4_hash_apply, but
with different callbacks specific to symbol tables.  Changed all
callers.
(symbol_destroy, arg_destroy, arg_copy): Renamed
symbol_destroy_CB, arg_destroy_CB, arg_copy_CB to remind me that
they have unused parameters for a reason!
(dump_symbol_CB): New callback to dump the contents of a single
symbol.
(symtob_dump): Rewritten in terms of dump_symbol_CB.
* m4/utility.c (m4_dump_symbol): Renamed to m4_dump_symbol_CB.
Changed all callers.
* m4/m4.c (m4_create): By default point the `nuke_trace_bit' field
of the contained `m4_symtab' at the `no_gnu_extensions' field.
Although I'm not convinced these semantics are correct, they are
at least consistent with how things were before this delta.  Also
set the default nesting limit to M4_DEFAULT_NESTING_LIMIT.
2007-10-05 21:58:39 -06:00
Akim Demaille
605ddc9be0 * 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.
2007-10-05 17:21:19 -06:00
Gary V. Vaughan
008a582dc6 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.
2007-10-05 17:21:14 -06:00
Akim Demaille
759fae532b * modules/stdlib.c, modules/times.c: Misc cleanups. 2007-10-05 17:20:47 -06:00
Gary V. Vaughan
0a7af6da17 * 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.
2007-10-05 17:12:24 -06:00
Akim Demaille
f6955a7d11 Perl out the trailing blanks. 2007-10-05 17:02:30 -06:00
Gary V. Vaughan
1691fa49fb Modularization of all builtins by extenstion of libm4. 2007-10-05 16:43:07 -06:00
Gary V. Vaughan
c2f262a05a Resynchronise with my local tree. 2007-10-05 16:35:57 -06:00
Jeff Bailey
bd11691d65 Initial revision 2000-02-17 03:03:19 +00:00