Because the uucp is a part of the number, it is not
available for comparison to the workspace and so is lost. The correct way to write
the previous RHS is:
$>3 uucp.$1
Note that the space between the 3 and the uucp causes them to be viewed as two separate
tokens.
This problem can also arise with macros. Consider the following:
$>3$M
Here, the $M is expanded when the configuration file is parsed. If the expanded value
lacks a leading space, that value (or the first token in it) is lost.
Note that operators that follow a rule set number are correctly recognized:
$>3$[$1$]
Here, the 3 is immediately followed by the $[ operator. Because operators are token
separators, the call to rule set 3 will be correctly interpreted as:
-----callsubr 3 (3) ?†? good
But as a general rule, and just to be safe, the number of a subroutine call should
always be followed by a space.*
18.7.5 Return a Selection: $#
The $# operator in the RHS is copied as is into the workspace and functions as a flag
advising sendmail that an action has been selected. The $# must be the first token
copied into the rewritten workspace for it to have this special meaning. If it occupies
any other position in the workspace, it loses its special meaning:
$# local ?†? selects delivery agent in the parse rule set 0
$# OK ?†? accepts a message in the Local_check_mail rule set
xxx $# local ?†? no special meaning
When it is used in the parse rule set 0 (?§19.
Pages:
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173