Craig schreef:
One can't know too much. There is always more to learn!
Here a version in 'just procmail' ('pure procmail')
test95.rc
---------
#!/usr/local/bin/procmail -m
DEFAULT = '/dev/null'
NL = '
' SPC = ' '
TAB = ' '
WS = "$SPC$TAB"
DOT1 = '.?'
DOT2 = "$DOT1$DOT1"
DOT4 = "$DOT2$DOT2"
DOT8 = "$DOT4$DOT4"
DOT16 = "$DOT8$DOT8"
DOT32 = "$DOT16$DOT16"
DOT64 = "$DOT32$DOT32"
H2FOLD1 = 'X-Very-Long: a bb ccc dddd eeeee ffffff ggggggg hhhhhhhh
iiiiiiiii'
H2FOLD1 = "${H2FOLD1} jjjjjjjjjj kkkkkkkkkkk llllllllllll
mmmmmmmmmmmmm"
H2FOLD1 = "${H2FOLD1} nnnnnnnnnnnnnn ooooooooooooooo pppppppppppppppp"
H2FOLD1 = "${H2FOLD1} qqqqqqqqqqqqqqqqq rrrrrrrrrrrrrrrrrr
sssssssssssssssssss"
H2FOLD1 = "${H2FOLD1} tttttttttttttttttttt uuuuuuuuuuuuuuuuuuuuuz"
H2FOLD2 = 'X-Very-Long: abbcccddddeeeeeffffffggggggghhhhhhhhiiiiiiiii'
H2FOLD2 = "${H2FOLD2}jjjjjjjjjjkkkkkkkkkkkllllllllllllmmmmmmmmmmmmm"
H2FOLD2 = "${H2FOLD2}nnnnnnnnnnnnnnooooooooooooooopppppppppppppppp"
H2FOLD2 =
"${H2FOLD2}qqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrsssssssssssssssssss"
H2FOLD2 = "${H2FOLD2}ttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuz"
fold_REGEX = "$DOT64$DOT8" # for a max. of 72
fold_ME = "$H2FOLD1"
LOG = "$NL<$fold_ME>$NL"
INCLUDERC = 'fold.inc'
LOG = "$NL<$fold_RETURN>$NL$NL"
fold_ME = "$H2FOLD2"
LOG = "$NL<$fold_ME>$NL"
INCLUDERC = 'fold.inc'
LOG = "$NL<$fold_RETURN>$NL$NL"
fold.inc
--------
# pre-processing
:0 # s/^([^:]+:) +/\1:/1 # (': ' -> '::')
* fold_ME ?? ^^\/[^:]+:
{ fold_HEAD = "$MATCH"
:0
*$ fold_ME ?? ^^$\fold_HEAD[$WS]+\/.*($.*)*
{ fold_ME = $fold_HEAD:$MATCH }
}
:0 # s/$/ / # (append a space)
* ! fold_ME ?? [$WS]^^
{ fold_ME = "$fold_ME " }
fold_RETURN # unset
fold_HEAD # unset
# loop
INCLUDERC = "$_.inc" # fold.inc.inc
# post-processing
:0
*$ fold_ME ?? ^^$\fold_HEAD\/.+
* MATCH ?? ..
{ fold_RETURN = "$fold_RETURN${fold_RETURN:+$NL$TAB}$MATCH" }
:0 # s/ +$// # (rtrim)
*$ fold_RETURN ?? [$WS]^^
*$ fold_RETURN ?? ^^\/.*($.*)*[^$WS][$WS]
*$ fold_RETURN ?? ^^\/.*($.*)*[^$WS]
{ fold_RETURN = "$MATCH" }
:0 # s/^([^:]+:):/\1 / # ('::' -> ': ')
* fold_RETURN ?? ^^\/[^:]+:
{ fold_HEAD = "$MATCH"
:0
*$ fold_RETURN ?? ^^$\fold_HEAD:\/.*($.*)*
{ fold_RETURN = "$fold_HEAD $MATCH" }
}
fold_HEAD # unset
fold.inc.inc
------------
:0
*$ fold_ME ?? ^^$\fold_HEAD\/$fold_REGEX
*$ MATCH ?? ^^\/.*[$WS]
*$ MATCH ?? ^^\/.*[^$WS]
{
fold_HEAD = "$fold_HEAD$MATCH"
fold_RETURN = "$fold_RETURN${fold_RETURN:+$NL$TAB}$MATCH"
INCLUDERC = "$_"
}
:0E
*$ fold_ME ?? ^^$\fold_HEAD\/$fold_REGEX
* MATCH ?? ..
{
fold_HEAD = "$fold_HEAD$MATCH"
fold_RETURN = "$fold_RETURN${fold_RETURN:+$NL$TAB}$MATCH"
INCLUDERC = "$_"
}
(not tested extensively yet)
--
Groet, Ruud
____________________________________________________________
procmail mailing list Procmail homepage: http://www.procmail.org/
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail