summaryrefslogtreecommitdiff
path: root/mail/exmh
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
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')
-rw-r--r--mail/exmh/Makefile30
-rw-r--r--mail/exmh/files/config2
-rw-r--r--mail/exmh/files/md531
-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
-rw-r--r--mail/exmh/pkg/PLIST332
8 files changed, 1018 insertions, 186 deletions
diff --git a/mail/exmh/Makefile b/mail/exmh/Makefile
index f17077e2386..b0960dc24f9 100644
--- a/mail/exmh/Makefile
+++ b/mail/exmh/Makefile
@@ -1,23 +1,29 @@
# New ports collection Makefile for: exmh2
-# Version required: 2.0zeta
-# Date created: 1 Jan 97
+# Version required: 2.0.1
+# Date released: 1 Jan 97
# Whom: Peter Wemm <peter@freebsd.org>
#
-# $NetBSD: Makefile,v 1.3 1998/01/24 20:28:43 hubertf Exp $
-# FreeBSD Id: Makefile,v 1.17 1997/10/06 06:49:45 peter Exp
+# $NetBSD: Makefile,v 1.4 1998/02/25 12:08:07 agc Exp $
+# FreeBSD Id: Makefile,v 1.25 1998/02/15 05:36:54 peter Exp
#
-DISTNAME= exmh-2.0zeta
-PKGNAME= exmh-2.0z
-CATEGORIES= mail tk41
+DISTNAME= exmh-2.0.1
+CATEGORIES= mail tk80
MASTER_SITES= ftp://ftp.sunlabs.com/pub/tcl/exmh/
EXTRACT_SUFX= .tar.Z
-PATCH_SITES= http://www.sunlabs.com/~bwelch/exmh/patches/2.0zeta/
-PATCHFILES= ispell.patch koir.patch mime.patch seditMime.patch scan.patch \
- addr.patch html.patch html_dpackage.patch pgpExec.patch
+PATCH_SITES= http://sunscript.sun.com/exmh/patches/2.0.1/
+PATCHFILES= utils.patch folderNew.patch extrasInit.patch exec.patch \
+ app-defaults.patch pgpMisc.patch seditMime.patch mime.patch \
+ bindings.patch html_bindings.patch find.patch mh.patch \
+ pgp.patch
-MAINTAINER= peter@FreeBSD.org
+# User contributed and "new features". Some not useable as-is.
+PATCHFILES+= seditpost.patch inc.patch next.patch
+# XXX pgpExec.patch has got confused paths (supplied as patch-as)
+# XXX newsgroups.patch is relative to a different directory (patch-at)
+# XXX MDN.patch doesn't apply (patch-au)
+# XXX post.from.patch doesn't apply (patch-av)
.if defined(PATCH_DEBUG)
PATCH_DIST_ARGS= -d ${WRKSRC}/lib -E ${PATCH_DIST_STRIP}
@@ -25,6 +31,8 @@ PATCH_DIST_ARGS= -d ${WRKSRC}/lib -E ${PATCH_DIST_STRIP}
PATCH_DIST_ARGS= -d ${WRKSRC}/lib --forward --quiet -E ${PATCH_DIST_STRIP}
.endif
+MAINTAINER= peter@FreeBSD.org
+
DIST_SUBDIR= ${PKGNAME}
RUN_DEPENDS= wish8.0:${PORTSDIR}/x11/tk80
diff --git a/mail/exmh/files/config b/mail/exmh/files/config
index 1cbbedf4b77..5693fe1682e 100644
--- a/mail/exmh/files/config
+++ b/mail/exmh/files/config
@@ -6,11 +6,13 @@ set mh_path !!PREFIX!!/bin
set exmh(slocal) !!PREFIX!!/lib/mh/slocal
set mime(dir) !!PREFIX!!/bin
set mailcap_default !!PREFIX!!/etc/mailcap
+set mimetypes_default !!PREFIX!!/lib/exmh-!!VERSION!!/mime.types
set exmh(expect) !!EXPECT!!
set exmh(expectk) !!EXPECTK!!
set faces(dir) !!FACES!!
set faces(set,user) {local users usenix misc}
set faces(set,unknown) {domains unknown}
+set faces(set,news) {news}
set faces(defaultDomain) !!DOMAIN!!
set faces(suffix) {xpm gif xbm}
set pgp(path) !!PGP!!
diff --git a/mail/exmh/files/md5 b/mail/exmh/files/md5
index 4d4530af4e1..9a93a8bb60a 100644
--- a/mail/exmh/files/md5
+++ b/mail/exmh/files/md5
@@ -1,10 +1,21 @@
-MD5 (exmh-2.0z/exmh-2.0zeta.tar.Z) = 9a8c1026c57357ce3b4aa9ae6f612d3c
-MD5 (exmh-2.0z/ispell.patch) = ee3bdbdf2a1f3ef7fce911d5836bde27
-MD5 (exmh-2.0z/koir.patch) = faf27cf0a7e986631de58f872dd60f84
-MD5 (exmh-2.0z/mime.patch) = c4ca30bb6c553243a193850a192c8586
-MD5 (exmh-2.0z/seditMime.patch) = 74006191c5ed6fe50a0b38e90f9b1a56
-MD5 (exmh-2.0z/scan.patch) = 9f610082a0871fc35c6817b0f06ea234
-MD5 (exmh-2.0z/addr.patch) = 40ca1c843e953d1b80ac6d636d0192dc
-MD5 (exmh-2.0z/html.patch) = 95fc62a5397bf22669c7436f1d0e89ae
-MD5 (exmh-2.0z/html_dpackage.patch) = 8ba20db08bef2673cdfb4676000b5892
-MD5 (exmh-2.0z/pgpExec.patch) = 9dd6df806ba0df56c48350ce08037608
+MD5 (exmh-2.0.1/exmh-2.0.1.tar.Z) = e0149feead029e126ba25aef2646a26a
+MD5 (exmh-2.0.1/utils.patch) = c67b738aa7156934688f3e59c08399f4
+MD5 (exmh-2.0.1/folderNew.patch) = 86cc61aa9033dc3a1a12c53f108e5a1a
+MD5 (exmh-2.0.1/extrasInit.patch) = a9c9924e0b45da4beca954a86bf45e3d
+MD5 (exmh-2.0.1/exec.patch) = ea6d9e009feea9c8a54760bf424d9585
+MD5 (exmh-2.0.1/app-defaults.patch) = c5fa0888d502431429ead6d224114387
+MD5 (exmh-2.0.1/pgpMisc.patch) = 6e4026cca4a3c4dfbb1c3ff49524f7b7
+MD5 (exmh-2.0.1/seditMime.patch) = 1658d362221930c00ac78d2021617ea0
+MD5 (exmh-2.0.1/mime.patch) = 0fdb9b1e93fec4c7a23556d530e3e2ac
+MD5 (exmh-2.0.1/bindings.patch) = 7e14bb1ec615a905507bcc1f92f5e24f
+MD5 (exmh-2.0.1/html_bindings.patch) = 6e45d4546d99b25988853c2b30b7a336
+MD5 (exmh-2.0.1/find.patch) = a411d6e8711acce0ccc8fd0bc3dd44bc
+MD5 (exmh-2.0.1/mh.patch) = 3b3fcef52f70125479d7e2a305498268
+MD5 (exmh-2.0.1/pgp.patch) = da881fc50e4c0d6d92a9a4a2afc0763a
+MD5 (exmh-2.0.1/pgpExec.patch) = 490c4caf26551bb86d867d8b8753cf66
+MD5 (exmh-2.0.1/seditpost.patch) = a3181a3878bb5705762b4f4954ea6c51
+MD5 (exmh-2.0.1/newsgroups.patch) = a1e8246f76f1629491f1064df73f88ae
+MD5 (exmh-2.0.1/MDN.patch) = 39d279a8e52dc24a13ad15244e006253
+MD5 (exmh-2.0.1/inc.patch) = 075c71257a13c90d7e77ee46afa7b55b
+MD5 (exmh-2.0.1/next.patch) = 9286b98e2967654cf864f0a889bbe8d7
+MD5 (exmh-2.0.1/post.from.patch) = c1ab6d5828aab6beca9460ab95248a07
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
diff --git a/mail/exmh/pkg/PLIST b/mail/exmh/pkg/PLIST
index 348f489bef7..7969ab97152 100644
--- a/mail/exmh/pkg/PLIST
+++ b/mail/exmh/pkg/PLIST
@@ -1,170 +1,172 @@
-@comment $NetBSD: PLIST,v 1.2 1997/11/19 14:50:47 agc Exp $
+@comment $NetBSD: PLIST,v 1.3 1998/02/25 12:08:08 agc Exp $
bin/exmh
bin/exmh-async
bin/exmh-bg
bin/ftp.expect
-lib/exmh-2.0zeta/addr.tcl
-lib/exmh-2.0zeta/aliases.tcl
-lib/exmh-2.0zeta/app-defaults
-lib/exmh-2.0zeta/app-defaults-color
-lib/exmh-2.0zeta/app-defaults-mono
-lib/exmh-2.0zeta/audit.tcl
-lib/exmh-2.0zeta/autorefile.tcl
-lib/exmh-2.0zeta/background.tcl
-lib/exmh-2.0zeta/base64.tcl
-lib/exmh-2.0zeta/bindings.tcl
-lib/exmh-2.0zeta/busy.tcl
-lib/exmh-2.0zeta/buttons.tcl
-lib/exmh-2.0zeta/clink.au
-lib/exmh-2.0zeta/crypt.tcl
-lib/exmh-2.0zeta/cutbuffer.tcl
-lib/exmh-2.0zeta/dragNdrop.tcl
-lib/exmh-2.0zeta/drip.au
-lib/exmh-2.0zeta/editor.tcl
-lib/exmh-2.0zeta/env.tcl
-lib/exmh-2.0zeta/error.tcl
-lib/exmh-2.0zeta/exmh.bitmap
-lib/exmh-2.0zeta/extrasInit.tcl
-lib/exmh-2.0zeta/exwin.tcl
-lib/exmh-2.0zeta/faces.tcl
-lib/exmh-2.0zeta/fcache.tcl
-lib/exmh-2.0zeta/fdisp.tcl
-lib/exmh-2.0zeta/fdispColor.tcl
-lib/exmh-2.0zeta/fdispPopup.tcl
-lib/exmh-2.0zeta/fileselect.tcl
-lib/exmh-2.0zeta/find.tcl
-lib/exmh-2.0zeta/flag.tcl
-lib/exmh-2.0zeta/flagdown.bitmap
-lib/exmh-2.0zeta/flagup.bitmap
-lib/exmh-2.0zeta/flist.tcl
-lib/exmh-2.0zeta/folder.tcl
-lib/exmh-2.0zeta/folderNew.tcl
-lib/exmh-2.0zeta/fontsel.tcl
-lib/exmh-2.0zeta/ftoc.tcl
-lib/exmh-2.0zeta/ftocColor.tcl
-lib/exmh-2.0zeta/ftocFind.tcl
-lib/exmh-2.0zeta/getnews.tcl
-lib/exmh-2.0zeta/glimpse.tcl
-lib/exmh-2.0zeta/help.tcl
-lib/exmh-2.0zeta/hourglass.bitmap
-lib/exmh-2.0zeta/hourglass.mask
-lib/exmh-2.0zeta/hourglass1.bitmap
-lib/exmh-2.0zeta/hourglass2.bitmap
-lib/exmh-2.0zeta/hourglass2.mask
-lib/exmh-2.0zeta/html.tcl
-lib/exmh-2.0zeta/html/AddrEdit.html
-lib/exmh-2.0zeta/html/AddressBk.html
-lib/exmh-2.0zeta/html/AliasAddr.html
-lib/exmh-2.0zeta/html/Aliases.html
-lib/exmh-2.0zeta/html/Bindings.html
-lib/exmh-2.0zeta/html/Font.html
-lib/exmh-2.0zeta/html/Import.html
-lib/exmh-2.0zeta/html/Intro.html
-lib/exmh-2.0zeta/html/Keys.html
-lib/exmh-2.0zeta/html/Lists.html
-lib/exmh-2.0zeta/html/PGP.html
-lib/exmh-2.0zeta/html/Preferences.html
-lib/exmh-2.0zeta/html/Reply.html
-lib/exmh-2.0zeta/html/Search.html
-lib/exmh-2.0zeta/html/Sedit.html
-lib/exmh-2.0zeta/html/Seditpref.html
-lib/exmh-2.0zeta/html/blu-ball.gif
-lib/exmh-2.0zeta/html/copyright.html
-lib/exmh-2.0zeta/html/exmh-custom.n.html
-lib/exmh-2.0zeta/html/exmh-fans.html
-lib/exmh-2.0zeta/html/exmh-faq.html
-lib/exmh-2.0zeta/html/exmh-ref.n.html
-lib/exmh-2.0zeta/html/exmh-use.n.html
-lib/exmh-2.0zeta/html/exmh.README.html
-lib/exmh-2.0zeta/html/exmh.n.html
-lib/exmh-2.0zeta/html/exmh.pref.gif
-lib/exmh-2.0zeta/html/exmh.snap1.gif
-lib/exmh-2.0zeta/html/index.html
-lib/exmh-2.0zeta/html/left-arrow.gif
-lib/exmh-2.0zeta/html/maillist.html
-lib/exmh-2.0zeta/html/overview.html
-lib/exmh-2.0zeta/html/red-ball.gif
-lib/exmh-2.0zeta/html/right-arrow.gif
-lib/exmh-2.0zeta/html/software.html
-lib/exmh-2.0zeta/html/whatis.html
-lib/exmh-2.0zeta/html/yel-ball.gif
-lib/exmh-2.0zeta/html_cache.tcl
-lib/exmh-2.0zeta/html_content.tcl
-lib/exmh-2.0zeta/html_dpackage.tcl
-lib/exmh-2.0zeta/html_formtag.tcl
-lib/exmh-2.0zeta/html_frame.tcl
-lib/exmh-2.0zeta/html_get_http.tcl
-lib/exmh-2.0zeta/html_head.tcl
-lib/exmh-2.0zeta/html_hr.tcl
-lib/exmh-2.0zeta/html_images.tcl
-lib/exmh-2.0zeta/html_links.tcl
-lib/exmh-2.0zeta/html_maps.tcl
-lib/exmh-2.0zeta/html_stubs.tcl
-lib/exmh-2.0zeta/html_tags.tcl
-lib/exmh-2.0zeta/html_text.tcl
-lib/exmh-2.0zeta/http_proxy.tcl
-lib/exmh-2.0zeta/import.tcl
-lib/exmh-2.0zeta/inc.tcl
-lib/exmh-2.0zeta/ispell.tcl
-lib/exmh-2.0zeta/labels.tcl
-lib/exmh-2.0zeta/linethru.bitmap
-lib/exmh-2.0zeta/mailcap.tcl
-lib/exmh-2.0zeta/main.tcl
-lib/exmh-2.0zeta/mbempty.bitmap
-lib/exmh-2.0zeta/mbtidy.bitmap
-lib/exmh-2.0zeta/mbuntidy.bitmap
-lib/exmh-2.0zeta/mh.tcl
-lib/exmh-2.0zeta/mime.tcl
-lib/exmh-2.0zeta/mime.types
-lib/exmh-2.0zeta/mimeSun.tcl
-lib/exmh-2.0zeta/mosaic.tcl
-lib/exmh-2.0zeta/msg.tcl
-lib/exmh-2.0zeta/msgShow.tcl
-lib/exmh-2.0zeta/partial.tcl
-lib/exmh-2.0zeta/pgp.tcl
-lib/exmh-2.0zeta/pgpEWN.tcl
-lib/exmh-2.0zeta/pgpExec.tcl
-lib/exmh-2.0zeta/pgpMatch.tcl
-lib/exmh-2.0zeta/pgpMisc.tcl
-lib/exmh-2.0zeta/pgpwww.tcl
-lib/exmh-2.0zeta/pick.tcl
-lib/exmh-2.0zeta/post.tcl
-lib/exmh-2.0zeta/preferences.tcl
-lib/exmh-2.0zeta/print.tcl
-lib/exmh-2.0zeta/ps.tcl
-lib/exmh-2.0zeta/quote.tcl
-lib/exmh-2.0zeta/receipt.tcl
-lib/exmh-2.0zeta/report.tcl
-lib/exmh-2.0zeta/rich2tk.tcl
-lib/exmh-2.0zeta/scan.tcl
-lib/exmh-2.0zeta/sedit.tcl
-lib/exmh-2.0zeta/seditBind.tcl
-lib/exmh-2.0zeta/seditCompose.tcl
-lib/exmh-2.0zeta/seditEnriched.tcl
-lib/exmh-2.0zeta/seditExtras.tcl
-lib/exmh-2.0zeta/seditMime.tcl
-lib/exmh-2.0zeta/seditQP.tcl
-lib/exmh-2.0zeta/seditSel.tcl
-lib/exmh-2.0zeta/select.tcl
-lib/exmh-2.0zeta/send.tcl
-lib/exmh-2.0zeta/sound.tcl
-lib/exmh-2.0zeta/tclIndex
-lib/exmh-2.0zeta/text.tcl
-lib/exmh-2.0zeta/textButton.tcl
-lib/exmh-2.0zeta/textSelect.tcl
-lib/exmh-2.0zeta/thread.tcl
-lib/exmh-2.0zeta/timer.bitmap
-lib/exmh-2.0zeta/tioga.tcl
-lib/exmh-2.0zeta/unseenwin.tcl
-lib/exmh-2.0zeta/uri.tcl
-lib/exmh-2.0zeta/url.bitmap
-lib/exmh-2.0zeta/user.tcl
-lib/exmh-2.0zeta/utils.tcl
-lib/exmh-2.0zeta/widgetMenu.tcl
-lib/exmh-2.0zeta/widgetText.tcl
-lib/exmh-2.0zeta/widgets.tcl
-lib/exmh-2.0zeta/xns.tcl
-lib/exmh-2.0zeta/xnsgetmail.exp
+lib/exmh-2.0.1/addr.tcl
+lib/exmh-2.0.1/aliases.tcl
+lib/exmh-2.0.1/app-defaults
+lib/exmh-2.0.1/app-defaults-color
+lib/exmh-2.0.1/app-defaults-mono
+lib/exmh-2.0.1/audit.tcl
+lib/exmh-2.0.1/autorefile.tcl
+lib/exmh-2.0.1/background.tcl
+lib/exmh-2.0.1/base64.tcl
+lib/exmh-2.0.1/bindings.tcl
+lib/exmh-2.0.1/busy.tcl
+lib/exmh-2.0.1/buttons.tcl
+lib/exmh-2.0.1/clink.au
+lib/exmh-2.0.1/crypt.tcl
+lib/exmh-2.0.1/cutbuffer.tcl
+lib/exmh-2.0.1/dragNdrop.tcl
+lib/exmh-2.0.1/drip.au
+lib/exmh-2.0.1/editor.tcl
+lib/exmh-2.0.1/env.tcl
+lib/exmh-2.0.1/error.tcl
+lib/exmh-2.0.1/exec.tcl
+lib/exmh-2.0.1/exmh.bitmap
+lib/exmh-2.0.1/extrasInit.tcl
+lib/exmh-2.0.1/exwin.tcl
+lib/exmh-2.0.1/faces.tcl
+lib/exmh-2.0.1/fcache.tcl
+lib/exmh-2.0.1/fdisp.tcl
+lib/exmh-2.0.1/fdispColor.tcl
+lib/exmh-2.0.1/fdispPopup.tcl
+lib/exmh-2.0.1/fileselect.tcl
+lib/exmh-2.0.1/find.tcl
+lib/exmh-2.0.1/flag.tcl
+lib/exmh-2.0.1/flagdown.bitmap
+lib/exmh-2.0.1/flagup.bitmap
+lib/exmh-2.0.1/flist.tcl
+lib/exmh-2.0.1/folder.tcl
+lib/exmh-2.0.1/folderNew.tcl
+lib/exmh-2.0.1/fontsel.tcl
+lib/exmh-2.0.1/ftoc.tcl
+lib/exmh-2.0.1/ftocColor.tcl
+lib/exmh-2.0.1/ftocFind.tcl
+lib/exmh-2.0.1/getnews.tcl
+lib/exmh-2.0.1/glimpse.tcl
+lib/exmh-2.0.1/help.tcl
+lib/exmh-2.0.1/hourglass.bitmap
+lib/exmh-2.0.1/hourglass.mask
+lib/exmh-2.0.1/hourglass1.bitmap
+lib/exmh-2.0.1/hourglass2.bitmap
+lib/exmh-2.0.1/hourglass2.mask
+lib/exmh-2.0.1/html.tcl
+lib/exmh-2.0.1/html/AddrEdit.html
+lib/exmh-2.0.1/html/AddressBk.html
+lib/exmh-2.0.1/html/AliasAddr.html
+lib/exmh-2.0.1/html/Aliases.html
+lib/exmh-2.0.1/html/Bindings.html
+lib/exmh-2.0.1/html/Font.html
+lib/exmh-2.0.1/html/Import.html
+lib/exmh-2.0.1/html/Intro.html
+lib/exmh-2.0.1/html/Keys.html
+lib/exmh-2.0.1/html/Lists.html
+lib/exmh-2.0.1/html/PGP.html
+lib/exmh-2.0.1/html/Preferences.html
+lib/exmh-2.0.1/html/Reply.html
+lib/exmh-2.0.1/html/Search.html
+lib/exmh-2.0.1/html/Sedit.html
+lib/exmh-2.0.1/html/Seditpref.html
+lib/exmh-2.0.1/html/blu-ball.gif
+lib/exmh-2.0.1/html/copyright.html
+lib/exmh-2.0.1/html/exmh-custom.n.html
+lib/exmh-2.0.1/html/exmh-fans.html
+lib/exmh-2.0.1/html/exmh-faq.html
+lib/exmh-2.0.1/html/exmh-ref.n.html
+lib/exmh-2.0.1/html/exmh-use.n.html
+lib/exmh-2.0.1/html/exmh.README.html
+lib/exmh-2.0.1/html/exmh.n.html
+lib/exmh-2.0.1/html/exmh.pref.gif
+lib/exmh-2.0.1/html/exmh.snap1.gif
+lib/exmh-2.0.1/html/index.html
+lib/exmh-2.0.1/html/left-arrow.gif
+lib/exmh-2.0.1/html/maillist.html
+lib/exmh-2.0.1/html/overview.html
+lib/exmh-2.0.1/html/ppp.howto.html
+lib/exmh-2.0.1/html/red-ball.gif
+lib/exmh-2.0.1/html/right-arrow.gif
+lib/exmh-2.0.1/html/software.html
+lib/exmh-2.0.1/html/whatis.html
+lib/exmh-2.0.1/html/yel-ball.gif
+lib/exmh-2.0.1/html_cache.tcl
+lib/exmh-2.0.1/html_content.tcl
+lib/exmh-2.0.1/html_dpackage.tcl
+lib/exmh-2.0.1/html_formtag.tcl
+lib/exmh-2.0.1/html_frame.tcl
+lib/exmh-2.0.1/html_get_http.tcl
+lib/exmh-2.0.1/html_head.tcl
+lib/exmh-2.0.1/html_hr.tcl
+lib/exmh-2.0.1/html_images.tcl
+lib/exmh-2.0.1/html_links.tcl
+lib/exmh-2.0.1/html_maps.tcl
+lib/exmh-2.0.1/html_stubs.tcl
+lib/exmh-2.0.1/html_tags.tcl
+lib/exmh-2.0.1/html_text.tcl
+lib/exmh-2.0.1/http_proxy.tcl
+lib/exmh-2.0.1/import.tcl
+lib/exmh-2.0.1/inc.tcl
+lib/exmh-2.0.1/ispell.tcl
+lib/exmh-2.0.1/labels.tcl
+lib/exmh-2.0.1/linethru.bitmap
+lib/exmh-2.0.1/mailcap.tcl
+lib/exmh-2.0.1/main.tcl
+lib/exmh-2.0.1/mbempty.bitmap
+lib/exmh-2.0.1/mbtidy.bitmap
+lib/exmh-2.0.1/mbuntidy.bitmap
+lib/exmh-2.0.1/mh.tcl
+lib/exmh-2.0.1/mime.tcl
+lib/exmh-2.0.1/mime.types
+lib/exmh-2.0.1/mimeSun.tcl
+lib/exmh-2.0.1/mosaic.tcl
+lib/exmh-2.0.1/msg.tcl
+lib/exmh-2.0.1/msgShow.tcl
+lib/exmh-2.0.1/partial.tcl
+lib/exmh-2.0.1/pgp.tcl
+lib/exmh-2.0.1/pgpEWN.tcl
+lib/exmh-2.0.1/pgpExec.tcl
+lib/exmh-2.0.1/pgpMatch.tcl
+lib/exmh-2.0.1/pgpMisc.tcl
+lib/exmh-2.0.1/pgpwww.tcl
+lib/exmh-2.0.1/pick.tcl
+lib/exmh-2.0.1/post.tcl
+lib/exmh-2.0.1/preferences.tcl
+lib/exmh-2.0.1/print.tcl
+lib/exmh-2.0.1/ps.tcl
+lib/exmh-2.0.1/quote.tcl
+lib/exmh-2.0.1/receipt.tcl
+lib/exmh-2.0.1/report.tcl
+lib/exmh-2.0.1/rich2tk.tcl
+lib/exmh-2.0.1/scan.tcl
+lib/exmh-2.0.1/sedit.tcl
+lib/exmh-2.0.1/seditBind.tcl
+lib/exmh-2.0.1/seditCompose.tcl
+lib/exmh-2.0.1/seditEnriched.tcl
+lib/exmh-2.0.1/seditExtras.tcl
+lib/exmh-2.0.1/seditMime.tcl
+lib/exmh-2.0.1/seditQP.tcl
+lib/exmh-2.0.1/seditSel.tcl
+lib/exmh-2.0.1/select.tcl
+lib/exmh-2.0.1/send.tcl
+lib/exmh-2.0.1/sound.tcl
+lib/exmh-2.0.1/tclIndex
+lib/exmh-2.0.1/text.tcl
+lib/exmh-2.0.1/textButton.tcl
+lib/exmh-2.0.1/textSelect.tcl
+lib/exmh-2.0.1/thread.tcl
+lib/exmh-2.0.1/timer.bitmap
+lib/exmh-2.0.1/tioga.tcl
+lib/exmh-2.0.1/unseenwin.tcl
+lib/exmh-2.0.1/uri.tcl
+lib/exmh-2.0.1/url.bitmap
+lib/exmh-2.0.1/user.tcl
+lib/exmh-2.0.1/utils.tcl
+lib/exmh-2.0.1/widgetMenu.tcl
+lib/exmh-2.0.1/widgetText.tcl
+lib/exmh-2.0.1/widgets.tcl
+lib/exmh-2.0.1/xns.tcl
+lib/exmh-2.0.1/xnsgetmail.exp
man/man1/exmh.1.gz
-@dirrm lib/exmh-2.0zeta/html
-@dirrm lib/exmh-2.0zeta
+@dirrm lib/exmh-2.0.1/html
+@dirrm lib/exmh-2.0.1