source: vendor/m4/1.4.8/ChangeLog@ 3090

Last change on this file since 3090 was 3090, checked in by bird, 18 years ago

m4 1.4.8

File size: 121.0 KB
Line 
12006-11-20 Eric Blake <ebb9@byu.net>
2
3 Release 1.4.8:
4
5 * configure.ac (AC_INIT): Bump version number.
6 * NEWS: Describe changes since 1.4.7.
7
82006-11-16 Eric Blake <ebb9@byu.net>
9
10 * doc/m4.texinfo (Include, Search Path, Diversions, Divert):
11 Minor tweaks noticed while porting to head.
12
132006-11-14 Eric Blake <ebb9@byu.net>
14
15 * src/output.c (cleanup_tmpfile, freeze_diversions): Clean up
16 spent iterators.
17 (m4_tmpname): Avoid memory leak.
18
192006-11-13 Eric Blake <ebb9@byu.net>
20
21 * src/output.c (cleanup_tmpfile): Avoid double error message when
22 umask is prohibitive.
23 (m4_tmpname, m4_tmpopen, m4_tmpclose, m4_tmpremove): New
24 functions.
25 (m4_tmpfile): Add parameter, move cloexec action here.
26 (make_room_for): Adjust caller. Don't keep too many files open.
27 (insert_diversion_helper): Unlink emptied temp files.
28 (make_diversion): Don't keep too many files open.
29 * doc/m4.texinfo (Diversions): Tweak wording, now that open file
30 descriptors are no longer a limiting factor.
31 * NEWS: Document this change.
32
33 Backport sparse diversion handling from head.
34 * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
35 avltree-oset'.
36 * src/output.c (struct m4_diversion): Rename from struct
37 diversion, and update members. All users changed.
38 (diversion_table): Change to an ordered set, instead of an array.
39 (div0): New storage for diversion 0.
40 (diversions): No longer needed.
41 (free_list): New list to allow recycling diversion storage.
42 (diversion_storage): New storage to reduce malloc overhead.
43 (cmp_diversion_CB, threshold_diversion_CB): New callbacks.
44 (output_init, output_exit, cleanup_tmpfile, make_room_for)
45 (make_diversion): Handle new diversion storage scheme.
46 (insert_diversion_helper): New function.
47 (insert_diversion, undivert_all, freeze_diversions): Use it.
48 * doc/m4.texinfo (Divert, Diversions): Move hidden test of memory
49 exhaustion to visible test of large diversion numbers.
50 * NEWS: Document this fix.
51
522006-11-11 Eric Blake <ebb9@byu.net>
53
54 * src/builtin.c (m4_translit): Slight optimization.
55
56 * src/m4.h (to_uchar): Depend on HAVE_INLINE.
57
58 * src/builtin.c: Remove unnecessary casts.
59 (expand_ranges): Make 8-bit clean.
60 * doc/m4.texinfo (Translit): Add tests and wording.
61 * NEWS: Document this fix.
62
632006-11-07 Eric Blake <ebb9@byu.net>
64
65 * src/m4.h (output_exit): New prototype.
66 * src/m4.c (main): Use it.
67 * src/output.c (cleanup_tmpfile): Close files before removing
68 directory.
69 (insert_diversion): Check for failure.
70 (output_exit): Avoid memory leak.
71 * doc/m4.texinfo (Diversions): Test this bug.
72
73 * doc/m4.texinfo (Esyscmd, Errprint): Minor touchups.
74
752006-11-01 Eric Blake <ebb9@byu.net>
76
77 Allow C++ compilation on Linux, as a safety measure in type
78 checking.
79 * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
80 stdbool'.
81 * src/m4.h (hack_symbol, hack_all_symbols): Use full prototype.
82 (boolean): Kill this, and use stdbool.h instead.
83 * src/debug.c, src/eval.c, src/input.c, src/macro.c, src/m4.c:
84 * src/output.c, src/symtab.c: All users changed.
85 * src/symtab.c (hack_all_symbols): Update prototype.
86 * src/builtin.c (dump_symbol, set_trace): Update signature.
87 (m4_dumpdef, m4_traceon, m4_traceoff): Update callers.
88 (mkstemp_helper, m4_m4wrap, expand_ranges, m4_translit): Allow
89 C++ compilation.
90 * src/debug.c (trace_flush): Likewise.
91 * src/freeze.c (reload_frozen_state): Likewise.
92 * src/input.c (push_file, push_string_finish, push_wrapup):
93 (token_bottom, next_token): Likewise.
94 * src/m4.c (main): Likewise.
95
96 * doc/m4.texinfo (Invoking m4): Update according to POSIX 200x
97 draft wording.
98 * src/m4.h (m4_path_search): Tweak signature.
99 * src/path.c (m4_path_search): Likewise.
100 * src/builtin.c (include): Update caller.
101 * src/m4.c (main): Allow -D, -U, -t, and -s to be interspersed
102 with file names. Don't write to **argv.
103 (process_file): New helper method.
104 * NEWS: Document this fix.
105
1062006-10-31 Eric Blake <ebb9@byu.net>
107
108 * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import strstr'.
109 * doc/m4.texinfo (Translit): Improve the documentation.
110 * src/builtin.c (m4_translit): Optimize to O(n) instead of O(n^2)
111 algorithm.
112 (m4_index): Simplify, and speed up slightly.
113 * NEWS: Document this fix.
114
1152006-10-28 Eric Blake <ebb9@byu.net>
116
117 * src/input.c (set_quotes): Don't allow empty end-quote with
118 non-empty start-quote.
119 (set_comment): Likewise for end-comment.
120 * src/builtin.c (m4_changecom): Adjust caller.
121 * doc/m4.texinfo (Changequote, Changecom): Update documentation to
122 match behavior.
123 (Incompatibilities): Document another POSIX bug.
124 * NEWS: Mention this change.
125
1262006-10-27 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
127
128 * examples/Makefile.am (EXTRA_DIST): Distribute recently-added
129 files.
130
1312006-10-26 Eric Blake <ebb9@byu.net>
132
133 Silence -Wwrite-strings -Wpointer-arith warnings.
134 * src/builtin.c (define_user_macro): Allow NULL argument.
135 (m4_builtin, m4_indir): Cast away const of "".
136 * src/format.c (format): Likewise.
137 * src/macro.c (collect_arguments): Likewise.
138 (expand_macro): Avoid math on void*.
139 * src/m4.c (main): Adjust caller.
140 * src/output.c (freeze_diversions): Detect off_t overflow.
141
142 * src/input.c (pop_input): Remove unnecessary code.
143
1442006-10-25 Eric Blake <ebb9@byu.net>
145
146 * src/symtab.c (symtab_init): Avoid size_t overflow.
147 * src/output.c (make_diversion): Avoid size_t overflow.
148 * doc/m4.texinfo (Diversions): Test this fix.
149 * src/input.c (input_block): Remove unused member. Reduce size
150 of struct.
151 (push_file, pop_input): Avoid useless assignment.
152 * NEWS: Document the bug fix.
153
154 Redo location tracking. Instead of having just files track the
155 line to return to when popping input, now all input blocks track
156 their current line.
157 * src/input.c (INPUT_STRING_WRAP, INPUT_FILE_INIT): No longer
158 needed.
159 (input_block): Have line and file storage for all input types, and
160 rename some members.
161 (input_change): New global flag.
162 (push_file, push_macro, push_string_init, push_wrapup): Store
163 location.
164 (push_string_finish, pop_input, pop_wrapup): Notice changes in
165 input blocks.
166 (peek_input): Adjust to new member names.
167 (next_char, next_char1): Adjust location if needed.
168 (skip_line): Simplify restoring location.
169 * doc/m4.texinfo (Location): Augment the test to catch line
170 location of expansion of multi-line arguments.
171 Reported by Stepan Kasal.
172
1732006-10-23 Eric Blake <ebb9@byu.net>
174
175 * doc/m4.texinfo (Macro Arguments): Document that leading space
176 in argument collection stops at macro expansion.
177 (Incompatibilities): Document POSIX whitespace wording issue.
178
1792006-10-20 Eric Blake <ebb9@byu.net>
180
181 * doc/m4.texinfo: Trailing '@comment' doesn't format nicely in
182 TeX, so recognize '@w{ }' instead. Likewise, @code{_name} at the
183 end of a TeX line splits incorrectly.
184 (Foreach, Improved foreach): Write these sections, borrowing ideas
185 from CVS head and from m4sugar.
186 * checks/get-them: Accomodate new way to show trailing space in
187 examples.
188 * examples/foreach.m4: Make usable in documentation.
189 * examples/foreachq.m4: New file.
190 * examples/foreachq2.m4: New file.
191 * examples/foreach2.m4: New file.
192 * NEWS: Document the documentation updates.
193
1942006-10-19 Eric Blake <ebb9@byu.net>
195
196 * src/builtin.c (mkstemp_helper, m4_mkstemp): New functions.
197 (m4_maketemp): Provide traditional behavior.
198 * doc/m4.texinfo (Mkstemp): Rename from Maketemp. Document the
199 new `mkstemp' macro and the flaws of the old `maketemp'.
200 (Incompatibilities): Move maketemp discussion to...
201 (Extensions): ...here, since -G now supresses the GNU extension.
202 * NEWS: Document this.
203
204 * examples/forloop.m4: Simplify.
205 * examples/forloop2.m4: New file.
206 * examples/quote.m4: New file.
207 * doc/m4.texinfo (Loops): Rename to...
208 (Shift): ...this node.
209 (Forloop, Foreach, Improved forloop, Improved foreach): New
210 nodes.
211
2122006-10-17 Eric Blake <ebb9@byu.net>
213
214 * m4/gnulib-cache.m4: Update with 'gnulib-tool --import
215 config-h'.
216 * configure.ac (AC_CONFIG_HEADERS): Create config.h alongside
217 gnulib headers, rather than in top directory.
218 * src/Makefile.am (AUTOMAKE_OPTIONS): Add nostdinc, to reduce make
219 output clutter.
220
2212006-10-16 Eric Blake <ebb9@byu.net>
222
223 * doc/m4.texinfo: Backport some minor cleanups from head.
224 (Cleardivert): Rename from cleardiv.
225
226 * doc/m4.texinfo (Invoking m4): Promote to a chapter, instead of
227 a section of Preliminaries.
228 (Operation modes, Preprocessor features, Limits control)
229 (Frozen state, Debugging options, Command line files): Subdivide
230 into new sections.
231 (Input processing, Quoting Arguments, Define, Arguments)
232 (Cleardiv, Format, M4exit): Fix grammar of references.
233 (Inhibiting Invocation, Macro Arguments, Builtin, Trace)
234 (Debug Levels, Debug Output, Include, Search Path, Divert)
235 (Platform macros, Syscmd, Location, Extensions): Point to new
236 sections.
237 (Top, Loops, Include, Undivert, Location, Incompatibilities):
238 Improve file references.
239
2402006-10-14 Eric Blake <ebb9@byu.net>
241
242 * m4/input.c (file_clean): Don't close stdin twice, POSIX says it
243 is not portable.
244 Reported by Ralf Wildenhues.
245
246 * src/builtin.c (m4_undivert): Check for read error.
247
2482006-10-13 Eric Blake <ebb9@byu.net>
249
250 * src/m4.h (UNIX, W32_NATIVE, OS2): Move platform checks after
251 header files are included, since <unistd.h> can affect the tests.
252 * THANKS: Updated.
253 Reported by Martin Koeppe.
254
255 Backport head's usage of clean-temp module, as it is cleaner than
256 using tmpfile-safer.
257 * m4/gnulib-cache.m4: Augment with 'gnulib-tool --import
258 clean-temp closeout', and remove tmpfile-safer.
259 * src/m4.h (includes): Adjust.
260 (m4_path_search): Rename from path_search, to avoid collision
261 with gnulib.
262 * src/m4.c (main): Install closeout handler. Adjust caller.
263 (usage): Now done by closeout module.
264 * src/builtin.c (m4_m4exit): Likewise.
265 (m4_undivert, include): Adjust callers.
266 * src/freeze.c (reload_frozen_state): Likewise.
267 * src/path.c (m4_path_search): Rename from path_search.
268 * src/output.c (output_temp_dir): New variable.
269 (cleanup_tmpfile, m4_tmpfile): New functions, from head.
270 (insert_diversion, make_room_for): Use them.
271 * doc/m4.texinfo (Diversions): Document this, and add a test.
272 (Improved fatal_error): Fix typo.
273 (Maketemp): Port test to mingw, and no longer hide from
274 documentation.
275 * NEWS: Document the change in TMPDIR behavior.
276
277 * configure.ac (m4_pattern_forbid): Narrow the range of forbidden
278 macros, to work with recent gnulib-tool update.
279
280 * src/builtin.c (m4_builtin, m4_indir): Allow transparent
281 handling of defn results.
282 * doc/m4.texinfo (Builtin, Indir): Add test cases.
283 * NEWS: Document this.
284
2852006-10-12 Eric Blake <ebb9@byu.net>
286
287 * doc/m4.texinfo (Location): Fix typo in previous commit.
288 (Changeword): Catch one more case.
289 * src/input.c (skip_line): Fix case when outer file used macro to
290 supply the \n.
291
2922006-10-11 Eric Blake <ebb9@byu.net>
293
294 * src/input.c (enum input_type): Add additional types, to shave
295 time off the common case.
296 (push_wrapup): Wrapped strings remember location.
297 (push_string_finish): Normal strings carry no location.
298 (push_file): Start new files uninitialized.
299 (peek_input, next_char_1): Optimize common cases by updating
300 location only on new input types.
301 (pop_input): Update to honor new input types.
302 (skip_line, push_string_finish): Fix regression in previous patch
303 when dnl is not followed by newline in included file.
304 (push_string_init): Initialize all fields of INPUT_STRING sooner.
305 (peek_token): Simplify.
306 (peek_input): Don't pop input files on peek, so that __file__ and
307 __line__ as last token of include file work correctly.
308 * doc/m4.texinfo (History): Mention 1.4.8.
309 (Answers): Split into sections, one per answer.
310 (Improved exch, Improved cleardivert, Improved fatal_error): New
311 nodes.
312 (Dnl, M4wrap, Location, M4exit, Improved fatal_error): Update to
313 new m4wrap location semantics.
314 (Changeword): Add test that caught the regression.
315 * NEWS: Document this.
316
317 * src/macro.c (expand_macro): In macro expansion errors, report
318 line number at open parenthesis.
319 * src/input.c (next_token): Fix off-by-one bug in reporting end
320 of file in unterminated comment and string.
321 (file_names): New obstack, necessary since expand_macro now hangs
322 on to file names longer than the files remain open.
323 (input_init): Initialize new obstack.
324 (push_file): Use new obstack. Delay updates to current_file
325 until after expand_macro has restored state.
326 (peek_input, next_char_1): Update current_file if necessary.
327 (pop_wrapup): Release memory.
328 * doc/m4.texinfo (Macro Arguments, Changequote, Changecom): Catch
329 the off-by-one bug.
330 (Dnl): Update to the new location reporting rules.
331 * NEWS: Document these changes.
332
3332006-10-10 Eric Blake <ebb9@byu.net>
334
335 * src/macro.c (argc_stack, argv_stack): New variables for sharing
336 obstacks across multiple macro calls.
337 (expand_input): Initialize and tear down stack once per input
338 file, instead of once per macro.
339 (expand_macro): Reuse existing stacks when possible.
340 (collect_arguments): Simplify slightly.
341
342 * src/path.c (include_env_init): Fix botched patch application.
343 Reported by Ralf Wildenhues.
344
3452006-10-09 Eric Blake <ebb9@byu.net>
346
347 * src/m4.c (usage, main): Detect write failures to stderr.
348 * src/builtin.c (m4_m4exit): Likewise.
349 * NEWS: Document this.
350
351 * src/macro.c (expand_macro): Allow --nesting-limit=0 to remove
352 the limit.
353 * NEWS: Document this.
354 * doc/m4.texinfo (Invoking m4): Likewise.
355
3562006-10-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
357
358 * src/path.c (include_env_init): Copy the string returned
359 by getenv before overwriting it; POSIX disallows this.
360
3612006-10-09 Eric Blake <ebb9@byu.net>
362
363 * src/m4.c (main): Defer debugfile until after --help.
364 * configure.ac (AC_INIT): Bump version number.
365 * NEWS: Start changes of 1.4.7a.
366
3672006-09-25 Eric Blake <ebb9@byu.net>
368
369 Release 1.4.7:
370
371 * configure.ac (AC_INIT): Bump version number.
372 * NEWS: Describe changes since 1.4.6.
373
3742006-09-21 Eric Blake <ebb9@byu.net>
375
376 * doc/m4.texinfo (Invoking m4): Add clarification on option
377 processing behavior.
378 * THANKS: Update.
379 Reported by Mikhail Teterin.
380
381 * bootstrap: Add --force option, based on idea from coreutils.
382 * README: Document that ./bootstrap and autoreconf are for
383 developers, and not lightly done in tarballs.
384
3852006-09-20 Eric Blake <ebb9@byu.net>
386
387 * src/m4.c (usage, OPTSTRING, main): Rename -e to -i, and give
388 deprecation warning on -e.
389 * doc/m4.texinfo (Invoking m4, Extensions): Document this.
390 * NEWS: Document this.
391
3922006-09-19 Eric Blake <ebb9@byu.net>
393
394 * src/m4.c (usage, long_options, main, DEBUGFILE_OPTION): Rename
395 -o/--error-output to --debugfile, and deprecate the former. This
396 will allow a future release to be more consistent with other GNU
397 tools, with -o/--output affecting stdout, not debug.
398 * doc/m4.texinfo (Invoking m4, Debug Output): Document this.
399 * NEWS: Document this.
400
4012006-09-14 Eric Blake <ebb9@byu.net>
402
403 * src/m4.c (main): Warn on deprecated options -B, -S, -T, -N,
404 --diversions. `m4 --help --version' now displays help, not
405 version.
406 (interactive, frozen_file_to_read, frozen_file_to_write): Move to
407 smaller scope.
408 (show_help, show_version): No longer needed.
409 (long_options, DIVERSIONS_OPTION): Backport patch from head to
410 distinguish between -N and --diversions in warning.
411 * doc/m4.texinfo (Invoking m4): Document this.
412 * NEWS: Likewise.
413
4142006-09-11 Eric Blake <ebb9@byu.net>
415
416 * src/Makefile.am (m4_LDADD): Add any gnulib dependent libraries.
417 * src/debug.c (debug_flush_files) [UNIX]: Flush stdin if it is
418 seekable.
419 (debug_set_file): Use STDOUT_FILENO.
420 * src/builtin.c (m4_m4exit): Flush stdin before exiting, to comply
421 with POSIX in regards to unread input.
422 * NEWS: Document this fix.
423 * doc/m4.texinfo (Syscmd, Esyscmd, M4exit): Likewise.
424
4252006-09-07 Eric Blake <ebb9@byu.net>
426
427 * m4/gnulib-cache.m4: Update to newer gnulib-tool.
428 * src/m4.h (push_file): Change prototype.
429 * src/input.c (push_file, peek_input, next_char_1): Only call getc
430 once at EOF, to avoid double ^D on terminal stdin; regression from
431 2006-09-04.
432 (push_file, pop_file): Allow reading stdin twice.
433 * src/m4.c (main): Likewise.
434 * src/builtin.c (include): Update caller.
435 * NEWS: Document this change.
436 * doc/m4.texinfo (Invoking m4, Incompatibilities): Likewise.
437 (Syscmd): Add a test that failed before this patch.
438
4392006-09-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
440
441 * checks/check-them: Quote $pwd.
442
4432006-09-05 Eric Blake <ebb9@byu.net>
444
445 * src/builtin.c (define_macro): Warn on invalid macro name.
446 * NEWS: Document this change.
447 * doc/m4.texinfo: Fix typos.
448 (Invoking m4, Macro Arguments, Pseudo Arguments, Defn, Indir)
449 (Ifelse): Backport some improvements from head.
450
4512006-09-04 Eric Blake <ebb9@byu.net>
452
453 * doc/m4.texinfo (Changeword): Skip test on mingw, where the
454 native echo is braindead.
455 * checks/check-them (strip_needed): Ignore \r in output. Now the
456 testsuite will pass when cross-compiling from cygwin to mingw.
457
458 * src/input.c (peek_input): Fix regression in handling macro
459 without arguments as last token in file; debian bug 385720.
460 (next_token): Always consume an input character.
461 Reported by Andreas Schultz.
462 * configure.ac (AC_INIT): Bump version number.
463 * NEWS: Document this fix.
464 * doc/m4.texinfo (History): Mention next version.
465 (Changeword): Add example that exposes this bug.
466 * THANKS: Update.
467
4682006-08-25 Eric Blake <ebb9@byu.net>
469
470 Release 1.4.6:
471
472 * configure.ac (AC_INIT): Bump version number.
473 * NEWS: Describe changes since 1.4.5.
474
475 * Makefile.maint (web-manual): Give up on VPATH build during
476 distribution. But distributions are made so infrequently that
477 this is not too much of a hardship.
478 * Makefile.am (MAINTAINERCLEANFILES): Avoid error if lib/CVS/
479 exists.
480
4812006-08-24 Eric Blake <ebb9@byu.net>
482
483 * src/builtin.c (m4_index, m4_substr, m4_translit): Similar to
484 Solaris, produce output on just one argument.
485 (m4_regexp, m4_patsubst): For consistency, do likewise.
486 (m4_patsubst): Allow zero-length match at end of string.
487 * doc/m4.texinfo (Sysval): Fix overfull hbox.
488 (Bugs, Macro Arguments): Minor fixes.
489 (Other tokens): Rearrange node order.
490 (Index macro, Substr, Translit, Regexp, Patsubst): Add tests.
491 * NEWS: Document these fixes.
492
4932006-08-22 Eric Blake <ebb9@byu.net>
494
495 * src/input.c (pop_input): Avoid empty filename with -di option.
496 * src/debug.c (debug_message_prefix): Put space before message.
497
498 * m4/gnulib-cache.m4: We don't explicitly use alloca module.
499
500 * m4/gnulib-cache.m4: Augment with gnulib-tool --import gnupload.
501 * Makefile.maint (fetch): Simplify, now that we can use gnupload.
502
503 * checks/check-them: State why a test is skipped.
504 * doc/m4.texinfo (Changeword, Sysval, Maketemp): Likewise.
505
506 * ChangeLog: Add copyright.
507 * AUTHORS: Likewise.
508 * BACKLOG: Likewise.
509 * README: Likewise.
510 * THANKS: Likewise.
511 * TODO: Likewise.
512 * examples/COPYING: New file, add copyright for all the examples.
513 * checks/get-them: Put copyright on testsuite files.
514
5152006-08-18 Eric Blake <ebb9@byu.net>
516
517 Don't let unrelated child processes see too many files.
518 * m4/gnulib-cache.m4: Augment with gnulib-tool --import cloexec.
519 * src/builtin.c (m4_esyscmd, m4_regexp, m4_patsubst): Fix
520 spelling in error message.
521 * src/debug.c [!__STDC__]: Assume C89, and nuke old varargs.h.
522 (debug_set_output): Close debug file on exec.
523 * src/m4.h (includes): Add cloexec.h.
524 * src/output.c (make_room_for): Close diversions on exec.
525 * src/path.c (path_search): Close include files on exec.
526 * NEWS: Document this.
527
528 Regular expressions were leaking memory.
529 * src/builtin.c (init_pattern_buffer, free_pattern_buffer): New
530 helper methods.
531 (m4_regexp, m4_patsubst): Avoid memory leak.
532 * src/input.c (init_pattern_buffer) [ENABLE_CHANGEWORD]: Make
533 static.
534 (set_word_regexp) [ENABLE_CHANGEWORD]: Avoid memory leak. Change
535 from O(n^2) to O(n) for calculating word_start.
536 (next_token, peek_token) [ENABLE_CHANGEWORD]: Treat word_start as
537 O(1) bitmap, not O(n) search string.
538 * NEWS: Document this fix.
539
5402006-08-17 Eric Blake <ebb9@byu.net>
541
542 * NEWS: Document previous checkin.
543
544 * src/builtin.c (substitute): Avoid core dump when accessing
545 beyond bound of regular expression.
546 Reported by Karl Nelson.
547 * doc/m4.texinfo (Regexp): Add example that causes core dump on
548 some architectures prior to this patch.
549 * THANKS: Updated.
550
5512006-08-16 Eric Blake <ebb9@byu.net>
552
553 * doc/m4.texinfo (Invoking m4, Debug Output): Fix wording to be
554 clear that dumpdef does not always go to stderr.
555
556 * src/builtin.c (m4_errprint): Flush buffers before printing to
557 stderr.
558 * THANKS: Updated.
559
5602006-08-15 Eric Blake <ebb9@byu.net>
561
562 * src/builtin.c (m4_m4wrap, m4_errprint, m4_shift): Make blind,
563 per debian bug 96075.
564 * doc/m4.texinfo (Loops, M4wrap, Errprint): Document this change.
565 (Changeword): Don't use shift as an example of a swallowed word.
566 (Divert): Discuss fact that divert is an English word.
567 Reported by Richard A Nelson.
568
5692006-08-14 Eric Blake <ebb9@byu.net>
570
571 * doc/m4.texinfo (Invoking m4): Minor fixes.
572
5732006-08-12 Eric Blake <ebb9@byu.net>
574
575 * doc/m4.texinfo (Arguments): Hint at better exch macro.
576 (Answers): Provide a better definition.
577
5782006-08-09 Eric Blake <ebb9@byu.net>
579
580 * doc/m4.texinfo (Incompatibilities): Document that m4 does not
581 yet understand locales.
582 * NEWS: Fix wording of a few items.
583
5842006-08-08 Eric Blake <ebb9@byu.net>
585
586 Avoid printing `NONE:0:' in error messages.
587 * src/m4.h (m4_error_at_line): New function.
588 * src/m4.c (m4_error_at_line): Implement.
589 * src/input.c (skip_line, input_init, next_token): Use "", not
590 "NONE", for no file, since NONE can be a real file name.
591 * src/macro.c (expand_argument): Likewise.
592 * src/debug.c (debug_message_prefix, trace_header): Check for
593 current file.
594 * doc/m4.texinfo (Dnl, M4wrap): Adjust accordingly.
595 (Location): Document that synclines and internal message format
596 are not impacted by redefining these macros.
597 (M4exit): Hint at bug in fatal_error.
598 (Answers): Provide workaround to match m4 output.
599
600 * m4/gnulib-cache.m4: Augment with gnulib-tool --import verror.
601 * src/m4.h (m4_error): New function.
602 (M4ERROR, M4ERROR_AT_LINE): Reimplement without hacking around
603 error module deficiencies.
604 (reference_error, suppress_line): No longer needed.
605 * src/m4.c (m4_error): Implement.
606 (main): No longer need to install error callback.
607
6082006-08-04 Eric Blake <ebb9@byu.net>
609
610 * src/m4.h (program_name): Declare.
611 (suppress_line): New variable.
612 (M4ERROR_AT_LINE): New macro.
613 * src/m4.c (reference_error, main): Follow GNU Coding Standards
614 for error message format.
615 * src/input.c (skip_line, next_token): Use M4ERROR_AT_LINE.
616 * src/macro.c (expand_argument): Likewise.
617 * checks/check-them (examples): Adjust to new message format.
618 * src/builtin.c (m4___program__): New builtin.
619 * doc/m4.texinfo (Location): Split from Errprint into new node,
620 and document __program__.
621 (Builtin, Ifdef, Ifelse, Dumpdef, Trace, Debug Output, Dnl)
622 (Include, Regexp, Patsubst, Incr, Eval): Adjust error message
623 format.
624 (Extensions): Document __program__.
625 * NEWS: Document this change.
626
6272006-08-03 Eric Blake <ebb9@byu.net>
628
629 Don't confuse leading `(' in comment or quote with start of
630 argument collection.
631 * src/m4.h (enum token_type): Add TOKEN_OPEN, TOKEN_COMMA,
632 TOKEN_CLOSE.
633 (peek_input): Make private to input.c.
634 (peek_token): New prototype.
635 * src/input.c (default_word_regexp): Reduce ifdefs.
636 (peek_input): Make static.
637 (next_token): Return new token types.
638 (match_input, MATCH): Add argument consume, which controls
639 whether match should be pushed back.
640 (peek_token): New function.
641 (token_type_string) [DEBUG_INPUT]: New function.
642 * src/macro.c (expand_token, expand_argument, collect_arguments):
643 Handle new token types.
644 * doc/m4.texinfo (Changequote, Changecom): Document this.
645 * NEWS: Document this.
646
647 * src/stackovf.c (setup_stackovf_trap): Free memory on failure.
648
649 * src/stackovf.c (setup_stackovf_trap): Gracefully avoid stack
650 overflow detection when sigstack exists but is not implemented.
651 Fixes debian bug 154053.
652 * THANKS: Updated.
653 Reported by David Perlin.
654
6552006-08-02 Eric Blake <ebb9@byu.net>
656
657 * src/input.c (MATCH): Fix EOF detection on multi-byte comment
658 close.
659
6602006-08-01 Eric Blake <ebb9@byu.net>
661
662 * src/input.c (skip_line, next_token): Remember current file in
663 case input file ends abruptly. Addresses debian bug 175365.
664 (pop_input): Defer freeing storage that holds previous file
665 name...
666 (pop_wrapup): to here, after error message is issued.
667 * src/macro.c (expand_argument): Remember current file in case
668 input file ends abruptly.
669 * doc/m4.texinfo (Macro Arguments, Dnl, Changequote, Changecom)
670 (M4wrap): Adjust testsuite accordingly.
671 (Errprint): Document line number limitation of m4wrap.
672 * NEWS: Document this fix.
673 * THANKS: Update.
674
6752006-07-31 Eric Blake <ebb9@byu.net>
676
677 * src/input.c (peek_input, next_char, match_input): Be eight-bit
678 clean; fixes debian bug 311378.
679 * doc/m4.texinfo (Syntax): Describe eight-bit handling.
680 (Changequote, Changecom): Add examples to test this.
681 * NEWS: Document this fix.
682 * THANKS: Update.
683 Reported by Steven Augart.
684
685 * doc/m4.texinfo: Whitespace fix.
686 * checks/get-them: Avoid exceeding 14-char file name limit.
687 * THANKS: Update.
688
6892006-07-30 Eric Blake <ebb9@byu.net>
690
691 * src/path.c (path_search): Detect allocation failure.
692
693 Use native free when it is good enough.
694 * m4/gnulib-cache.m4: Augment with gnulib-tool --import free.
695 * src/builtin.c (define_user_macro, m4_regexp, m4_patsubst):
696 Adjust calls.
697 * src/symtab.c (free_symbol): Likewise.
698 * src/m4.c (xfree, main): Likewise.
699 * src/m4.h (obstack_chunk_free): Likewise.
700 * src/path.c (path_search): Likewise.
701 * src/input.c (pop_wrapup, set_quotes, set_comment): Likewise.
702
703 * doc/m4.texinfo (Errprint): Add example for last patch.
704 * checks/check-them: Account for VPATH in latest example.
705
7062006-07-29 Eric Blake <ebb9@byu.net>
707
708 * src/path.c (path_search): Add result parameter, so that
709 -I can be accounted for. Debian bug 53685.
710 * src/m4.h (path_search): Update prototype.
711 * src/m4.c (main): Adjust callers.
712 * src/freeze.c (reload_frozen_state): Likewise.
713 * src/builtin.c (include, m4_undivert): Likewise.
714 * NEWS: Document this change.
715 Reported by Nicolas Lichtmaier.
716
7172006-07-28 Eric Blake <ebb9@byu.net>
718
719 * Makefile.am (MAINTAINERCLEANFILES): Fix typo that tripped up
720 several non-GNU makes.
721 * src/stackovf.c (setup_stackovf_trap): Missed _ from yesterday.
722 * src/m4.h: Likewise.
723 * src/input.c (push_wrapup): Avoid compiler warning with Solaris
724 /usr/ccs/bin/ucbcc.
725
7262006-07-27 Eric Blake <ebb9@byu.net>
727
728 * doc/m4.texinfo: Use @acronym{GNU} throughout.
729 (History): Update for 1.4.6.
730
731 * src/m4.h (_): Remove K&R cruft.
732 * src/builtin.c: Likewise.
733 * src/debug.c: Likewise.
734 * src/eval.c: Likewise.
735 * src/macro.c: Likewise.
736 * src/stackovf.c: Likewise.
737
738 * doc/Makefile.am (m4.1): Improve man page.
739 * src/m4.c (usage): Improve --help output, including adding the
740 bug reporting address.
741 (main): Follow GNU Coding Standards for --version output.
742
7432006-07-26 Eric Blake <ebb9@byu.net>
744
745 * doc/m4.texinfo: Use begin-quote, end-quote, begin-comment, and
746 end-comment consistently, to match POSIX.
747
748 * doc/m4.texinfo (Macro Arguments, Changequote, Changecom)
749 (Dnl, M4wrap, Include): Document EOF issues, and add examples.
750 (Incompatibilities): Document incompatibility of changecom
751 vs. macro names, and of EOF in include.
752 * src/input.c (next_token): Reject unterminated comments at EOF.
753 (skip_line): Warn on unterminated dnl at EOF.
754 * NEWS: Document these changes.
755
7562006-07-25 Eric Blake <ebb9@byu.net>
757
758 * m4/gnulib-cache.m4: Update to reflect gnulib's split of
759 stdio-safer into fopen-safer and tmpfile-safer.
760 * src/m4.c: Remove redundant include.
761
7622006-07-24 Eric Blake <ebb9@byu.net>
763
764 Fix bugs related to stream handling.
765 * m4/gnulib-cache.m4: Augment with gnulib-tool --import
766 unlocked-io stdio-safer stdlib-safer close-stream.
767 * configure.ac (AC_CHECK_FUNCS_ONCE): Assume tmpfile; it can be
768 provided by gnulib if needed.
769 * src/output.c [! HAVE_TMPFILE]: Likewise.
770 * src/m4.h (includes): Replace unistd, stdio, and stdlib with
771 their safer counterparts.
772 (retcode): New global variable.
773 * src/input.c (pop_input): Check for read failure.
774 * src/freeze.c (reload_frozen_state): Likewise.
775 (produce_frozen_state): Check for write failure.
776 * src/debug.c (debug_set_file): Likewise.
777 * src/m4.c (usage, main): Likewise.
778 (retcode): Make global.
779 * src/builtin.c (m4_m4exit): Likewise. Ensure that the exit
780 status is non-zero except when everything succeeds.
781 * doc/m4.texinfo (M4exit): Document these changes.
782 (Incompatibilities): Remove documentation of bug now fixed.
783 * NEWS: Document these fixes.
784
7852006-07-22 Eric Blake <ebb9@byu.net>
786
787 * src/format.c (format): Avoid compiler warning that str may be
788 used uninitialized.
789
7902006-07-21 Eric Blake <ebb9@byu.net>
791
792 * src/m4.h [UNIX]: Add more platforms that are close enough to
793 categorize as UNIX, but which don't predefine __unix__.
794 Reported by Nelson H. F. Beebe.
795
7962006-07-20 Eric Blake <ebb9@byu.net>
797
798 * m4/gnulib-cache.m4: gnulib-tool has changed again. Regenerate
799 to explicitly ask for --assume-autoconf=2.60.
800
8012006-07-19 Eric Blake <ebb9@byu.net>
802
803 * doc/m4.texinfo (Sysval): Avoid kill -1, since ksh traps SIGHUP
804 and exits normally with 129.
805 Reported by Nelson H. F. Beebe.
806 * THANKS: Update.
807
808 * src/m4.h (EXIT_MISMATCH): Define.
809 * src/freeze.c (reload_frozen_state): Detect version mismatch, by
810 exiting with status 63.
811 * src/m4.c (usage): Document this.
812 * doc/m4.texinfo (Invoking m4, Using frozen files): Likewise.
813 * NEWS: Likewise.
814
815 * doc/m4.texinfo (copying): Relax restriction on front-cover and
816 back-cover texts.
817
8182006-07-17 Eric Blake <ebb9@byu.net>
819
820 * src/format.c (format): Support F, g, and G specifiers.
821 * doc/m4.texinfo (Format): Document this.
822 * NEWS: Document this addition.
823
824 * doc/m4.texinfo (Builtin): Delete redundant text.
825
826 * configure.ac (AC_INIT): Bump version number.
827 * src/builtin.c (substitute): Bah. Fix buffer overrun.
828 * NEWS: Document this fix.
829
8302006-07-15 Eric Blake <ebb9@byu.net>
831
832 Release 1.4.5:
833
834 * configure.ac (AC_INIT): Bump version number.
835 * NEWS: Describe changes since 1.4.4.
836
837 * src/m4.c (usage): Document exit status.
838 * doc/m4.texinfo: Use `exit status', not `exit code'.
839 (Invoking m4): Document exit status.
840
841 * bootstrap: Backport --help, --version from head.
842 (func_update): New function, for easily grabbing up-to-date files
843 from gnulib.
844 * Makefile.maint (web-manual): Fix for VPATH builds.
845
8462006-07-14 Eric Blake <ebb9@byu.net>
847
848 * doc/m4.texinfo: Global cleanup. Avoid @code{...}'d, as it
849 looks bad in info. Use @deffn rather than @example for
850 describing prototypes. Fix awkward wording and grammar.
851
852 * src/builtin.c (substitute): Warn on bad escape sequences.
853 Ignore trailing backslash.
854 * doc/m4.texinfo (Regexp): Add documentation for this.
855 * NEWS: Document this change.
856
857 * src/builtin.c (m4_format, m4_indir): Warn on too few arguments.
858 * doc/m4.texinfo (Defn, Builtin, Debug Levels, Debug Output): Add
859 more examples.
860 (Dnl): Update example to show side effects.
861 * checks/get-them: Generate three digit test names.
862 * checks/Makefile.in (CHECKS): Accomodate 100+ tests.
863
8642006-07-13 Eric Blake <ebb9@byu.net>
865
866 * src/input.c (input_init): Simplify.
867 (set_word_regexp): Treat empty string as default, since empty
868 regexp would disable word parsing.
869 * src/m4.c (user_word_regexp): Default to empty string.
870 * src/builtin.c (builtin_tab): Make changeword blind.
871 * doc/m4.texinfo (Changeword): Document this.
872 * NEWS: Document this.
873 * TODO: Knock off completed items.
874
875 * src/builtin.c (m4_undefine, m4_popdef): Visit all arguments, not
876 just the first.
877 * doc/m4.texinfo (Undefine, Pushdef): Test this.
878 * NEWS: Document this change.
879
880 * src/builtin.c (numeric_arg): Treat empty string as 0, with a
881 warning. Detect quoted leading space and overflow as warnings.
882 (m4_eval): Treat empty radix as 10, and allow output in radix 1.
883 Treat width as minimum number of digits, as required by POSIX.
884 (m4_ifdef, m4_divert, m4_m4exit, m4_translit): Ignore extra
885 arguments.
886 (m4_substr): Likewise. Silently treat empty start as 0.
887 (m4_undivert): Treat ` 1a' as file, not diversion 1.
888 * src/eval.c (eval_lex): Parse radix 1 numbers.
889 * doc/m4.texinfo (Invoking m4): Fix wording; there is more than
890 one type of warning.
891 (Manual): Document behavior of numeric parsing of empty string.
892 (Divert, Incr): Document error handling.
893 (Eval): Document radices better.
894 (Incompatibilities): Document translit incompatibility.
895 * NEWS: Document these changes.
896
897 * Makefile.maint (fetch): Get gendocs from gnulib, not texinfo.
898 (web-manual): Simplify.
899 * m4/gnulib-cache.m4: Augment with gnulib-tool --import gendocs.
900 * Makefile.am (EXTRA_DIST): Distribute gendocs.sh.
901 (MAINTAINERCLEANFILES): Clean it as well.
902 * doc/Makefile.am (EXTRA_DIST): Distribute gendocs_template.
903 (MAINTAINERCLEANFILES): Clean it as well.
904
9052006-07-12 Eric Blake <ebb9@byu.net>
906
907 * doc/m4.texinfo (Extensions): Document how to overcome
908 implementation difference in > 9 positional parameters.
909
910 * src/m4.c (usage): Sort within sections.
911 (nesting_limit): Raise default from 250 to 1024.
912 * doc/m4.texinfo: Use file name, not filename, per GNU coding
913 standard. Use @option where appropriate.
914 (Invoking m4): Sort to match --help output.
915 (Debug Levels): Sort.
916 (Frozen files): Sort and break into two nodes.
917
918 * src/m4.c (nesting_limit): Raise default from 250 to 1024.
919 * NEWS: Document raised -L limit.
920
9212006-07-11 Eric Blake <ebb9@byu.net>
922
923 * Makefile.am (DISTCHECK_CONFIGURE_FLAGS): New macro, to
924 stress-test changeword before a release.
925 * doc/m4.texinfo: More doc cleanups.
926 (Copying This Manual): New node; actually include the FDL in the
927 documentation.
928 * doc/Makefile.am (m4_TEXINFOS): Mention dependence on fdl.texi.
929 * m4/gnulib-cache.m4: Augment with gnulib-tool --import fdl.
930 * NEWS: Mention documentation improvements.
931
932 * src/m4.h (OS2): New platform macro.
933 * src/builtin.c (predefined_tab) [OS2]: Use it to give OS/2 a
934 platform macro.
935 * doc/m4.texinfo (Platform macros): Document it.
936 (Sysval): Remove non-portable test of system("").
937 * NEWS: Document this change.
938 Reported by Andreas Buening.
939
9402006-07-09 Eric Blake <ebb9@byu.net>
941
942 * doc/m4.texinfo (Undivert): Fix typo in last commit.
943 * src/m4.c (usage): Document M4PATH.
944 * src/path.c (path_search): Reject empty string.
945 * src/output.c (insert_diversion): Ignore diversion 0.
946 * src/builtin.c (m4_undivert): Ignore empty string.
947 * NEWS: Document this fix.
948
9492006-07-08 Eric Blake <ebb9@byu.net>
950
951 * checks/get-them: Make filtering easier.
952 * checks/check-them: Filter non-input lines, so line counts are
953 more realistic in the documentation, and so changeword tests work
954 even when dnl is disabled.
955 * doc/m4.texinfo: Adjust example line numbers. Clean up
956 front-matter, following autoconf's example.
957 (Changeword): Enable tests, skipping if changeword not supported.
958 (Define, Defn, Ifelse): Backport more examples from head.
959 (Input processing, Answers): New nodes, backported from head.
960 (Include): Expand test to cover empty filename.
961 (Undivert): Add test of undivert(0).
962
9632006-07-07 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
964
965 * doc/m4.texinfo: Fix spelling errors.
966
9672006-07-07 Eric Blake <ebb9@byu.net>
968
969 * THANKS: Update.
970
971 * doc/Makefile.am (m4.1): No need to go through a temporary file;
972 this also ensures timestamps are updated.
973 * src/m4.h (includes): Require config.h. Assume string.h,
974 stdlib.h, errno. Include error.h, exit.h, and xalloc.h rather
975 than prototyping ourselves.
976 (builtin_func): Add parameter type-checking.
977 (voidstar): Delete, now that we assume C89.
978 * src/builtin.c, src/m4.c, src/macro.c, src/symtab.c: All users of
979 voidstar changed.
980 * src/m4.c (xfree) [WITH_DMALLOC]: Avoid clash with dmalloc's
981 xfree.
982
9832006-07-06 Eric Blake <ebb9@byu.net>
984
985 * m4/gnulib-cache.m4: Augment with gnulib-tool --import
986 binary-io.
987 * src/m4.h (includes): Add binary-io.h for O_BINARY.
988 * src/freeze.c (produce_frozen_state): Use O_BINARY to remove
989 #ifdef. Fixes patch from 2005-02-03 for cygwin.
990 * NEWS: Mention this fix.
991
992 * configure.ac (FUNC_SYSTEM_BROKEN): New check for OS/2 bug.
993 * src/builtin.c (m4_syscmd): Work around OS/2 bug.
994
995 * Makefile.am (SUBDIRS): Build . before src, so that autoheader
996 runs first when needed.
997 * doc/Makefile.am (m4.1): Backport rule from CVS head: build m4.1
998 once in srcdir rather than multiple times in VPATH builds.
999
10002006-07-03 Eric Blake <ebb9@byu.net>
1001
1002 * checks/check-them: Use portable = in test.
1003 * src/Makefile.am (AM_CPPFLAGS): Omit space between -I and
1004 directory, as required by Solaris cc. Include built headers, as
1005 required by Solaris make in VPATH build.
1006 * checks/Makefile.in: Use $(srcdir) where needed.
1007 (CHECKS): Factor $(srcdir) into macro.
1008 (DISTFILES): Likewise. Automake takes care of distributing
1009 Makefile.in.
1010 (dist): Simplify.
1011 (Makefile): Use modern syntax of config.status.
1012 * doc/m4.texinfo (Loops, Include, Undivert, Incompatibilities):
1013 Avoid overfull and underfull hboxes in dvi.
1014
1015 Fix 'make check' in VPATH build. All files included by testsuite
1016 now live in a single directory. Use forloop.m4 in testsuite.
1017 * checks/incl.m4, checks/foo, checks/wrapfifo.m4: Move from
1018 here...
1019 * examples/incl.m4, examples/foo, examples/wrapfifo.m4: ...to
1020 here.
1021 * checks/Makefile.in (DISTFILES): Don't distribute moved files.
1022 * examples/Makefile.am (EXTRA_DIST): Distribute new files.
1023 * checks/check-them: Avoid s/// when filename is in pattern.
1024 * examples/forloop.m4: Fix to match documentation.
1025 * doc/m4.texinfo (Include, Undivert, Incompatibilities): Reflect
1026 new locations.
1027 (Loops, Format): Actually use forloop.m4 in tests.
1028
10292006-07-02 Eric Blake <ebb9@byu.net>
1030
1031 * checks/Makefile.in (exec_prefix, prefix): New macros, so that
1032 $(bindir) works in installcheck.
1033 (check, installcheck): No longer change directory, so that
1034 distcheck works with a read-only builddir.
1035 * checks/check-them: Work when pwd is no longer builddir.
1036
10372006-07-01 Eric Blake <ebb9@byu.net>
1038
1039 * GNUmakefile: New file, borrowed from coreutils.
1040 * Makefile.am (EXTRA_DIST): Distribute GNUmakefile.
1041 * Makefile.maint (Makefile): Delete this rule, now that
1042 GNUmakefile includes Makefile.
1043
10442006-06-30 Eric Blake <ebb9@byu.net>
1045
1046 For compatibility with other m4 implementations, sysval returns
1047 signal<<8 rather than 0 if syscmd is terminated by a signal.
1048 * configure.ac (AC_CHECK_HEADERS_ONCE): Check for sys/wait.h.
1049 * src/builtin.c (include): Include sys/wait.h when stdlib.h does
1050 not provide wait macros.
1051 (WTERMSIG, WIFSIGNALED, WIFEXITED): More fallback macros.
1052 (M4SYSVAL_EXITBITS, M4SYSVAL_TERMSIGBITS): New helper macros.
1053 (m4_esyscmd): Set sysval to -1 on failure.
1054 (m4_sysval): Print 127 on failure, and accomodate signals if they
1055 are detectable.
1056 * NEWS: Document this change.
1057 * doc/m4.texinfo (Platform macros, Esyscmd, Sysval): Fix typos in
1058 last commit.
1059 * checks/check-them: Likewise.
1060 * src/debug.c (debug_set_file): Work around mingw fstat bug.
1061
1062 * src/m4.h (UNIX, W32_NATIVE): Improve platform detection macros.
1063 * src/freeze.c (produce_frozen_state): Use new spelling of
1064 platform macro.
1065 * src/builtin.c (predefined_tab): Add __windows__ on non-unix
1066 platforms.
1067 (m4_syscmd, m4_esyscmd): The empty command is successful.
1068 * doc/m4.texinfo (Shell commands): Rename from UNIX commands.
1069 Document platform-dependence of system().
1070 (Syscmd): Add example.
1071 (Esyscmd): Make example more robust, and actually demonstrate
1072 rescanning.
1073 (Sysval): Expand test to cover esyscmd code path, and to check
1074 that empty command is successful. Add conditional check for
1075 signal behavior.
1076 (Other Incompatibilities): Move platform macros from here...
1077 (Platform macros): ...to this new node. Add windows macro.
1078 Check that exactly one platform macro is provided.
1079 * checks/check-them: Improve trap cleanup. Tolerate dirname and
1080 .exe in error messages. Allow for skipping checks.
1081 * configure.ac (HAVE_EFGCVT): Kill dead configure check.
1082 * NEWS: Document platform macros.
1083
10842006-06-29 Eric Blake <ebb9@byu.net>
1085
1086 Fix buffer overrun bug.
1087 * m4/gnulib-cache.m4: Augment with gnulib-tool --import
1088 xvasprintf.
1089 * src/format.c [HAVE_EFGCVT]: Delete this code, and use *printf
1090 variant instead, since [efg]cvt are obsolete and our use of them
1091 was buggy (savannah sr #104303).
1092 (format): Fix buffer overflow by using xasprintf.
1093 * doc/m4.texinfo (Format): Expand format test to catch both bugs.
1094 * NEWS: Document this fix.
1095
1096 * configure.ac (AC_CANONICAL_HOST, AC_CANONICAL_BUILD): Allow
1097 cross-compilation.
1098 (AC_CACHE_CHECK): Cache search for ecvt.
1099
11002006-06-27 Eric Blake <ebb9@byu.net>
1101
1102 * doc/m4.texinfo (Eval): Document 32-bit signed limitations
1103 required by POSIX, and add example that exposed core dump on x86
1104 architectures.
1105 (Incompatibilities): Document incompatibility in eval precedence.
1106 * src/eval.c (shift_term): Explicitly mask, to avoid undefined
1107 behavior.
1108 (mult_term): Explicitly check for -1, to avoid SIGFPE on x86.
1109 * NEWS: Document this change.
1110
1111 * doc/m4.texinfo: Use @noindent consistently.
1112 (Quoting Arguments): Document that unquoted parentheses group
1113 arguments.
1114 (Pseudo Arguments): Expand tests to show this.
1115 (Incompatibilities): Contrast traditional behavior of
1116 changequote.
1117
11182006-06-24 Eric Blake <ebb9@byu.net>
1119
1120 * configure.ac (AC_PREREQ): Autoconf 2.60 is now released.
1121 (AC_CHECK_HEADERS_ONCE): Use this new feature.
1122 (AC_CHECK_FUNCS_ONCE): Likewise.
1123
11242006-06-23 Eric Blake <ebb9@byu.net>
1125
1126 * doc/m4.texinfo: Quoting cleanup throughout - follow
1127 autoconf-recommended style of one level of quote per parenthesis
1128 in the normal case. Adjust error messages to match GNU coding
1129 standards (and to allow 'make check' to pass again).
1130 (Quoted strings, Inhibiting Invocation): Turn more examples into
1131 tests.
1132 (Comments): Resolve FIXME by adding example.
1133 (Define): Add example about underquoting.
1134 (Defn): Add example about use of $0.
1135 (Indir, Format): Resolve FIXME done in last commit.
1136 (Ifelse): Add example about creating blind macro.
1137 (Debugging): Fix grammar.
1138 (Dnl): Add example about dnl with arguments.
1139 (M4wrap): Be explicit that LIFO order is non compliant, and will
1140 change in m4 2.0.
1141 (Undivert): Resolve FIXME by adding example.
1142 (Frozen files): Document that m4wrap and sysval will not work
1143 consistently until m4 2.0.
1144 (Incompatibilities): Document another POSIX compliance bug, this
1145 time with changequote. Document a traditional incompatibility
1146 with partial input spanning file boundaries.
1147
1148 Make error messages more consistent with GNU coding standards -
1149 start with lower case, and don't end sentence with punctuation.
1150 * src/debug.c (trace_pre): Update message wording.
1151 * src/eval.c (evaluate, cmp_term, shift_term, mult_term):
1152 Likewise.
1153 * src/freeze.c (produce_frozen_state, issue_expect_message),
1154 (reload_frozen_state): Likewise.
1155 * src/input.c (push_string_init, pop_init, init_macro_token),
1156 (peek_input, next_char_1, set_word_regexp, next_token): Likewise.
1157 * src/m4.c (stackovf_handler, main): Likewise.
1158 * src/macro.c (expand_token, expand_argument, call_macro),
1159 (expand_macro): Likewise.
1160 * src/output.c (make_room_for, output_text, insert_file),
1161 (freeze_diversions): Likewise.
1162 * src/symtab.c (symtab_init, lookup_symbol): Likewise.
1163
1164 * src/builtin.c (builtin_tab): Make format and indir blind.
1165 (substitute): Prefer "Warning:" vs. "ERROR:" in messages.
1166 * NEWS: Mention the change to builtins.
1167
11682006-06-22 Eric Blake <ebb9@byu.net>
1169
1170 Robustify frozen file format.
1171 * src/freeze.c (reload_frozen_state): Add GET_DIRECTIVE helper
1172 macro. Require V first, and only accept it once. For F, use
1173 placeholder if builtin is not found, rather than warning.
1174 * src/m4.h (m4_placeholder): New prototype.
1175 * src/builtin.c: Unify error message style.
1176 (m4_placeholder): New function, warn if invoked.
1177 (builtin_tab): Add m4_placeholder.
1178 (m4_defn): Warn if placeholder is encountered.
1179 (find_builtin_by_addr): Handle placeholder.
1180 (find_builtin_by_name): Return placeholder on failure.
1181 (m4_builtin): Treat placeholder as undefined.
1182 * doc/m4.texinfo (Frozen files): Document changes in V and F.
1183 * NEWS: Document this change.
1184 Reported by Bruno Haible.
1185
1186 * doc/m4.texinfo: Whitespace cleanup. TABs are evil in texinfo.
1187 (tabchar): New macro, so that 'make check' still works.
1188 (Invoking m4): Document that ignored compatibility options -B, -S,
1189 and -T each consume an argument.
1190 * checks/get-them: Honor @tabchar{}.
1191
1192 Avoid compiler warnings during -DDEBUG.
1193 * src/m4.h (M4_GNUC_ATTRIBUTE, M4_GNUC_UNUSED): New macros.
1194 [DEBUG]: Also imply DEBUG_OUTPUT and DEBUG_STKOVF.
1195 * src/input.c (print_token) [DEBUG_INPUT]: Use correct format.
1196 (lex_debug) [DEBUG_INPUT]: Fix to compile. Mark unused.
1197 (next_token) [DEBUG_INPUT]: Print before returning.
1198 * src/path.c (include_dump) [DEBUG_INCL]: Mark unused.
1199 * src/symtab.c (symtab_debug) [DEBUG_SYM]: Mark unused.
1200
1201 Avoid mkstemp bugs on various platforms.
1202 * m4/gnulib-cache.c: Augment with gnulib-tool --import mkstemp.
1203 * src/output.c [! HAVE_MKSTEMP]: Delete.
1204 * configure.ac (AC_CHECK_FUNCS): Don't check for mkstemp.
1205 * src/m4.h (mkstemp) [! HAVE_MKSTEMP]: Prototype, if needed.
1206 * NEWS: Document this.
1207
1208 * Makefile.am (EXTRA_DIST): Distribute gnulib-cache.m4.
1209 Reported by Bruno Haible.
1210
12112006-06-21 Eric Blake <ebb9@byu.net>
1212
1213 Avoid obsolete sigstack when POSIX sigaltstack is available.
1214 * src/m4.c: Blindly assume signal.h, since stackovf.c and gnulib
1215 do likewise.
1216 * configure.ac (AC_CHECK_HEADERS): Likewise.
1217 (AC_CHECK_TYPES): New check for siginfo_t, since siginfo.h is
1218 obsolete and most hosts now have it in signal.h.
1219 (AC_CHECK_MEMBERS): New check for sigaction.sa_sigaction.
1220 (AC_CACHE_CHECK): Cache decision to use stackovf.
1221 (AC_EGREP_HEADER): Switch to AC_CHECK_TYPES.
1222 * src/stackovf.c (DEBUG_STACKOVF): Remove unused define.
1223 (SA_RESETHAND, SA_SIGINFO): Provide fallback definitions, to
1224 simplify later code.
1225 (PARAM_STACKOVF, PARAM_NOSTACKOVF): Move further away from NULL,
1226 in case of dereferencing a member of a NULL pointer.
1227 (sigsegv_handler) [HAVE_STRUCT_SIGACTION_SA_SIGACTION]: Define a
1228 POSIX handler.
1229 (setup_stackovf_trap): Use NULL instead of 0 for pointers, use
1230 EXIT_FAILURE in error, indent preprocessor directives.
1231 [HAVE_SIGALTSTACK && HAVE_SIGINFO_T]: Depend on siginfo_t, not
1232 siginfo.h.
1233 [HAVE_SIGACTION && defined SA_ONSTACK]: Prefer POSIX handler.
1234 Reported by Santiago Vila.
1235
12362006-06-19 Eric Blake <ebb9@byu.net>
1237
1238 * THANKS: Update.
1239
12402006-06-18 Andreas Buening <andreas.buening@nexgo.de> (tiny change)
1241
1242 * checks/Makefile.in (PATH_SEPARATOR): New macro.
1243 (check, installcheck): Use it, for OS/2.
1244
12452006-06-18 Eric Blake <ebb9@byu.net>
1246
1247 Consistently use "GNU M4" as package name, "m4" as executable
1248 name.
1249 * NEWS: Document previous fix.
1250 * THANKS: Update.
1251 * README: Fix grammar. Document that --enable-changeword is on
1252 its last leg.
1253 * doc/m4.texinfo (Top, Changeword): Likewise.
1254 (Sysval): Enhance this test.
1255 (History): Backport this section from CVS head, and update.
1256
12572006-06-18 Bruno Haible <bruno@clisp.org> (tiny change)
1258 Eric Blake <ebb9@byu.net>
1259
1260 * src/builtin.c (WEXITSTATUS): Provide fallback definition.
1261 (m4_esyscmd): Set sysval to 0xffff, to accomodate both
1262 big-endian and little-endian wait status definitions.
1263 (m4_sysval): Use WEXITSTATUS.
1264 Reported by Andreas Buening.
1265
12662006-06-18 Eric Blake <ebb9@byu.net>
1267
1268 * configure.ac (AC_INIT): Bump version number.
1269 * NEWS: Describe changes in 1.4.4c.
1270
12712006-06-17 Eric Blake <ebb9@byu.net>
1272
1273 Release 1.4.4b:
1274
1275 * configure.ac (AC_INIT): Bump version number.
1276 * NEWS: Describe changes since 1.4.4.
1277 * Makefile.maint (cvs-news): Accomodate copyright line wrapping.
1278
1279 * Makefile.am (MAINTAINERCLEANFILES): Clean files added by
1280 bootstrap.
1281 * checks/Makefile.in (maintainer-clean): Add missing target.
1282 * COPYING: Remove generated file from CVS.
1283
12842006-06-16 Eric Blake <ebb9@byu.net>
1285
1286 * checks/Makefile.in (DISTFILES): Distribute wrapfifo.m4.
1287
12882006-06-15 Eric Blake <ebb9@byu.net>
1289
1290 * checks/wrapfifo.m4: New file. Use it...
1291 * doc/m4.texinfo (Incompatibilities): here, in a new test case to
1292 demonstrate how to get POSIX behavior of m4wrap prior to m4 2.0.
1293
1294 * src/m4.h (to_uchar): New function.
1295 * src/eval.c (eval_lex): Use it to avoid passing signed char to
1296 isdigit, isalpha, isupper, islower, isspace, isalnum.
1297 * src/builtin.c (expand_user_macro): Likewise.
1298 * src/format.c (format): Likewise.
1299 * src/macro.c (expand_argument): Likewise.
1300 * NEWS: Document this security fix.
1301
1302 Message cleanup.
1303 * src/symtab.c (lookup_symbol): Use invalid, not illegal.
1304 * src/freeze.c (reload_frozen_state): Fix typo in message.
1305 (produce_frozen_state): Standardize on builtin, not built-in.
1306 * src/builtin.c (numeric_arg, bad_argc): Likewise.
1307
1308 * configure.ac (M4_EARLY, M4_INIT): Use gnulib.
1309 (AC_PROG_RANLIB, AC_AIX, AC_MINIX, AC_CHECK_HEADERS),
1310 (AC_FUNC_ALLOCA, AC_REPLACE_FUNCS): Avoid checks now done by
1311 gnulib.
1312 * Makefile.am (ACLOCAL_AMFLAGS): New entry, for gnulib.
1313 * m4/gnulib-cache.m4: New file, from gnulib.
1314 * bootstrap: Invoke gnulib-tool --update.
1315 * src/m4.c (main): Cast away const.
1316 * NEWS: Document that regex is updated.
1317 * THANKS: Update.
1318
13192006-06-08 Eric Blake <ebb9@byu.net>
1320
1321 * configure.ac (changeword): Work even when changeword is not a
1322 macro.
1323 (AC_PROG_AWK, AC_PROG_INSTALL, AC_PROG_MAKE_SET, AC_HEADER_STDC):
1324 Delete; now done by automake.
1325 (AC_ISC_POSIX, AC_C_CONST): Delete; now obsolete.
1326
13272006-06-07 Eric Blake <ebb9@byu.net>
1328
1329 * lib/regex.c (bcmp_translate): Canonicalize type name.
1330 * doc/Makefile.am (MAINTAINERCLEANFILES): Fix typo.
1331 * configure.ac (changeword): Disable changeword for the creation
1332 of configure, in case of bootstrapping with an m4 configured with
1333 --enable-changeword.
1334
1335 Distribute a rudimentary man page.
1336 * Makefile.am (SUBDIRS): Move doc after src so that 'm4 --help'
1337 can feed help2man.
1338 * doc/Makefile.am (man_MANS, EXTRA_DIST, MAINTAINERDISTCLEAN),
1339 (SUFFIXES, m4.1): New macros and rules to build m4.1.
1340
13412006-06-06 Eric Blake <ebb9@byu.net>
1342
1343 * lib/regex.c (re_match_2_internal, bcmp_translate): Avoid
1344 compiler warnings at -O2.
1345 * lib/getopt.c (_getopt_internal): Likewise.
1346
1347 Cleanup of previous patches.
1348 * src/input.c (struct input_block): Remove traced member.
1349 (push_macro, init_macro_token): Don't pass trace status around.
1350 * src/m4.h (struct token_data): Remove traced member.
1351 (struct symbol, struct builtin): Reduce unused space.
1352 (TOKEN_DATA_FUNC): Simplify.
1353 (TOKEN_DATA_FUNC_TRACED): Remove unused macro.
1354 (push_macro, define_builtin): Remove unused parameter.
1355 * src/builtin.c (define_builtin, builtin_init, define_macro),
1356 (m4_defn): Don't pass trace status around.
1357 * src/macro.c (expand_argument): Likewise.
1358 * src/freeze.c (reload_frozen_state): Likewise.
1359 * src/symtab.c: Whitespace cleanup.
1360 * NEWS: Clean up wording.
1361 * doc/m4.texinfo (Undefine, Dumpdef, Trace): Cleanup wording;
1362 ensure tests actually expose bugs prior to today's patches.
1363
1364 Trace status of builtins is no longer inherited across
1365 define(...,defn(...)). Fixes bug that autom4te had been working
1366 around.
1367 * src/builtin.c (define_builtin): Don't override trace status.
1368 * doc/m4.texinfo (Trace): Add test for this.
1369 * NEWS: Document this.
1370
1371 When changing macro definitions inside the arguments to the macro,
1372 consistently preserve the old definition that was in effect before
1373 argument collection, similar to the C pre-processor.
1374 Reported by John Brzustowski.
1375 * NEWS: Document this change.
1376 * doc/m4.texinfo (Macro Arguments, Undefine, Dumpdef): Document
1377 this policy, and add tests that expose core dumps prior to this
1378 patch.
1379 * src/m4.h (struct symbol): New members to track when a symbol is
1380 still in use after removal from the symbol table.
1381 (SYMBOL_PENDING_EXPANSIONS, SYMBOL_DELETED): Define.
1382 (free_symbol): Prototype.
1383 * src/macro.c (expand_macro): Track pending expansions of a
1384 symbol. On completion, if a symbol is deleted and no longer
1385 pending, free its memory.
1386 * src/symtab.c (free_symbol): Export. Don't free memory if symbol
1387 is still in use.
1388 (lookup_symbol) <SYMBOL_INSERT>: Create new entry when old entry
1389 is still in use.
1390 (lookup_symbol) <SYMBOL_DELETE, SYMBOL_POPDEF>: Mark entries still
1391 in use as deleted and remove from the table without freeing
1392 memory.
1393 (symtab_print_list) [DEBUG_SYM]: More debug output.
1394
1395 * src/symtab.c (hack_all_symbols): Allow certain modifications of
1396 the symbol table during traversal.
1397 * src/builtin.c (set_trace): Replace SYMBOL_DELETE with
1398 SYMBOL_POPDEF, since only the latter is safe with
1399 hack_all_symbols.
1400
1401 Solve crash when passing "indir(`foo')" to "m4 -tfoo".
1402 * src/symtab.c (lookup_symbol) <SYMBOL_DELETE, SYMBOL_POPDEF>:
1403 Preserve placeholder when macro is being traced.
1404 * src/builtin.c (m4_ifdef, m4_indir): A traced but undefined
1405 symbol is not defined.
1406 (set_trace): Remove placeholder when no longer traced.
1407 (m4_traceon): On named traces, always reserve a slot in the
1408 symbol table.
1409 (m4_traceoff): Don't warn about untracing a nonexistent symbol.
1410 * NEWS: Document new trace behavior.
1411 * doc/m4.texinfo (Trace): Tracing by name now consistently works
1412 no matter whether that macro is currently defined.
1413 (Incompatibilities): Document differences between traditional and
1414 GNU trace.
1415
14162006-06-04 Paul Eggert <eggert@cs.ucla.edu> (tiny change)
1417 Eric Blake <ebb9@byu.net>
1418
1419 * src/m4.h (hash_table_size): Now size_t instead of int.
1420 * src/m4.c (hash_table_size): Likewise.
1421 (main): Adjust to this; use atol rather than atoi.
1422 * src/symtab.c: Include <limits.h>, for CHAR_BIT.
1423 (symtab_init, lookup_symbol, hack_all_symbols):
1424 Use size_t for sizes and indexes, not int.
1425 (symtab_print_list) [DEBUG_SYM]: Likewise.
1426 (hash): Likewise. Don't case-fold in the hash function.
1427 Shift by 7, not 3, for consistency with gnulib/lib/hash.c.
1428 Don't assume hash word is 32 bits.
1429 * NEWS: Document this change.
1430
14312006-06-04 Eric Blake <ebb9@byu.net>
1432
1433 * src/symtab.c (symtab_debug, symtab_print_list) [DEBUG_SYM]: Fix
1434 to allow compilation, for use in debugger.
1435 (profiles, current_mode) [DEBUG_SYM]: New variables.
1436 (show_profile, profile_strcmp) [DEBUG_SYM]: New methods for
1437 determining hash table performance.
1438
14392006-05-31 Eric Blake <ebb9@byu.net>
1440 John Brzustowski <jbrzusto@fastmail.fm>
1441
1442 * src/input.c (input_stack): Delete; use current_input instead.
1443 (wrapup_stack): Dynamically allocate, so that recursion is handled
1444 properly.
1445 (push_wrapup): Use current wrapup stack.
1446 (pop_wrapup): Rotate wrapup stack to current, and create new
1447 wrapup stack.
1448 (input_init): Dynamically allocate stacks.
1449 * NEWS: Update, now that recursive m4wrap can no longer cause
1450 core dump.
1451
14522006-05-31 Eric Blake <ebb9@byu.net>
1453
1454 * lib/getopt.c: Fix copyright year.
1455 * lib/obstack.c: Ditto.
1456 * src/builtin.c: Ditto.
1457
14582006-05-30 Eric Blake <ebb9@byu.net>
1459
1460 * doc/m4.texinfo (M4wrap): Add test to expose m4wrap bug.
1461 Reported by John Brzustowski.
1462 (Incompatibilities): Document known POSIX incompatibilities.
1463 * THANKS: Update.
1464
14652006-05-29 Eric Blake <ebb9@byu.net>
1466
1467 * doc/m4.texinfo (Maketemp): Work even when running 'make check'
1468 in read-only dir.
1469
1470 Use automake.
1471 * Makefile.am: New file.
1472 * doc/Makefile.am: Ditto.
1473 * examples/Makefile.am: Ditto.
1474 * lib/Makefile.am: Ditto.
1475 * src/Makefile.am: Ditto.
1476 * acinclude.m4: New file, renamed from aclocal.m4.
1477 * configure.ac (AM_INIT_AUTOMAKE): Invoke new macro.
1478 (AC_ARG_PROGRAM): Now redundant.
1479 (STACKOVF): Turn into automake conditional.
1480 (AC_CONFIG_COMMANDS): stamp-h is a command, not a file.
1481 * checks/Makefile.in: Converting this dir to automake was not
1482 trivial; for now, just add missing targets demanded by top-level.
1483 * INSTALL: Remove files that are now generated from CVS.
1484 * Makefile.in: Ditto.
1485 * aclocal.m4: Ditto.
1486 * install-sh: Ditto.
1487 * mkinstalldirs: Ditto.
1488 * doc/Makefile.in: Ditto.
1489 * doc/texinfo.tex: Ditto.
1490 * examples/Makefile.in: Ditto.
1491 * lib/Makefile.in: Ditto.
1492 * src/Makefile.in: Ditto.
1493
1494 * AUTHORS: Backport from CVS head, and update.
1495 * doc/m4.texinfo (Changeword): Fix examples to match behavior.
1496
14972006-05-27 Eric Blake <ebb9@byu.net>
1498
1499 * lib/regex.c (regex_compile): Kill compiler warnings.
1500 * lib/getopt.c: Likewise.
1501 * lib/obstack.c: Likewise.
1502 * src/builtin.c (builtin_init): Likewise.
1503 * src/path.c (path_search): Likewise.
1504
1505 * doc/m4.texinfo: Fix usage of a vs. an.
1506 (Loops, Include, Cleardiv, Patsubst, Format, M4exit): Kill
1507 overfull hbox warnings.
1508 (Inhibiting Invocation, Divert, Maketemp, M4exit): Add new tests.
1509
1510 * configure.ac: Update to autoconf 2.59. Forbid ^M4_. Fix
1511 quoting.
1512 * aclocal.m4 (fp_PROG_CC_STDC): Delete; now covered by autoconf.
1513 (fp_C_PROTOTYPES): Delete, GNU Coding Standards state we can now
1514 assume C89.
1515 (M4_WITH_DMALLOC): Rename from fp_WITH_DMALLOC. Fix quoting.
1516 * src/m4.h (_): PROTOTYPES is no longer provided, assume C89.
1517 * src/Makefile.in: Delete remains of ansi2knr.
1518 * src/ansi2knr.1: Delete.
1519 * src/ansi2knr.c: Delete.
1520
15212006-05-25 Eric Blake <ebb9@byu.net>
1522
1523 * doc/m4.texinfo: Fix spelling errors. Use `invalid' instead of
1524 `illegal'.
1525
1526 * doc/m4.texinfo (Francois): No longer needed as a tex variable.
1527 Reported by Karl Berry.
1528
15292006-05-24 Eric Blake <ebb9@byu.net>
1530
1531 * Makefile.in (html): New target.
1532 * doc/Makefile.in (html, m4.html): Likewise.
1533 (MAKEINFOHTML): New macro.
1534 * doc/m4.texinfo (Francois) [ifnottex]: Use newer texinfo
1535 rendering.
1536 (Regexp) [ifhtml]: Make cross-reference to emacs manual an
1537 absolute URL.
1538 Reported by Bob Badour.
1539
1540 * THANKS: Update. Move reporter's email addresses here, instead
1541 of in ChangeLog.
1542
15432006-05-11 Eric Blake <ebb9@byu.net>
1544
1545 * THANKS: Update.
1546 * doc/m4.texinfo (Changequote): Give testsuite exposure to bug
1547 patched on 2005-12-04.
1548 Reported by Ilya N. Golubev.
1549
1550 * bootstrap: New file, so that generated files need not be stored
1551 in CVS.
1552 * Makefile.in (DISTFILES): Add bootstrap.
1553
1554 Make testsuite less sensitive to doc changes.
1555 * doc/m4.texinfo: Use m4.input instead of filename.
1556 * checks/check-them (xerr): Turn m4.input into filename.
1557 * checks/Makefile.in (dist): Depend on stamp-checks.
1558
1559 Portability updates for OS/2.
1560 * src/Makefile.in (EXEEXT, OBJEXT): Define.
1561 (LINK): Use CFLAGS.
1562 (.c.obj): Define.
1563 * lib/Makefile.in (OBJEXT): Define.
1564 (.c.obj): Define.
1565 * doc/Makefile.in (install, uninstall): Install info files into
1566 the dir listing.
1567 Reported by Andreas Buening.
1568
15692006-05-09 Eric Blake <ebb9@byu.net>
1570
1571 * install-sh: Update to newer upstream version.
1572 * mkinstalldirs: Likewise.
1573 Reported by Andreas Buening.
1574
1575 * src/m4.c (main): Bump copyright year.
1576 * Makefile.in (datarootdir): Define, for autoconf 2.59c.
1577 * doc/Makefile.in (datarootdir): Likewise.
1578
15792006-05-08 Eric Blake <ebb9@byu.net>
1580
1581 * THANKS: Update.
1582 * doc/m4.texinfo (Bugs): Backport bug email address from head.
1583 Reported by Stepan Kasal.
1584
15852005-12-04 Ilya N. Golubev <gin@mo.msk.ru> (tiny change)
1586
1587 * input.c (match_input): Do not pass expression with side effect
1588 to `obstack_grow'. Fix <INTERNAL ERROR: Recursive push_string!>.
1589 * NEWS: Updated.
1590
15912005-12-04 Gary V. Vaughan <gary@gnu.org> (tiny change)
1592
1593 * doc/m4.texinfo (How to debug macros and input): s/woould/would/
1594 Reported by Damian Menscher.
1595
15962005-10-19 Gary V. Vaughan <gary@gnu.org> (tiny change)
1597
1598 * configure.ac (AC_INIT): Bump to 1.4.4a.
1599
16002005-10-19 Gary V. Vaughan <gary@gnu.org> (tiny change)
1601
1602 Release 1.4.4:
1603
1604 * configure.ac (AC_INIT): Bump to 1.4.4.
1605 * NEWS: Describe 1.4.4's changes.
1606 * INSTALL, install-sh, doc/texinfo.tex: Updated from upstream.
1607
16082005-10-17 John Gatewood Ham <zappaman@buraphalinux.org> (tiny change)
1609
1610 * src/m4.c: fix return code when non-existent files are processed
1611
16122005-10-17 John Gatewood Ham <zappaman@buraphalinux.org> (tiny change)
1613
1614 * README: update email address for bug reports.
1615
16162005-10-17 Gary V. Vaughan <gary@gnu.org>
1617
1618 * doc/m4.info: Generated files are not kept in the repository.
1619
16202005-05-01 Gary V. Vaughan <gary@gnu.org>
1621
1622 The FSF are moving offices today. Changed their contact address
1623 in all files from `59 Temple Place, Suite 330, MA 02111-1307' to
1624 `51 Franklin Street, Fifth Floor, MA 02110-1301'.
1625
1626 Also, some of the files here were never updated from the previous
1627 '675 Mass Ave, Cambridge, MA 02139', so changed those to the
1628 '51 Franklin Street, Fifth Floor, MA 02110-1301' address too.
1629
16302005-03-31 Mike Frysinger <vapier@gentoo.org>
1631
1632 * Makefile.in (bindir, infodir): Substitute from configure rather
1633 than hardcode.
1634 * doc/Makefile.in (infodir): Ditto.
1635 * src/Makefile.in (bindir): Ditto.
1636 * NEWS: Updated.
1637
16382005-03-31 Gary V. Vaughan <gary@gnu.org>
1639
1640 Changes needed to automate the release process for 1.4.3:
1641
1642 * Makefile.in (dist): Make .tar.bz2 tarball too.
1643 * Makefile.maint (TSDEPS_DIST): Remove m4/libtool.m4.
1644 (cvs-news): Look 1 line further down for NEWS release number.
1645 (cvs-dist): We don't use automake, so make dist is fine.
1646 Remove double . before suffixes.
1647 (cvs-release): Don't mention manual.html.
1648 (fetch): Get latest gendocs files.
1649 (web-manual): Rewritten to use gendoc for multiformat manuals.
1650 * doc/gendocs.sh: Don't save an old version in m4 CVS!
1651 * doc/m4.texinfo (Index): HFS+ (the file system on my Mac) is case
1652 preserving, but case insensitive, so generating html docs per node
1653 clashes between Index.html, the node file, and index.html, the
1654 top-level of the document tree...
1655 (Index macro): ...so renamed to this. Changed all references.
1656
16572005-03-31 Gary V. Vaughan <gary@gnu.org> (tiny change)
1658
1659 * configure.ac (AC_INIT): Bump to 1.4.3a.
1660
16612005-03-31 Gary V. Vaughan <gary@gnu.org> (tiny change)
1662
1663 Release 1.4.3:
1664
1665 * configure.in (AC_INIT): Bump to 1.4.3.
1666 * NEWS: Describe 1.4.3's changes.
1667
16682005-03-31 Gary V. Vaughan <gary@gnu.org>
1669
1670 * Makefile.maint: New file with release rules, from CVS libtool.
1671 * Makefile.in (DISTFILES): Add Makefile.maint.
1672 * INSTALL, install-sh, doc/texinfo.tex: Updated to latest
1673 canonical versions.
1674
16752005-03-31 Eric Blake <ebb9@byu.net> (tiny change)
1676
1677 * doc/m4.texinfo (Patsubst): Re-add trailing space required by
1678 checks/47.patsubst, with a redundant @comment to prevent emacs
1679 from removing it accidentally again.
1680 * checks/get-them: Allow for trailing spaces tucked behind
1681 @comment marks.
1682
16832005-03-31 Eric Blake <ebb9@byu.net> (tiny change)
1684
1685 * doc/Makefile.in (install, uninstall): Accomodate DESTDIR.
1686 * src/Makefile.in (install, uninstall): Likewise.
1687
16882005-02-07 Gary V. Vaughan <gary@gnu.org>
1689
1690 * lib/regex.c, lib/regex.h: Reverted gnulib update, which broke
1691 on Cygwin.
1692 Reported by Eric Blake.
1693
16942005-02-04 Gary V. Vaughan <gary@gnu.org>
1695
1696 * lib/regex.c, lib/regex.h: Updated from gnulib.
1697 * src/input.c (set_word_regexp): Don't change the word_regexp
1698 unless it compiles correctly.
1699 * NEWS: Updated.
1700 Reported by Frank Schwidom.
1701
1702 * Makefile.in (stamp-h): Regenerate config.h properly.
1703
17042005-02-03 Gary V. Vaughan <gary@gnu.org>
1705
1706 * configure.ac (AC_DEFINE): Fix overquoting of description
1707 argument.
1708
1709 * src/m4.h (__CYGWIN__, WIN32): Canonicalise Windows and Cygwin
1710 recognition macros.
1711 * src/freeze.c (produce_frozen_state): Use \n line-endings even
1712 on Windows, so that the frozen file reader will work.
1713 Reported by Josef T. Burger.
1714
1715 * src/m4.c (main): Modernise the --version output.
1716
17172005-02-03 Gary V. Vaughan <gary@gnu.org>
1718
1719 Modernise the configury a little to prevent spurious errors from
1720 Autoconf-2.59's autoreconf:
1721
1722 * config.h.in: Renamed to...
1723 * config-h.in: ...this to better support DOS 8.3 file systems.
1724 * acconfig.h: Removed.
1725 * configure.in: Renamed to...
1726 * configure.ac: ...this, and AC_DEFINE used to declare config.h
1727 entry comments. Slight reorganisation and reformatting.
1728 * aclocal.m4: Use third argument to AC_DEFINE to declare config.h
1729 entry comments.
1730 (AC_INIT): Use a modern 3 argument call.
1731 * Makefile.in, checks/Makefile.in, doc/Makefile.in,
1732 examples/Makefile.in, lib/Makefile.in, src/Makefile.in:
1733 s/PRODUCT/PACKAGE/g.
1734 * Makefile.in (DISTFILES): Removed acconfig.h, configure.in,
1735 config.h.in. Added configure.ac, config-h.in.
1736 (stamp-h.in): Removed acconfig.h from dependencies.
1737 (configure): Depends on configure.ac, not configure.in.
1738 * doc/Makefile.in (stamp-vti): Ditto.
1739 * src/freeze.c (produce_frozen_state), src/m4.c (main): Adjust for
1740 difference between PRODUCT="m4" and PACKAGE="GNU M4".
1741 * configure: Regenerated.
1742
17432005-02-03 Noah Misch <noah@cs.caltech.edu>
1744
1745 * src/output.c (mkstemp): Make non-static, and build regardless of
1746 HAVE_TMPFILE; src/builtin.c also needs this replacement.
1747 * NEWS: Update.
1748
17492004-09-09 Vincent Lonngren <Vincent.lonngren.759@student.lu.se>
1750
1751 * configure.in (AC_CHECK_HEADERS): Commit works best when you save
1752 changes from your editor buffer first.
1753
1754 * configure.in (AC_CHECK_HEADERS): Add signal.h, sys/signal.h.
1755 * src/m4.c: And include them as appropriate.
1756 * NEWS: Updated.
1757
17582004-09-09 Andreas Schwab <schwab@suse.de>
1759
1760 Refactoring of the string read case in next_char provides about a
1761 20% speedup of M4 as typically used by autoconf:
1762
1763 * src/input.c (next_char_1): Renamed from next_char.
1764 (next_char): New macro.
1765 * NEWS: Updated.
1766
17672004-08-21 Gary V. Vaughan <gary@gnu.org>
1768
1769 * configure.in (VERSION): Bump to 1.4.2a.
1770
17712004-08-19 Paul Eggert <eggert@twinsun.com>
1772
1773 * Release 1.4.2.
1774
1775 * configure.in (VERSION): Bump to 1.4.2.
1776 * News: Describe 1.4.2's changes.
1777
1778 * src/m4.c (reference_error): Preserve errno, since M4ERROR
1779 relies on this.
1780 * src/builtin.c (m4_esyscmd): Clear errno before calling popen.
1781 (m4_maketemp): Clear errno before calling mkstemp.
1782 * src/path.c (path_search): Don't let "free" trash errno when
1783 returning NULL.
1784 * src/output.c (insert_file): Don't assume errno has a valid
1785 value simply because fread returns zero. This fixes a
1786 portability bug reported by Marion Hakanson in
1787 <http://lists.gnu.org/archive/html/bug-m4/2004-07/msg00029.html>.
1788
17892004-06-09 Gary V. Vaughan <gary@gnu.org>
1790
1791 * configure.in (VERSION): Bump to 1.4.1a.
1792 * NEWS: Place holder for next stable release.
1793
17942004-06-03 Paul Eggert <eggert@cs.ucla.edu>
1795
1796 * Release 1.4.1.
1797
1798 * configure.in (VERSION): Bump to 1.4.1.
1799 * NEWS: Describe 1.4.1's changes.
1800
1801 * aclocal.m4 (fp_PROG_CC_STDC): Use AC_DEFUN, not define, to
1802 pacify Autoconf 2.59.
1803
1804 * doc/m4.texinfo: Insert commas after @xref's that lack them,
1805 to pacify Texinfo 4.7.
1806 * doc/Makefile.in (info): Remove info-1, info-2, info-3.
1807
1808 * src/m4.h, src/debug.c: Use #ifdef __STDC__, not #if __STDC__, to
1809 pacify Sun C compilers.
1810
18112003-09-28 Akim Demaille <akim@epita.fr>
1812
1813 * src/symtab.c (lookup_symbol): Fix an uninitialized-variable
1814 botch.
1815
18162003-09-03 Santiago Vila <sanvila@debian.org>
1817
1818 * examples/stackovf.sh: Use tempfile if available.
1819
18202001-04-02 Robert Bihlmeyer <robbe@orcus.priv.at>
1821
1822 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=92629
1823 * src/output.c (m4_insert_file): Do not mix buffered and
1824 unbuffered I/O, as this breaks on the Hurd. (trivial change)
1825
18262001-02-01 Santiago Vila <sanvila@debian.org>
1827
1828 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=84451
1829 * src/m4.c (main): Fix format vulnerabilities. (trivial change)
1830
18312001-02-01 Matt Kraai <kraai@debian.org>
1832
1833 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=84416
1834 * doc/m4.texinfo (Maketemp): Change maketemp to refer to a new,
1835 empty file rather than to a nonexistent file. This closes a common
1836 security hole.
1837 * src/builtin.c (m4_maketemp): Implement the above, by using
1838 mkstemp rather than mktemp. (trivial change)
1839
18402000-01-09 Akim Demaille <demaille@inf.enst.fr>
1841
1842 * src/builtin.c (expand_ranges): Added break after trailing dash.
1843 This caused misbehaviors on some systems.
1844
1845Sat Nov 5 15:52:47 1994 Francois Pinard (pinard@icule)
1846
1847 * Release 1.4.
1848
1849 * doc/Makefile.in (realclean): Also remove stamp-vti.
1850 Reported by Eric Backus.
1851
1852Wed Nov 2 00:47:53 1994 Francois Pinard (pinard@icule)
1853
1854 * src/freeze.c (produce_frozen_state): If the frozen file cannot
1855 be opened, return immediately after producing the error message.
1856 Reported by Andreas Schwab.
1857
1858 * configure.in: Check for const only after having found possible
1859 ANSIfying compiler flags, this is of no use to check it before.
1860 Reported by Alexander Lehmann.
1861
1862Tue Nov 1 22:02:37 1994 Francois Pinard (pinard@icule)
1863
1864 * src/macro.c (collect_arguments): Cast obstack arguments to
1865 (voidstar), so avoiding compiler warnings.
1866 Reported by Joseph E. Sacco.
1867
1868 * src/freeze.c (produce_frozen_state): Cast printed lengths to
1869 (int) so they correspond to %d format items.
1870 Reported by Joseph E. Sacco.
1871
1872 * src/m4.c (main): Cast the argument to xfree to (voidstar).
1873 * src/symtab.c (free_symbol): Idem.
1874 Reported by Karl Vogel.
1875
1876Mon Oct 31 02:11:19 1994 Francois Pinard (pinard@icule)
1877
1878 * Makefile.in (DISTFILES): Distribute BACKLOG.
1879
1880 * configure.in: Define PRODUCT and VERSION.
1881 * acconfig.h: Document PRODUCT and VERSION.
1882 * src/m4.c, src/freeze.c: Use PRODUCT and VERSION instead of the
1883 constant string m4 and variable or parameter named version.
1884
1885Sun Oct 30 08:13:03 1994 Francois Pinard (pinard@icule)
1886
1887 * src/m4.h, src/debug.c: Replace all #ifdef __STDC__ by #if
1888 __STDC__. Alliant FX/2800 Concentrix 2.2 (i860-BSD4.3) compiler
1889 defines __STDC__ to 0, for indicating it is *not* ANSI!
1890 Reported by Kaveh R. Ghazi.
1891
1892 * configure.in: Added obsolescent tests for AIX and Minix.
1893
1894 * doc/Makefile.in (mostlyclean): Remove texclean in dependencies,
1895 which texclean does not exist anymore.
1896 Reported by Eric Backus, Jim Meyering, John David Anglin and
1897 Joseph E. Sacco.
1898
1899Sat Oct 29 05:10:03 1994 Francois Pinard (pinard@icule)
1900
1901 * aclocal.m4 (fp_C_PROTOTYPES): Force -D_HPUX_SOURCE with -Aa.
1902 Reported by John David Anglin.
1903
1904 * src/ansi2knr.c: New version, sent by Peter Deutsch.
1905 * aclocal.m4 (fp_C_PROTOTYPES): Substitute empty or ansi2knr for
1906 ANSI2KNR, depending on the fact the compiler is ANSI or not.
1907 * src/Makefile.in: Use -Ovarargs=convert on ansi2knr calls.
1908 Remove the sed filter after ansi2knr for debug.c. Use $O instead
1909 of $U, put underline in extensions rather than in basenames. Use
1910 implicit rules, now that regularity makes this possible.
1911 Have $(OBJECTS) depend on $(ANSI2KNR), so to trigger compilation
1912 of ansi2knr whenever it is needed.
1913 * configure.in: Adjusted for correct STACKOVF substitution.
1914 * src/debug.c (trace_format): When not __STDC__, use (...) as a
1915 parameter list, so ansi2knr will convert it to (va_alist) va_dcl.
1916 Reported by David MacKenzie.
1917
1918 * Makefile.in: Remove binprefix. Use transform_name instead.
1919 Reported by David MacKenzie.
1920
1921 * doc/Makefile.in: Create version.texi, use it, clean it.
1922 Reported by Jim Meyering.
1923
1924Fri Oct 28 20:33:55 1994 Francois Pinard (pinard@icule)
1925
1926 * Makefile.in (all, install, uninstall): Depend on Makefile.
1927
1928 * Makefile.in: For actions invoking $(MAKE) from within compound
1929 sh statements, exit non-zero if the sub-make fails. Otherwise,
1930 the top-level make may exit successfully when it should fail.
1931 Reported by Jim Kingdon.
1932
1933 * {,/*}Makefile.in: Use && after all cd, in case they fail.
1934
1935 * {,*/}Makefile.in: Declare PRODUCT and VERSION macros.
1936 (dist): Use PRODUCT and VERSION instead of tricks on .fname.
1937 * configure.in: Substitute PRODUCT and VERSION.
1938
1939 * {,*/}Makefile.in (dist): Always try a hard link before a copy.
1940
1941Thu Oct 27 22:32:58 1994 Francois Pinard (pinard@icule)
1942
1943 * Makefile.in (mostlyclean-local): Do not remove *~.
1944 * */Makefile.in (mostlyclean): Idem.
1945 Reported by Robert E. Brown and Richard Stallman.
1946
1947Sun Oct 9 08:30:13 1994 Francois Pinard (pinard@icule)
1948
1949 * src/m4.h: Get rid of CONFIG_BROKETS.
1950
1951Sun Oct 2 16:48:10 1994 Francois Pinard (pinard@icule)
1952
1953 * configure.in: Use AC_ARG_PROGRAM.
1954 * aclocal.m4 (fp_C_PROTOTYPES): Substitute @kr@ by kr or empty.
1955 Reported by David MacKenzie.
1956
1957Sat Oct 1 11:22:42 1994 Francois Pinard (pinard@icule)
1958
1959 * configure.in: Do not add -O to CFLAGS for GNU C, now that
1960 configure does it automatically.
1961 Reported by Jim Meyering.
1962
1963Fri Sep 23 08:16:58 1994 Francois Pinard (pinard@icule)
1964
1965 * src/stackovf.c: Declare the handler_t typedef earlier in the
1966 code, use it for stackovf_handler.
1967 (setup_stackovf_trap): Use RETSIGTYPE instead of void while
1968 casting sigsegv_handler.
1969 Reported by Robert Bernstein.
1970
1971 * src/m4.c (main): Initialize program_name to argv[0] without
1972 basename'ing it.
1973 Reported by Karl Berry.
1974
1975Sun Sep 18 11:42:50 1994 Francois Pinard (pinard@icule)
1976
1977 * src/Makefile.in (TAGS): Include a ../lib/TAGS reference.
1978 Reported by Karl Berry.
1979
1980Wed Sep 14 10:00:22 1994 Francois Pinard (pinard@icule)
1981
1982 * lib/Makefile.in (mostlyclean): Added.
1983 (TAGS): Make in $(srcdir).
1984
1985 * configure.in: Use `choke me' in test, like everywhere!
1986
1987 * {doc,examples,lib,src}/Makefile.in (check): Deleted, as
1988 unreacheable and useless.
1989
1990 * doc/Makefile.in (texclean): Deleted, merged in mostlyclean.
1991
1992 * lib/Makefile.in (DISTFILES): Distribute TAGS.
1993 (distclean): Do not remove TAGS.
1994 (realclean): Remove it.
1995 * Makefile.in: Make TAGS in lib also, not just in src.
1996 Reported by Karl Berry.
1997
1998 * Makefile.in (distclean, realclean): Instead of recursively
1999 calling $(MAKE) for the -local part, allow parallel execution of
2000 -recursive and -local, only delay the removal of config.status,
2001 which is repeated in both goals.
2002
2003
2004Tue Sep 13 19:21:05 1994 Francois Pinard (pinard@icule)
2005
2006 * Release 1.3.
2007
2008 * Makefile.in: Group all *clean-recursive goals in one, using sed
2009 to remove `-recursive' while calling make recursively. Also, use
2010 a subshell for each recursive $(MAKE).
2011 Reported by Jim Meyering.
2012
2013 * src/m4.h (memcpy): Define with bcopy for BSD systems.
2014 Reported by Kaveh R. Ghazi.
2015
2016 * src/Makefile.in (ansi2knr): Use $(LIBS) while linking, for SunOS
2017 4.1.3 requires -ldl to link even ansik2nr, and we need a way to
2018 specify it.
2019
2020 * configure.in: Use date instead of touch for stamp-h.
2021 * Makefile.in (stamp-h.in): Idem.
2022
2023 * Makefile.in (distclean, realclean): Force serial execution of
2024 both goals, in case parallel makes are being used.
2025 Reported by Jim Meyering.
2026
2027 * src/Makefile.in (DISTFILES): Distribute TAGS.
2028 (distclean): Do not remove TAGS.
2029 (realclean): Remove it.
2030 Reported by Karl Berry.
2031
2032Sat Sep 10 12:34:04 1994 Francois Pinard (pinard@icule)
2033
2034 * configure.in: Use fp_ to match aclocal.m4. Revert _OS_ macros
2035 to old names, for following Autoconf.
2036
2037Thu Sep 8 15:07:27 1994 Francois Pinard (pinard@icule)
2038
2039 * Makefile.in (MDEFINES): Remove INSTALL substitutions, for
2040 ./install.sh will not be correctly referred to in sub-Makefiles.
2041 Reported by John David Anglin.
2042
2043 * doc/Makefile.in (texclean): Remove *.cps and *.fns too.
2044 Reported by Eric Backus.
2045
2046 * Makefile.in, checks/Makefile.in, doc/Makefile.in,
2047 examples/Makefile.in, lib/Makefile.in, src/Makefile.in: Limit
2048 config.status into remaking this directory's Makefile only.
2049 * Makefile.in (stamp-h): Do not check nor touch stamp-h.
2050 * configure.in (AC_OUTPUT): Touch stamp-h if CONFIG_HEADERS.
2051 Reported by Jim Meyering.
2052
2053Tue Sep 6 12:07:33 1994 Francois Pinard (pinard@icule)
2054
2055 * configure.in: Correct stack overflow detection logic, taking
2056 care of systems having only incomplete implementations (like for
2057 Pyramid 9820 OSx 5.0d).
2058 Reported by Kaveh R. Ghazi.
2059
2060 * src/Makefile.in (TAGS): Remote -t from etags call.
2061
2062Fri Sep 2 10:37:10 1994 Francois Pinard (pinard@icule)
2063
2064 * lib/Makefile.in (install): Depend on all.
2065
2066Wed Aug 31 11:17:21 1994 Francois Pinard (pinard@icule)
2067
2068 * examples/Makefile.in (mostlyclean): Do not depend on texclean.
2069 Reported by Jim Meyering and John David Anglin.
2070
2071 * Makefile.in (distclean-local): Delete config.log.
2072 Reported by Jim Meyering.
2073
2074 Solidify frozen files with respect to -P:
2075 * src/m4.c: Have -P set prefix_all_buitins variable instead of
2076 calling a function by that name. Declare the variable.
2077 * src/m4.h: Adjust declaration for prefix_all_buitins.
2078 * src/builtin.c (builtin_init): Merge in functionality from
2079 previous prefix_all_buitins function, while making entries in the
2080 symbol table, but not modifying the builtin description itself.
2081
2082 * src/freeze.c (reload_frozen_state): Add a useless `break;',
2083 because *many* compilers do not accept an empty `default:'.
2084 Reported by Akiko Matsushita, Eric Backus, John David Anglin,
2085 Joseph E. Sacco, Kaveh R. Ghazi, Tom McConnell and Ulrich Drepper.
2086
2087 * configure.in: Use AC_TYPE_SIGNAL.
2088 * src/stackovf.c (setup_stackovf_trap): Use RETSIGTYPE.
2089 Reported by Robert Bernstein.
2090
2091 * checks/Makefile.in (check): Modify PATH so check-them will find
2092 m4 in the src directory.
2093 * Makefile.in (check): Don't.
2094 Reported by Akiko Matsushita and Jim Meyering.
2095
2096 * src/output.c (make_room_for, output_character_helper): New
2097 functions, for implementing a global MAXIMUM_TOTAL_SIZE instead of
2098 a per buffer MAXIMUM_BUFFER_SIZE.
2099
2100 * src/output.c (output_text): New function, for optimizing the
2101 output of strings of characters. Use it.
2102
2103Tue Aug 30 01:44:29 1994 Francois Pinard (pinard@icule)
2104
2105 * doc, src: New directories reorganizing the distribution.
2106 * doc/Makefile.in, src/Makefile.in, examples/Makefile.in: New
2107 files.
2108 * Makefile.in: Adjusted.
2109 * configure.in: Configure new Makefiles.
2110
2111 * m4.h: Declare STRING typedef. Use it for comment and quote
2112 strings, adjusting all references. (This is the rudiments of a
2113 beginning for the eventual withdrawal of NUL terminated strings.)
2114 * output.c (shipout_text): Accept a length parameter, and use it.
2115 All callers adjusted.
2116
2117Mon Aug 29 12:27:19 1994 Francois Pinard (pinard@icule)
2118
2119 * m4.h: Include <unistd.h> if it exists.
2120 * stackovf.c: Don't.
2121
2122 Clean up for current_diversion variable:
2123 * output.c: Move current_diversion from builtin.c.
2124 * m4.h: Declare current_diversion so builtin.c can access it.
2125 * output.c (output_init, make_diversion): Initialize or update
2126 current_diversion.
2127 * builtin.c (builtin_init, m4_divert): Leave current_diversion
2128 alone.
2129
2130 Remove limit on number of diversions:
2131 * output.c: Replace ndiversion by diversions, declare it.
2132 (output_init): Allocate only diversion 0.
2133 (make_diversion): Allocate new diversions as needed.
2134 * m4.h, m4.c: Remove NDIVERSIONS and ndiversion related stuff.
2135 * m4.c: Still accept -N, but do nothing with it.
2136 Reported by David MacKenzie.
2137
2138 Freeze diversions:
2139 * output.c (freeze_diversions): New function.
2140 * m4.h: Declare freeze_diversions.
2141 * freeze.c: Document frozen file format, revise it, call
2142 freeze_diversions to add diversions to frozen format, and code to
2143 reload them properly.
2144 * m4.c: Do not undivert automatically at end when status being
2145 frozen. Do not call builtin_init when reloading frozen state.
2146
2147 Speed up diversion processing:
2148 * output.c: Add INITIAL_BUFFER_SIZE, MAXIMUM_BUFFER_SIZE,
2149 COPY_BUFFER_SIZE, in-memory diversion buffers, struct diversion
2150 structure and variables, cached variables out of output_diversion,
2151 reallocate_diversion_for and OUTPUT_CHARACTER.
2152 (shipout_text, make_diversion, insert_diversion): Adapted to new
2153 structures.
2154 (insert_file): Use better buffering.
2155 Reported by David MacKenzie.
2156
2157Sun Aug 28 05:20:02 1994 Francois Pinard (pinard@icule)
2158
2159 * Makefile.in, lib/Makefile.in, checks/Makefile.in: Arrange so
2160 dist works from another build directory.
2161
2162Sat Aug 27 14:32:45 1994 Francois Pinard (pinard@icule)
2163
2164 * symtab.c (hack_all_symbols): Use hash_table_size instead of
2165 constant HASHMAX, for -H option to work better.
2166
2167 * builtin.c (DECLARE): Simplify by using _ ().
2168
2169 * freeze.c: New file.
2170 * Makefile.in: Compile it, distribute it.
2171 * m4.c: Recognize, document and process --freeze-state (-F) and
2172 --reload-state (-R) options. Pass a true flag to builtin_init
2173 only if no reloading some state.
2174 * builtin.c (define_builtin): Remove static specifier.
2175 (find_builtin_by_name): Remove static specifier.
2176 (builtin_init): Accept and obey a flag argument.
2177 * m4.h: Add declarations for freeze.c, changes for builtin.c.
2178
2179Wed Aug 24 16:14:19 1994 Francois Pinard (pinard@icule)
2180
2181 * builtin.c (dumpdef_cmp): Rewrite so the cast protect the const
2182 specifier.
2183
2184 * configure.in: Implement --with-dmalloc.
2185 * acconfig.h: Document WITH_DMALLOC.
2186 * m4.h: Add code for when WITH_DMALLOC.
2187
2188Mon Aug 15 12:38:05 1994 Francois Pinard (pinard@icule)
2189
2190 * m4.c (long_options): Use "error-output", the dash was missing.
2191 Reported by Akiko Matsushita.
2192
2193Fri Aug 12 16:38:01 1994 Francois Pinard (pinard@icule)
2194
2195 * m4.h: Include <sys/types.h>.
2196 * builtin.c, debug.c, m4.c, output.c, stackovf.c: Don't.
2197 * m4.h: Declare len_lquote and len_rquote as size_t, not int.
2198 int.
2199 * input.c: Declare len_lquote, len_rquote, len_bcomm and len_ecomm
2200 as size_t, not int.
2201 * builtin.c (dump_args): Declare len as size_t, not int.
2202
2203 * debug.c: Prototype the forward declaration of debug_set_file.
2204
2205 * builtin.c (m4_undivert): Replace div by file, for avoiding the
2206 shadowing of this variable.
2207 * output.c (insert_diversion): Idem.
2208
2209 * input.c: Delete def_rquote, def_lquote, def_bcomm and def_ecomm.
2210 (input_init): Duplicate default quote and comment strings.
2211 (set_quotes): Free previous quote strings in all cases. Duplicate
2212 even default quote strings.
2213 (set_comment): Free previous comment strings in all cases.
2214 Duplicate even default comment strings.
2215
2216 * configure.in: Updated for Autoconf 2.0.
2217 * Makefile.in (distclean-local): Also delete config.cache.
2218
2219 * m4.c (usage): Reorganize the --help output by topic. Include a
2220 description for debugging flags.
2221
2222Fri Jul 29 10:15:52 1994 Francois Pinard (pinard@icule)
2223
2224 * configure.in: If sigaction is available and SA_ONSTACK defined,
2225 use sigaction. Otherwise, if sigvec is available and SV_ONSTACK
2226 defined, use sigvec. Else don't compile stackovf.c.
2227 * stackovf.c (setup_stackovf_trap): Idem.
2228 Reported by Jim Avera, Karl Berry, Kaveh R. Ghazi, Matthias Rabe
2229 and Simon Leinen.
2230
2231Thu Jul 21 22:43:17 1994 Francois Pinard (pinard@icule)
2232
2233 * m4.c (usage): Replace printf par fputs.
2234
2235
2236Mon Jul 18 23:48:23 1994 Francois Pinard (pinard@icule)
2237
2238 * Release 1.2
2239
2240Sun Jul 17 08:08:25 1994 Francois Pinard (pinard@icule)
2241
2242 * configure.in: Check for sigaction and sigvec. Add a new delayed
2243 check for RLIMIT_STACK, combine in the checking for getrlimit.
2244 All those things are not universally available.
2245 * stackovf.c: Split setting up the trap handler and catching
2246 signals, for better taking care of various configure outcomes.
2247 * examples/stackovf.sh: Correct a typo.
2248 Reported by Eric Backus, Jim Avera and Jim Meyering.
2249
2250Sat Jul 16 20:36:19 1994 Francois Pinard (pinard@icule)
2251
2252 * ansi2knr.c: New version sent by its author, Peter Deutsch.
2253
2254Fri Jul 15 14:36:21 1994 Francois Pinard (pinard@icule)
2255
2256 * Makefile.in: Modify so parallel make will not try making
2257 lib/libm4.a twice simultaneously.
2258 Reported by Jim Meyering.
2259
2260Thu Jul 14 17:23:17 1994 Francois Pinard (pinard@icule)
2261
2262 * stackovf.c (setup_stackovf_trap): Replace "Don't" by "Do not" in
2263 error message, for when no code possibility exists. Even if this
2264 line is completely #ifdef'ed out, it brings a syntax error.
2265 Reported by Andreas Schwab, Jim Meyering and Joseph E. Sacco.
2266
2267 * Makefile.in (install): Have install depend on all too, for lib
2268 to be remade as needed.
2269
2270 * examples/stackovf.sh: Try ksh, bsh and bash for shells
2271 providing ulimit, instead of using only ksh.
2272 Reported by Jim Avera and Joseph E. Sacco.
2273
2274Tue Jul 12 06:54:31 1994 Francois Pinard (pinard@icule)
2275
2276 * Makefile.in (check): Have it depend on all instead of m4. In
2277 this way, a change in lib will be detected and processed.
2278
2279 * builtin.c (numeric_arg): Use strtol and verify the conversion,
2280 instead of using sscanf which stops as soon as there is a
2281 non-digit in the input. Previously, incr(1xyzzy), eval(1,2xyzzy)
2282 and divert(1xyzzy) were all accepted without any warning or error
2283 messages.
2284 * m4.h: Declare strtol as long if not including stdlib.h.
2285 * configure.in: Check for limits.h, and replace strtol if missing.
2286 * lib/Makefile.in: Substitute LIBOBJS. Distribute strtol.c.
2287 * lib/strtol.c: New file, from elsewhere.
2288 Reported by Andreas Schwab.
2289
2290Thu Jul 7 22:38:10 1994 Francois Pinard (pinard@icule)
2291
2292 * macro.c (expand_macro): Cast value to (boolean) prior to
2293 assigning it to traced.
2294 Reported by Tom McConnell.
2295
2296 * Makefile.in (m4): Always make all in lib first.
2297 Reported by Jim Meyering.
2298
2299Wed Jul 6 13:16:31 1994 Jim Avera (jima@netcom.com)
2300
2301 * stackovf.c: Isolated OS-dependent sections; Improved portability,
2302 adding support for SunOS/BSD (sigvec, sigstack, and 4-parameter signal
2303 handlers), and a default error message if the fault address is not
2304 available (when neither siginfo.h nor BSD sigcontext are supported).
2305 * configure.in: Changes for stackovf.h: Check for sigcontext,
2306 sigaction, sigstack, and define rlim_t as int if necessary.
2307 * acconfig.h: Added HAVE_SIGCONTEXT and rlim_t.
2308 * examples/stackovf.sh: Run m4 -L99999999 to allow stack overflow.
2309 * ansi2knr.c: Fix for func-ptr args; convert "..." to varargs syntax.
2310
2311Tue Jul 5 19:13:54 1994 Francois Pinard (pinard@icule)
2312
2313 * configure.in: Use AC_SET_MAKE.
2314 * Makefile.in: Use @SET_MAKE@.
2315 Reported by Jim Meyering.
2316
2317 * checks/check-them: Do not trap on SIGQUIT or SIGALRM.
2318 Reported by Ian Taylor.
2319
2320Sat Jul 2 00:58:47 1994 Francois Pinard (pinard@icule)
2321
2322 * configure.in: Remove dependency of USE_STACKOVF on STDC_HEADERS,
2323 because siginfo.h is unrelated to standard headers, and siginfo.h
2324 is already checked for.
2325 Reported by Joseph E. Sacco.
2326
2327 * acconfig.h, aclocal.m4, m4.h: Replace HAVE_PROTOTYPES by
2328 PROTOTYPES.
2329 * aclocal.m4, configure.in: Replace AC_HAVE_PROTOTYPES by
2330 AC_PROTOTYPES.
2331
2332Wed Jun 29 22:41:53 1994 Francois Pinard (pinard@icule)
2333
2334 * builtin.c (substitute): Use \& to represent this part of the
2335 string which was matched by the whole regexp, instead of
2336 representing the whole string. Any usage of \0 issues a warning
2337 and acts like \&, it will disappear in some subsequent release.
2338
2339Mon Jun 27 14:24:23 1994 Francois Pinard (pinard@icule)
2340
2341 * m4.c: Complete prototype for forwarded declaration of usage.
2342
2343 * input.c (init_macro_token): Correct own reference in error
2344 message. Previous name get_macro_func was referred to instead.
2345 (next_char): Correct own reference in error message. Previous
2346 name advance_input was referred to instead.
2347
2348 * m4.h: Declare eval_t and unsigned_eval_t typedefs to 32 bits.
2349 * eval.c (logical_or_term, logical_and_term, or_term, xor_term,
2350 and_term, not_term, logical_not_term, cmp_term, shift_term,
2351 add_term, mult_term, exp_term, unary_term, simple_term): Add
2352 prototype to forwarded declarations. Declare parameter v1 as
2353 eval_t * instead of int *. Same for local variable v2 in dyadic
2354 functions. Same for result in exp_term.
2355 * builtin.c (m4_eval): Declare value as eval_t instead of int.
2356 (ntoa): Declare value as eval_t instead of int. Declare uvalue as
2357 unsigned_eval_t instead of unsigned int. Change casts accordingly.
2358 (shipout_int): Cast first argument of ntoa to eval_t.
2359 Reported by Thorsten Ohl.
2360
2361 * macro.c: Complete the prototypes of forwarded expand_macro and
2362 expand_token.
2363 Reported by Thorsten Ohl.
2364
2365 * m4.h: Define voidstar as void * or char * depending on __STDC__.
2366 The Ultrix 3.1 compiler cannot do much with void pointers.
2367
2368 * builtin.c (dumpdef_cmp): Replace void * by voidstar.
2369 * m4.c (xfree): Replace void * by voidstar.
2370 Reported by Tom McConnell.
2371
2372 * ansi2knr.1: New, from elsewhere.
2373 * Makefile.in (DISTFILES): Distribute ansi2knr.1
2374
2375 * Makefile.in (stamp-h.in): Avoid running ./config.status if
2376 stamp-h does not exist yet. This avoids running it a second time
2377 just after the initial ./configure.
2378 Reported by David MacKenzie and Tom McConnell.
2379
2380 * m4.h: Replace the enum debug_info declaration with a series of
2381 #define's. The Ultrix 3.1 compiler would otherwise need casting
2382 (int) to most references, when used in expressions.
2383 Reported by Tom McConnell.
2384
2385Sat Jun 25 00:10:05 1994 Francois Pinard (pinard@icule)
2386
2387 * aclocal.m4: Replace FP_PROTOTYPES by AC_HAVE_PROTOTYPES,
2388 following an idea from Brook G. Milligan. AC_HAVE_PROTOTYPES
2389 calls the compiler. Previously, FP_PROTOTYPES was only calling
2390 the preprocessor; by not being subject to CFLAGS, this was
2391 discouraging those flags asking for ANSI compilation.
2392 * acconfig.h: Document HAVE_PROTOTYPES.
2393 * configure.in: Use AC_HAVE_PROTOTYPES instead of FP_PROTOTYPES.
2394 * m4.h: Define _() according to HAVE_PROTOTYPES, not __STDC__.
2395 Reported by Eric Backus.
2396
2397 * configure.in: Substitute CFLAGS and LDFLAGS, taking their value
2398 from the environment. Default CFLAGS to -g if not set.
2399 * Makefile.in: Have CFLAGS and LDFLAGS substituted from configure.
2400 * lib/Makefile.in: Have CFLAGS substituted from configure.
2401 Reported by Eric Backus and Tom McConnell.
2402
2403 * configure.in: m4_undefine changeword before using AC_ENABLE.
2404
2405 * m4.h: Declare prototypes for error (for ANSI compilers only),
2406 prefix_all_builtins and reference_error.
2407 Reported by Tom McConnell.
2408
2409 * input.c (set_word_regexp): Do not try to initialize the array
2410 test from a string, this does not work with non-ANSI compilers.
2411 Reported by Eric Backus.
2412
2413 * Makefile.in (dist): Clean examples/ before saving it.
2414 (distclean-local): Also remove stamp-h.
2415 Reported by Eric Backus.
2416
2417 * Makefile.in (_stackovf.c): Goal for compiling stacokovf.c with
2418 non ANSI compilers.
2419 Reported by Tom McConnell.
2420
2421 * checks/Makefile.in (clean): Depends on mostlyclean.
2422 (mostlyclean): New goal.
2423
2424Fri Jun 24 23:30:31 1994 Francois Pinard (pinard@icule)
2425
2426 * Makefile.in (DISTFILES): Distribute install.sh.
2427 * install.sh: New file, copied from elsewhere.
2428 Reported by Assar Westerlund and Kaveh R. Ghazi.
2429
2430Thu Jun 23 00:00:30 1994 Francois Pinard (pinard@icule)
2431
2432 * configure.in: Define ENABLE_CHANGEWORD if --enable-changeword.
2433 * acconfig.h: Explain ENABLE_CHANGEWORD.
2434
2435 [These modifs all depend upon ENABLE_CHANGEWORD and are adapted
2436 from code provided by Pete Chown]
2437 * m4.h: Add original_text field to u_t variant of union u.
2438 Declare TOKEN_DATA_FUNC macro.
2439 * builtin.c: Declare changeword.
2440 (m4_changeword): New function.
2441 * input.c: Include "regex.h", define variables with word regexps.
2442 (input_init): Initialize the word regexp.
2443 (set_word_regexp): New.
2444 (next_token): Declare local variables, use the previous code if
2445 default_word_regexp is true. Else, match using a new code. Save
2446 the original text.
2447 * macro.c (expand_token): Ship out original text if not a macro
2448 name.
2449 Reported by Krste Asanovic and Pete Chown.
2450
2451 [These modifs all depend upon ENABLE_CHANGEWORD]
2452 * m4.h: Declare external user_word_regexp.
2453 * m4.c: Declare user_word_regexp, and initialize it from
2454 --word-regexp or -W, or NULL if not specified.
2455 * input.c: Use user_word_regexp if specified, instead of
2456 DEFAULT_WORD_REGEXP.
2457
2458 * Makefile.in (m4): Revert Jan 3 1994 change. I'm unable to
2459 agree with it.
2460
2461 * Makefile.in, lib/Makefile.in: Limit suffixes to .c and .o.
2462 * checks/Makefile.in: Empty the suffix list.
2463 Reported by Geoff Russell, Joel Sherrill and Roland McGrath.
2464
2465 * m4.c: Declare nesting_limit and initialize it to 250.
2466 Implement -LNUMBER or --nesting-limit=NUMBER to change its
2467 value.
2468 * m4.h: Declare nesting_limit as external.
2469 * macro.c (expand_macro): Stop execution whenever nesting limit
2470 is exceeded.
2471 Reported by Bengt Mertensson.
2472
2473 * eval.c (evaluate): Diagnose excess characters in eval input.
2474 Things like `eval(08)' used to return 0 with no diagnostic.
2475
2476 * m4.h: Capitalize first letter of all macro arguments in
2477 definitions.
2478
2479 * m4.c: Declare warning_status, initialize it to 0. Add new
2480 option -E, or --fatal-warnings, which sets warning_status to
2481 EXIT_FAILURE instead.
2482 * m4.h: Declare external warning_status. Define EXIT_SUCCESS and
2483 EXIT_FAILURE if not otherwise done by header files.
2484 * m4.c: Delete declarations for EXIT_SUCCESS and EXIT_FAILURE.
2485 * m4.c, input.c, output.c, symtab.c, builtin.c, macro.c, debug.c,
2486 eval.c: Replace 0 by warning_status and 1 by EXIT_FAILURE in first
2487 argument of all M4ERROR calls.
2488 Reported by Noah Friedman.
2489
2490 * examples/incl-test.m4: Renamed from incl_test.m4.
2491 * examples/include.m4: Include incl-test.m4 instead of
2492 incl_test.m4.
2493 * examples/multiquotes.m4: Renamed from multi-quotes.m.
2494
2495Wed Jun 22 21:58:54 1994 Francois Pinard (pinard@icule)
2496
2497 * configure.in: Avoid USE_STACKOVF if <siginfo.h> not found. Note
2498 that Jim developped stackovf.c on a 486 running SVR4.0 (ESIX), and
2499 also tested it on a Sun Sparc workstation running SunOS 4.x.
2500
2501 * format.c (format): When not HAVE_EFGCVT, m4 was failing the
2502 49.format check, abusing a `union values' argument with sprintf
2503 without selecting the proper field. Now, save the formatting type
2504 first, delaying the fetch of the corresponding argument.
2505 Reported by Joseph E. Sacco and Tom Quinn.
2506
2507 * format.c (format): Remove const from char *fmt declaration when
2508 not HAVE_EFGCVT, because a NUL may be forced into it.
2509
2510 * m4.h: Declare atof() when not STDC_HEADERS.
2511 Reported by Joseph E. Sacco.
2512
2513 * Regenerate configure using Autoconf 1.11, this corrects a
2514 problem about an incorrect cpp seting on NeXT 3.1.
2515 Reported by Alexander Lehmann.
2516
2517Sun Jun 5 16:25:19 1994 Francois Pinard (pinard@icule)
2518
2519 * m4.h (_): Change argument from `x' to `Args'.
2520
2521Wed May 4 23:59:39 1994 Francois Pinard (pinard@icule)
2522
2523 * Makefile.in: Remove all occurrences of $(MFLAGS), which were
2524 bringing more evil than good on a few systems.
2525 Reported by Greg A. Woods.
2526
2527Fri Apr 22 15:59:35 1994 Francois Pinard (pinard@icule)
2528
2529 * m4.h: Rename Args() to _().
2530 * m4.h: Remove extern specifier from all function declarations.
2531
2532Fri Apr 22 15:51:21 1994 Jim Avera (jima@netcom.com)
2533
2534 * stackovf.c: New file implementing stack-overflow detection.
2535 * configure.in: Check for getrlimit, sigaction. If all of
2536 standard headers, getrlimit and sigaction, define USE_STACKOVF and
2537 substitute ${U}stackovf.o for STACKOVF.
2538 * acconfig.h: Declare USE_STACKOVF.
2539 * Makefile.in: Distribute stackovf.c, link with $(STACKOVF).
2540 * m4.h: Declare setup_stackovf_trap().
2541 * m4.c: Call setup_stackovf_trap().
2542 * tests/stackovf_test.sh: New file.
2543
2544Wed Apr 13 14:10:30 1994 Francois Pinard (pinard@icule)
2545
2546 * checks/Makefile.in: Rename .all-stamp to stamp-checks.
2547
2548 * Makefile.in (Makefile, etc.): Adapt for Autoconf 1.8.
2549
2550Sun Jan 30 14:24:19 1994 (pinard at icule)
2551
2552 * m4.h: Remove definition of volatile, not used anymore.
2553 Reported by Jim Meyering and Joseph E. Sacco.
2554
2555 * m4.h: Consistently use `do { ... } while (0)' in macros, instead
2556 of `if ... else /* nothing */' for if macros.
2557 Reported by Jim Meyering.
2558
2559 * builtin.c (m4_regexp): Reorganize the code for avoiding a
2560 warning from gcc about `repl' possibly used before defined.
2561 Reported by Jim Meyering.
2562
2563 * m4.h: Avoid a pre-ANSI <memory.h> together with <string.h>.
2564 Reported by Jim Meyering.
2565
2566Tue Jan 25 18:39:37 1994 Francois Pinard (pinard at icule)
2567
2568 * m4.h: Move the conditional definition of volatile after the
2569 inclusion of system files, because they may define it first.
2570
2571Tue Jan 4 19:46:50 1994 Francois Pinard (pinard@icule)
2572
2573 * checks/Makefile.in (CHECKS): Add a useless `*' before `[', to
2574 get around a problem with Alpha make seeing a syntax error, there.
2575 Reported by Vern Paxson.
2576
2577Mon Jan 3 00:21:45 1994 Francois Pinard (pinard@icule)
2578
2579 * Makefile.in: Do not define LDFLAGS, use CFLAGS on link calls.
2580 Reported by Richard Stallman.
2581
2582Sat Dec 25 08:06:05 1993 Francois Pinard (pinard@icule)
2583
2584 * configure.in: Correct test for strerror, AC_FUNC_CHECK was used
2585 instead of AC_HAVE_FUNCS.
2586 Reported by Noah Friedman.
2587
2588Wed Dec 1 09:37:53 1993 Francois Pinard (pinard@icule)
2589
2590 * m4.c: Initialize show_help and show_version to zero.
2591
2592 * m4.c: Ensure EXIT_SUCCESS and EXIT_FAILURE are defined.
2593 Use them in exit() and usage() calls.
2594
2595Sat Nov 27 10:43:24 1993 Francois Pinard (pinard@icule)
2596
2597 * m4.h: Delete extern sys_nerr, sys_errlist declarations, and
2598 syserr() macro. Delete errref, add reference_error and M4ERROR.
2599 * m4.c: Replace errref, which was returning an input reference
2600 string, with reference_error, which prints it on standard error.
2601 * builtin.c, output.c: Use errno as second parameter to error,
2602 instead of using syserr() with %s.
2603 * *.c: Use M4ERROR instead of error: no more errref() with %s.
2604 Doing so, the program name appears after the input reference
2605 instead of before, which eases M-x next-error processing.
2606
2607Wed Nov 24 22:16:15 1993 Francois Pinard (pinard@icule)
2608
2609 * checks/get-them: Escape braces with backslashes in patterns,
2610 because HPUX-9.01 awk needs this.
2611 Reported by Jim Meyering.
2612
2613Mon Nov 22 10:55:52 1993 Francois Pinard (pinard@icule)
2614
2615 * builtin.c: Declare "FILE *popen ();".
2616
2617 * m4.h: Remove MESSAGE{,1,2}, WARNING1, FATAL{,1}, INTERNAL_ERROR
2618 macros, replace error_message_prefix() declaration by errref()'s.
2619 Declare xrealloc, for use in errref().
2620 * m4.c: Delete error_message_prefix() function, add errref().
2621 * *.c: Use error() systematically in place of all error macros,
2622 now that error() flushes stdout first. Make needed adjustments.
2623
2624 * m4.h: Remove const in sys_errlist[] declaration, it creates
2625 conflicts on SGI and Alpha.
2626 Reported by Kaveh R. Ghazi.
2627
2628Sat Nov 20 08:26:15 1993 Francois Pinard (pinard@icule)
2629
2630 * m4.c: Include <getopt.h> instead of "getopt.h".
2631
2632 * configure.in: Output to config.h. Use HAVE_FUNCS preferably.
2633 * acconfig.h: New, for documenting HAVE_EFGCVT.
2634 * Makefile.in: Distribute acconfig.h, .stamp-h.in and config.h.in,
2635 use them wherever appropriate. Also use -I. for compilations.
2636 * lib/Makefile.in: Use -I.. for compilations.
2637 * *.c: Include <config.h> or "config.h".
2638
2639 * m4.h: Test for HAVE_MEMORY_H instead of NEED_MEMORY_H.
2640 * configure.in: Use AC_HAVE_HEADERS(memory.h), delete AC_MEMORY_H.
2641
2642Wed Nov 17 09:34:55 1993 Francois Pinard (pinard@icule)
2643
2644 * builtin.c (m4_eval): Cast strlen to (int) before comparing.
2645
2646 * input.c (input_init): Initialize quote and comment strings
2647 explicitely instead of calling set_quotes and set_comment: by
2648 doing so, we ensure we do not free uninitialized variables.
2649
2650 * checks/check-them: Reverse arguments to both diff, so the
2651 expected is on the left and the obtained on the right.
2652
2653 * m4.h: Add MESSAGE{,1,2}, WARNING1, FATAL{,1} and INTERNAL_ERROR
2654 macros. Delete declarations for m4error, warning, fatal and
2655 internal_error, add declaration for error_message_prefix.
2656 * m4.c: Delete m4error, warning, fatal and internal_error
2657 routines, add error_message_prefix routine.
2658 * *.c: Replace m4error routine calls with MESSAGE* macro calls,
2659 warning with WARNING*, fatal with FATAL* and internal_error with
2660 INTERNAL_ERROR*.
2661 * Makefile.in (_m4.c): Do not adjust ansi2knr output for va_alist,
2662 this is not needed anymore.
2663
2664 * m4.h: Declare extern FILE *debug. Add DEBUG_PRINT{1,3} and
2665 DEBUG_MESSAGE{,1,2} macros. Delete declarations for debug_print
2666 and debug_message, add declaration for debug_message_prefix.
2667 * debug.c: Remove static specifier for FILE *debug declaration.
2668 Delete debug_print and debug_message routines, add
2669 debug_message_prefix routine.
2670 * builtin.c, debug.c: Replace debug_print routine calls with
2671 DEBUG_PRINT* macro calls.
2672 * input.c, path.c: Replace debug_message routine calls with
2673 DEBUG_MESSAGE* macro calls.
2674
2675 * m4.h: Remove inclusion of <varargs.h>.
2676 * debug.c: Include <stdarg.h> or <varargs.h>.
2677 (trace_format): Use stdarg instead of varargs if __STDC__.
2678
2679 * configure.in: Remove checks for vfprintf and _doprnt. These
2680 implementations use varargs tricks which are not portable enough.
2681 * lib/vfprintf.c: Deleted.
2682 * lib/_doprnt.c: Deleted.
2683 * lib/Makefile.in: Adjusted accordingly. Remove LIBOBJS.
2684 Reported by Joel Sherrill.
2685
2686 * path.c (add_include_directory): Use xstrdup.
2687
2688 * builtin.c (find_builtin_by_name): Declare static.
2689
2690 * *.[ch]: Add const to a few "char *" declarations.
2691
2692 * configure.in: Remove commented tests for fileno() and fstat().
2693 * debug.c: Remove comments about HAVE_FILENO and HAVE_FSTAT.
2694
2695 * debug.c (debug_flush_files): New.
2696 * m4.h: Declares it.
2697 * builtin.c (m4_syscmd, m4_esyscmd): Use it.
2698 Reported by Nicolas Pioch.
2699
2700Fri Nov 12 10:02:26 1993 Francois Pinard (pinard@icule)
2701
2702 * Makefile.in (m4.dvi): Use m4.texinfo instead of m4.texi.
2703 Reported by Joel Sherrill.
2704
2705 * builtin.c (prefix_all_builtins): Instead of the table size, use
2706 the null entry at end for stopping the loop. It was overwritten.
2707 Reported by Andreas Schwab and Jim Meyering.
2708
2709 * builtin.c (prefix_all_builtins): Cast xmalloc to (char *).
2710 Reported by Kaveh R. Ghazi.
2711
2712 * macro.c (call_macro): Add * in (*SYMBOL_FUNC (sym)) (...).
2713 Reported by Karl Vogel.
2714
2715Tue Nov 9 09:31:47 1993 Francois Pinard (pinard@icule)
2716
2717 * m4.h: Do not define volatile if already defined.
2718 Reported by Rene' Seindal.
2719
2720 * lib/Makefile.in: Add a forgotten ALLOCA=@ALLOCA@. Grrr!
2721
2722 Reported by Bernhard Daeubler, Eric Backus, Hal Peterson, Hoang
2723 Uong, Ian Taylor, Kaveh R. Ghazi, Tom McConnell and Walter Wong.
2724
2725Mon Nov 8 21:11:44 1993 Francois Pinard (pinard@icule)
2726
2727 * m4.h: Define strchr and strrchr in terms of index and rindex,
2728 instead of the other way around.
2729 * builtin.c, m4.c, path.c: Use strchr instead of index.
2730
2731 * input.c (next_char): Remove a "break;" after a "return ...;".
2732 Reported by Tom McConnell.
2733
2734
2735Mon Nov 8 12:45:34 1993 Francois Pinard (pinard@icule)
2736
2737 * Release 1.1
2738
2739 * configure.in: Do not copy check files in the build hierarchy.
2740 * checks/check-them: Identify the m4 version being checked. For
2741 finding m4, look in $PATH instead of in the parent directory.
2742 * Makefile.in (check): Prepend `pwd` to $PATH before checking.
2743 * checks/Makefile.in (.all-stamp): Always create check files in
2744 the source hierarchy, not anymore in the build hierarchy.
2745 (check): cd to the source hierarchy before performing checks.
2746 Do not copy nor clean COPYING anymore, take it from `..'.
2747 Reported by Tom McConnell.
2748
2749 * Makefile.in (Makefile): Use $(SHELL).
2750 (config.status): Use $(SHELL). Use "config.status --recheck"
2751 instead of "configure --no-create", which is obsolete.
2752 Reported by Tom McConnell.
2753
2754Fri Nov 5 09:49:30 1993 Francois Pinard (pinard@compy.IRO.UMontreal.CA)
2755
2756 * m4.c (usage): Use "%s" instead of "m4" in format string.
2757 Reported by Jim Meyering.
2758
2759 * Makefile.in: Distribute mkinstalldirs.
2760 Reported by Pierre Gaumond.
2761 Reported by Jim Meyering.
2762 Reported by Tom McConnell.
2763 Reported by Andreas Gustafsson.
2764
2765 * checks/check-them: Renamed from checks/check_them.
2766 * checks/get-them: Renamed from checks/get_them.
2767 * checks/.all-stamp: Renamed from checks/.all_stamp.
2768 * checks/Makefile.in: Changed accordingly.
2769 Reported by Jim Meyering.
2770
2771Thu Nov 4 13:50:52 1993 Francois Pinard (pinard@lagrande.IRO.UMontreal.CA)
2772
2773 * lib/Makefile.in (dist): Correct permissions on files.
2774
2775 * output.c: Declare tmpfile, some systems don't.
2776
2777Wed Nov 3 09:09:16 1993 Francois Pinard (pinard@icule)
2778
2779 * checks/Makefile.in (dist): Correct permissions on files.
2780
2781 * Makefile.in (dist): Ensure recursive linking for subdirectory
2782 `examples', also set read/write permissions on all its files.
2783
2784 * mkinstalldirs: New, from elsewhere.
2785 * Makefile.in: Use it.
2786
2787 * debug.c: Synchronize debug messages and regular output when
2788 the debug file and stdout are redirected to the same file.
2789 * configure.in: Add (commented) checks for fileno and fstat.
2790 Reported by Jim Avera.
2791
2792 * builtin.c (m4_ifelse): Diagnose excess arguments if 5, 8, 11,
2793 etc., arguments, then ignore the superfluous one. m4 used to
2794 diagnose missing arguments and return the empty string.
2795 Reported by Nick S. Kanakakorn.
2796
2797Tue Nov 2 00:55:41 1993 Francois Pinard (pinard@icule)
2798
2799 * m4.c (main): At end of all input, ensure all undiverted text
2800 goes to the main output stream.
2801 Reported by Andreas Gustafsson.
2802
2803 * m4.c (main): exit (0), instead of return 0.
2804
2805 * m4.c: Implement -P and --prefix-builtins.
2806 * builtin.c: Delete const specifier on builtin_tab.
2807 (prefix_all_builtins): New.
2808 Reported by Noah Friedman.
2809 Reported by Scott Bartram.
2810
2811 * c-boxes.el: New, from elsewhere.
2812 * Makefile.in: Distribute it.
2813
2814 * m4.h: Do not define bcopy if <string.h> defines it.
2815 Reported by Stephen Perkins.
2816
2817 * builtin.c (define_macro): Allow a missing second argument, in
2818 which case it is implied empty. Affects define and pushdef.
2819 Reported by Eric Allman.
2820
2821Mon Nov 1 07:45:24 1993 Francois Pinard (pinard@icule)
2822
2823 * m4.h: Add blind_if_no_args in struct builtin, blind_no_args in
2824 struct symbol adn SYMBOL_BLIND_NO_ARGS macro.
2825 * builtin.c: Initialize all the blindness fields in builtin_tab.
2826 (define_builtin): Copy the blindness of a builtin into its symbol.
2827 * macro.c (expand_token): Avoid processing a blind builtin if the
2828 next character is not an opening parenthesis.
2829 Reported by David MacKenzie.
2830 Reported by Noah Friedman.
2831
2832 * configure.in: Ensure an exit status of 0 on completion.
2833 Reported by Vivek P. Singhal.
2834
2835 * eval.c (eval_lex): Admit both lower and upper case letters for
2836 bases greater than 10. Only lower case letters were accepted.
2837
2838 * eval.c (eval_lex): Recognize 0bDIGITS and 0rRADIX:DIGITS syntax.
2839 Reported by Krste Asanovic.
2840
2841 * eval.c: Rename NOT to LNOT. Add XOR, NOT, LSHIFT and RSHIFT.
2842 * eval.c (logical_not_term): New name for not_term.
2843 * eval.c (xor_term): New, between or_term and and_term.
2844 * eval.c (not_term): New, between and_term and logical_not_term.
2845 * eval.c (shift_term): New, between cmp_term and add_term.
2846 Reported by Krste Asanovic: ~, ^, <<, >>.
2847 Reported by Ben A. Mesander: ** vs ^.
2848
2849 * m4.c: Delete xmalloc.c, xrealloc.c, xstrdup.c.
2850 * m4.h: Delete xrealloc.c.
2851 * lib/xmalloc.c: New, from elsewhere.
2852 * lib/xstrdup.c: New, from elsewhere.
2853 * lib/Makefile.in: Distribute and compile them.
2854
2855 * m4.c: Change progname to program_name.
2856 * builtin.c, eval.c, m4.c, m4.h: Rename error to m4error.
2857 * lib/error.c: New, from elsewhere.
2858 * lib/Makefile.in: Distribute and compile error.c.
2859 * configure.in: Check AC_VPRINTF and for strerror.
2860 * m4.c: Delete cmd_error. Use error instead.
2861 * m4.c: Change label capitalisation to "ERROR", "Warning", etc.
2862
2863 * m4.h: Delete #define const, let Autoconf takes care of this.
2864
2865 * m4.c: Remove all code conditionalized by IMPLEMENT_M4OPTS.
2866 Merge parse_args into main. Declare argv to be `char *const *',
2867 then remove superfluous casts.
2868
2869 * m4.c: Rename --no-gnu-extensions to --traditional.
2870 Reported by Ben A. Mesander.
2871
2872 * m4.c (usage): Add a status parameter. Supply one in various
2873 calls. Add --help processing. Remove -V for --version.
2874
2875 * lib/Makefile.in: Put $(CFLAGS) last in .c.o rule.
2876
2877 * lib/Makefile.in: Have an AR=ar declaration.
2878 Reported by Eric Backus.
2879 Reported by Bjorn R. Bjornsson.
2880 Reported by Tom Tromey.
2881 Reported by Kristine Lund.
2882 Reported by Marion Hakanson.
2883
2884Sat Oct 30 12:51:47 1993 Francois Pinard (pinard@icule)
2885
2886 * Makefile.in (m4.info): Use -I$(srcdir) on $(MAKEINFO).
2887 Reported by Noah Friedman.
2888
2889Mon Oct 25 14:58:48 1993 Francois Pinard (pinard@icule)
2890
2891 * Makefile.in: Remove MDEFINES and cleanup.
2892
2893Wed Jun 9 14:59:46 1993 Francois Pinard (pinard@icule)
2894
2895 * Makefile.in (dist): Replace "echo `pwd`" by a mere "pwd".
2896 Create a gzip file.
2897
2898Sat Feb 6 14:59:22 1993 Francois Pinard (pinard@icule)
2899
2900 * Makefile.in, lib/Makefile.in, check/Makefile.in: In dist goals,
2901 ensure 777 mode for directories, so older tar's will restore file
2902 modes properly.
2903
2904Sun Jan 17 15:38:05 1993 Francois Pinard (pinard@icule)
2905
2906 * Makefile.in, lib/Makefile.in: Put $(CFLAGS) after $(CPPFLAGS),
2907 so the installer can override automatically configured choices.
2908 Reported by Karl Berry.
2909
2910Fri Jan 15 16:07:00 1993 Francois Pinard (pinard@icule)
2911
2912 * lib/vfprintf.c: Stolen from Oleo distribution and adapted. The
2913 previous version was not working properly on m68k-hp-bsd4.3.
2914 Reported by Roland McGrath.
2915
2916 * lib/_doprnt.c: Stolen from Oleo distribution.
2917 * configure.in: Check for _doprnt.c if vfprintf.c selected.
2918 * lib/Makefile.in: Distribute _doprnt.c.
2919 Do not distribute regex.[ch].old anymore.
2920
2921Fri Jan 1 19:42:23 1993 Francois Pinard (pinard at icule)
2922
2923 * Makefile.in, lib/Makefile.in: Reinstate $(CPPFLAGS), use it.
2924 Richard wants it there.
2925
2926Sun Dec 27 07:01:54 1992 Francois Pinard (pinard at icule)
2927
2928 * Makefile.in: Add DEFS to MDEFINES.
2929 * lib/Makefile.in (.c.o): Remove $(CPPFLAGS).
2930 (libm4.a): Remove the library before creating it.
2931 (distclean): Remove tags and TAGS too.
2932
2933Wed Dec 23 12:46:55 1992 Francois Pinard (pinard at icule)
2934
2935 * Makefile.in (dvi, m4.dvi): New goals.
2936
2937 * builtin.c, eval.c, format.c, input.c, m4.[ch], m4.texinfo,
2938 macro.c, output.c, path.c, symtab.c: Change Copyright from
2939 1989-1992 to the explicit enumeration 1989, 1990, 1991, 1992.
2940
2941 * examples/divert.m4: Deleted, this bug has been corrected.
2942
2943 * Makefile.in (texclean, mostlyclean): New goals.
2944
2945 * Makefile.in (clean): Remove clutter from ansi2knr.
2946 Reported by Pierre Gaumond.
2947 Reported by Greg A. Woods.
2948
2949Sun Dec 20 10:40:20 1992 Francois Pinard (pinard at icule)
2950
2951 * Makefile.in: Remove $(CPPFLAGS) from the .c.o rule. The user
2952 might well use CFLAGS is s/he needs it.
2953
2954 * Makefile.in: Allow installation of info files from a separate
2955 build directory.
2956 Reported by Jason Merrill.
2957 Reported by David MacKenzie.
2958 Reported by Skip Montanaro.
2959 Reported by Erez Zadok.
2960 Reported by Assar Westerlund.
2961
2962
2963Sat Dec 19 08:21:34 1992 Francois Pinard (pinard at icule)
2964
2965 * Release 1.0.3
2966 This is still a beta release for the future GNU m4 version 1.1.
2967
2968 * lib/alloca.c: New, from elsewhere.
2969 * lib/Makefile.in: Distribute it. Define and use $(ALLOCA).
2970
2971 * m4.h: Do not define index/rindex if already defined. If
2972 FALSE/TRUE are already defined, do not redefine them, but merely
2973 define boolean typedef to int.
2974
2975 * Makefile.in: Use $(DEFS) while compiling ansi2knr.
2976 * ansi2knr.c: Rewrite #ifdef HAVE_STRING_H || STDC_HEADERS,
2977 because some C compilers do not like connectives with #ifdef.
2978 * m4.h: Define `volatile' only if __GNUC__, instead of once for
2979 __GNUC__ and once for __STDC__.
2980 * lib/regex.h: Leave const alone, AC_CONST will take care of it.
2981
2982 * checks/Makefile.in: Use .all_stamp instead of $(CHECKS) for
2983 Makefile dependencies. Without it, make keeps destroying and
2984 remaking $(CHECKS) in a loop (why?). Distribute .all_stamp.
2985
2986 * m4.h, m4.c, builtin.c, output.c: Change all divertion/DIVERTION
2987 to diversion/DIVERSION, this was a spelling error.
2988
2989 * m4.c: Declare version[], remove #include "version.h".
2990 * version.h: Deleted.
2991 * Makefile.in: Remove references to version.h.
2992
2993 * output.c (shipout_text): Centralize all `#line NUM ["FILE"]'
2994 production, by using a simpler and more robust algorithm. This
2995 solves the problem of synclines sometimes written in the middle of
2996 an output line. Delete sync_line() and output_lines variable.
2997 * m4.h: Remove sync_line prototype and output_lines declaration.
2998 * input.c (next_char), output.c (shipout_text): Remove references
2999 to output_lines.
3000 * input.c (push_file, pop_file): Merely put the value -1 in
3001 output_current_line instead of calling sync_line, for delaying a
3002 single `#line NUM FILE' before next output line. Do not test
3003 for sync_output, because this is unnecessary clutter.
3004 * output.c (make_divertion, insert_divertion): Idem.
3005 * input.c: Rename must_advance_line to start_of_input_line, for
3006 consistency.
3007
3008 * debug.c (trace_header): Select a new debug line format, which
3009 better complies with GNU standards for formatting error messages.
3010 With option `-dfl', M-x next-error might be used on the output.
3011 * m4.c (vmesg): Adjust format of error output to GNU standards.
3012 * m4.texinfo: Adjust examples for `make check' to work.
3013
3014 * m4.h, builtin.c, debug.c, input.c, macro.c, path.c: Use upper
3015 case for enum debug_info constants, which were all lower case.
3016
3017 * builtin.c (m4_regexp, m4_patsubst): Use re_search instead of
3018 re_search_2.
3019 * lib/regex.[ch]: Use new version from textutils 1.3.6, with some
3020 collected patches. I tried a few times using newer regex.[ch], it
3021 mysteriously stopped aborting with this one. Insecure feeling...
3022 * lib/Makefile.in: Distribute regex.[ch].old, just in case!
3023
3024Fri Dec 18 11:08:03 1992 Francois Pinard (pinard at icule)
3025
3026 * m4.c: Change `--no-warnings' to `--silent'.
3027 Reported by David MacKenzie.
3028
3029 * m4.c: Put all M4OPTS code upon IMPLEMENT_M4OPTS control, and
3030 leave it off for now. See comment in m4.c for justification.
3031 Reported by David MacKenzie.
3032
3033 * configure.in: Replace AC_USG by AC_HAVE_HEADERS(string.h).
3034 * m4.h, ansi2knr.c, lib/regex.h: Replace USG by HAVE_STRING_H.
3035
3036 * Makefile.in: Add a new `info' goal. Use macro MAKEINFO.
3037
3038 * Makefile.in: Ensure recursive cleaning is done before local
3039 cleaning for all clean goals.
3040
3041 * builtin.c (ntoa): Ensure the value is always interpreted as a
3042 signed quantity, whatever the radix is.
3043
3044Wed Nov 18 07:57:19 1992 Jim Meyering (meyering@idefix)
3045
3046 * builtin.c, format.c, input.c: Split long lines.
3047 * m4.c: Use typedef macro_definition instead of struct
3048 macro_definition.
3049 * symtab.c: Use typedef symbol instead of struct symbol.
3050
3051Tue Nov 17 01:58:40 1992 Francois Pinard (pinard at icule)
3052
3053 * *.[ch]: Remove all trailing whitespace, in code and comments.
3054
3055 * configure.in: Find some awk.
3056 * Makefile.in: Add $(AWK) to MDEFINES.
3057 * checks/Makefile.in: Transmit $(AWK) to get_them.
3058 * checks/get_them: Use $AWK instead of gawk. Add a close in the
3059 awk script when switching files, because without this, mawk runs
3060 out of file descriptors.
3061
3062Mon Nov 16 20:42:56 1992 Francois Pinard (pinard at icule)
3063
3064 * Makefile.in (realclean): Delete m4.info*.
3065 Reported by Jim Meyering.
3066
3067 * Makefile.in: Adjust and link with checks/Makefile.
3068 * checks/Makefile.in: New.
3069 * configure.in: Output checks/Makefile.
3070
3071 * checks/get_them: Have the dnl header of each test more
3072 recognizable by next-error, also use a better message.
3073
3074Mon Nov 16 07:48:52 1992 Jim Meyering (meyering@idefix)
3075
3076 * m4.h [__GNUC__]: Use __volatile__ instead of `volatile.'
3077 And use that only if __GNUC__ since we're using it's GCC-specific
3078 semantics that tell the compiler the associated function doesn't
3079 return.
3080
3081 * builtin.c (substitute): Don't use character as an array index.
3082 (dumpdef_cmp): Make formal arguments `const void *' to avoid
3083 warnings with gcc -W -Wall on systems with qsort prototype.
3084 (m4_errprint): Cast obstack_finish to `char *' to avoid warnings
3085 from gcc -W -Wall.
3086
3087 * eval.c (most functions): Add parentheses to assignments used
3088 as truth values go avoid warnings from gcc -Wall.
3089
3090 * input.c, m4.c, output.c, path.c, symtab.c: Declare static
3091 any functions that don't need external scope.
3092
3093 * builtin.c, debug.c, format.c, m4.c, m4.h, macro.c, symtab.c
3094 (many functions and arrays): Declare `const'.
3095
3096Sun Nov 15 09:42:09 1992 Francois Pinard (pinard at icule)
3097
3098 * *.[ch]: Rename nil to NULL, using the declaration from <stdio.h>,
3099 removing the declaration from m4.h. Also rename false to FALSE
3100 and true to TRUE.
3101
3102 * lib/Makefile.in (Makefile): New goal.
3103
3104 * Makefile.in, lib/Makefile.in: Add a .c.o rule, so CFLAGS is not
3105 so heavily loaded. It gets more easily overridable, calling make.
3106 Reported by Jim Meyering.
3107
3108 * Makefile.in (dist): Get .fname from the current directory name,
3109 instead of from version.h. I need updating many files manually,
3110 when the version changes, version.h is just one of them.
3111
3112Sat Nov 14 11:01:20 1992 Francois Pinard (pinard at icule)
3113
3114 * m4.h: Remove the tag `boolean' on the enum introducing typedef
3115 `boolean'. This tag conflicts with <sys/types.h> on SVR4.
3116 Reported by Tom McConnell.
3117
3118Fri Nov 13 00:12:50 1992 Francois Pinard (pinard at icule)
3119
3120 * m4.texinfo: Correct the examples for 33.divert, 38.divnum,
3121 39.cleardiv, which were describing missing or spurious newlines.
3122 Modify examples 52.eval, 53.esyscmd and 54.sysval so the results
3123 do not depend on machine word size, `/bin/false' implementation,
3124 or `wc' output format. `make check' is more dependable, now.
3125
3126 * checks/check_them: Summarize the failed tests by listing their
3127 name, at end. If none, issue `All checks successful'. Output
3128 `Checking' instead of `Input file:'.
3129
3130 * checks/get_them, checks/check_them: Reindented.
3131
3132 * Makefile.in (dist): chmod a+r before making the tar file.
3133
3134Thu Nov 12 14:42:57 1992 Francois Pinard (pinard at icule)
3135
3136 * builtin.c (m4_dnl): Diagnose any parameter to `dnl'.
3137
3138 * input.c (next_token): Reinitialize token_buttom just after using
3139 it as a watermark with obstack_free. Or else, a future token, big
3140 enough for triggering reallocation of the obstack chunk, could
3141 void the initialized value of token_buttom, later causing panic in
3142 obstack_free. Rename token_buttom to token_bottom everywhere.
3143
3144 * m4.h: Before declaring errno, first include <errno.h> and
3145 ensure that it does not define errno.
3146 Reported by Richard Stallman.
3147
3148Wed Nov 11 17:40:35 1992 Francois Pinard (pinard at icule)
3149
3150 * builtin.c: Define and use DECLARE macro for builtins.
3151
3152 * builtin.c (m4_ifelse): Avoid any diagnostic when exactly one
3153 argument, this is a common idiom for introducing long comments.
3154
3155 * builtin.c (m4_ifelse): If 3n + 2 arguments, diagnose missing
3156 arguments. The last argument was silently ignored.
3157
3158 * m4.c (cmd_error): Add a missing semicolon before va_end().
3159
3160Tue Nov 10 08:57:05 1992 Francois Pinard (pinard at icule)
3161
3162 * Makefile.in: Now handle protoized sources. Define and use U.
3163 Compile and use ansi2knr with old compilers. Update DISTFILES.
3164 Add `aclocal.m4' to `configure' dependencies.
3165 * ansi2knr.c: New, from Ghostscript distribution.
3166 * configure.in: Define U through FP_PROTOTYPES for old compilers.
3167 Add AC_ISC_POSIX, AC_CONST, AC_SIZE_T.
3168 * aclocal.m4: New, provide FP_PROTOTYPES.
3169 * m4.h: Conditionnaly protoized through Args, save for varags.
3170 * builtin.c: Protoized. Then:
3171 Include <sys/types.h> if size_t is not defined, before "regex.h".
3172 (m4_ifelse): Fetch built-in name properly for diagnostic.
3173 (m4_dumpdef): Remove wrong (char *) cast calling dump_symbol.
3174 (m4_regexp): Add const to `msg' declaration.
3175 (m4_patsubst): Add const to `msg' declaration.
3176 * debug.c: Protoized, save for varargs.
3177 * eval.c: Protoized.
3178 * format.c: Protoized.
3179 * input.c: Protoized.
3180 * m4.c: Protoized, save for varargs. Then:
3181 (xfree): Accept void * instead of char *.
3182 (xmalloc): Return void * instead of char *.
3183 (xrealloc): Accept and return void * instead of char *.
3184 * macro.c: Protoized.
3185 * output.c: Protoized.
3186 * path.c: Protoized. Then cast some (char *) over xmalloc's.
3187 * symtab.c: Protoized.
3188
3189Fri Nov 6 02:05:21 1992 Francois Pinard (pinard at icule)
3190
3191 * m4.texinfo: Remove directory from diagnostics in 30.include,
3192 51.eval, 56.errprint and 57.m4exit tests.
3193
3194 * m4.h: Remove declarations for int or void system functions, they
3195 cause more conflicting trouble than they make good.
3196
3197 * configure.in: Avoid configuration header file. Add some tests.
3198 * m4.h: Remove #include "config.h".
3199 * Makefile.in, lib/Makefile.in: Implement Autoconf interface.
3200 Then, rewritten for better compliance with GNU standards.
3201
3202Thu Nov 5 12:37:13 1992 Francois Pinard (pinard at icule)
3203
3204 * format.c (format): Avoid syntax error if not HAVE_EFGCVT,
3205 because of a misplaced #endif.
3206
3207 * Many *.[hc] files: Correct intra-line spacing here and there,
3208 according to GNU indent 1.6 advice.
3209
3210 * configure.in: New, using Autoconf 1.2.
3211 * m4.h: Reverse NO_MEMORY_H to NEED_MEMORY_H.
3212 * Delete old configure.in, configure, etc/configure.in,
3213 etc/configure, lib/configure.in, lib/configure and config/*.
3214 Reported by Jason Merrill.
3215
3216 * symtab.c (hash): Change (char) NULL to '\0'.
3217 Reported by Jason Merrill.
3218
3219 * Delete .vers, etc/newdist.sh, etc/newvers.sh and
3220 etc/nextvers.sh. Release numbers will be edited `by hand'.
3221 * version.h: De-automatize, force value in.
3222
3223 * m4.c: Changes in order to use a newer getopt.h.
3224 Reported by David MacKenzie.
3225
3226 * checks/: New name for examples/.
3227 * checks/get_them: New location for etc/get_examples.
3228 * checks/check_them: New location for etc/check_examples.
3229 * Makefile.in, checks/get_them, checks/check_them: Adjust.
3230 * lib/vfprintf.c: New location for etc/vfprintf.c.
3231 * Delete empty etc/.
3232 * examples/: New name for test/.
3233
3234Tue Mar 10 00:29:46 1992 Francois Pinard (pinard at icule)
3235
3236 * Makefile.in (check): Add m4 as dependency.
3237
3238 * m4.c: Accept --no-warnings instead of --no_warnings, and
3239 --no-gnu-extensions instead of --no_gnu_extensions. Make the
3240 usage message more informative.
3241 Reported by David MacKenzie.
3242
3243Mon Mar 9 14:53:40 1992 Francois Pinard (pinard at icule)
3244
3245 * etc/check_examples: New name for check_examples.sh.
3246 * etc/get_examples: New name for get_examples.sh.
3247 * Makefile.in, etc/Makefile.in: Use new names.
3248
3249 * Makefile.in: Transmit $(CC) while making in lib.
3250
3251 * Many *.[hc] files: GNU indent'ed, with further fine tuning of
3252 code disposition by hand.
3253
3254Sun Mar 8 11:01:55 1992 Francois Pinard (pinard at icule)
3255
3256 * m4.h: Delete definitions for abort() and exit().
3257 Reported by Richard Stallman.
3258
3259 * config/hmake-unicos, config/s-unicos.h: New files.
3260 Reported by Hal Peterson.
3261
3262 * eval.c (exp_term): Have N^0 return 1.
3263 Reported by Michael Fetterman.
3264
3265 * eval.c, input.c, m4.h: Remove last comma in enums.
3266 Reported by Mike Lijewski.
3267
3268 * Transfer of maintenance duties from Rene' to Franc,ois.
3269
3270
3271Thu Oct 24 15:18:46 1991 Rene' Seindal (seindal at diku.dk)
3272
3273 * Release 1.0. Many thanks to those, who provided me with bug
3274 reports and feedback.
3275
3276 * Uses GNU configure, taken from the gdb distribution.
3277
3278 * Uses GNU getopt(), with long option names.
3279
3280 * The -Q/+quiet option is added, which suppresses warnings about
3281 missing or superflous arguments to built-in macros.
3282
3283 * Added default options via the M4OPTS environment variable.
3284
3285 * The built-in format can now be configured to use sprintf as
3286 the formatting engine, for systems without [efg]cvt(3).
3287
3288 * GNU library code is moved to the ./lib subdirectory; other
3289 utility files are now in ./etc.
3290
3291 * Several minor bugs have been fixed.
3292
3293
3294Fri Jul 26 15:28:42 1991 Rene' Seindal (seindal at diku.dk)
3295
3296 * Fixed various bugs. Release 0.99, manual 0.09. Many thanks to
3297 Francois Pinard and Roland H. Pesch for providing me with reports.
3298
3299 * The builtins incr and decr are now implemented without use of
3300 eval.
3301
3302 * The builtin indir is added, to allow for indirect macro calls
3303 (allows use of "illegal" macro names).
3304
3305 * The debugging and tracing facilities has been enhanced
3306 considerably. See the manual for details.
3307
3308 * The -tMACRO option is added, marks MACRO for tracing as soon
3309 as it is defined.
3310
3311 * Builtins are traced after renaming iff they were before.
3312
3313 * Named files can now be undiverted.
3314
3315 * The -Nnum option can be used to increase the number of
3316 divertions available.
3317
3318 * Calling changecom without arguments now disables all comment
3319 handling.
3320
3321 * The function m4_patsubst() is now consistently declared
3322 static.
3323
3324 * A bug in dnl is fixed.
3325
3326 * A bug in the multi-character quoting code is fixed.
3327
3328 * Several typos in the manual has been corrected. More probably
3329 persist.
3330
3331 * The m4.info file is now installed along with the program.
3332
3333
3334Thu Nov 15 21:51:06 1990 Rene' Seindal (seindal at diku.dk)
3335
3336 * Updated and enhanced version. Release 0.75, manual 0.07.
3337
3338 * Implemented search path for include files (-I option and
3339 M4PATH envronment variable).
3340
3341 * Implemented builtin "format" for printf-like formatting.
3342
3343 * Implemented builtin "regexp" for searching for regular
3344 expressions.
3345
3346 * Implemented builtin "patsubst" for substitution with regular
3347 expressions.
3348
3349 * Implemented builtin "esyscmd", which expands to a shell
3350 commands output.
3351
3352 * Implemented "__file__" and "__line__" for use in error
3353 messages.
3354
3355 * Implemented character ranges in "translit".
3356
3357 * Implemented control over debugging output.
3358
3359 * Implemented multi-character quotes.
3360
3361 * Implemented multi-character comment delimiters.
3362
3363 * Changed predefined macro "gnu" to "__gnu__".
3364
3365 * Changed predefined macro "unix" to "__unix__", when the -G
3366 option is not used. With -G, "unix" is still defined.
3367
3368 * Changed "shift", "$@" and "$*" to not insert spaces afters
3369 commas.
3370
3371 * Added program name to error messages.
3372
3373 * Fixed two missing null bytes bugs.
3374
3375
3376Mon Jan 22 21:08:52 1990 Rene' Seindal (seindal at diku.dk)
3377
3378 * Initial beta release. Release 0.50, manual 0.05.
3379
3380 -----
3381
3382 $Revision: 1.1.1.1.2.224 $ $Date: 2006/11/21 04:08:44 $
3383
3384 Local Variables:
3385 coding: utf-8
3386 End:
3387
3388 Copyright (C) 1990, 1991, 1992, 1993, 1994, 2000, 2001, 2003,
3389 2005, 2006 Free Software Foundation, Inc.
3390
3391 Copying and distribution of this file, with or without
3392 modification, are permitted provided the copyright notice
3393 and this notice are preserved.
Note: See TracBrowser for help on using the repository browser.