$NetBSD: patch-at,v 1.2 1998/08/07 11:09:34 agc Exp $ *** 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