X-Git-Url: https://git.distorted.org.uk/~mdw/qmail/blobdiff_plain/5794b37af853f8e487dc5f7c2a83220b3899f596..d708ae5acbf10e579a5e3ea104561ce3fa6f7e13:/qmail-local.c diff --git a/qmail-local.c b/qmail-local.c index ec4e5e7..b6dd28c 100644 --- a/qmail-local.c +++ b/qmail-local.c @@ -775,6 +775,12 @@ char **argv; strerr_die1x(111,"Uh-oh: first line of .qmail file is blank. (#4.2.1)"); case '#': break; + case '<': + if (!stralloc_copys(&ueo, cmds.s + i + 1) || + !stralloc_0(&ueo) || + !env_put2("NEWSENDER", ueo.s)) + temp_nomem(); + break; case '.': case '/': ++count_file; @@ -798,7 +804,20 @@ char **argv; break; case '&': ++i; + goto fwd; + case '!': + i++; + if (!cmds.s[i + str_chr(cmds.s + i, '=')]) { + if (!env_unset(cmds.s + i)) temp_nomem(); + } else { + env: + if (!env_put(cmds.s + i)) temp_nomem(); + } + break; default: + if (cmds.s[i + str_chr(cmds.s + i, '=')]) + goto env; + fwd: ++count_forward; if (flagdoit) recips[numforward++] = cmds.s + i; else sayit("forward ",cmds.s + i,k - i);