| 1 | GNU M4 NEWS - User visible changes. | 
|---|
| 2 | Copyright (C) 1992, 1993, 1994, 2004, 2005, 2006 Free Software | 
|---|
| 3 | Foundation, Inc. | 
|---|
| 4 |  | 
|---|
| 5 | Version 1.4.8 - 20 November 2006, by Eric Blake  (CVS version 1.4.7a) | 
|---|
| 6 |  | 
|---|
| 7 | * The `divert' macro and `-H'/`--hashsize' command line option no longer | 
|---|
| 8 | cause a core dump when handed extra large values.  Also, `divert' now | 
|---|
| 9 | uses memory proportional to the number of diversions in use, rather than | 
|---|
| 10 | to the maximum diversion number encountered, so that large diversion | 
|---|
| 11 | numbers are less likely to exhaust system memory; and is no longer | 
|---|
| 12 | limited by the maximum number of file descriptors. | 
|---|
| 13 | * The `--help' and `--version' command line options now consistently | 
|---|
| 14 | override all earlier options.  For example, `m4 --debugfile=trace | 
|---|
| 15 | --help' now no longer accidentally creates an empty file `trace'. | 
|---|
| 16 | * The `-L'/`--nesting-limit' command line option can now be set to 0 | 
|---|
| 17 | to remove the default limit of 1024.  However, it is still possible that | 
|---|
| 18 | heavily nested input can cause abrupt program termination due to stack | 
|---|
| 19 | overflow. | 
|---|
| 20 | * Problems encountered when writing to standard error, such as with the | 
|---|
| 21 | `errprint' macro, now always cause a non-zero exit status. | 
|---|
| 22 | * Warnings and errors issued during macro expansion are now consistently | 
|---|
| 23 | reported at the line where the macro name was detected, rather than | 
|---|
| 24 | where the close parenthesis resides.  Text wrapped by `m4wrap' now | 
|---|
| 25 | remembers the location that was in effect when m4wrap was invoked, | 
|---|
| 26 | rather than changing to line 0 and the empty string for a file.  The | 
|---|
| 27 | macros `__line__' and `__file__' now work correctly even as the last | 
|---|
| 28 | token in an included file. | 
|---|
| 29 | * The `builtin' and `indir' macros now transparently handle builtin | 
|---|
| 30 | tokens generated by `defn'. | 
|---|
| 31 | * When diversions created by the `divert' macro collect enough text that | 
|---|
| 32 | M4 must use temporary files, the environment variable $TMPDIR is now | 
|---|
| 33 | consulted, and a better effort is made to clean up those files in the | 
|---|
| 34 | event of a fatal signal. | 
|---|
| 35 | * The `mkstemp' builtin is added with the same GNU semantics as `maketemp', | 
|---|
| 36 | based on the recommendation of POSIX to deprecate the POSIX semantics of | 
|---|
| 37 | `maketemp' as inherently insecure.  In GNU mode (no -G supplied on the | 
|---|
| 38 | command line), `maketemp' silently retains the secure GNU semantics, but | 
|---|
| 39 | a future release of M4 will change this to emit a warning.  In | 
|---|
| 40 | traditional mode (m4 -G), `maketemp' now uses the POSIX-mandated insecure | 
|---|
| 41 | semantics, and issues a warning that you should convert your script to | 
|---|
| 42 | use `mkstemp' instead.  Additionally, `mkstemp' and `maketemp' are now | 
|---|
| 43 | well-defined even if the template argument does not end in six `X' | 
|---|
| 44 | characters. | 
|---|
| 45 | * The manual has been improved, including a new section on a composite | 
|---|
| 46 | macro `foreach'. | 
|---|
| 47 | * The `changecom' and `changequote' macros now treat an empty second | 
|---|
| 48 | argument the same as if it were missing, rather than using the empty | 
|---|
| 49 | string and making it impossible to end a comment or quote. | 
|---|
| 50 | * The `translit' macro now operates in linear instead of quadratic time, | 
|---|
| 51 | and is now eight-bit clean. | 
|---|
| 52 | * The `-D', `-U', `-s', and `-t' command line options now take effect | 
|---|
| 53 | after any files encountered earlier on the command line, rather than up | 
|---|
| 54 | front, as is done in traditional implementations and required by POSIX. | 
|---|
| 55 |  | 
|---|
| 56 | Version 1.4.7 - 25 September 2006, by Eric Blake  (CVS version 1.4.6a) | 
|---|
| 57 |  | 
|---|
| 58 | * Fix regression from 1.4.5 in handling a file that ends in a macro | 
|---|
| 59 | expansion without arguments instead of a newline. | 
|---|
| 60 | * The define and pushdef macros now warn when the first argument is not | 
|---|
| 61 | a string, rather than silently doing nothing. | 
|---|
| 62 | * Standard input can now be read more than once, as in 'm4 - file -', and | 
|---|
| 63 | is not closed until all wrapped text is handled.  This makes a | 
|---|
| 64 | difference when stdin is not a regular file, and also fixes bugs when | 
|---|
| 65 | using the syscmd or esyscmd macros from wrapped text. | 
|---|
| 66 | * When standard input is a seekable file, the m4exit, syscmd, and esyscmd | 
|---|
| 67 | macros now restore the current position to the next unread byte rather | 
|---|
| 68 | than discarding an arbitrary amount of buffered data. | 
|---|
| 69 | * SysV command-line compatibility is no longer a goal of GNU M4; the | 
|---|
| 70 | focus will be instead on POSIX compatibility.  This release continues to | 
|---|
| 71 | support previous usage, but adds warnings in areas which will allow a | 
|---|
| 72 | future version of GNU M4 to use its own extensions without being tied to | 
|---|
| 73 | the SysV command line interface. | 
|---|
| 74 | * The no-op compatibility command line options -B, -N, -S, -T, and | 
|---|
| 75 | --diversions may be withdrawn or assigned new meanings in future | 
|---|
| 76 | releases, so they now issue a warning if used. | 
|---|
| 77 | * A new command line option -i replaces the compatibility -e as the | 
|---|
| 78 | short spelling of --interactive, for consistency with other GNU tools; a | 
|---|
| 79 | warning is issued if the old spelling is used, and it may be assigned new | 
|---|
| 80 | meaning in future releases. | 
|---|
| 81 | * A new command line option --debugfile replaces the options -o and | 
|---|
| 82 | --error-output as the preferred spelling.  The old options were | 
|---|
| 83 | misleading in their names and inconsistent with other GNU tools; they are | 
|---|
| 84 | still silently accepted, but no longer documented in --help, and may be | 
|---|
| 85 | assigned new meanings in future releases. | 
|---|
| 86 |  | 
|---|
| 87 | Version 1.4.6 - 25 August 2006, by Eric Blake  (CVS version 1.4.5a) | 
|---|
| 88 |  | 
|---|
| 89 | * Fix buffer overruns in regexp and patsubst macros when handed a trailing | 
|---|
| 90 | backslash in the replacement text, or when handling \n substitutions | 
|---|
| 91 | beyond the number of \(\) groups. | 
|---|
| 92 | * Fix memory leak in regexp, patsubst, and changeword macros. | 
|---|
| 93 | * The format macro now understands %F, %g, and %G. | 
|---|
| 94 | * When loading frozen files, m4 now exits with status 63 if version | 
|---|
| 95 | mismatch is detected. | 
|---|
| 96 | * Fix bugs that occurred when invoked with stdout or stderr closed, | 
|---|
| 97 | and detect write failures to stdout or to the target of the | 
|---|
| 98 | debugfile macro.  In particular, the syscmd and esyscmd macros can | 
|---|
| 99 | no longer interfere with the debug stream or diversions. | 
|---|
| 100 | * The m4exit macro now converts values outside the range 0-255 to 1. | 
|---|
| 101 | * It is now an error if a command-line input file ends in the middle of a | 
|---|
| 102 | comment, matching the behavior of mid-string and mid-argument | 
|---|
| 103 | collection. | 
|---|
| 104 | * The dnl macro now warns if end of file is encountered instead of a | 
|---|
| 105 | newline. | 
|---|
| 106 | * The error message when end of file is encountered now uses the file and | 
|---|
| 107 | line where the dangling construct started, rather than `NONE:0:'. | 
|---|
| 108 | * The debugmode and __file__ macros, and the -s/--synclines option, now | 
|---|
| 109 | show what directory a file was found in when the -I/--include option or | 
|---|
| 110 | M4PATH variable had an effect. | 
|---|
| 111 | * The changequote and changecom macros now work with 8-bit characters, and | 
|---|
| 112 | quotes and comments that begin with `(' are properly recognized | 
|---|
| 113 | following a word. | 
|---|
| 114 | * The new macro __program__ is added, which allows the input file to issue | 
|---|
| 115 | an error message that resembles messages from m4.  Warning and error | 
|---|
| 116 | messages have been reformatted to comply with GNU Coding Standards. | 
|---|
| 117 | * The errprint, m4wrap, and shift macros are now recognized only with | 
|---|
| 118 | arguments. | 
|---|
| 119 | * The index, substr, translit, regexp, and patsubst macros now produce | 
|---|
| 120 | output when given only one argument, but still warn about a missing | 
|---|
| 121 | second argument. | 
|---|
| 122 | * The patsubst macro now reliably finds zero-length matches at the end | 
|---|
| 123 | of a string. | 
|---|
| 124 |  | 
|---|
| 125 | Version 1.4.5 - 15 July 2006, by Eric Blake  (CVS version 1.4.4c) | 
|---|
| 126 |  | 
|---|
| 127 | * Fix sysval on BeOS, OS/2, and other systems that store exit status | 
|---|
| 128 | in the low-order byte.  Additionally, on Unix platforms, if syscmd was | 
|---|
| 129 | terminated by a signal, sysval now displays the signal number shifted | 
|---|
| 130 | left by eight bits, to match traditional m4 implementations. | 
|---|
| 131 | * The maketemp macro is no longer subject to platform limitations (such as | 
|---|
| 132 | 26 or 32 max files from a given template). | 
|---|
| 133 | * Frozen files now require that the first directive be V (version), to | 
|---|
| 134 | better diagnose version mismatch.  Additionally, if the F directive | 
|---|
| 135 | (builtin function) names an unknown builtin that existed in the m4 that | 
|---|
| 136 | froze the file but not in the current m4 (for example, changeword), the | 
|---|
| 137 | warning is deferred until an attempt is made to actually use the | 
|---|
| 138 | builtin.  This allows downgrading from beta m4-1.4o to stable m4-1.4.5 | 
|---|
| 139 | without breaking autoconf. | 
|---|
| 140 | * The format and indir macros are now recognized only with arguments. | 
|---|
| 141 | * The eval macro no longer crashes on x86 architectures when dividing the | 
|---|
| 142 | minimum integer by -1. | 
|---|
| 143 | * On systems with ecvt and fcvt, format no longer truncates trailing | 
|---|
| 144 | zeroes on integers printed with %.0f.  On systems without these | 
|---|
| 145 | functions, format is no longer subject to a buffer overflow that | 
|---|
| 146 | permitted arbitrary code execution. | 
|---|
| 147 | * On native Windows builds, the macro __windows__ is provided instead of | 
|---|
| 148 | __unix__.  Likewise, on OS/2 builds, the macro __os2__ is provided.  This | 
|---|
| 149 | allows input files to determine when syscmd might behave differently. | 
|---|
| 150 | * Fix bug in 1.4.3 patch to use \n line-endings that did not work for | 
|---|
| 151 | cygwin. | 
|---|
| 152 | * When given the empty string or 0, undivert is now documented as a no-op | 
|---|
| 153 | rather than closing stdout, warning about a non-existent file, or trying | 
|---|
| 154 | to read a directory as a file. | 
|---|
| 155 | * Many documentation improvements.  Also, the manual is now distributed | 
|---|
| 156 | under FDL 1.2, rather than a stricter verbatim-only license. | 
|---|
| 157 | * Raise the -L (--nesting-limit) command line option limit from 250 to | 
|---|
| 158 | 1024. | 
|---|
| 159 | * The decr, incr, divert, m4exit, and substr macros treat an empty number | 
|---|
| 160 | as 0, issue a warning, and expand as normal; rather than issuing an error | 
|---|
| 161 | and expanding to the empty string. | 
|---|
| 162 | * The eval macro now treats an empty radix argument as 10, handles radix 1, | 
|---|
| 163 | and treats the width argument as number of digits excluding the sign, | 
|---|
| 164 | for compatibility with other m4 implementations. | 
|---|
| 165 | * The ifdef, divert, m4exit, substr, and translit macros now correctly | 
|---|
| 166 | ignore extra arguments. | 
|---|
| 167 | * The popdef and undefine macros now correctly accept multiple arguments. | 
|---|
| 168 | * Although changeword is on its last leg, if enabled, it now reverts to the | 
|---|
| 169 | default (faster) regexp when passed the empty string. | 
|---|
| 170 | * The regexp and substr macros now warn and ignore a trailing backslash in | 
|---|
| 171 | the replacement, and warn on \n for n larger than the number of | 
|---|
| 172 | sub-expressions in the regexp. | 
|---|
| 173 |  | 
|---|
| 174 | Version 1.4.4b - 17 June 2006, by Eric Blake  (CVS version 1.4.4a) | 
|---|
| 175 |  | 
|---|
| 176 | * Fix a recursive push_string crashing bug, which affected changequote of | 
|---|
| 177 | three or more characters on some compilers. | 
|---|
| 178 | * Use automake to fix build portability issues. | 
|---|
| 179 | * Fix a recursive m4wrap crashing bug. | 
|---|
| 180 | * Fix a 1 in 2**32 hash crashing bug. | 
|---|
| 181 | * Tracing a macro by name is now persistent, even if the macro is | 
|---|
| 182 | subsequently undefined or redefined.  The traceon and traceoff macros no | 
|---|
| 183 | longer warn about undefined symbols.  This solves a crash when using | 
|---|
| 184 | indir on an undefined macro traced with the -t option, as well as an | 
|---|
| 185 | incorrect result of ifdef.  Furthermore, tracing is no longer transferred | 
|---|
| 186 | with builtins, solving the bug of "m4 -tm4_eval" failing to give trace | 
|---|
| 187 | output on the input "define(`m4_eval',defn(`eval'))m4_eval(1)". | 
|---|
| 188 | * Fix a crash when a macro is undefined while collecting its arguments, by | 
|---|
| 189 | always using the definition that was in effect before argument | 
|---|
| 190 | collection.  This behavior matches the C pre-processor, and means that | 
|---|
| 191 | the sequence "define(`f',`1')f(define(`f',`2'))f" is now documented to | 
|---|
| 192 | result in "12", rather than the previously undocumented "22". | 
|---|
| 193 | * Update the regex engine to fix several bugs. | 
|---|
| 194 | * Fix a potential crash on machines where char is signed. | 
|---|
| 195 |  | 
|---|
| 196 | Version 1.4.4 - October 2005, by Gary V. Vaughan | 
|---|
| 197 |  | 
|---|
| 198 | * ./configure --infodir=/usr/share/info now works correctly. | 
|---|
| 199 | * When any file named on the command line is missing exit with status 1. | 
|---|
| 200 |  | 
|---|
| 201 | Version 1.4.3 - March 2005, by Gary V. Vaughan | 
|---|
| 202 |  | 
|---|
| 203 | * DESTDIR installs now work correctly. | 
|---|
| 204 | * Don't segfault with uncompilable regexps to changeword(). | 
|---|
| 205 | * Always use \n line-endings for frozen files (fixes a Windows bug). | 
|---|
| 206 | * Portability fix for systems lacking mkstemp(3). | 
|---|
| 207 | * Approximately 20% speed up in the common case of usage with autoconf. | 
|---|
| 208 | * Supported on QNX 6.3. | 
|---|
| 209 |  | 
|---|
| 210 | Version 1.4.2 - August 2004, by Paul Eggert | 
|---|
| 211 |  | 
|---|
| 212 | * No user visible changes; portability bug fixes only. | 
|---|
| 213 |  | 
|---|
| 214 | Version 1.4.1 - June 2004, by Paul Eggert | 
|---|
| 215 |  | 
|---|
| 216 | * maketemp now creates an empty file with the given name, instead of merely | 
|---|
| 217 | returning the name of a nonexistent file.  This closes a security hole. | 
|---|
| 218 |  | 
|---|
| 219 | Version 1.4 - October 1994, by Franc,ois Pinard | 
|---|
| 220 |  | 
|---|
| 221 | (No user visible changes) | 
|---|
| 222 |  | 
|---|
| 223 |  | 
|---|
| 224 | Version 1.3 - September 1994, by Franc,ois Pinard | 
|---|
| 225 |  | 
|---|
| 226 | * Diversions are created as needed.  Option `-N' is still accepted, but | 
|---|
| 227 | otherwise ignored.  Users should use only negative diversion numbers, | 
|---|
| 228 | instead of high positive numbers, for diverting to nowhere. | 
|---|
| 229 |  | 
|---|
| 230 | * Diversions should also work faster.  No temporary files will be needed | 
|---|
| 231 | at all if all diversions taken altogether do not use more than 512K. | 
|---|
| 232 |  | 
|---|
| 233 | * Frozen state files may be produced with the `--freeze-state' (-F) | 
|---|
| 234 | option and later brought back through the `--reload-state' (-R) option. | 
|---|
| 235 |  | 
|---|
| 236 |  | 
|---|
| 237 | Version 1.2 - July 1994, by Franc,ois Pinard | 
|---|
| 238 |  | 
|---|
| 239 | * In patsubst(STRING, REGEXP, REPLACEMENT), \& in REPLACEMENT has been | 
|---|
| 240 | changed to represent this part of STRING matched by the whole REGEXP, | 
|---|
| 241 | instead of the whole STRING as before.  \0 does the same, but emits a | 
|---|
| 242 | diagnostic saying it will disappear in some subsequent release. | 
|---|
| 243 |  | 
|---|
| 244 | * eval(EXPR) emits a diagnostic if EXPR has suffixed crumb.  The same for | 
|---|
| 245 | other numeric conversions in incr(), decr(), divert(), etc. | 
|---|
| 246 |  | 
|---|
| 247 | * `--fatal-warnings' (-E) stops execution at first warning. | 
|---|
| 248 |  | 
|---|
| 249 | * `--nesting-limit=LEVEL' (-L LEVEL) sets a limit to macro nesting. | 
|---|
| 250 | It is initially fixed at 250. | 
|---|
| 251 |  | 
|---|
| 252 | * `--word-regexp=REGEXP' (-W REGEXP) modifies macro name syntax, like | 
|---|
| 253 | does the new `changeword(REGEXP)' macro.  This feature is experimental, | 
|---|
| 254 | tell me your opinions about it.  You do need --enable-changeword at | 
|---|
| 255 | configure time to get these things.  Do *not* depend on them yet. | 
|---|
| 256 |  | 
|---|
| 257 | * Trace output format is scannable by GNU Emacs' next-error function. | 
|---|
| 258 |  | 
|---|
| 259 | * Stack overflow is detected and diagnosed on some capable systems. | 
|---|
| 260 |  | 
|---|
| 261 | * Various bugs have been corrected, m4 should be more portable.  See the | 
|---|
| 262 | ChangeLog for details. | 
|---|
| 263 |  | 
|---|
| 264 |  | 
|---|
| 265 | Version 1.1 - November 1993, by Franc,ois Pinard | 
|---|
| 266 |  | 
|---|
| 267 | Changes which might affect existing GNU m4 scripts: | 
|---|
| 268 |  | 
|---|
| 269 | * Option `-V' has been removed, use `--version' instead.  `--version' | 
|---|
| 270 | writes on standard output instead of standard error, and inhibits any | 
|---|
| 271 | script execution. | 
|---|
| 272 |  | 
|---|
| 273 | * `--no-gnu-extensions' has been renamed `--traditional'. | 
|---|
| 274 |  | 
|---|
| 275 | * In `eval', `^' used to indicate exponentiation, use `**' instead. | 
|---|
| 276 |  | 
|---|
| 277 | * The automatic undiversion which takes place at end of all input is | 
|---|
| 278 | forced into the main output stream. | 
|---|
| 279 |  | 
|---|
| 280 | Changes which are unlikely to affect existing scripts: | 
|---|
| 281 |  | 
|---|
| 282 | * `--help' prints an usage summary on standard output.  Script execution | 
|---|
| 283 | is then inhibited. | 
|---|
| 284 |  | 
|---|
| 285 | * `--prefix-builtins' (-P) prefixes all builtin macros by `m4_'. | 
|---|
| 286 |  | 
|---|
| 287 | * Most builtin macros for which arguments are mandatory, called without | 
|---|
| 288 | any arguments, are no more recognized as builtin macros: they are | 
|---|
| 289 | consequently copied verbatim to the output stream. | 
|---|
| 290 |  | 
|---|
| 291 | * `define' and `pushdef' are usable with only one argument, they give | 
|---|
| 292 | this argument an empty definition. | 
|---|
| 293 |  | 
|---|
| 294 | * `eval' new operators for binary representation handling: `^' for | 
|---|
| 295 | exclusive-or, `~' for the bitwise negation, `<<' and `>>' for shifts. | 
|---|
| 296 |  | 
|---|
| 297 | * `eval' recognizes the notation 0bDIGITS for binary numbers and the | 
|---|
| 298 | notation 0rRADIX:DIGITS for numbers in any radix from 1 to 36. | 
|---|
| 299 |  | 
|---|
| 300 |  | 
|---|
| 301 | Version 1.0.3 - December 1992, by Franc,ois Pinard | 
|---|
| 302 |  | 
|---|
| 303 | Changes for the user: | 
|---|
| 304 |  | 
|---|
| 305 | * `dnl' outputs a diagnostic if immediately followed by `('.  Usually, | 
|---|
| 306 | `dnl' is followed by newline or whitespace. | 
|---|
| 307 |  | 
|---|
| 308 | * `ifelse' accepts without complaining the common idiom of having only | 
|---|
| 309 | one argument.  This is useful for introducing long comments. | 
|---|
| 310 |  | 
|---|
| 311 | * `eval' always expresses values as signed, whatever the radix. | 
|---|
| 312 |  | 
|---|
| 313 | * M4OPTS environment variable is no longer obeyed. | 
|---|
| 314 |  | 
|---|
| 315 | * `--no-warnings' option is renamed `--silent'. | 
|---|
| 316 |  | 
|---|
| 317 | * Debug lines use a new format more compatible with GNU standards. | 
|---|
| 318 |  | 
|---|
| 319 | * Various bugs have been corrected.  See the ChangeLog for details. | 
|---|
| 320 |  | 
|---|
| 321 | Changes for the installer: | 
|---|
| 322 |  | 
|---|
| 323 | * GNU m4 now uses an Autoconf-generated configure script, and should be | 
|---|
| 324 | more easily portable in many ways.  (Cray is not supported yet). | 
|---|
| 325 |  | 
|---|
| 326 | * `make check' has been made more portable, expect no errors. | 
|---|
| 327 |  | 
|---|
| 328 | Changes for the programmer: | 
|---|
| 329 |  | 
|---|
| 330 | * Sources have been fully reindented to comply with GNU standards, and | 
|---|
| 331 | cleaned up in many ways. | 
|---|
| 332 |  | 
|---|
| 333 | * Sources have been protoized.  Non-ANSI compilers are automatically | 
|---|
| 334 | detected, then sources are unprotoized on the fly before compilation. | 
|---|
| 335 |  | 
|---|
| 336 | * GNU m4 uses newer versions of obstack, regex, getopt, etc. | 
|---|
| 337 |  | 
|---|
| 338 |  | 
|---|
| 339 | Version 1.0 - October 1991, by Rene' Seindal | 
|---|
| 340 |  | 
|---|
| 341 | * Uses GNU configure, taken from the gdb distribution. | 
|---|
| 342 |  | 
|---|
| 343 | * Uses GNU getopt(), with long option names. | 
|---|
| 344 |  | 
|---|
| 345 | * The -Q/+quiet option is added, which suppresses warnings about missing | 
|---|
| 346 | or superflous arguments to built-in macros. | 
|---|
| 347 |  | 
|---|
| 348 | * Added default options via the M4OPTS environment variable. | 
|---|
| 349 |  | 
|---|
| 350 | * Several minor bugs have been fixed. | 
|---|
| 351 |  | 
|---|
| 352 |  | 
|---|
| 353 | Version 0.99 - July 1991, by Rene' Seindal | 
|---|
| 354 |  | 
|---|
| 355 | * The builtins `incr' and `decr' are now implemented without use of | 
|---|
| 356 | `eval'. | 
|---|
| 357 |  | 
|---|
| 358 | * The builtin `indir' is added, to allow for indirect macro calls | 
|---|
| 359 | (allows use of "illegal" macro names). | 
|---|
| 360 |  | 
|---|
| 361 | * The debugging and tracing facilities has been enhanced considerably. | 
|---|
| 362 | See the manual for details. | 
|---|
| 363 |  | 
|---|
| 364 | * The -tMACRO option is added, marks MACRO for tracing as soon as it | 
|---|
| 365 | is defined. | 
|---|
| 366 |  | 
|---|
| 367 | * Builtins are traced after renaming iff they were before. | 
|---|
| 368 |  | 
|---|
| 369 | * Named files can now be undiverted. | 
|---|
| 370 |  | 
|---|
| 371 | * The -Nnum option can be used to increase the number of divertions | 
|---|
| 372 | available. | 
|---|
| 373 |  | 
|---|
| 374 | * Calling changecom without arguments now disables all comment handling. | 
|---|
| 375 |  | 
|---|
| 376 | * A bug in `dnl' is fixed. | 
|---|
| 377 |  | 
|---|
| 378 | * A bug in the multi-character quoting code is fixed. | 
|---|
| 379 |  | 
|---|
| 380 | * Several typos in the manual has been corrected.  More probably persist. | 
|---|
| 381 |  | 
|---|
| 382 |  | 
|---|
| 383 | Version 0.75 - November 1990, by Rene' Seindal | 
|---|
| 384 |  | 
|---|
| 385 | * Implemented search path for include files (-I option and M4PATH | 
|---|
| 386 | environment variable). | 
|---|
| 387 |  | 
|---|
| 388 | * Implemented builtin `format' for printf-like formatting. | 
|---|
| 389 |  | 
|---|
| 390 | * Implemented builtin `regexp' for searching for regular expressions. | 
|---|
| 391 |  | 
|---|
| 392 | * Implemented builtin `patsubst' for substitution with regular | 
|---|
| 393 | expressions. | 
|---|
| 394 |  | 
|---|
| 395 | * Implemented builtin `esyscmd', which expands to a shell commands output. | 
|---|
| 396 |  | 
|---|
| 397 | * Implemented `__file__' and `__line__' for use in error messages. | 
|---|
| 398 |  | 
|---|
| 399 | * Implemented character ranges in `translit'. | 
|---|
| 400 |  | 
|---|
| 401 | * Implemented control over debugging output. | 
|---|
| 402 |  | 
|---|
| 403 | * Implemented multi-character quotes. | 
|---|
| 404 |  | 
|---|
| 405 | * Implemented multi-character comment delimiters. | 
|---|
| 406 |  | 
|---|
| 407 | * Changed predefined macro `gnu' to `__gnu__'. | 
|---|
| 408 |  | 
|---|
| 409 | * Changed predefined macro `unix' to `__unix__', when the -G option is | 
|---|
| 410 | not used.  With -G, `unix' is still defined. | 
|---|
| 411 |  | 
|---|
| 412 | * Added program name to error messages. | 
|---|
| 413 |  | 
|---|
| 414 | * Fixed two missing null bytes bugs. | 
|---|
| 415 |  | 
|---|
| 416 |  | 
|---|
| 417 | Version 0.50 - January 1990, by Rene' Seindal | 
|---|
| 418 |  | 
|---|
| 419 | * Initial beta release. | 
|---|
| 420 |  | 
|---|
| 421 |  | 
|---|
| 422 | Local Variables: | 
|---|
| 423 | mode: outline | 
|---|
| 424 | fill-column: 75 | 
|---|
| 425 | End: | 
|---|