-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathChangeLog.old
12324 lines (10111 loc) · 465 KB
/
ChangeLog.old
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2010-03-02 Giuseppe Scrivano <gscrivano@gnu.org> (tiny change)
Support bootstrap --gnulib-srcdir=DIR.
* bootstrap: Add --gnulib-srcdir option, which overrides
GNULIB_SRCDIR, for consistency with gnulib bootstrap.
2010-03-01 Eric Blake <eblake@redhat.com>
Mention release of version 1.4.14.
* gnulib: Update to latest.
* README: Drop CVS mention.
* HACKING: Tweak release instructions.
* NEWS: Mention the release.
* .prev-version: Record previous version.
* cfg.mk (old_NEWS_hash): Auto-update.
2010-02-24 Eric Blake <eblake@redhat.com>
Improve parsing example.
* doc/m4.texinfo (Input processing): Double-quote argument to
translit, for robustness.
* THANKS: Update.
Reported by Chris Penev.
2010-01-29 Eric Blake <ebb9@byu.net>
Document upcoming release.
* gnulib: Update to latest.
* doc/m4.texinfo (History): Mention 1.4.14.
* Makefile.am (src/getopt.h): Drop dependence on now-obsolete
link-warning.h.
2010-01-08 Eric Blake <ebb9@byu.net>
Address remaining 'make syntax-check' findings.
* gnulib: Update to latest.
* Makefile.am (tests/package.m4): Avoid @@ substitution.
(src_m4_LDADD): Link with libiconv.
* m4/m4private.h (STREQ): New macro.
* m4/resyntax.c (m4_regexp_syntax_encode): Use it.
* src/main.c (process_file): Likewise.
(includes): Drop unused header.
* m4/macro.c (m4_arg_equal): Adjust comment.
* m4/syntax.c: Likewise.
* m4/system_.h: Avoid useless preprocessor parenthesis.
* ltdl/m4/stackovf.m4 (M4_SYS_STACKOVF): Likewise.
* src/stackovf.c: Likewise.
(setup_stackovf_trap): Mark diagnostics.
* modules/mpeval.c (includes): Move quotearg.h inclusion...
* modules/evalparse.c (includes): ...to where it is used.
* cfg.mk (local-checks-to-skip): Exempt tests that cause spurious
failures, but first fix what they were intended to detect.
(_makefile_at_at_check_exceptions): Allow an exception.
2010-01-07 Eric Blake <ebb9@byu.net>
Use correct license on auxiliary documentation.
* gnulib: Update to latest.
* AUTHORS: Use GFDL 1.3, not 1.2.
* README-alpha: Likewise.
* README: Likewise.
* THANKS: Likewise.
* doc/STYLE: Likewise.
* modules/README: Likewise.
* NEWS: Place under GFDL.
* TODO: Likewise.
* cfg.mk (old_NEWS_hash): Update.
Address 'make sc_error_message_uppercase' failures.
* m4/output.c (m4_freeze_diversions): Silence false positive.
* src/main.c (main): Use 'warning', not 'Warning', in messages.
* m4/utility.c (m4_verror_at_line): Likewise.
* doc/m4.texinfo (Operation modes, Macro Arguments, Undefine)
(Defn, Pushdef, Indir, Builtin, Ifdef, Ifelse, Dumpdef, Trace)
(Debuglen, Debugfile, Dnl, Changeresyntax, Standard Modules)
(Index macro, Regexp, Substr, Translit, Patsubst, Format, Incr)
(Eval, Mkstemp, Syncoutput, Improved forloop)
(Improved fatal_error): Adjust expected output.
* tests/builtins.at (define, mkdtemp, mkstemp): Likewise.
* tests/freeze.at (loading format 1, reloading unknown builtin):
Likewise.
* tests/macros.at (Arity and defn, 'Arity, defn, and freeze')
(pushdef/popdef): Likewise.
* tests/null.err: Likewise.
* tests/options.at (deprecated options, POSIXLY_CORRECT)
(--fatal-warnings, --regexp-syntax, --syncoutput): Likewise.
* tests/others.at (nul character, stdin seekable): Likewise.
* tests/modules.at (AT_CHECK_M4_MODTEST, modules: text):
Likewise.
Address 'make sc_cast_of_argument_to_free' failures.
* m4/m4private.h (DELETE): Adjust comment and fix parentheses.
* m4/m4.c (m4_delete): Use it to avoid warning.
* m4/module.c (install_builtin_table, module_remove): Likewise.
* m4/symtab.c (m4_symbol_value_delete, m4_symbol_value_copy):
Likewise.
* .x-sc_cast_of_argument_to_free: New file.
* Makefile.am (syntax_check_exceptions): Distribute exceptions.
More whitespace cleanup.
* HACKING: Nuke trailing whitespace.
* examples/WWW/Makefile: Likewise.
* examples/WWW/_footer.htm: Likewise.
* examples/WWW/_header.htm: Likewise.
* examples/WWW/m4lib/bugs.m4: Likewise.
* examples/WWW/m4lib/html.m4: Likewise.
* examples/WWW/m4lib/menu.m4: Likewise.
* examples/WWW/m4lib/visions.m4: Likewise.
* examples/esyscmd.m4: Likewise.
* examples/fstab.m4: Avoid space-tab.
* examples/patsubst.m4: Likewise.
* NEWS: Prefer space over tab for alignment.
* THANKS: Likewise.
* TODO: Likewise.
* bootstrap: Likewise.
* configure.ac: Likewise.
* ltdl/m4/stackovf.m4: Likewise.
* m4/hash.c: Likewise.
* m4/hash.h: Likewise.
* m4/input.c: Likewise.
* m4/m4.c: Likewise.
* m4/m4module.h: Likewise.
* m4/m4private.h: Likewise.
* m4/macro.c: Likewise.
* m4/module.c: Likewise.
* m4/output.c: Likewise.
* m4/path.c: Likewise.
* m4/resyntax.c: Likewise.
* m4/symtab.c: Likewise.
* m4/syntax.c: Likewise.
* m4/system_.h: Likewise.
* modules/evalparse.c: Likewise.
* modules/format.c: Likewise.
* modules/gnu.c: Likewise.
* modules/import.c: Likewise.
* modules/load.c: Likewise.
* modules/m4.c: Likewise.
* modules/m4.h: Likewise.
* modules/modtest.c: Likewise.
* modules/mpeval.c: Likewise.
* modules/perl.c: Likewise.
* modules/shadow.c: Likewise.
* modules/stdlib.c: Likewise.
* modules/time.c: Likewise.
* modules/traditional.c: Likewise.
* src/freeze.c: Likewise.
* src/main.c: Likewise.
* src/stackovf.c: Likewise.
* tests/stackovf.test: Likewise.
* doc/STYLE: Mention the change.
2010-01-05 Eric Blake <ebb9@byu.net>
Document new indentation policy.
* HACKING: Document indentation policy.
* .x-sc_prohibit_tab_based_indentation: New file.
* cfg.mk (sc_prohibit_tab_based_indentation): New rule.
* Makefile.am (syntax_check_exceptions): Ship exception.
Switch to indentation by space, not tab.
* .gitmodules: Convert leading tabs to spaces.
* TODO: Likewise.
* bootstrap: Likewise.
* configure.ac: Likewise.
* examples/WWW/m4lib/html.m4: Likewise.
* examples/WWW/m4lib/layout.m4: Likewise.
* examples/WWW/m4lib/menu.m4: Likewise.
* ltdl/m4/debug.m4: Likewise.
* ltdl/m4/gmp.m4: Likewise.
* ltdl/m4/m4-obstack.m4: Likewise.
* ltdl/m4/stackovf.m4: Likewise.
* m4/builtin.c: Likewise.
* m4/debug.c: Likewise.
* m4/hash.c: Likewise.
* m4/hash.h: Likewise.
* m4/input.c: Likewise.
* m4/m4.c: Likewise.
* m4/m4module.h: Likewise.
* m4/m4private.h: Likewise.
* m4/macro.c: Likewise.
* m4/module.c: Likewise.
* m4/output.c: Likewise.
* m4/path.c: Likewise.
* m4/resyntax.c: Likewise.
* m4/symtab.c: Likewise.
* m4/syntax.c: Likewise.
* m4/utility.c: Likewise.
* modules/evalparse.c: Likewise.
* modules/format.c: Likewise.
* modules/gnu.c: Likewise.
* modules/load.c: Likewise.
* modules/m4.c: Likewise.
* modules/m4.h: Likewise.
* modules/mpeval.c: Likewise.
* modules/perl.c: Likewise.
* modules/stdlib.c: Likewise.
* modules/time.c: Likewise.
* src/freeze.c: Likewise.
* src/m4.h: Likewise.
* src/main.c: Likewise.
* src/stackovf.c: Likewise.
* tests/builtins.at: Likewise.
* tests/freeze.at: Likewise.
* tests/generate.awk: Likewise.
* tests/modules.at: Likewise.
* tests/others.at: Likewise.
* tests/stackovf.test: Likewise.
* tests/testsuite.at: Likewise.
Update copyright year.
All files impacted, via 'make update-copyright'. Additionally:
* .gitignore: Ignore backup files.
Prepare to bulk update copyright year.
* gnulib: Update.
* ltdl/m4/gnulib-cache.m4: Import update-copyright module.
* cfg.mk (update-copyright-env): Enforce longhand behavior.
* .x-update-copyright: New file.
* Makefile.am (syntax_check_exceptions): Distribute exception.
* ltdl/m4/debug.m4: Add FSF copyright.
* ltdl/m4/m4-error.m4: Fix FSF name in copyright.
* ltdl/m4/m4-getopt.m4: Likewise.
* ltdl/m4/m4-gettext.m4: Likewise.
* ltdl/m4/m4-obstack.m4: Likewise.
* ltdl/m4/m4-regex.m4: Likewise.
* ltdl/m4/m4-rename.m4: Likewise.
* ltdl/m4/m4-syscmd.m4: Likewise.
* modules/modtest.m4: Likewise.
* modules/perl.m4: Likewise.
* modules/shadow.m4: Likewise.
* modules/stdlib.m4: Likewise.
* modules/time.m4: Likewise.
* modules/time2.m4: Likewise.
* tests/iso8859.m4: Likewise.
Use gnulib maintainer-makefile module.
* ltdl/m4/gnulib-cache.m4: Import maintainer-makefile module.
* cfg.mk (local-checks-to-skip): Drop changelog-check; add
sc_cast_of_x_alloc_return_value.
(gnu_ftp_host-alpha, gnu_ftp_host-beta, gnu_ftp_host-major)
(gnu_rel_host): Delete; provided by maint.mk.
(old_NEWS_hash): New macro.
* .prev-version: New file.
* .x-sc_require_config_h: Likewise.
* .x-sc_require_config_h_first: Likewise.
* Makefile.am (syntax_check_exceptions, EXTRA_DIST): Ship new
files.
* maint.mk: Remove from version control; use gnulib instead.
* .gitignore: Update.
Update to latest gnulib.
* gnulib: Update.
* ltdl/m4/gnulib-cache.m4: Import xoset.
* m4/output.c (includes): Ensure that gnulib oset usage will
call xalloc_die on memory failure.
* Makefile.am (src/getopt.h): Update snippet from gnulib.
(LINK_WARNING_H, ARG_NONNULL_H): New macros.
Fix testsuite failure on newer glibc.
* tests/testsuite.at (AT_CHECK_M4): Tolerate alternate getopt
spellings.
* tests/options.at (deprecated options, unknown option)
(--debugmode): Adjust expected output accordingly.
Reported by Ralf Wildenhues.
2009-11-26 Eric Blake <ebb9@byu.net>
Update to newer gnulib.
* gnulib: Update.
* ltdl/m4/gnulib-cache.m4: Import inttypes, setenv, and unsetenv
modules.
* modules/m4.c (m4_make_temp): Adjust gen_tempname client.
* bootstrap (src_modules): Pick up getopt-gnu and its
dependencies.
* configure.ac (gl_VERSION_ETC): Support ./configure
--with-packager.
(AC_CHECK_FUNCS_ONCE): Rely on gnulib for setenv, unsetenv.
* ltdl/m4/m4-getopt.m4: Rewrite to match current gnulib.
* Makefile.am (src/getopt.h): Likewise.
* modules/stdlib.c (setenv, unsetenv): Rely on gnulib.
2009-08-24 Eric Blake <ebb9@byu.net>
Pick up gnulib fixes for sub-process execution.
* gnulib: Update.
* tests/others.at (stdin and stdout closed): New test, to avoid
regression introduced on 1.4 branch on 2008-07-17.
* NEWS: Document the change.
A status of 127 does not always imply esyscmd failure.
* modules/gnu.c (esyscmd): Silence gnulib message; regression
introduced 2009-03-13.
* doc/m4.texinfo (Sysval): Test this.
* NEWS: Document the change.
2009-06-26 Eric Blake <ebb9@byu.net>
Use bitrotate for hashing.
* gnulib: Update to latest.
* ltdl/m4/gnulib-cache.m4: Import bitrotate module.
* m4/hash.c (m4_hash_string_hash): Use it.
Fix description of limits on diversions.
* doc/m4.texinfo (Diversions): Fix grammar. Be less pessimistic
about limitations.
* THANKS: Update.
Reported by Elias Benali.
2009-06-17 Eric Blake <ebb9@byu.net>
Stress test for hash resizing.
* tests/builtins.at (define): Enhance test.
2009-06-15 Eric Blake <ebb9@byu.net>
Document why bootstrap might touch state of tree.
* bootstrap: Fix typos. Add comment.
* HACKING: Add notes about this scenario.
* gnulib: Update to latest version.
* .gitignore: Track gnulib changes.
Drop .cvsignore and redundant .gitignore files.
* .cvsignore: Delete. We are moving further away from CVS.
* build-aux/.cvsignore: Likewise.
* doc/.cvsignore: Likewise.
* examples/.cvsignore: Likewise.
* ltdl/.cvsignore: Likewise.
* m4/.cvsignore: Likewise.
* modules/.cvsignore: Likewise.
* po/.cvsignore: Likewise.
* src/.cvsignore: Likewise.
* tests/.cvsignore: Likewise.
* .gitignore: Consolidate from other files.
* build-aux/.gitignore: Delete, now that it is consolidated.
* doc/.gitignore: Likewise.
* examples/.gitignore: Likewise.
* ltdl/.gitignore: Likewise.
* m4/.gitignore: Likewise.
* modules/.gitignore: Likewise.
* po/.gitignore: Likewise.
* src/.gitignore: Likewise.
* tests/.gitignore: Likewise.
* bootstrap: Simplify accordingly. Sync gnulib tree prior to
libtoolize, to avoid libtool overwriting config.guess.
Avoid compiler warning.
* m4/macro.c (process_macro): Use correct type for isdigit.
2009-06-13 Eric Blake <ebb9@byu.net>
Avoid snprintf link failures.
* ltdl/m4/gnulib-cache.m4: Import snprintf-posix module.
Reported by Ralf Wildenhues.
2009-06-12 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Avoid pointer arithmetic on `void *'.
* modules/m4.c (dump_symbol_CB): Cast obstack_base return value
to `char *' before using it.
2009-05-04 Eric Blake <ebb9@byu.net>
Silence verbose testsuite runs.
* tests/testsuite.at (m4_version_prereq): Bump to recent
autoconf.git version where stdout-nolog was added.
* tests/builtins.at (esyscmd, syscmd): Use new stdout-nolog.
* tests/freeze.at (AT_TEST_FREEZE): Likewise.
* tests/others.at (stderr closed): Likewise.
* HACKING: Mention new requirement.
* bootstrap: Likewise.
Reported by Ralf Wildenhues.
2009-04-21 Eric Blake <ebb9@byu.net>
Be more explicit about default quoting characters.
* doc/m4.texinfo (Quoted strings): Call out characters by name.
* THANKS: Update.
Suggested by Mehul Sanghvi.
2009-04-16 Eric Blake <ebb9@byu.net>
Use gnulib rename module.
* ltdl/m4/gnulib-cache.m4: Import rename module. At the moment,
we don't tickle either of the platform bugs that it fixes, but it
is better to be safe than sorry.
Require newer automake features.
* configure.ac (AM_INIT_AUTOMAKE): Add dist-xz, color-tests,
parallel-tests, and silent-rules. Drop dist-lzma.
* HACKING: Update minimum requirements.
* gnulib: Update to latest version.
Mention release of 1.4.13.
* NEWS: Update to match release on branch-1.4.
* doc/m4.texinfo (History): Update release history.
(copying): Finish conversion to GFDL 1.3, started 2008-11-04.
2009-03-23 Eric Blake <ebb9@byu.net>
Exploit git submodule by adding appropriate symlinks.
* bootstrap: No longer copy files from gnulib.
* COPYING: Change to symlink pointing into gnulib.
* INSTALL: Likewise.
* build-aux/compile: Likewise.
* build-aux/config.guess: Likewise.
* build-aux/config.sub: Likewise.
* build-aux/depcomp: Likewise.
* build-aux/install-sh: Likewise.
* build-aux/mdate-sh: Likewise.
* build-aux/missing: Likewise.
* build-aux/texinfo.tex: Likewise.
* .cvsignore: Reflect these changes.
* .gitignore: Likewise.
* build-aux/.cvsignore: New file.
* build-aux/.gitignore: Likewise.
Make gnulib a git submodule.
* .gitmodules: New file.
* gnulib: Record which version of gnulib has been tested.
* bootstrap: Aid in submodule usage.
* cfg.mk (gnulib_dir): Alter default location of gnulib.
* HACKING: Mention how to use submodule.
2009-03-21 Eric Blake <ebb9@byu.net>
Use memcmp2 to simplify lexicographic comparisons.
* ltdl/m4/gnulib-cache.m4: Import memcmp2.
* modules/m4.c (dumpdef_cmp_CB): Use it.
2009-03-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Fix m4.1 build race, exposed by parallelism through GNUmakefile.
* Makefile.am (SUBDIRS): Add doc.
(Documentation rules): Move ...
* doc/Makefile.am: ... to this new file.
* configure.ac (AC_CONFIG_FILES): Generate doc/Makefile.
2009-03-13 Eric Blake <ebb9@byu.net>
Try to tolerate spaces in directory names in testsuite.
* tests/null.m4: Provide shell quoting, in case __program__
contains spaces.
Fix awk script portability.
* checks/get-them: In gsub, properly escape {.
Reported by Gary V. Vaughan.
Make bootstrap easier on Solaris.
* bootstrap: Add GNULIB_SRCDIR. Useful when a wrapper script
gnulib-tool exists earlier on the path to work around /bin/sh
failure in parsing $GNULIB_SRCDIR/gnulib-tool.
2009-03-13 Eric Blake <ebb9@byu.net>
Allow configuration choice in syscmd shell.
* ltdl/m4/m4-syscmd.m4: New file.
* configure.ac (M4_SYSCMD): Use it to provide
--with-syscmd-shell.
(AC_CHECK_HEADERS_ONCE): No longer need to worry about
<sys/wait.h>.
* modules/m4.c (syscmd): Use it to avoid hard-coding the shell
location.
* modules/gnu.c (esyscmd): Likewise.
* doc/m4.texinfo (Syscmd, Esyscmd): Document this.
* README: Document new configure option.
* NEWS: Likewise.
Use gnulib pipe module instead of popen(3).
* ltdl/m4/gnulib-cache.m4: Import pipe and wait-process modules.
* modules/gnu.c (M4_SYSVAL_EXITBITS, M4_SYSVAL_TERMSIGBITS):
Delete.
(esyscmd): Rewrite with pipe module.
Resolves a failure on AIX, reported by Gary V. Vaughan.
Use gnulib execute module instead of system(3).
* ltdl/m4/gnulib-cache.m4: Import execute module.
* m4/utility.c (m4_info_name): New function.
* m4/m4module.h (m4_info_name): New prototype.
* modules/m4.c (syscmd): Rewrite with execute module.
(M4_SYSVAL_EXITBITS, M4_SYSVAL_TERMSIGBITS, m4_sysval): Move
computation...
* modules/gnu.c (M4_SYSVAL_EXITBITS, M4_SYSVAL_TERMSIGBITS)
(esyscmd): ...here.
Resolves a failure on AIX, reported by Gary V. Vaughan.
2009-03-05 Eric Blake <ebb9@byu.net>
Improve web-manual maintainer rule.
* maint.mk (web-manual): Factor package-specific detail...
* cfg.mk (manual_title): ...to new variable.
2009-02-23 Eric Blake <ebb9@byu.net>
Speed up translit when from argument is short.
* modules/m4.c (translit): Use memchr2 when possible.
* tests/builtins.at (translit): Add tests.
* NEWS: Document this.
2009-02-18 Eric Blake <ebb9@byu.net>
Prefer buffer over byte operations.
* modules/format.c (format): Use memchr for speed.
* modules/gnu.c (substitute): Likewise.
* m4/macro.c (locate_dollar): Inline into only caller...
(process_macro): ...and rearrange for readability.
* m4/input.c (consume_buffer): Allow C++ compilation.
* doc/m4.texinfo (Changesyntax): Enhance test.
Speed up esyscmd with buffer reads.
* modules/gnu.c (esyscmd): Read blocks directly into obstack,
rather than repeatedly reading bytes. Detect read errors.
Avoid risk of stack overflow.
* m4/output.c (insert_file): Avoid stack allocation of large
buffer.
Synchronize THANKS with branch.
* THANKS: Import more names.
Improve handling of $ in syntax table.
* m4/m4module.h (m4_is_syntax_single_dollar): New function.
(M4_SYNTAX_DOLLAR, M4_SYNTAX_LBRACE, M4_SYNTAX_RBRACE): Change to
be context rather than basic syntax categories.
(M4_SYNTAX_MASKS): Adjust macro.
* m4/m4private.h (struct m4_syntax_table): Add dollar and
is_single_dollar members.
(m4_is_syntax_single_dollar): Add fast alternative.
* m4/syntax.c (m4_syntax_create, reset_syntax_set): Adjust to
account for change to context categories.
(m4_set_syntax): Manage is_single_dollar.
(m4_is_syntax_single_dollar): New function.
* m4/macro.c (locate_dollar): New helper function.
(process_macro): Use it to speed up macro expansion.
* m4/input.c (m4__next_token): Adjust client.
* doc/m4.texinfo (Changesyntax): Document this.
2009-02-17 Eric Blake <ebb9@byu.net>
Sync changecom documentation with branch.
* doc/m4.texinfo (Changecom): Tweak wording.
* NEWS: Import changes from the branch.
Stage 29b: Process quotes and comments by buffer, not bytes.
Search for quote and comment delimiters by buffer when possible.
Memory impact: none.
Speed impact: noticeable improvement, from fewer function calls.
* ltdl/m4/gnulib-cache.m4: Import memchr2 module.
* m4/input.c (m4__next_token): Add buffer reads to quote and
comment parsing.
* NEWS: Document this.
2009-02-16 Eric Blake <ebb9@byu.net>
Stage 29a: Process dnl and macro names by buffer, not bytes.
Enhance input engine to provide lookahead buffer, rather than
forcing clients to call next_char for every byte. Utilize this
for the simplest clients.
Memory impact: none.
Speed impact: noticeable improvement, from fewer function calls.
* ltdl/m4/gnulib-cache.m4: Import freadptr and freadseek modules.
* m4/input.c (struct input_funcs): Add virtual functions
buffer_func and consume_func.
(file_buffer, file_consume, string_buffer, string_consume)
(composite_buffer, composite_consume, eof_buffer): Implement
them.
(file_funcs, string_funcs, composite_funcs, eof_funcs): Update
vtables accordingly.
(buffer_retry): New sentinel.
(next_buffer, consume_buffer): New functions.
(m4_skip_line, match_input, consume_syntax): Use them for faster
parsing.
Suggested by Bruno Haible.
Unify single and multi-character delimiter handling.
* m4/input.c (MATCH): Add a parameter.
(m4__next_token): Simplify logic and reduce redundancy.
(m4__next_token_is_open): Adjust caller.
* m4/syntax.c (m4_set_comment, m4_set_quotes): Handle delimiters
of differing lengths.
(m4_set_syntax): Recognize restoration of single delimiters.
Revamp changesyntax vs. changequote interactions.
* m4/m4module.h (M4_SYNTAX_VALUE): Delete unused macro.
(M4_SYNTAX_SUSPECT): New macro.
* m4/m4private.h (struct m4_syntax_table): Add suspect field.
* m4/syntax.c (check_is_single_quotes, check_is_single_comments)
(check_is_macro_escaped): Delete, by inlining body...
(m4_set_syntax): ...into here. Improves handling between
changesyntax and changequote/changecom.
(add_syntax_set, subtract_syntax_set, set_syntax_set): Simplify,
and let suspect field track needed cleanup.
(m4_set_quotes, m4_set_comment): Adjust meaning of
is_single_quotes and is_single_comment flags to always be true if
only one delimiter exists, regardless of its length. Ensure that
the syntax categories M4_SYNTAX_LQUOTE and M4_SYNTAX_BCOMM are
only used on 1-byte delimiters.
(add_syntax_attribute, remove_syntax_attribute): Change signature
to allow the use of fewer casts. Adjust the suspect field when
necessary.
(m4_reset_syntax, set_quote_age): Adjust callers.
* m4/input.c (m4__next_token, m4__next_token_is_open): Simplify
callers.
* doc/m4.texinfo (Changesyntax): Update documentation and tests.
Improve changesyntax documentation.
* doc/m4.texinfo (Changesyntax): Merge two tables into one
multitable.
Fix regression in multicharacter quotes, from 2008-01-26.
* m4/input.c (m4__next_token): Fix typo.
* tests/builtins.at (changequote): Enhance test.
2009-02-13 Eric Blake <ebb9@byu.net>
Speed up parsing when detecting input file change.
* m4/input.c (next_char): Clear input_change flag. Bug introduced
2006-10-25.
2009-02-12 Eric Blake <ebb9@byu.net>
Avoid quadratic code when walking definition stack.
* examples/stack_sep.m4: Use linear, not quadratic
implementation.
* doc/m4.texinfo (Improved copy): Fix documentation, based on
recent autoconf bug fix.
* tests/others.at (recursion): Enhance test.
2009-02-11 Eric Blake <ebb9@byu.net>
Stage 28c: Warn on embedded NUL in remaining cases.
Ensure all remaining warnings can handle embedded NUL.
Memory impact: none.
Speed impact: none noticed.
* m4/m4module.h (m4_debug_decode, m4_parse_truth_arg): Add
parameter.
* m4/macro.c (m4_macro_call): Improve diagnostic.
* modules/m4.c (defn): Likewise.
* m4/debug.c (m4_debug_decode): Handle embedded NUL.
* m4/utility.c (m4_parse_truth_arg): Likewise.
* modules/format.c (arg_int, arg_long, arg_double): Likewise.
(arg_string): New function.
(ARG_INT, ARG_LONG, ARG_STR, ARG_DOUBLE): Update callers.
* src/main.c (main): Likewise.
* src/freeze.c (reload_frozen_state): Likewise.
* modules/gnu.c (debugmode, syncoutput): Likewise.
* tests/options.at (--regexp-syntax): Adjust test.
* tests/freeze.at (reloading nul): Likewise.
* tests/null.m4: Likewise.
* tests/null.out: Likewise.
* tests/null.err: Likewise.
Stage 28b: Warn on embedded NUL in file arguments.
Quote warning messages related to file and other NUL-terminated
system commands.
Memory impact: none.
Speed impact: none noticed.
* m4/path.c (m4_path_search): Quote file names in message.
* modules/m4.c (syscmd, include, m4_make_temp): Handle embedded
NUL.
* modules/gnu.c (debugfile, esyscmd): Likewise.
* tests/others.at (nul character): Adjust test.
* tests/builtins.at (mkdtemp, mkstemp): Likewise.
* tests/null.m4: Likewise.
* tests/null.out: Likewise.
* tests/null.err: Likewise.
Stage 28a: Warn on embedded NUL in numeric arguments.
Quote warning messages related to numeric parsing in order to
handle embedded NUL.
Memory impact: none.
Speed impact: none noticed.
* m4/m4module.h (m4_numeric_arg): Adjust prototype.
* m4/utility.c (m4_numeric_arg): Add parameter.
* modules/gnu.c (debuglen): Adjust callers.
* modules/m4.c (incr, decr, divert, undivert, m4exit, substr)
(index): Likewise.
* modules/evalparse.c (m4_evaluate): Likewise.
* modules/stdlib.c (setenv, getpwuid, srand): Likewise.
* modules/time.c (ctime, gmtime, localtime, mktime, strftime):
Likewise.
* doc/m4.texinfo (Changesyntax): Fix typo.
* tests/others.at (nul character): Adjust test.
* tests/null.m4: Likewise.
* tests/null.out: Likewise.
* tests/null.err: Likewise.
2009-02-11 Eric Blake <ebb9@byu.net>
Avoid regression in popdef(undef).
* doc/m4.texinfo (Trace): Enhance test, to cover regression
recently fixed on the branch.
2009-02-09 Eric Blake <ebb9@byu.net>
Enhance index to support starting offset.
* modules/m4.c (index): Add optional third argument.
* NEWS: Document this.
* doc/m4.texinfo (Index macro): Likewise.
(Macro Arguments): Adjust tests.
2009-01-24 Eric Blake <ebb9@byu.net>
Add URLs to --help output.
* src/main.c (usage): Use enhanced version-etc features.
2009-01-07 Eric Blake <ebb9@byu.net>
Enhance substr to support replacement text.
* doc/m4.texinfo (Substr): Document new semantics.
* modules/m4.c (substr): Support optional fourth argument.
* NEWS: Document this.
Enhance substr to support negative values.
* doc/m4.texinfo (Substr): Document new semantics, and how to
simulate old.
* modules/m4.c (substr): Support negative values.
* NEWS: Document this.
2009-01-05 Eric Blake <ebb9@byu.net>
Maintainer cleanups.
* HACKING: Remove mention of xdelta.
* Makefile.am (EXTRA_DIST, MAINTAINERCLEANFILES): Let gnulib take
care of distributing gendocs.sh.
* maint.mk (web-manual): Use new feature of gendocs.
* ltdl/m4/gnulib-cache.m4: Regenerate.
2008-12-24 Eric Blake <ebb9@byu.net>
Relax eval as allowed by POSIX 2008.
* modules/evalparse.c (m4_evaluate): Warn, not error, on invalid
operator. Quote expression in warning.
* modules/mpeval.c (includes): Add quotearg.h.
* doc/m4.texinfo (Eval, Improved forloop): Update tests.
* NEWS: Update to reflect 1.6 support for `?:'.
2008-12-23 Eric Blake <ebb9@byu.net>
Add debugmode(o) to control dumpdef output location.
* m4/m4module.h (M4_DEBUG_TRACE_OUTPUT_DUMPDEF): New enumerator.
(M4_DEBUG_TRACE_VERBOSE): Update.
* m4/debug.c (m4_debug_decode): Support new debug option.
* src/freeze.c (produce_debugmode_state): Likewise.
* modules/m4.c (dumpdef): When set, force dumpdef to stderr rather
than the debug file.
* src/main.c (usage): Document it.
* doc/m4.texinfo (Debugmode, Dumpdef, Debugging options)
(Debugfile): Likewise.
* NEWS: Likewise.
Based on an autoconf bug report by Paolo Bonzini.
Make --debugfile argument optional.
* src/main.c (long_options): Make the argument optional, to allow
setting debug file back to stderr.
(main): Make --debugfile order-dependent.
(usage): Document this.
* doc/m4.texinfo (Debugging options): Likewise.
* NEWS: Likewise.
* tests/options.at (--debugfile): Enhance test.
(--safer): Adjust to new semantics.
2008-12-22 Eric Blake <ebb9@byu.net>
Use @var correctly.
* doc/m4.texinfo (Operation modes, Preprocessor features)
(Limits control, Frozen state, Debugging options)
(Dynamic loading features): Use lower case names in @var.
(Improved copy): Use @code, not @var, as appropriate.
2008-12-18 Eric Blake <ebb9@byu.net>
Deal with M4 1.4.x limitation on builtin tokens.
* doc/m4.texinfo (Composition): Mention limitation on curry.
(Improved copy): New node.
(Stacks): Fix typo.
* examples/stack.m4: Likewise.
* examples/stack_sep.m4: New file.
* Makefile.am (dist_pkgdata_DATA): Distribute it.
2008-12-15 Eric Blake <ebb9@byu.net>
Double size of temp file cache.
* m4/output.c (tmp_file, tmp_file_owner): Split...
(tmp_file1, tmp_file2, tmp_file1_owner, tmp_file2_owner): ...into
two variables.
(tmp_file2_recent): New variable.
(m4_tmpopen, m4_tmpclose, m4_tmpremove, m4_tmprename)
(m4_output_exit): Adjust callers.
Use fewer seeks on cached files.
* m4/output.c (m4_tmpfile): Use write, not append mode.
(m4_tmpopen): Add parameter to decide when to skip seeks.
(m4_tmprename, m4_make_diversion, insert_diversion_helper)
(m4_freeze_diversions): Adjust callers.
Cache most recently spilled diversion.
* m4/output.c (tmp_file, tmp_file_owner): New variables, for
1-deep cache of spilled diversions.
(m4_tmpfile): Open in append mode, since we might revisit
diversion without closing it now.
(m4_tmpopen): Check cache first.
(m4_tmpclose): Update cache, rather than closing. Add parameter.
(m4_tmpremove): Close cache before removing.
(m4_tmprename): Deal with open files when renaming.
(m4_output_exit): Close cache before exiting.
(make_room_for, m4_make_diversion, insert_diversion_helper):
Adjust callers.
* ltdl/m4/m4-rename.m4 (M4_RENAME): New file.
* configure.ac (M4_RENAME): Invoke it.
Correctly track size of in-memory diversions.
* m4/output.c (insert_diversion_helper): Correctly track total
in-memory diversion size after undivert.
Avoid quadratic behavior for some cases of divert/undivert.
* m4/output.c (struct m4_diversion): Improve comments.
(m4_tmpname, m4_make_diversion): Strengthen preconditions.
(m4_tmprename): New function.
(m4_output_init, m4_output_exit): Move after internal functions.
(make_room_for): Don't bother copying uninitialized bytes.
(insert_diversion_helper): Transfer metadata, rather than copying
contents, when undiverting into a previously unused diversion.
* tests/builtins.at (divert): Add a check to the test.
* doc/m4.texinfo (Undivert): Enhance test.
* NEWS: Document the speedup.
2008-12-02 Eric Blake <ebb9@byu.net>
Stage 27: Allow embedded NUL in text processing macros.
Pass NUL through regular expressions, format, and translit, and
diagnose it in eval and changeresyntax. Improve warning
capabilities of format.
Memory impact: none.
Speed impact: none noticed.
* modules/m4.c (m4_expand_ranges): Don't append extra bytes.
(translit): Manage NUL bytes.
* modules/format.c (format): Likewise.
* modules/gnu.c (substitute, regexp_substitute): Likewise.
(m4_resyntax_encode_safe): Add parameter.
(regexp, patsubst, renamesyms): Update callers.
(regexp_compile): Adjust error message.
* modules/evalparse.c (m4_evaluate): Use consistent message.
(end_text): New variable.
(eval_init_lex): Add parameter.
(eval_lex): Detect embedded NUL.
* src/freeze.c (reload_frozen_state): Likewise.
* doc/m4.texinfo (Format): Update to cover new behavior.
(Eval): Mention that result is unquoted.
* tests/freeze.at (reloading nul): Enhance test.
* tests/null.m4: Likewise.
* tests/null.err: Update expected output.
* tests/null.out: Likewise.
* tests/options.at (--regexp-syntax): Likewise.
2008-11-28 Eric Blake <ebb9@byu.net>
Resync NEWS with branches.
* NEWS: Mention 1.4.12, update state of 1.6.
2008-11-26 Eric Blake <ebb9@byu.net>
Keep COPYING in repository.
* Makefile.am (MAINTAINERCLEANFILES): Don't remove COPYING.
* .cvsignore: Don't ignore it.
* .gitignore: Likewise.
* COPYING: Store in repository, per automake 1.10.2
recommendation.
2008-11-26 Eric Blake <ebb9@byu.net>
Document optimized forloop.
* doc/m4.texinfo (Improved forloop): Mention alternate style that
avoids define overhead.
* examples/forloop3.m4: New file.
* Makefile.am (dist_pkgdata_DATA): Distribute it.
Document copy composite using stack_foreach and curry.
* doc/m4.texinfo (Stacks): New node, to document pushdef stack
manipulation.
(Ifelse): Move define_blind...
(Composition): ...to this new node. Document currying, then use
it to implement copy and rename.
* examples/curry.m4: New file.
* examples/stack.m4: Likewise.
* Makefile.am (dist_pkgdata_DATA): Distribute them.
2008-11-04 Eric Blake <ebb9@byu.net>
Upgrade to FDL 1.3.
* ltdl/m4/gnulib-cache.m4: Replace fdl module with fdl-1.3.
* Makefile.am (doc_m4_TEXINFOS, MAINTAINERCLEANFILES): Reflect
file change.
* doc/m4.texinfo (GNU Free Documentation License): Likewise.
2008-10-22 Eric Blake <ebb9@byu.net>
Give nicer error if user modifies testsuite but lacks autoconf.
* Makefile.am (AUTOM4TE): Use missing in the definition.
2008-10-09 Eric Blake <ebb9@byu.net>
Allow user to choose which sed to use in testsuite.
* tests/atlocal.in (SED): Inherit from configure results.
* tests/builtins.at (__m4_@&t@version__, divert, esyscmd)
(mkstemp, syscmd): Use $SED.
* tests/generate.awk (new_test): Likewise.
* tests/options.at (deprecated options, unknown option)
(--debugmode, --help and --version): Likewise.
* tests/testsuite.at (AT_CHECK_M4): Likewise.
* tests/others.at (directory, stderr closed, stdin seekable)
(stdout closed): Likewise.
(nul character): Likewise. Also, skip test if sed can't handle
NUL bytes.
Clean up testsuite invocation.
* tests/atlocal.in: Fix copyright notice.
* Makefile.am (TESTS_ENVIRONMENT): Delete; it wasn't being used.
(check-local, installcheck-local): Adjust clients. Add missing
dependency.
2008-09-25 Eric Blake <ebb9@byu.net>
Tweak error message on command line failure.
* m4/m4private.h (includes): Use "quotearg.h".
* src/main.c (process_file, main): Use nicer quotes for file name
in error messages.
* m4/input.c (file_clean, m4_push_file): Likewise.
* m4/module.c (m4__module_open): Likewise.
* src/freeze.c (produce_frozen_state, reload_frozen_state):
Likewise.
* modules/gnu.c (debugfile): Likewise.
* modules/m4.c (undivert, include): Likewise.
* tests/others.at (directory, stdin closed): Update tests.
* tests/options.at (file names, --debugmode): Likewise.
* doc/m4.texinfo (Debugmode): Likewise.
Unify error handling for reading directories.
* m4/path.c (m4_path_search): Factor open attempts...
(m4_fopen): ...into new function, to reject directories.
* tests/others.at (directory): Enhance test.
* doc/m4.texinfo (Include): Document that directories cannot be
input files.
Avoid bugs on platforms that mishandle trailing /.
* ltdl/m4/gnulib-cache.m4: Import fopen module.
* tests/others.at (directory): New test.
2008-09-16 Eric Blake <ebb9@byu.net>
Fix bootstrap for Solaris /bin/sh.
* bootstrap: Avoid shell quoting pitfall.
2008-09-01 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Typos in source code comments.
* modules/m4.c: Fix typos in comments.
* m4/input.c: Likewise.
* src/main.c: Likewise.
2008-08-29 Eric Blake <ebb9@byu.net>
Fix manual date information.
* doc/m4.texinfo: UPDATED refers to the day the manual was built,
not the release date of M4.
Based on a bison patch by Akim Demaille.
2008-08-27 Eric Blake <ebb9@byu.net>
Tweak -d examples.
* doc/m4.texinfo (Invoking m4): Fix example, since order of -d
matters.
(Dumpdef): Fix typo.
2008-08-23 Eric Blake <ebb9@byu.net>
Allow debugmode control over whether defn(undef) warns.
* ltdl/m4/gnulib-cache.m4: Import verify module.
* m4/m4module.h (M4_DEBUG_TRACE_DEREF, M4_DEBUG_TRACE_INITIAL):
New values.
(M4_DEBUG_TRACE_VERBOSE, M4_DEBUG_TRACE_DEFAULT): Adjust.
* m4/m4.c (m4_create): Start with debugmode = d.
* src/main.c (usage): Mention this.
(main): Let -E impact debug mode.
* m4/utility.c (m4_symbol_value_lookup): Squelch undefined warning
if flag is clear.
* modules/gnu.c (builtin, inder): Likewise.
* m4/debug.c (m4_debug_decode): Parse new mode.
* src/freeze.c (produce_debugmode_state): Accomodate new mode.
* doc/m4.texinfo (Debugging options): Mention change in the
default behavior.
(Debugmode): Mention new flag d.
(Operation modes): Mention interaction with -E.
(Undefine, Defn, Pushdef, Indir, Builtin, Dumpdef): Document and
test its effect.
* tests/options.at (--debugmode): Update tests.
* tests/freeze.at (reloading debugmode): Likewise.
* NEWS: Document this.
Reported by Ralf Wildenhues; without this patch, M4 1.6+ would be
incompatible with Autoconf 2.62.