summaryrefslogtreecommitdiff
path: root/mail/exmh/patches
diff options
context:
space:
mode:
authoragc <agc>1998-02-25 12:08:07 +0000
committeragc <agc>1998-02-25 12:08:07 +0000
commit875d76db1ce18d71adf8d3bc6b05a04ea78df6df (patch)
tree1737251a596699409bf86a5d144124ca034a4c8f /mail/exmh/patches
parent2b173e840d3639d2430d20d4efd09e7151af724e (diff)
downloadpkgsrc-875d76db1ce18d71adf8d3bc6b05a04ea78df6df.tar.gz
I have become bored waiting for exmh 2.0.2, and so have decided to
force the issue, by committing a 2.0.1 package. This is taken from the FreeBSD port.
Diffstat (limited to 'mail/exmh/patches')
-rw-r--r--mail/exmh/patches/patch-as32
-rw-r--r--mail/exmh/patches/patch-at281
-rw-r--r--mail/exmh/patches/patch-au477
-rw-r--r--mail/exmh/patches/patch-av19
4 files changed, 809 insertions, 0 deletions
diff --git a/mail/exmh/patches/patch-as b/mail/exmh/patches/patch-as
new file mode 100644
index 00000000000..7f891a809b8
--- /dev/null
+++ b/mail/exmh/patches/patch-as
@@ -0,0 +1,32 @@
+*** exmh-2.0/lib/pgpExec.tcl Mon Dec 22 15:52:20 1997
+--- lib/pgpExec.tcl Tue Dec 23 12:33:36 1997
+***************
+*** 197,204 ****
+ set keylist [split $keylist "\n"]
+ set keys {}
+ set key {}
+ foreach line $keylist {
+! if [regexp {^ *(pub|sec) +[0-9]+(/| +)([0-9A-F]+) +[0-9]+/ ?[0-9]+/[0-9]+ +(.*)$} $line {} {} {} keyid userid] {
+ set key [list "0x$keyid" [string trim $userid]]
+ lappend keys $key
+ }
+--- 194,212 ----
+ set keylist [split $keylist "\n"]
+ set keys {}
+ set key {}
++ set previousKeyId 0
+ foreach line $keylist {
+! if {$previousKeyId == 1} {
+! Exmh_Debug "Entering case 1..."
+! regexp {^ +(.*)$} $line {} userid
+! if { $userid == "*** KEY REVOKED ***"} continue;
+! set key [list "0x$keyid" [string trim $userid]]
+! lappend keys $key
+! set previousKeyId 0
+! } elseif [regexp {^ *(pub|sec) +[0-9]+(/| +)([0-9A-F]+) +[0-9]+/ ?[0-9]+/ ?[0-9]+ +days: +[0-9]+} $line {} {} {} keyid ] {
+! set previousKeyId 1
+! } elseif [regexp {^ *(pub|sec) +[0-9]+(/| +)([0-9A-F]+) +[0-9]+/ ?[0-9]+/ ?[0-9]+ +(.*)$} $line {} {} {} keyid userid] {
+! if { $userid == "*** KEY REVOKED ***"} continue;
+ set key [list "0x$keyid" [string trim $userid]]
+ lappend keys $key
+ }
diff --git a/mail/exmh/patches/patch-at b/mail/exmh/patches/patch-at
new file mode 100644
index 00000000000..f2fe301ce4f
--- /dev/null
+++ b/mail/exmh/patches/patch-at
@@ -0,0 +1,281 @@
+*** exmh.install.orig Mon Dec 22 13:37:45 1997
+--- exmh.install Tue Dec 23 12:32:48 1997
+***************
+*** 45,50 ****
+--- 45,51 ----
+ {Search path for user faces}
+ install_var faces(set,unknown) {domains unknown} \
+ {Search path for generic faces}
++ install_var faces(set,news) {news} {Search path for newsgroups faces}
+ install_var faces(defaultDomain) eng.sun.com {Your default domain}
+ install_var faces(suffix) {xpm gif xbm} {Faces file suffixes}
+ install_dirVar pgp(path) /usr/local/bin {PGP bin directory}
+*** lib/faces.tcl.orig Mon Mar 24 13:15:34 1997
+--- lib/faces.tcl Mon Sep 29 13:20:26 1997
+***************
+*** 29,34 ****
+--- 29,35 ----
+ # backwards compatibility with old "exmh" script
+ set faces(set,user) $faces(set)
+ set faces(set,unknown) $faces(set)
++ set faces(set,news) $faces(set)
+ }
+ set faces(sets) {user unknown}
+ }
+***************
+*** 36,41 ****
+--- 37,43 ----
+ # tail component for each set
+ set faces(name,user) {$user}
+ set faces(name,unknown) unknown
++ set faces(name,news) unknown
+
+ set faces(defaultDomain) [string tolower \
+ [string trim $faces(defaultDomain) ". "]]
+***************
+*** 43,48 ****
+--- 45,51 ----
+ foreach set $faces(sets) {
+ set faces(path,$set) {}
+ }
++ set faces(path,news) {}
+ if [info exists env(FACEPATH)] {
+ set faces(base) ""
+ foreach dir [split $env(FACEPATH) :] {
+***************
+*** 53,58 ****
+--- 56,62 ----
+ } else {
+ FaceAddPath user $dir
+ FaceAddPath unknown $dir
++ FaceAddPath news $dir
+ }
+ }
+ }
+***************
+*** 64,69 ****
+--- 68,77 ----
+ FaceAddPath $set $dir
+ }
+ }
++ foreach dir $faces(set,news) {
++ if ![file isdirectory $faces(base)$dir] continue
++ FaceAddPath news $dir
++ }
+ }
+ }
+ proc FaceAddPath {set dir} {
+***************
+*** 79,85 ****
+ }
+
+
+! proc Face_Show { fromwho {xface {}} } {
+ global faces faceCache
+
+ Face_Delete
+--- 87,93 ----
+ }
+
+
+! proc Face_Show { fromwho {newsgrps {}} {xface {}} } {
+ global faces faceCache
+
+ Face_Delete
+***************
+*** 99,109 ****
+ }
+
+ # Check for cached lookup result
+! if [info exists faceCache($fromwho)] {
+! if [Face_ShowFace $faceCache($fromwho)] {
+ return 1
+ }
+! unset faceCache($fromwho)
+ Face_Delete
+ }
+
+--- 107,117 ----
+ }
+
+ # Check for cached lookup result
+! if [info exists faceCache($fromwho,$newsgrps)] {
+! if [Face_ShowFace $faceCache($fromwho,$newsgrps)] {
+ return 1
+ }
+! unset faceCache($fromwho,$newsgrps)
+ Face_Delete
+ }
+
+***************
+*** 117,123 ****
+ set machine [string tolower $faces(defaultDomain)]
+ } elseif {[string first . $machine] == -1} {
+ append machine . $faces(defaultDomain)
+! }
+
+ set from [split $machine .]
+ set pathlist [FacePathlist $from]
+--- 125,131 ----
+ set machine [string tolower $faces(defaultDomain)]
+ } elseif {[string first . $machine] == -1} {
+ append machine . $faces(defaultDomain)
+! }
+
+ set from [split $machine .]
+ set pathlist [FacePathlist $from]
+***************
+*** 124,129 ****
+--- 132,147 ----
+
+ #Exmh_Debug \n$user ==> $pathlist
+
++ set pathlistngfull {}
++ if {[string compare "" $newsgrps]} {
++ set newsgrplist [string tolower [split $newsgrps ,]]
++ foreach ng $newsgrplist {
++ set ngparts [split $ng .]
++ set pathlistng [FacePathNGlist $ngparts]
++ set pathlistngfull [concat $pathlistng $pathlistngfull]
++ }
++ }
++
+ # Loop through Face path
+ #Tputs lookup: [time {
+ set matches {}
+***************
+*** 152,158 ****
+ break
+ }
+ set path $dir/$part/$name
+! # Exmh_Debug $path
+ # skip non-existent directories
+ if ![file exists $faces(base)$path] continue
+
+--- 170,176 ----
+ break
+ }
+ set path $dir/$part/$name
+! # Exmh_Debug $path
+ # skip non-existent directories
+ if ![file exists $faces(base)$path] continue
+
+***************
+*** 166,178 ****
+ }
+ }
+ # }]
+
+ # Exmh_Debug Faces matches $matches
+
+ if !$faces(rowEnabled) {
+ foreach face $matches {
+ if [Face_ShowFile $face] {
+! set faceCache($fromwho) $face
+ Exmh_Status $msg
+ return 1
+ }
+--- 184,218 ----
+ }
+ }
+ # }]
++ eval set tail $faces(name,news)
++ foreach dir $faces(path,news) {
++ set name $tail
++ set map {}
++ foreach part [concat $map $pathlistngfull] {
++ # if {([string match unknown* $dir] || [string match misc* $dir])
++ # && [llength $matches]} {
++ # break
++ # }
++ set path $dir/$part/$name
++ # Exmh_Debug $path
++ # skip non-existent directories
++ if ![file exists $faces(base)$path] continue
+
++ foreach suf $faces(suffix) {
++ if [file exists $faces(base)$path/face.$suf] {
++ lappend matches $path/face.$suf
++ break
++ }
++ }
++ }
++ }
++
+ # Exmh_Debug Faces matches $matches
+
+ if !$faces(rowEnabled) {
+ foreach face $matches {
+ if [Face_ShowFile $face] {
+! set faceCache($fromwho,$newsgrps) $face
+ Exmh_Status $msg
+ return 1
+ }
+***************
+*** 179,185 ****
+ }
+ # braces around cmdsubst NECESSARY!
+ } elseif {[Face_ShowFace $matches]} {
+! set faceCache($fromwho) $matches
+ Exmh_Status $msg
+ return 1
+ }
+--- 219,225 ----
+ }
+ # braces around cmdsubst NECESSARY!
+ } elseif {[Face_ShowFace $matches]} {
+! set faceCache($fromwho,$newsgrps) $matches
+ Exmh_Status $msg
+ return 1
+ }
+***************
+*** 200,205 ****
+--- 240,258 ----
+ append path $prefix [lindex $from $i]
+ set prefix /
+ set pathlist [concat $path $pathlist]
++ }
++ lappend pathlist {}
++ return $pathlist
++ }
++
++ proc FacePathNGlist { ng } {
++ set path {}
++ set prefix {}
++ set pathlist {}
++ for {set i 0} {$i <= [expr [llength $ng]-1]} {incr i 1} {
++ append path $prefix [lindex $ng $i]
++ set prefix /
++ set pathlist [concat $path $pathlist]
+ }
+ lappend pathlist {}
+ return $pathlist
+*** lib/msgShow.tcl.orig Fri Jan 31 15:15:31 1997
+--- lib/msgShow.tcl Sun Jun 29 22:42:57 1997
+***************
+*** 81,87 ****
+ set msg(curclear) 0
+ set mime(stop) 0
+ update idletasks ;# Faces display can be slow
+! Face_Show [MsgParseFrom $mimeHdr(0=1,hdr,from)] $mimeHdr(0=1,hdr,x-face)
+ foreach cmd [info commands Hook_MsgShow*] {
+ $cmd $mhProfile(path)/$exmh(folder)/$msgid mimeHdr
+ }
+--- 81,87 ----
+ set msg(curclear) 0
+ set mime(stop) 0
+ update idletasks ;# Faces display can be slow
+! Face_Show [MsgParseFrom $mimeHdr(0=1,hdr,from)] $mimeHdr(0=1,hdr,newsgroups) $mimeHdr(0=1,hdr,x-face)
+ foreach cmd [info commands Hook_MsgShow*] {
+ $cmd $mhProfile(path)/$exmh(folder)/$msgid mimeHdr
+ }
+***************
+*** 109,114 ****
+--- 109,115 ----
+ set mimeHdr($part=$subpart,hdr,date) {}
+ set mimeHdr($part=$subpart,hdr,subject) {}
+ set mimeHdr($part=$subpart,hdr,x-face) {}
++ set mimeHdr($part=$subpart,hdr,newsgroups) {}
+ set mimeHdr($part=$subpart,fullHeaders) $mime(fullHeaders)
+ set mimeHdr($part=$subpart,yview) 1.0
+
diff --git a/mail/exmh/patches/patch-au b/mail/exmh/patches/patch-au
new file mode 100644
index 00000000000..b8cfb9f8b02
--- /dev/null
+++ b/mail/exmh/patches/patch-au
@@ -0,0 +1,477 @@
+diff -cr /nr/user/skr/lib/exmh2.0zeta/mime.tcl ./mime.tcl
+*** /nr/user/skr/lib/exmh2.0zeta/mime.tcl Fri Oct 3 21:56:34 1997
+--- lib/mime.tcl Wed Dec 10 12:57:57 1997
+***************
+*** 176,181 ****
+--- 176,191 ----
+ {mime(mdnTo) dispositionNotificationTo {} {Disposition Notification To}
+ "The address where you want MDN receipts to end up. This normally your
+ own email address."}
++ {mime(mdnSend) dispositionNotificationSend
++ {CHOICE never deny {ask user} auto/ask auto/ignore }
++ {Send MDNs}
++ "This controls if and how to send MDNs. The options are:
++ - Never generate MDN, always ignore requests.
++ - Automatically generate a \"denied\" MDN when a MDN is requested.
++ - Ask user whether to generate a MDN when displaying the message.
++ - Automatically when displaying the message, but ask user in
++ certain cases where it may not be appropriate to generate MDNs.
++ - As above, but silently ignore potentially suspect MDN requests."}
+ }
+ set i 0
+ foreach char {A B C D E F G H I J K L M N O P Q R S T U V W X Y Z \
+***************
+*** 1016,1029 ****
+ }
+ MimeShowHeaders $tkw $part=1 [MimeLabel $part part]
+ MimeInsertSeparator $tkw $part 6
+! if {$part == 0 \
+! && ![info exists mimeHdr(0=1,hdr,x-exmhmdn)] \
+! && [info exists mimeHdr(0=1,hdr,disposition-notification-to)]} {
+! if [info exists mime(mdnDone)] {
+! unset mime(mdnDone)
+! } else {
+! MDNAsk $tkw $mimeHdr(0=1,hdr,disposition-notification-to)
+! }
+ }
+
+ MimeShowPart $tkw $part=1 [MimeLabel $part part] 1
+--- 1026,1033 ----
+ }
+ MimeShowHeaders $tkw $part=1 [MimeLabel $part part]
+ MimeInsertSeparator $tkw $part 6
+! if {$part == 0} {
+! MDNCheck $tkw
+ }
+
+ MimeShowPart $tkw $part=1 [MimeLabel $part part] 1
+***************
+*** 1811,1824 ****
+ MimeShowMinHeaders $tkw $part 1
+ }
+ MimeInsertSeparator $tkw $part 6
+! if {![info exists mimeHdr(0=1,hdr,x-exmhmdn)] && \
+! [info exists mimeHdr(0=1,hdr,disposition-notification-to)]} {
+! if [info exists mime(mdnDone)] {
+! unset mime(mdnDone)
+! } else {
+! MDNAsk $tkw $mimeHdr(0=1,hdr,disposition-notification-to)
+! }
+! }
+ if [info exists mimeHdr($part,param,charset)] {
+ set tag [MimeSetCharset $tkw $part]
+ $tkw tag remove noteTag "insert -1line" end
+--- 1815,1821 ----
+ MimeShowMinHeaders $tkw $part 1
+ }
+ MimeInsertSeparator $tkw $part 6
+! MDNCheck $tkw
+ if [info exists mimeHdr($part,param,charset)] {
+ set tag [MimeSetCharset $tkw $part]
+ $tkw tag remove noteTag "insert -1line" end
+
+diff -cr /nr/user/skr/lib/exmh2.0zeta/receipt.tcl ./receipt.tcl
+*** /nr/user/skr/lib/exmh2.0zeta/receipt.tcl Thu Oct 2 17:01:22 1997
+--- lib/receipt.tcl Thu Dec 11 09:12:39 1997
+***************
+*** 46,57 ****
+ $t insert 1.0 "Disposition-Notification-To: $mdnTo\n"
+ }
+
+! proc MDNGenerate { file address choice } {
+ global exwin mimeHdr
+
+ if {$choice != "ignored"} {
+! set mdnfile [MDNBuildDraft $file $address $choice]
+! exec send $mdnfile
+ }
+ MDNAddHeaderToDraft $file "X-ExmhMDN: $choice"
+ MsgShowInText $exwin(mtext) $mimeHdr(0,rawfile)
+--- 46,61 ----
+ $t insert 1.0 "Disposition-Notification-To: $mdnTo\n"
+ }
+
+! proc MDNGenerate { file address choice mode } {
+ global exwin mimeHdr
+
+ if {$choice != "ignored"} {
+! set mdnfile [MDNBuildDraft $file $address $choice $mode]
+! if [catch {exec send $mdnfile} result] {
+! Exmh_Debug "send result: $result"
+! Exmh_Status "Could not send message disposition notification" error
+! return
+! }
+ }
+ MDNAddHeaderToDraft $file "X-ExmhMDN: $choice"
+ MsgShowInText $exwin(mtext) $mimeHdr(0,rawfile)
+***************
+*** 82,109 ****
+ Mh_Rename $draft.new $draft
+ }
+
+! proc MDNAsk {tkw address} {
+ global mimeHdr exmh
+
+! $tkw insert insert " The sender wants you to acknowledge that you have \
+! seen this mail. Do you want to send a receipt to $address?\n"
+! $tkw insert insert " "
+! TextButton $tkw "Confirm now" \
+ [list MDNGenerate $mimeHdr(0,rawfile) \
+! $mimeHdr(0=1,hdr,disposition-notification-to) "displayed"]
+ $tkw insert insert " "
+ TextButton $tkw "Send denial" \
+ [list MDNGenerate $mimeHdr(0,rawfile) \
+! $mimeHdr(0=1,hdr,disposition-notification-to) "denied"]
+ $tkw insert insert " "
+ TextButton $tkw "Ignore silently" \
+ [list MDNGenerate $mimeHdr(0,rawfile) \
+! $mimeHdr(0=1,hdr,disposition-notification-to) "ignored"]
+ $tkw insert insert "\n"
+ MimeInsertSeparator $tkw 0 6
+ }
+
+ proc MDNReportDialog { tkw from date disp parts } {
+ if {$parts == 2} {
+ $tkw insert insert "This mail contains a message disposition \
+ notification, regarding the message to $from.\n\n"
+--- 86,238 ----
+ Mh_Rename $draft.new $draft
+ }
+
+! proc MDNAsk {tkw address explain} {
+ global mimeHdr exmh
+
+! $tkw insert insert " The sender wants you to acknowledge that you have\
+! seen this mail."
+! if {[string compare $explain {}] != 0} {
+! $tkw insert insert "\n\n NOTE! For the reason(s) listed below, it may\
+! be unsafe to send the disposition notification. Please check the\
+! message carefully. Unless you are sure that it is safe to send\
+! the notification, press \"Ignore silently\""
+! $tkw insert insert $explain
+! }
+!
+! $tkw insert insert "\n\n Do you want to send a disposition notification\
+! (receipt) to \n $address?"
+! $tkw insert insert "\n\n "
+! TextButton $tkw "Send confirmation" \
+ [list MDNGenerate $mimeHdr(0,rawfile) \
+! $mimeHdr(0=1,hdr,disposition-notification-to) \
+! "displayed" "manual-action/MDN-sent-manually"]
+ $tkw insert insert " "
+ TextButton $tkw "Send denial" \
+ [list MDNGenerate $mimeHdr(0,rawfile) \
+! $mimeHdr(0=1,hdr,disposition-notification-to) \
+! "denied" "manual-action/MDN-sent-manually"]
+ $tkw insert insert " "
+ TextButton $tkw "Ignore silently" \
+ [list MDNGenerate $mimeHdr(0,rawfile) \
+! $mimeHdr(0=1,hdr,disposition-notification-to) \
+! "ignored" {}]
+ $tkw insert insert "\n"
+ MimeInsertSeparator $tkw 0 6
+ }
+
++ proc MDNCheck { tkw } {
++ global mimeHdr mime
++
++ if {![info exists mimeHdr(0=1,hdr,x-exmhmdn)] && \
++ [info exists mimeHdr(0=1,hdr,disposition-notification-to)]} {
++ if [info exists mime(mdnDone)] {
++ unset mime(mdnDone)
++ } else {
++ set dnt $mimeHdr(0=1,hdr,disposition-notification-to)
++
++ switch $mime(mdnSend) {
++ "never" {
++ set mdnAction1 "ignored"
++ set mdnAction2 "ignored"
++ }
++ "deny" {
++ set mdnAction1 "denied"
++ set mdnAction2 "ignored"
++ }
++ "ask user" {
++ set mdnAction1 "ask"
++ set mdnAction2 "ask"
++ }
++ "auto/ask" {
++ set mdnAction1 "displayed"
++ set mdnAction2 "ask"
++ }
++ "auto/ignore" {
++ set mdnAction1 "displayed"
++ set mdnAction2 "ignored"
++ }
++ default {
++ set mdnAction1 "ask"
++ set mdnAction2 "ask"
++ }
++ }
++
++ set mdnExplain {}
++
++ set line [string trim $dnt]
++ if [regsub {\(.*\)} $line {} newline] {
++ set line $newline
++ }
++
++ if {[string first "|" $line] != -1} {
++ set mdnAction1 "ignore"
++ set mdnExplain "$mdnExplain
++
++ * The address(es) for the disposition notification contains a pipe symbol (|)
++ *** THIS MAY BE A SERIOUS SECURITY HOLE."
++ }
++
++ if {[string first "," $line] != -1} {
++ set mdnAction1 $mdnAction2
++ set mdnExplain "$mdnExplain
++
++ * The sender appears to have requested a disposition notification to be
++ sent to more than one address. If you are not sure that there is a valid
++ reason to send disposition notifications to each of these addresses,
++ the request should be ignored and no disposition notifications sent."
++ }
++
++ if [info exists mimeHdr(0=1,hdr,return-path)] {
++ if {[string compare \
++ [MsgParseFrom $mimeHdr(0=1,hdr,return-path) {}] \
++ [MsgParseFrom $line {}]] != 0} {
++ set mdnAction1 $mdnAction2
++ set mdnExplain "$mdnExplain
++
++ * The disposition notification appears to be directed somewhere else than
++ to the sender of the message. If you are not sure that there is a valid
++ reason for this, the request should be ignored and no disposition
++ notifications sent."
++ }
++ } else {
++ set mdnAction1 $mdnAction2
++ set mdnExplain "$mdnExplain
++
++ * The message does not have a Return-path header field, and therefore it
++ is not possible to verify that the disposition notification address(es)
++ is valid."
++ }
++
++ if [info exists mimeHdr(0=1,hdr,disposition-notification-options)]\
++ {
++ set mdnAction1 $mdnAction2
++ set mdnExplain "$mdnExplain
++
++ * The message has a Disposition-notification-options header requesting
++ some special processing which exmh does not know about."
++ if [regexp -nocase {=[ ]*required[ ]*,} \
++ $mimeHdr(0=1,hdr,disposition-notification-options)] {
++ set mdnAction1 "ignored"
++ set mdnExplain "$mdnExplain
++
++ Since one or more of the unknown options are required to be taken into
++ account for generating a proper disposition notification, no disposition
++ notification at all should be generated."
++ }
++ }
++
++ if {[string compare $mdnAction1 "ask"] == 0} {
++ MDNAsk $tkw $dnt $mdnExplain
++ } else {
++ MDNGenerate $mimeHdr(0,rawfile) $dnt $mdnAction1 \
++ "manual-action/MDN-sent-automatically"
++ }
++ }
++ }
++ }
++
+ proc MDNReportDialog { tkw from date disp parts } {
++
+ if {$parts == 2} {
+ $tkw insert insert "This mail contains a message disposition \
+ notification, regarding the message to $from.\n\n"
+***************
+*** 111,163 ****
+ $tkw insert insert "This mail contains a message disposition \
+ notification, regarding the message to $from on $date.\n\n"
+ }
+! switch [string tolower $disp] {
+! "displayed" {
+! set jtext \
+! "The mail was displayed by the user agent to someone reading the recipient's \
+! mailbox. This does not guarantee that it is read or understood."
+! }
+! "denied" {
+! set jtext \
+! "The recipient does not wish you to be informed of the message's disposition."
+! }
+! "processed" {
+! set jtext \
+! "The message has been processed in some manner (e.g. printed, faxed, \
+! forwarded) in response to a user command, without being displayed to the \
+! user. The user may or may not see the message later."
+! }
+! "autoprocessed" {
+! "The message has been processed automatically in some manner (e.g. printed, \
+! faxed, forwarded, gatewayed) in response to some user request made in \
+! advance, without being displayed to the user. The user may or may not see the \
+! message later."
+! }
+! "deleted" {
+! "The message has manually been deleted. The recipient may or may not have \
+! seen the message."
+! }
+! "autodeleded" {
+! "The message has been automatically deleted without being displayed to the \
+! recipient."
+! }
+! "obsoleted" {
+! "The message has been automatically rendered obsolete by another message \
+! received. The recipient may still access and read the message later."
+! }
+! "terminated" {
+! "The recipient's mailbox has been terminated and all messagess in it \
+! automatically deleted."
+! }
+! "autodenied" {
+! "The recipient does not wish the sender to be informed of the message's \
+! disposition, and has requested that this MDN be sent automatically."
+ }
+! default {
+! set jtext "The reciept type is $disp."
+ }
+ }
+! $tkw insert insert $jtext\n\n
+ if {$parts != 2} {
+ $tkw insert insert " "
+ TextButton $tkw "View requesting message" \
+--- 240,336 ----
+ $tkw insert insert "This mail contains a message disposition \
+ notification, regarding the message to $from on $date.\n\n"
+ }
+!
+! $tkw insert insert "The disposition of the message is: \n $disp\n\n"
+!
+! if [regsub -all {(\(.*\))|([ ]+)} $disp {} newline] {
+! set disp $newline
+! }
+!
+! if [regexp -nocase {^([-a-z]+)/([-a-z]+);([-a-z]+)(/(.*))?$} $disp match \
+! action_mode sending_mode disp_type match2 disp_modifiers] {
+!
+! $tkw insert insert "This means:\n"
+!
+! switch [string tolower $action_mode] {
+! "manual-action" {
+! $tkw insert insert "
+! A manual action happened to the message:\n"
+! }
+! "automatic-action" {
+! $tkw insert insert "
+! An automatic action happened to the message:\n"
+! }
+! default {
+! $tkw insert insert "
+! An action (described as $action_mode) happened to the message:\n"
+! }
+ }
+!
+! switch [string tolower $disp_type] {
+! "displayed" {
+! set jtext "
+! The mail was displayed by the user agent to someone reading the
+! recipient's mailbox. (This does not guarantee that it is read
+! or understood.)"
+! }
+! "denied" {
+! set jtext "
+! The recipient does not wish you to be informed of the message's
+! disposition."
+! }
+! "dispatched" {
+! set jtext "
+! The mail has been sent somewhere (e.g. printed, faxed, forwarded)
+! without being displayed to the user. (The user may or may not see
+! the message later.)"
+! }
+! "processed" {
+! set jtext "
+! The message has been processed in some manner (i.e. by some sort of
+! rules or server) without being displayed to the user. (The user may
+! or may not see the message later, or there may not even be a human
+! user associated with the mailbox.)"
+! }
+! "failed" {
+! set jtext "
+! A failure occurred that prevented the proper generation of an MDN."
+! }
+! "deleted" {
+! set jtext "
+! The message has been deleted. (The recipient may or may not have
+! seen the message. The recipient might \"undelete\" the message at a
+! later time and read the message.)"
+! }
+! default {
+! set jtext "
+! Unknown disposition type $disp_type."
+! }
+! }
+! $tkw insert insert $jtext\n
+!
+! switch [string tolower $sending_mode] {
+! "mdn-sent-manually" {
+! $tkw insert insert "
+! The recipient manually caused this MDN to be sent."
+! }
+! "mdn-sent-automatically" {
+! $tkw insert insert " \
+! This MDN was generated automatically."
+! }
+! default {
+! $tkw insert insert "
+! The way the MDN was sent is described as: $sending_mode
+! (which is not a valid code)."
+! }
+ }
++ } else {
++ $tkw insert insert "
++ The format of the disposition string is not recognized, cannot
++ explain it further."
+ }
+!
+! $tkw insert insert "\n\n\n"
+ if {$parts != 2} {
+ $tkw insert insert " "
+ TextButton $tkw "View requesting message" \
+***************
+*** 181,187 ****
+ }
+ }
+
+! proc MDNBuildDraft { draft address doit } {
+ global env mimeHdr faces exmh
+ set host [exec hostname]
+
+--- 354,360 ----
+ }
+ }
+
+! proc MDNBuildDraft { draft address doit choice} {
+ global env mimeHdr faces exmh
+ set host [exec hostname]
+
+***************
+*** 226,232 ****
+ if [info exists mimeHdr(0=1,hdr,message-id)] {
+ puts $out "Original-Message-ID: $mimeHdr(0=1,hdr,message-id)"
+ }
+! puts $out "Disposition: $doit"
+
+ FvMimeAddPart $out $bdry "message/rfc822\n"
+
+--- 399,405 ----
+ if [info exists mimeHdr(0=1,hdr,message-id)] {
+ puts $out "Original-Message-ID: $mimeHdr(0=1,hdr,message-id)"
+ }
+! puts $out "Disposition: $choice; $doit"
+
+ FvMimeAddPart $out $bdry "message/rfc822\n"
+
diff --git a/mail/exmh/patches/patch-av b/mail/exmh/patches/patch-av
new file mode 100644
index 00000000000..453e2cd27ae
--- /dev/null
+++ b/mail/exmh/patches/patch-av
@@ -0,0 +1,19 @@
+*** lib/post.tcl Tue Dec 23 18:41:31 1997
+--- lib/post.tcl.new Fri Jan 9 11:40:29 1998
+***************
+*** 59,65 ****
+ # and CNews which get upset when they can't do it
+ set header_throwAway \
+ {{return-path:} {received:} {path:} {date:} {message-id:} {to:} \
+! {lines:} {x-exmh-isig-} {cc:}}
+
+ # Headers INN wants to add itself get X-original- shoved in front
+ # if we want to keep them
+--- 59,65 ----
+ # and CNews which get upset when they can't do it
+ set header_throwAway \
+ {{return-path:} {received:} {path:} {date:} {message-id:} {to:} \
+! {lines:} {x-exmh-isig-} {cc:} {from }}
+
+ # Headers INN wants to add itself get X-original- shoved in front
+ # if we want to keep them