A substituição persiste apenas para a condição em que está definida. Aqui está um experimento ligeiramente alterado para demonstrar:
pm-test.rc
:0 H
* ^To:.*recipient
* B ?? tribbles
* space
mailbox
test-mail.txt
From: [email protected]
To: [email protected]
Your storage locker is overflowing with
tribbles. Please clean it out.
Observe que a palavra "espaço" aparece apenas nos cabeçalhos da mensagem acima.
test-mail2.txt
From: [email protected]
To: [email protected]
We're having some trouble with
tribbles at our space station.
Observe que a palavra "espaço" aparece apenas no corpo da mensagem acima.
Se a substituição B
não expirar no final de sua condição, pm-test.rc
deverá ter sucesso na segunda mensagem porque "tribbles" está no corpo e "espaço" é (apenas) no corpo.
% procmail VERBOSE=on DEFAULT=/dev/null MAILDIR=/tmp pm-test.rc < test-mail2.txt
procmail: Match on "^To:.*recipient"
procmail: Match on "tribbles"
procmail: No match on "space"
procmail: Assigning "LASTFOLDER=/dev/null"
A receita não não é bem-sucedida.
Por outro lado, se a B
override expirar no final de sua condição, pm-test.rc
deverá ter sucesso na primeira mensagem porque "tribbles" está na corpo e "espaço" é (apenas) nos cabeçalhos.
% procmail VERBOSE=on DEFAULT=/dev/null MAILDIR=/tmp pm-test.rc < test-mail.txt
procmail: Match on "^To:.*recipient"
procmail: Match on "tribbles"
procmail: Match on "space"
procmail: Assigning "LASTFOLDER=mailbox"
A receita é bem-sucedida .
Assim, as condições após a sobreposição de B
não são afetadas pela sobreposição.
Eles voltam a usar os sinalizadores originais da receita ( H
).