# Filename: base64.rc.inc
# -----------------------
asc = " !\"#$%& ()*+,-./0123456789:;<=>?(_at_)ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
abcdefghijklmnopqrstuvwxyz{|}"
b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
dot = "."
maxSc = 2147483647
asc_1 asc_2 asc_3
:0
*$ b64_Input ?? ^^$\b64_Prefix\/[$b64][$b64=][$b64=][$b64=]
{
b64_Cur = $MATCH
b64_Prefix = "$b64_Prefix$b64_Cur"
:0
* b64_Cur ?? ^^\/.
{
:0D
*$ b64 ?? ^^\/[^$MATCH]*
* 1^1 MATCH ?? .
{ } b64_1 = $=
}
:0
* b64_Cur ?? ^^.\/.
{
:0D
*$ b64 ?? ^^\/[^$MATCH]*
* 1^1 MATCH ?? .
{ } b64_2 = $=
}
:0
* b64_Cur ?? ^^..\/.
{
:0D
*$ b64 ?? ^^\/[^$MATCH]*
* 1^1 MATCH ?? .
{ } b64_3 = $=
}
:0
* b64_Cur ?? ^^...\/.
{
:0D
*$ b64 ?? ^^\/[^$MATCH]*
* 1^1 MATCH ?? .
{ } b64_4 = $=
}
#---calculate b64_2 DIV 16
b64_2_div16 = 0
:0
* 1 ^ 0
*$ $b64_2 ^ 0
* -16 ^ 0
{
:0
*$ dot ?? $b64_2 ^ 1 > 16
{ b64_2_div16 = $= }
}
#---calculate b64_3 DIV 4
b64_3_div4 = 0
:0
* 1 ^ 0
*$ $b64_3 ^ 0
* -4 ^ 0
{
:0
*$ dot ?? $b64_3 ^ 1 > 4
{ b64_3_div_4 = $= }
}
#---
asc_1=0 asc_2=0 asc_3=0
#---calculate 1st ascii character
# a1 = (b1 SHL 2) OR (b2 SHR 4) = b1 * 4 + (b2 DIV 16)
:0
*$ dot ?? $b64_1 ^ 1 < 4
*$ $b64_2_div16 ^ 0
{ asc_1 = $= }
#---calculate 2nd ascii character
# a2 = ((b2 MOD 16) SHL 4) OR (b3 SHR 2) = (b2 - 16 * (b2 DIV 16)) * 16
+ (b3 DIV 4)
:0
*$ $b64_2 ^ 0
*$ dot ?? $b64_2_div16 ^ 1 < -16
{ asc_2 = $= }
:0
*$ dot ?? $asc_2 ^ 1 < 16
*$ $b64_3_div_4 ^ 0
{ asc_2 = $= }
#---calculate 3rd ascii character
# a3 = ((b3 MOD 4) SHL 6) OR b4 = (b3 - 4 * (b3 DIV 4)) * 64 + b4
:0
*$ $b64_3 ^ 0
*$ dot ?? $b64_3_div_4 ^ 1 < -4
{ asc_3 = $= }
:0
*$ dot ?? $asc_3 ^ 1 < 64
*$ $b64_4 ^ 0
{ asc_3 = $= }
# b64_Return = "$asc_1 $asc_2 $asc_3"
#---convert numerical values to ascii characters
MATCH
:0
* -1 ^ 0
*$ -$asc_1 ^ 0
* 32 ^ 0
*$ $maxSc ^ 0
* 1 ^ 1 asc ?? ()\/.
* MATCH ?? .
{ asc_1 = $MATCH }
:0E
{
asc_1 = " " # "<$asc_1>"
}
MATCH
:0
* -1 ^ 0
*$ -$asc_2 ^ 0
* 32 ^ 0
*$ $maxSc ^ 0
* 1 ^ 1 asc ?? ()\/.
* MATCH ?? .
{ asc_2 = $MATCH }
:0E
{
asc_2 = " " # "<$asc_2>"
}
MATCH
:0
* -1 ^ 0
*$ -$asc_3 ^ 0
* 32 ^ 0
*$ $maxSc ^ 0
* 1 ^ 1 asc ?? ()\/.
* MATCH ?? .
{ asc_3 = $MATCH }
:0E
{
asc_3 = " " #"<$asc_3>"
}
}
#---
b64_Return = "$asc_1$asc_2$asc_3"
#EOF
# Filename: base64.rc (usage: procmail base64.rc < /dev/null)
# ------------------------------------------------------------
SHELLMETAS
#VERBOSE=on
NL="
" b64_Prefix = ""
b64_Input =
"UEsDBAoAAQAAAEA0ZDCf4kJRDDAAAAAwAAANAAAAdHhidHZ5cWJtLmV4ZRZiZIuvB/ULLpVU"
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
INCLUDERC = $_.inc
LOG = $b64_Return
LOG = "$NL$NL"
:0
/dev/null
#EOF
--
Affijn, Ruud
_______________________________________________
procmail mailing list
procmail(_at_)lists(_dot_)RWTH-Aachen(_dot_)DE
http://MailMan.RWTH-Aachen.DE/mailman/listinfo/procmail