SCCS-vsn: usr.sbin/sendmail/cf/m4/proto.m4 8.65
SCCS-vsn: usr.sbin/sendmail/cf/mailer/smtp.m4 8.20
SCCS-vsn: usr.sbin/sendmail/cf/mailer/uucp.m4 8.20
-VERSIONID(`@(#)proto.m4 8.64 (Berkeley) %G%')
+VERSIONID(`@(#)proto.m4 8.65 (Berkeley) %G%')
# handle null input (translate to <@> special case)
R$@ $@ <@>
# handle null input (translate to <@> special case)
R$@ $@ <@>
+# strip group: syntax (not inside angle brackets!) and trailing semicolon
+R$* $: $1 <@> mark addresses
+R$* < $* > $* <@> $: $1 < $2 > $3 unmark <addr>
+R$* :: $* <@> $: $1 :: $2 unmark host::addr
+R$* : $* <@> $: $2 strip colon if marked
+R$* <@> $: $1 unmark
+R$* ; $: $1 strip trailing semi
+
+# null input now results from list:; syntax
+R$@ $@ :; <@>
+
# basic textual canonicalization -- note RFC733 heuristic here
R$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <>
R$*<$*<$+>$*>$* <$3>$5 2-level <> nesting
R$*<>$* $@ <@> MAIL FROM:<> case
R$*<$+>$* $2 basic RFC821/822 parsing
# basic textual canonicalization -- note RFC733 heuristic here
R$*<$*>$*<$*>$* $2$3<$4>$5 strip multiple <> <>
R$*<$*<$+>$*>$* <$3>$5 2-level <> nesting
R$*<>$* $@ <@> MAIL FROM:<> case
R$*<$+>$* $2 basic RFC821/822 parsing
-# handle list:; syntax as special case
-R$*:;$* $@ $1 :; <@>
-
# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
R@ $+ , $+ @ $1 : $2 change all "," to ":"
# make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later
R@ $+ , $+ @ $1 : $2 change all "," to ":"
### SMTP Mailer specification ###
#####################################
### SMTP Mailer specification ###
#####################################
-VERSIONID(`@(#)smtp.m4 8.19 (Berkeley) %G%')
+VERSIONID(`@(#)smtp.m4 8.20 (Berkeley) %G%')
Msmtp, P=[IPC], F=CONCAT(mDFMuX, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n, T=Internet,
L=990, ifdef(`SMTP_MAILER_MAX', `M=SMTP_MAILER_MAX, ')A=SMTP_MAILER_ARGS
Msmtp, P=[IPC], F=CONCAT(mDFMuX, SMTP_MAILER_FLAGS), S=11/31, R=ifdef(`_ALL_MASQUERADE_', `11/31', `21'), E=\r\n, T=Internet,
L=990, ifdef(`SMTP_MAILER_MAX', `M=SMTP_MAILER_MAX, ')A=SMTP_MAILER_ARGS
#
S11
R$+ $: $>51 $1 sender/recipient common
#
S11
R$+ $: $>51 $1 sender/recipient common
-R$* :; <@> $@ $1 :; list:; special case
+R$* :; <@> $@ list:; special case
R$* $@ $>61 $1 qualify unqual'ed names
R$* $@ $>61 $1 qualify unqual'ed names
#
S31
R$+ $: $>51 $1 sender/recipient common
#
S31
R$+ $: $>51 $1 sender/recipient common
-R$* :; <@> $@ $1 :; list:; special case
+R:; <@> $@ list:; special case
# do special header rewriting
R$* <@> $* $@ $1 <@> $2 pass null host through
# do special header rewriting
R$* <@> $* $@ $1 <@> $2 pass null host through
### UUCP Mailer specification ###
#####################################
### UUCP Mailer specification ###
#####################################
-VERSIONID(`@(#)uucp.m4 8.19 (Berkeley) %G%')
+VERSIONID(`@(#)uucp.m4 8.20 (Berkeley) %G%')
#
# There are innumerable variations on the UUCP mailer. It really
#
# There are innumerable variations on the UUCP mailer. It really
# handle error address as a special case
R<@> $n errors to mailer-daemon
# handle error address as a special case
R<@> $n errors to mailer-daemon
-# do not qualify list:; syntax
-R$* :; <@> $@ $1 :;
+# list:; syntax should disappear
+R:; <@> $@
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $=w > $1 strip local name
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $=w > $1 strip local name
-# don't touch list:; syntax
-R$* :; <@> $@ $1 :;
+# list:; should disappear
+R:; <@> $@
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $j > $1 strip local name
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $j > $1 strip local name
-# don't touch list:; syntax
-R$* :; <@> $@ $1 :;
+# list:; syntax should disappear
+R:; <@> $@
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $j > $1 strip local name
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $j > $1 strip local name
# handle error address as a special case
R<@> $n errors to mailer-daemon
# handle error address as a special case
R<@> $n errors to mailer-daemon
-# do not qualify list:; syntax
-R$* :; <@> $@ $1 :;
+# list:; syntax should disappear
+R:; <@> $@
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $=w > $1 strip local name
R$* < @ $* . > $1 < @ $2 > strip trailing dots
R$* < @ $=w > $1 strip local name