#! MacJGAwk -f # charset="X-MAC-JAPANESE" # encoding="X-MAC-JAPANESE" # jgawk 2.15.2+1.0+1.2.5 を JGAwk Interface 上で使う前提で書いてゐます。 # System 7.* でないと動かないかも。 # 1. Input> Files # 2. Output> File (Append): Unsent Messages # 3. Script> File: uuzilla.awk (this file) # と設定してから、 uucd で Encode した File の入った Folder を # JGAwk Interface に Drag & Drop して Run. # HyperCard Stack 版より一寸遅いかな……。 BEGIN { anchor = "*:Netscape \x5C:Mail:Unsent Messages"; # Netscape Communicator/Navigator (Mac OS 9) # "~/Library/Thunderbird/Profiles/*/Mail/Local Folders/Unsent Messages"; # Thunderbird (Mac OS X) while ((getline < anchor) > 0) { if (/^$/) { break; } else if (/^[^ \t]/) { prev = $1; header[prev] = $0; } else { header[prev] = (header[prev] "\n" $0); } } if ("References:" in header) { gsub(/>[\r\n\t ]*\n\t<", header["References:"]); if ("Message-ID:" in header) { sub(/^Message-ID: */, "\n\t", header["Message-ID:"]); header["References:"] = (header["References:"] header["Message-ID:"]); } } header["Message-ID:"] = header["From:"]; sub(/^From: */, "", header["Message-ID:"]); j = match(header["Subject:"], /[^\r\n]+$/) ? RLENGTH : length(header["Subject:"]); i = 1 - ARGC; srand(); } /^BEGIN/ { t = systime() + i++; print strftime("From - %c", t); print "X-Mozilla-Status: 8800"; print header["X-Mozilla-News-Host:"]; printf "Message-ID: <%.8f.%s>\n", t + rand(), header["Message-ID:"]; if ("References:" in header) { print header["References:"]; } print strftime("Date: %a, %d %b %Y %H:%M:%S +0900", t); print header["From:"]; print header["Newsgroups:"]; printf "%s", header["Subject:"]; part = $NF; if (fn && part !~ "^1/") { print (length(fn) + j > 70) ? "\n" : "", "-", fn, "(" part ")\n"; } } /^begin [0-7]?[0-7][0-7][0-7] / { fn = $NF print (length(fn) + j > 70) ? "\n" : "", "-", fn, "(" part ")\n"; } /^BEGIN/, /^END/ { if (/^BEGIN/) next; if (/^END/) $0 = ""; print; }