| @@ -31,9 +31,20 @@ A comma within a nested parenthesis is part of an argument value, not an argumen · 30 unmodified lines |
| 31 | 31 | Potential macro names consist of alphabetic letters, Unicode characters, |
| 32 | 32 | digits, and underscore `\_', where the first character is not a digit. |
| 33 | 33 | .PP |
| 34 | | −The left and right single quotes(ie, grave and acute accents \`\|\' ) are used to quote strings. |
| 34 | +Comments begin with the |
| 35 | +.B # |
| 36 | +character and extend to the end of that line; the characters in a comment are copied to the current |
| 37 | +output stream unchanged. |
| 38 | +The comment start and end sequences may be changed using the |
| 39 | +.B changecom |
| 40 | +call described below. |
| 41 | +.PP |
| 42 | +The left and right single quotes (ie, grave and acute accents \`\|\' ) are used to quote strings. |
| 35 | 43 | Because the left and right quotes are distinct, quoted strings may nest. |
| 36 | 44 | The value of a quoted string is the string stripped of the outermost quotes. |
| 45 | +The left and right quote characters may be changed using the |
| 46 | +.B changequote |
| 47 | +call described below. |
| 37 | 48 | .PP |
| 38 | 49 | When |
| 39 | 50 | .I m4 |
| @@ -80,9 +91,10 @@ is replaced by the · 40 unmodified lines |
| 80 | 91 | argument of that macro call. |
| 81 | 92 | Argument 0 is the name of the macro; |
| 82 | 93 | missing arguments are replaced by the null string. |
| 83 | | −If the macro value is the same as its name, or the value is simply |
| 94 | +If the macro value is the same as its name, or the value is |
| 84 | 95 | .BR $0 , |
| 85 | 96 | the result is the macro name. |
| 97 | +To prevent expansion of a name when redefining a macro, quote the first argument. |
| 86 | 98 | .TP |
| 87 | 99 | divert |
| 88 | 100 | .I M4 |
| @@ -113,7 +125,9 @@ Prints its argument · 24 unmodified lines |
| 113 | 125 | on the diagnostic output file. |
| 114 | 126 | .TP |
| 115 | 127 | eval |
| 116 | | −Evaluates its argument as an arithmetic expression, using 32-bit arithmetic. |
| 128 | +Evaluates its argument as an arithmetic expression, using 32-bit arithmetic, |
| 129 | +and returns the result as a signed decimal integer. |
| 130 | +The only literals are decimal integers. |
| 117 | 131 | Operators are those of Limbo: the binary operators |
| 118 | 132 | .BR || , |
| 119 | 133 | .BR && , |
| @@ -133,7 +147,7 @@ the unary operators · 13 unmodified lines |
| 133 | 147 | .BR ~ , |
| 134 | 148 | .BR ! ; |
| 135 | 149 | and parenthesis. |
| 136 | | −The operator precedence is the same as in Limbo. |
| 150 | +Operator precedence is the same as in Limbo. |
| 137 | 151 | Right shifts are signed. |
| 138 | 152 | .TP |
| 139 | 153 | ifdef |
| @@ -226,8 +240,9 @@ the given macro · 86 unmodified lines |
| 226 | 240 | which may be one of the predefined macros. |
| 227 | 241 | .PP |
| 228 | 242 | .I M4 |
| 229 | | −in Inferno is more closely related to the original version in Seventh Edition UNIX |
| 230 | | −than the more elaborate relatives in System V and POSIX. |
| 243 | +in Inferno is more closely related to the original |
| 244 | +.I m4 |
| 245 | +in Seventh Edition UNIX than its more elaborate relatives in System V and POSIX. |
| 231 | 246 | .SH "SEE ALSO" |
| 232 | 247 | B. W. Kernighan and D. M. Ritchie, |
| 233 | 248 | .I The M4 Macro Processor |