PNG  IHDRX cHRMz&u0`:pQ<bKGD pHYsodtIME MeqIDATxw]Wug^Qd˶ 6`!N:!@xI~)%7%@Bh&`lnjVF29gΨ4E$|>cɚ{gk= %,a KX%,a KX%,a KX%,a KX%,a KX%,a KX%, b` ǟzeאfp]<!SJmɤY޲ڿ,%c ~ع9VH.!Ͳz&QynֺTkRR.BLHi٪:l;@(!MԴ=žI,:o&N'Kù\vRmJ雵֫AWic H@" !: Cé||]k-Ha oݜ:y F())u]aG7*JV@J415p=sZH!=!DRʯvɱh~V\}v/GKY$n]"X"}t@ xS76^[bw4dsce)2dU0 CkMa-U5tvLƀ~mlMwfGE/-]7XAƟ`׮g ewxwC4\[~7@O-Q( a*XGƒ{ ՟}$_y3tĐƤatgvێi|K=uVyrŲlLӪuܿzwk$m87k( `múcE)"@rK( z4$D; 2kW=Xb$V[Ru819קR~qloѱDyįݎ*mxw]y5e4K@ЃI0A D@"BDk_)N\8͜9dz"fK0zɿvM /.:2O{ Nb=M=7>??Zuo32 DLD@D| &+֎C #B8ַ`bOb $D#ͮҪtx]%`ES`Ru[=¾!@Od37LJ0!OIR4m]GZRJu$‡c=%~s@6SKy?CeIh:[vR@Lh | (BhAMy=݃  G"'wzn޺~8ԽSh ~T*A:xR[ܹ?X[uKL_=fDȊ؂p0}7=D$Ekq!/t.*2ʼnDbŞ}DijYaȲ(""6HA;:LzxQ‘(SQQ}*PL*fc\s `/d'QXW, e`#kPGZuŞuO{{wm[&NBTiiI0bukcA9<4@SӊH*؎4U/'2U5.(9JuDfrޱtycU%j(:RUbArLֺN)udA':uGQN"-"Is.*+k@ `Ojs@yU/ H:l;@yyTn}_yw!VkRJ4P)~y#)r,D =ě"Q]ci'%HI4ZL0"MJy 8A{ aN<8D"1#IJi >XjX֔#@>-{vN!8tRݻ^)N_╗FJEk]CT՟ YP:_|H1@ CBk]yKYp|og?*dGvzنzӴzjֺNkC~AbZƷ`.H)=!QͷVTT(| u78y֮}|[8-Vjp%2JPk[}ԉaH8Wpqhwr:vWª<}l77_~{s۴V+RCģ%WRZ\AqHifɤL36: #F:p]Bq/z{0CU6ݳEv_^k7'>sq*+kH%a`0ԣisqにtү04gVgW΂iJiS'3w.w}l6MC2uԯ|>JF5`fV5m`Y**Db1FKNttu]4ccsQNnex/87+}xaUW9y>ͯ骵G{䩓Գ3+vU}~jJ.NFRD7<aJDB1#ҳgSb,+CS?/ VG J?|?,2#M9}B)MiE+G`-wo߫V`fio(}S^4e~V4bHOYb"b#E)dda:'?}׮4繏`{7Z"uny-?ǹ;0MKx{:_pÚmFמ:F " .LFQLG)Q8qN q¯¯3wOvxDb\. BKD9_NN &L:4D{mm o^tֽ:q!ƥ}K+<"m78N< ywsard5+вz~mnG)=}lYݧNj'QJS{S :UYS-952?&O-:W}(!6Mk4+>A>j+i|<<|;ر^߉=HE|V#F)Emm#}/"y GII웻Jі94+v뾧xu~5C95~ūH>c@덉pʃ1/4-A2G%7>m;–Y,cyyaln" ?ƻ!ʪ<{~h~i y.zZB̃/,雋SiC/JFMmBH&&FAbϓO^tubbb_hZ{_QZ-sύodFgO(6]TJA˯#`۶ɟ( %$&+V'~hiYy>922 Wp74Zkq+Ovn錄c>8~GqܲcWꂎz@"1A.}T)uiW4="jJ2W7mU/N0gcqܗOO}?9/wìXžΏ0 >֩(V^Rh32!Hj5`;O28؇2#ݕf3 ?sJd8NJ@7O0 b־?lldщ̡&|9C.8RTWwxWy46ah嘦mh٤&l zCy!PY?: CJyв]dm4ǜҐR޻RլhX{FƯanшQI@x' ao(kUUuxW_Ñ줮[w8 FRJ(8˼)_mQ _!RJhm=!cVmm ?sFOnll6Qk}alY}; "baӌ~M0w,Ggw2W:G/k2%R,_=u`WU R.9T"v,<\Ik޽/2110Ӿxc0gyC&Ny޽JҢrV6N ``یeA16"J³+Rj*;BϜkZPJaÍ<Jyw:NP8/D$ 011z֊Ⱳ3ι֘k1V_"h!JPIΣ'ɜ* aEAd:ݺ>y<}Lp&PlRfTb1]o .2EW\ͮ]38؋rTJsǏP@芎sF\> P^+dYJLbJ C-xϐn> ι$nj,;Ǖa FU *择|h ~izť3ᤓ`K'-f tL7JK+vf2)V'-sFuB4i+m+@My=O҈0"|Yxoj,3]:cо3 $#uŘ%Y"y죯LebqtҢVzq¼X)~>4L׶m~[1_k?kxֺQ`\ |ٛY4Ѯr!)N9{56(iNq}O()Em]=F&u?$HypWUeB\k]JɩSع9 Zqg4ZĊo oMcjZBU]B\TUd34ݝ~:7ڶSUsB0Z3srx 7`:5xcx !qZA!;%͚7&P H<WL!džOb5kF)xor^aujƍ7 Ǡ8/p^(L>ὴ-B,{ۇWzֺ^k]3\EE@7>lYBȝR.oHnXO/}sB|.i@ɥDB4tcm,@ӣgdtJ!lH$_vN166L__'Z)y&kH;:,Y7=J 9cG) V\hjiE;gya~%ks_nC~Er er)muuMg2;֫R)Md) ,¶ 2-wr#F7<-BBn~_(o=KO㭇[Xv eN_SMgSҐ BS헃D%g_N:/pe -wkG*9yYSZS.9cREL !k}<4_Xs#FmҶ:7R$i,fi!~' # !6/S6y@kZkZcX)%5V4P]VGYq%H1!;e1MV<!ϐHO021Dp= HMs~~a)ަu7G^];git!Frl]H/L$=AeUvZE4P\.,xi {-~p?2b#amXAHq)MWǾI_r`S Hz&|{ +ʖ_= (YS(_g0a03M`I&'9vl?MM+m~}*xT۲(fY*V4x@29s{DaY"toGNTO+xCAO~4Ϳ;p`Ѫ:>Ҵ7K 3}+0 387x\)a"/E>qpWB=1 ¨"MP(\xp߫́A3+J] n[ʼnӼaTbZUWb={~2ooKױӰp(CS\S筐R*JغV&&"FA}J>G֐p1ٸbk7 ŘH$JoN <8s^yk_[;gy-;߉DV{c B yce% aJhDȶ 2IdйIB/^n0tNtџdcKj4϶v~- CBcgqx9= PJ) dMsjpYB] GD4RDWX +h{y`,3ꊕ$`zj*N^TP4L:Iz9~6s) Ga:?y*J~?OrMwP\](21sZUD ?ܟQ5Q%ggW6QdO+\@ ̪X'GxN @'4=ˋ+*VwN ne_|(/BDfj5(Dq<*tNt1х!MV.C0 32b#?n0pzj#!38}޴o1KovCJ`8ŗ_"]] rDUy޲@ Ȗ-;xџ'^Y`zEd?0„ DAL18IS]VGq\4o !swV7ˣι%4FѮ~}6)OgS[~Q vcYbL!wG3 7띸*E Pql8=jT\꘿I(z<[6OrR8ºC~ډ]=rNl[g|v TMTղb-o}OrP^Q]<98S¤!k)G(Vkwyqyr޽Nv`N/e p/~NAOk \I:G6]4+K;j$R:Mi #*[AȚT,ʰ,;N{HZTGMoּy) ]%dHء9Պ䠬|<45,\=[bƟ8QXeB3- &dҩ^{>/86bXmZ]]yޚN[(WAHL$YAgDKp=5GHjU&99v簪C0vygln*P)9^͞}lMuiH!̍#DoRBn9l@ xA/_v=ȺT{7Yt2N"4!YN`ae >Q<XMydEB`VU}u]嫇.%e^ánE87Mu\t`cP=AD/G)sI"@MP;)]%fH9'FNsj1pVhY&9=0pfuJ&gޤx+k:!r˭wkl03׼Ku C &ѓYt{.O.zҏ z}/tf_wEp2gvX)GN#I ݭ߽v/ .& и(ZF{e"=V!{zW`, ]+LGz"(UJp|j( #V4, 8B 0 9OkRrlɱl94)'VH9=9W|>PS['G(*I1==C<5"Pg+x'K5EMd؞Af8lG ?D FtoB[je?{k3zQ vZ;%Ɠ,]E>KZ+T/ EJxOZ1i #T<@ I}q9/t'zi(EMqw`mYkU6;[t4DPeckeM;H}_g pMww}k6#H㶏+b8雡Sxp)&C $@'b,fPߑt$RbJ'vznuS ~8='72_`{q纶|Q)Xk}cPz9p7O:'|G~8wx(a 0QCko|0ASD>Ip=4Q, d|F8RcU"/KM opKle M3#i0c%<7׿p&pZq[TR"BpqauIp$ 8~Ĩ!8Սx\ւdT>>Z40ks7 z2IQ}ItԀ<-%S⍤};zIb$I 5K}Q͙D8UguWE$Jh )cu4N tZl+[]M4k8֦Zeq֮M7uIqG 1==tLtR,ƜSrHYt&QP윯Lg' I,3@P'}'R˪e/%-Auv·ñ\> vDJzlӾNv5:|K/Jb6KI9)Zh*ZAi`?S {aiVDԲuy5W7pWeQJk֤#5&V<̺@/GH?^τZL|IJNvI:'P=Ϛt"¨=cud S Q.Ki0 !cJy;LJR;G{BJy޺[^8fK6)=yʊ+(k|&xQ2`L?Ȓ2@Mf 0C`6-%pKpm')c$׻K5[J*U[/#hH!6acB JA _|uMvDyk y)6OPYjœ50VT K}cǻP[ $:]4MEA.y)|B)cf-A?(e|lɉ#P9V)[9t.EiQPDѠ3ϴ;E:+Օ t ȥ~|_N2,ZJLt4! %ա]u {+=p.GhNcŞQI?Nd'yeh n7zi1DB)1S | S#ًZs2|Ɛy$F SxeX{7Vl.Src3E℃Q>b6G ўYCmtկ~=K0f(=LrAS GN'ɹ9<\!a`)֕y[uՍ[09` 9 +57ts6}b4{oqd+J5fa/,97J#6yν99mRWxJyѡyu_TJc`~W>l^q#Ts#2"nD1%fS)FU w{ܯ R{ ˎ󅃏џDsZSQS;LV;7 Od1&1n$ N /.q3~eNɪ]E#oM~}v֯FڦwyZ=<<>Xo稯lfMFV6p02|*=tV!c~]fa5Y^Q_WN|Vs 0ҘދU97OI'N2'8N֭fgg-}V%y]U4 峧p*91#9U kCac_AFңĪy뚇Y_AiuYyTTYЗ-(!JFLt›17uTozc. S;7A&&<ԋ5y;Ro+:' *eYJkWR[@F %SHWP 72k4 qLd'J "zB6{AC0ƁA6U.'F3:Ȅ(9ΜL;D]m8ڥ9}dU "v!;*13Rg^fJyShyy5auA?ɩGHRjo^]׽S)Fm\toy 4WQS@mE#%5ʈfFYDX ~D5Ϡ9tE9So_aU4?Ѽm%&c{n>.KW1Tlb}:j uGi(JgcYj0qn+>) %\!4{LaJso d||u//P_y7iRJ߬nHOy) l+@$($VFIQ9%EeKʈU. ia&FY̒mZ=)+qqoQn >L!qCiDB;Y<%} OgBxB!ØuG)WG9y(Ą{_yesuZmZZey'Wg#C~1Cev@0D $a@˲(.._GimA:uyw֬%;@!JkQVM_Ow:P.s\)ot- ˹"`B,e CRtaEUP<0'}r3[>?G8xU~Nqu;Wm8\RIkբ^5@k+5(By'L&'gBJ3ݶ!/㮻w҅ yqPWUg<e"Qy*167΃sJ\oz]T*UQ<\FԎ`HaNmڜ6DysCask8wP8y9``GJ9lF\G g's Nn͵MLN֪u$| /|7=]O)6s !ĴAKh]q_ap $HH'\1jB^s\|- W1:=6lJBqjY^LsPk""`]w)󭃈,(HC ?䔨Y$Sʣ{4Z+0NvQkhol6C.婧/u]FwiVjZka&%6\F*Ny#8O,22+|Db~d ~Çwc N:FuuCe&oZ(l;@ee-+Wn`44AMK➝2BRՈt7g*1gph9N) *"TF*R(#'88pm=}X]u[i7bEc|\~EMn}P瘊J)K.0i1M6=7'_\kaZ(Th{K*GJyytw"IO-PWJk)..axӝ47"89Cc7ĐBiZx 7m!fy|ϿF9CbȩV 9V-՛^pV̌ɄS#Bv4-@]Vxt-Z, &ֺ*diؠ2^VXbs֔Ìl.jQ]Y[47gj=幽ex)A0ip׳ W2[ᎇhuE^~q흙L} #-b۸oFJ_QP3r6jr+"nfzRJTUqoaۍ /$d8Mx'ݓ= OՃ| )$2mcM*cЙj}f };n YG w0Ia!1Q.oYfr]DyISaP}"dIӗթO67jqR ҊƐƈaɤGG|h;t]䗖oSv|iZqX)oalv;۩meEJ\!8=$4QU4Xo&VEĊ YS^E#d,yX_> ۘ-e\ "Wa6uLĜZi`aD9.% w~mB(02G[6y.773a7 /=o7D)$Z 66 $bY^\CuP. (x'"J60׿Y:Oi;F{w佩b+\Yi`TDWa~|VH)8q/=9!g߆2Y)?ND)%?Ǐ`k/sn:;O299yB=a[Ng 3˲N}vLNy;*?x?~L&=xyӴ~}q{qE*IQ^^ͧvü{Huu=R|>JyUlZV, B~/YF!Y\u_ݼF{_C)LD]m {H 0ihhadd nUkf3oٺCvE\)QJi+֥@tDJkB$1!Đr0XQ|q?d2) Ӣ_}qv-< FŊ߫%roppVBwü~JidY4:}L6M7f٬F "?71<2#?Jyy4뷢<_a7_=Q E=S1И/9{+93֮E{ǂw{))?maÆm(uLE#lïZ  ~d];+]h j?!|$F}*"4(v'8s<ŏUkm7^7no1w2ؗ}TrͿEk>p'8OB7d7R(A 9.*Mi^ͳ; eeUwS+C)uO@ =Sy]` }l8^ZzRXj[^iUɺ$tj))<sbDJfg=Pk_{xaKo1:-uyG0M ԃ\0Lvuy'ȱc2Ji AdyVgVh!{]/&}}ċJ#%d !+87<;qN޼Nفl|1N:8ya  8}k¾+-$4FiZYÔXk*I&'@iI99)HSh4+2G:tGhS^繿 Kتm0 вDk}֚+QT4;sC}rՅE,8CX-e~>G&'9xpW,%Fh,Ry56Y–hW-(v_,? ; qrBk4-V7HQ;ˇ^Gv1JVV%,ik;D_W!))+BoS4QsTM;gt+ndS-~:11Sgv!0qRVh!"Ȋ(̦Yl.]PQWgٳE'`%W1{ndΗBk|Ž7ʒR~,lnoa&:ü$ 3<a[CBݮwt"o\ePJ=Hz"_c^Z.#ˆ*x z̝grY]tdkP*:97YľXyBkD4N.C_[;F9`8& !AMO c `@BA& Ost\-\NX+Xp < !bj3C&QL+*&kAQ=04}cC!9~820G'PC9xa!w&bo_1 Sw"ܱ V )Yl3+ס2KoXOx]"`^WOy :3GO0g;%Yv㐫(R/r (s } u B &FeYZh0y> =2<Ϟc/ -u= c&׭,.0"g"7 6T!vl#sc>{u/Oh Bᾈ)۴74]x7 gMӒ"d]U)}" v4co[ ɡs 5Gg=XR14?5A}D "b{0$L .\4y{_fe:kVS\\O]c^W52LSBDM! C3Dhr̦RtArx4&agaN3Cf<Ԉp4~ B'"1@.b_/xQ} _߃҉/gٓ2Qkqp0շpZ2fԫYz< 4L.Cyυι1t@鎫Fe sYfsF}^ V}N<_`p)alٶ "(XEAVZ<)2},:Ir*#m_YӼ R%a||EƼIJ,,+f"96r/}0jE/)s)cjW#w'Sʯ5<66lj$a~3Kʛy 2:cZ:Yh))+a߭K::N,Q F'qB]={.]h85C9cr=}*rk?vwV렵ٸW Rs%}rNAkDv|uFLBkWY YkX מ|)1!$#3%y?pF<@<Rr0}: }\J [5FRxY<9"SQdE(Q*Qʻ)q1E0B_O24[U'],lOb ]~WjHޏTQ5Syu wq)xnw8~)c 쫬gٲߠ H% k5dƝk> kEj,0% b"vi2Wس_CuK)K{n|>t{P1򨾜j>'kEkƗBg*H%'_aY6Bn!TL&ɌOb{c`'d^{t\i^[uɐ[}q0lM˕G:‚4kb祔c^:?bpg… +37stH:0}en6x˟%/<]BL&* 5&fK9Mq)/iyqtA%kUe[ڛKN]Ě^,"`/ s[EQQm?|XJ߅92m]G.E΃ח U*Cn.j_)Tѧj̿30ڇ!A0=͜ar I3$C^-9#|pk!)?7.x9 @OO;WƝZBFU keZ75F6Tc6"ZȚs2y/1 ʵ:u4xa`C>6Rb/Yм)^=+~uRd`/|_8xbB0?Ft||Z\##|K 0>>zxv8۴吅q 8ĥ)"6>~\8:qM}#͚'ĉ#p\׶ l#bA?)|g g9|8jP(cr,BwV (WliVxxᡁ@0Okn;ɥh$_ckCgriv}>=wGzβ KkBɛ[˪ !J)h&k2%07δt}!d<9;I&0wV/ v 0<H}L&8ob%Hi|޶o&h1L|u֦y~󛱢8fٲUsւ)0oiFx2}X[zVYr_;N(w]_4B@OanC?gĦx>мgx>ΛToZoOMp>40>V Oy V9iq!4 LN,ˢu{jsz]|"R޻&'ƚ{53ўFu(<٪9:΋]B;)B>1::8;~)Yt|0(pw2N%&X,URBK)3\zz&}ax4;ǟ(tLNg{N|Ǽ\G#C9g$^\}p?556]/RP.90 k,U8/u776s ʪ_01چ|\N 0VV*3H鴃J7iI!wG_^ypl}r*jɤSR 5QN@ iZ#1ٰy;_\3\BQQ x:WJv츟ٯ$"@6 S#qe딇(/P( Dy~TOϻ<4:-+F`0||;Xl-"uw$Цi󼕝mKʩorz"mϺ$F:~E'ҐvD\y?Rr8_He@ e~O,T.(ފR*cY^m|cVR[8 JҡSm!ΆԨb)RHG{?MpqrmN>߶Y)\p,d#xۆWY*,l6]v0h15M˙MS8+EdI='LBJIH7_9{Caз*Lq,dt >+~ّeʏ?xԕ4bBAŚjﵫ!'\Ը$WNvKO}ӽmSşذqsOy?\[,d@'73'j%kOe`1.g2"e =YIzS2|zŐƄa\U,dP;jhhhaxǶ?КZ՚.q SE+XrbOu%\GتX(H,N^~]JyEZQKceTQ]VGYqnah;y$cQahT&QPZ*iZ8UQQM.qo/T\7X"u?Mttl2Xq(IoW{R^ ux*SYJ! 4S.Jy~ BROS[V|žKNɛP(L6V^|cR7i7nZW1Fd@ Ara{詑|(T*dN]Ko?s=@ |_EvF]׍kR)eBJc" MUUbY6`~V޴dJKß&~'d3i WWWWWW
Current Directory: /usr/share/emacs/24.3/lisp/mh-e
Viewing File: /usr/share/emacs/24.3/lisp/mh-e/mh-alias.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:58:10 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/mh-e/mh-alias.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\207" [require mh-e goto-addr] 2) #@22 Alist of MH aliases. (defvar mh-alias-alist 'not-read (#$ . 624)) #@43 Alist of MH aliases that are blind lists. (defvar mh-alias-blind-alist nil (#$ . 696)) #@67 Alist of aliases extracted from passwd file and their expansions. (defvar mh-alias-passwd-alist nil (#$ . 789)) #@32 Time aliases were last loaded. (defvar mh-alias-tstamp nil (#$ . 907)) (defvar mh-alias-read-address-map (byte-code "\302!\303 \304\305#\210\303 \306\307#\210 )\207" [minibuffer-local-completion-map map copy-keymap define-key "," mh-alias-minibuffer-confirm-address " " self-insert-command] 4)) #@349 *A list of system files which are a source of aliases. If these files are modified, they are automatically reread. This list need include only system aliases and the passwd file, since personal alias files listed in your "Aliasfile:" MH profile component are automatically included. You can update the alias list manually using \[mh-alias-reload]. (defvar mh-alias-system-aliases '("/etc/nmh/MailAliases" "/etc/mh/MailAliases" "/usr/lib/mh/MailAliases" "/usr/share/mailutils/mh/MailAliases" "/etc/passwd") (#$ . -1211)) #@208 Check whether alias files have been modified. Return t if any file listed in the Aliasfile MH profile component has been modified since the timestamp. If ARG is non-nil, set timestamp with the current time. (defalias 'mh-alias-tstamp #[(arg) "\203\304 \211@ A@D\211)\207\305\306\307\310\311\306!\">@)\207" [arg time mh-alias-tstamp stamp current-time nil t mapcar #[(file) "\205-\304!\205-\305\306!8\211@\n@V\206- @\n@U\205- \211A@)\n\211A@)V\207" [file stamp mh-alias-tstamp x file-exists-p 5 file-attributes] 4] mh-alias-filenames] 6 (#$ . 1738)]) #@201 Return list of filenames that contain aliases. The filenames come from the Aliasfile profile component and are expanded. If ARG is non-nil, filenames listed in `mh-alias-system-aliases' are appended. (defalias 'mh-alias-filenames #[(arg) "\204\306 \210\212\307\310!\211\205\311 \312\"\313\314\n\"\f\2032 ;\203+\315 C\"\2023\315 \"\2023 ,\207" [mh-progs filename filelist userlist arg mh-alias-system-aliases mh-find-path mh-profile-component "Aliasfile" split-string "[ ]+" mapcar #[(file) "\205 \205\302\303 \"!\205\303 \"\207" [mh-user-path file file-exists-p expand-file-name] 4] append] 4 (#$ . 2311)]) #@149 Return a usable address string from a GECOS-NAME and USERNAME. Use only part of the GECOS-NAME up to the first comma if COMMA-SEPARATOR is non-nil. (defalias 'mh-alias-gecos-name #[(gecos-name username comma-separator) "\n\203\304\305 \"\203\306\307 \"\304\310 \"\203!\311\310\312 ! #\304\313 \"\203.\311\313\314 # \314\230\2036 \304\315 \"\204B\313 \313Q )\207" [gecos-name res comma-separator username string-match "^\\([^,]+\\)," match-string 1 "&" mh-replace-regexp-in-string capitalize "\"" "" "^[ a-zA-Z0-9-]+$"] 4 (#$ . 2949)]) #@109 Return an alist of local users from /etc/passwd. Exclude all aliases already in `mh-alias-alist' from "ali" (defalias 'mh-alias-local-users #[nil "\306r\307 !q\210\310 \210\n\311=\203\312\313!\2032\314\313!\210\2022\n;\2032\n\315\261\210\316ed\n\311$\210eb\210`dW\203\231\317\320!\203\223\321\322\323!!\324V\203\223\322\325!\322\326!\327\f #\203g\330\311\"P\202h  \230\203x\331 \332Q\202~\333 \332R \334!\311#\204\222 DB-\325y\210\2022))\207" [passwd-alist mh-temp-buffer mh-alias-local-users username gecos-name mh-alias-passwd-gecos-comma-separator-flag nil get-buffer-create erase-buffer t file-readable-p "/etc/passwd" insert-file-contents "\n" shell-command-on-region looking-at "\\([^:]*\\):[^:]*:\\([^:]*\\):[^:]*:\\([^:]*\\):" string-to-number match-string 2 200 1 3 mh-alias-gecos-name mh-alias-suggest-alias "<" ">" " <" mh-assoc-string realname mh-alias-local-users-prefix alias-name alias-translation mh-alias-alist] 5 (#$ . 3506)]) #@457 Reload MH aliases. Since aliases are updated frequently, MH-E reloads aliases automatically whenever an alias lookup occurs if an alias source has changed. Sources include files listed in your "Aliasfile:" profile component and your password file if option `mh-alias-local-users' is turned on. However, you can reload your aliases manually by calling this command directly. This function runs `mh-alias-reloaded-hook' after the aliases have been loaded. (defalias 'mh-alias-reload #[nil "\212\306\307!\210\310\311!\210\312\311\313\314\315$\210\316\211`dW\203^\317\320!\204X\317\321!\203A\322\323\324! \311#\204X\323\324!C B\323\324!CB\202X\317\325!\203X\322\323\324!\311#\204X\323\324!CB\324y\210\202)\n\203\210\302 \211\316\211\203\207 @\322\f@\311#\204\200\326\fC\" A\211\204n*\327\330!\210\306\331!\207" [mh-alias-alist mh-alias-blind-alist mh-alias-local-users mh-alias-passwd-alist user local-users message "Loading MH aliases..." mh-alias-tstamp t mh-exec-cmd-quiet "ali" "-nolist" "-nouser" nil looking-at "^[ ]" "\\(.+\\): .+: .*$" mh-assoc-string match-string 1 "\\(.+\\): .*$" append run-hooks mh-alias-reloaded-hook "Loading MH aliases...done"] 6 (#$ . 4501) nil]) #@22 Load new MH aliases. (defalias 'mh-alias-reload-maybe #[nil "\301=\204\f\302\303!\205\304 \207" [mh-alias-alist not-read mh-alias-tstamp nil mh-alias-reload] 2 (#$ . 5715)]) #@214 Return ali expansion for ALIAS. ALIAS must be a string for a single alias. If USER is t, then assume ALIAS is an address and call ali -user. ali returns the string unchanged if not defined. The same is done here. (defalias 'mh-alias-ali #[(alias &optional user) "\300\301\302\217\207" [err (byte-code "\212\203 \303\202\n\304\305\306\307 \310\n%\210)db\210\311\312!\203!\313\314!\210ed{)\207" [user user-arg alias "-user" "-nouser" mh-exec-cmd-quiet t "ali" "-nolist" looking-at "^$" delete-char -1] 6) ((error (byte-code "\302\303\304!\"\210 \207" [err alias message "%s" error-message-string] 4)))] 3 (#$ . 5900)]) #@87 Return expansion for ALIAS. Blind aliases or users from /etc/passwd are not expanded. (defalias 'mh-alias-expand #[(alias) "\304 \305#\203\n\207\304\n\305#\203\304\n\305#\211A@)\207\306!\207" [alias mh-alias-blind-alist mh-alias-passwd-alist x mh-assoc-string t mh-alias-ali] 5 (#$ . 6529)]) (byte-code "\300\301\302\303#\210\300\304\302\303#\207" [mh-require crm nil t multi-prompt] 4) #@50 Read an address from the minibuffer with PROMPT. (defalias 'mh-read-address #[(prompt) "\306 \210\204 \307 !\207\n\f\310\311!\203$\310\311!\2057\311 \312\211$\2027\313\314!\203.\312\2027\315\316 \312\211$\317\"\204G\320\321\322#\202M\320\323\324#+\207" [mh-alias-alist prompt mh-alias-read-address-map minibuffer-local-completion-map mh-alias-completion-ignore-case-flag completion-ignore-case mh-alias-reload-maybe read-string fboundp completing-read-multiple nil featurep multi-prompt split-string completing-read "," mapconcat identity ", " mh-alias-expand ",\n " the-answer mh-alias-expand-aliases-flag] 6 (#$ . 6931)]) #@70 Display the alias expansion if `mh-alias-flash-on-comma' is non-nil. (defalias 'mh-alias-minibuffer-confirm-address #[nil "\2035\212\305\306 \307\n`\"\310 \f\305#\203\"\311\312 \313 !#\210\2024\314\232\2034\315\316 \"\2044\311\317 \"\210,\320\314!\207" [mh-alias-flash-on-comma case-fold-search beg the-name mh-alias-alist t mh-beginning-of-word buffer-substring-no-properties mh-assoc-string message "%s -> %s" mh-alias-expand 1 string-match " " "No alias for %s" self-insert-command] 5 (#$ . 7582) nil]) #@33 Expand mail alias before point. (defalias 'mh-alias-letter-expand-alias #[nil "\304 \210\305 \212b\210\305\306!)\211`Y\205+\307\310!\203 \202!`\n\204) \202*\311E*\207" [begin end mh-alias-expand-aliases-flag mh-alias-alist mh-alias-reload-maybe mh-beginning-of-word -1 fboundp completion-at-point #[(string pred action) "\305\306\"\2038\307 \n #\211\310=\204\"\f;\2035\307\f\n #\310=\2035\311\f;\203,\f\202- !\2066\f\2026\f)\207\305\312\"\203E\313 \n #\207\305\314\"\205Q\315 \n #\207" [action string mh-alias-alist pred res memql (nil) try-completion t mh-alias-expand (t) all-completions (lambda) mh-test-completion] 5]] 4 (#$ . 8104)]) #@115 Suggest an alias for STRING. Don't reverse the order of strings separated by a comma if NO-COMMA-SWAP is non-nil. (defalias 'mh-alias-suggest-alias #[(string &optional no-comma-swap) "\303\304\"\203\305\306\307\" \"\207\303\310\"\203\227\207\303\311\"\203-\312\313\306\307\"\306\314\"#\227\207\303\315\"\203:\306\307\"\227\207\303\316\"\203I\305\306\307\" \"\207\303\317\"\203X\305\306\307\" \"\207\303\n\320P\"\203i\305\306\307\" \"\207\303\321\"\203x\305\306\314\" \"\207\303\322\"\203\207\305\306\307\" \"\207\303\323\"\203\226\305\306\307\" \"\207\303\324\"\203\254\305\312\325\306\307\"\306\314\"# \"\207 \204\306\303\326\"\203\306\305\312\325\306\314\"\306\307\"# \"\207\327!\207" [string no-comma-swap goto-address-mail-regexp string-match "^<\\(.*\\)>$" mh-alias-suggest-alias match-string 1 "^\\sw+$" "^\\(\\sw+\\)\\s-+\\(\\sw+\\)$" format "%s.%s" 2 "^\\([-a-zA-Z0-9._]+\\)@[-a-zA-z0-9_]+\\.+[a-zA-Z0-9]+$" "^\"\\(.*\\)\".*" "^\\(.*\\) +<.*>$" " +(\\(.*\\))$" "^\\(Dr\\|Prof\\)\\.? +\\(.*\\)" "^\\(.*\\), +\\(Jr\\.?\\|II+\\)$" "^\\(.*\\) +\\(Jr\\.?\\|II+\\)$" "^\\(\\sw+\\) +[A-Z]\\.? +\\(.*\\)$" "%s %s" "^\\([^,]+\\), +\\(.*\\)$" mh-alias-canonicalize-suggestion] 7 (#$ . 8774)]) #@219 Process STRING to replace spaces by periods. First all spaces and commas are replaced by periods. Then every run of consecutive periods are replaced with a single period. Finally the string is converted to lower case. (defalias 'mh-alias-canonicalize-suggestion #[(string) "\302\303!rq\210\304\216 c\210eb\210\305\306\307\310#\203!\311\312\307\211#\210\202eb\210\305\313\307\310#\2035\311\312\307\211#\210\202$eb\210\305\314\307\310#\203I\311\312\307\211#\210\2028\315ed\"\210\316 +\207" [#1=#:temp-buffer string generate-new-buffer " *temp*" ((byte-code "\301!\203\n\302!\210\301\207" [#1# buffer-name kill-buffer] 2)) re-search-forward " +" nil t replace-match "." ",+" "\\.\\.+" downcase-region buffer-string] 4 (#$ . 10015)]) #@75 Return the name of writable file which defines ALIAS from list FILE-LIST. (defalias 'mh-alias-which-file-has-alias #[(alias file-list) "r\305!q\210 \306 \203:\307 \210\310 @!\203\n\311 @!\210\312\313\314\f!\315Q\306\316#\2033 @\306\211\202 A\211\204\n+\207" [mh-temp-buffer file-list found the-list alias get-buffer-create nil erase-buffer file-writable-p insert-file-contents re-search-forward "^" regexp-quote ":" t] 5 (#$ . 10763)]) #@268 Return filename which should be used to add ALIAS. The value of the option `mh-alias-insert-file' is used if non-nil; otherwise the value of the "Aliasfile:" profile component is used. If the alias already exists, try to return the name of the file that contains it. (defalias 'mh-alias-insert-file #[(&optional alias) "\2039<\2039\303\234\204@\207 \203 \304 !\230\203(\305\306\307\310\"\311\312$\207\313 \"\2068\305\306\307\310\"\311\312$\207\203D;\203D\207\314\311\307\315\316\312!\"\"\211\204X\317\320!\202\213\n\303\234\204c\n@\202\213 \203o \304 !\230\203{\305\306\307\310\n\"\311\312$\202\213\313 \n\"\206\213\305\306\307\310\n\"\311\312$)\207" [mh-alias-insert-file alias autolist 1 mh-alias-ali completing-read "Alias file: " mapcar list nil t mh-alias-which-file-has-alias delq #[(file) "\301!\205\302\230?\205\207" [file file-writable-p "/etc/passwd"] 2] mh-alias-filenames error "No writable alias file;\nset `mh-alias-insert-file' or the \"Aliasfile:\" profile component"] 7 (#$ . 11219)]) #@46 Return the ADDRESS alias if defined, or nil. (defalias 'mh-alias-address-to-alias #[(address) "\302\303\"\211\230?\205\304\305\306\307\310 \311\"\"\"@)\207" [address aliases mh-alias-ali t delq nil mapcar #[(alias) "\302\303\"\304\305 \"?\205)\207" [alias recurse mh-alias-ali nil string-match ".*,.*"] 3] split-string ", +"] 8 (#$ . 12263)]) #@57 Return t if sender's address has a corresponding alias. (defalias 'mh-alias-for-from-p #[nil "\303 \210\212\304 \205\305=\203 q\210\306 \211\205\307\n!))\207" [major-mode mh-show-buffer from-header mh-alias-reload-maybe mh-folder-line-matches-show-buffer-p mh-folder-mode mh-extract-from-header-value mh-alias-address-to-alias] 3 (#$ . 12622)]) #@428 Add ALIAS for ADDRESS in alias FILE without alias check or prompts. Prompt for alias file if not provided and there is more than one candidate. If the alias exists already, you will have the choice of inserting the new alias before or after the old alias. In the former case, this alias will be used when sending mail to this alias. In the latter case, the alias serves as an additional folder name hint when filing messages. (defalias 'mh-alias-add-alias-to-file #[(alias address &optional file) "\204\306 !r\307!q\210eb\210 \310P\311\312\313\314\315\f!\316Q\311\312#\203M\317\320\321\322\323!\"!\312\324\325 \"\204I\324\326 \"\203E\323y\210\202I\327\330!\210*\202\256$\331=\203\227\f\332\311O\f\333\332O\211\334\232\204~\313\314\315\f!P\311\312#\204~\f\332\311O\f\333\332O\211\202_\335 \210\313\314\315\f!\336 \337\260\311\312#\203\256\323y\210\202\201$\340=\203\244db\210\202\256$\341=\203\256eb\210+\335 \210\320\342 %#c\210\343 )\207" [file alias case-fold-search letter alias-search answer mh-alias-insert-file find-file-noselect ":" nil t re-search-forward "^" regexp-quote " *\\(.*\\)" read-string format "Alias %s exists; insert new address [b]efore or [a]fter: " match-string 1 string-match "^b" "^a" error "Unrecognized response" sorted -1 0 "" beginning-of-line "[a-" "]" bottom top "%s: %s\n" save-buffer mh-alias-insertion-location address] 7 (#$ . 12982)]) #@382 Add ALIAS for ADDRESS in personal alias file. This function prompts you for an alias and address. If the alias exists already, you will have the choice of inserting the new alias before or after the old alias. In the former case, this alias will be used when sending mail to this alias. In the latter case, the alias serves as an additional folder name hint when filing messages. (defalias 'mh-alias-add-alias #[(alias address) "\305 \210\306\307\310\211 %\n\203\311\312\n\"\203\313\314\n\"\315\316\n\"\311\312\n\"\203,\313\314\n\"\317\n!\320 ! \230\203<\310 \f\232\203O\n \232\203O\321\322 \"\202g\f\203c\323\324\325\f\"!\205g\326 \n\"\202g\326 \n\"*\207" [mh-alias-alist alias address alias-address address-alias mh-alias-reload-maybe completing-read "Alias: " nil string-match "^<\\(.*\\)>$" match-string 1 read-string "Address: " mh-alias-address-to-alias mh-alias-expand message "Already defined as %s" y-or-n-p format "Address has alias %s; set new one? " mh-alias-add-alias-to-file] 6 (#$ . 14395) "P\nP"]) #@50 Add alias for the sender of the current message. (defalias 'mh-alias-grab-from-field #[nil "\305 \210\212\306 \203q\210\2025 \307=\203+\310\311!\203+\312\n!q\210\313\314\310\315!!!\210\2025 \307=\2035\316\317!\210\320 \206=\316\321!\322 !\323\f \"+\207" [mh-show-buffer major-mode mh-temp-buffer address alias mh-alias-reload-maybe mh-folder-line-matches-show-buffer-p mh-folder-mode mh-get-msg-num nil get-buffer-create insert-file-contents mh-msg-filename t error "Cursor not pointing to a message" mh-extract-from-header-value "Message has no From: header" mh-alias-suggest-alias mh-alias-add-alias] 4 (#$ . 15437) nil]) #@42 Insert an alias for address under point. (defalias 'mh-alias-add-address-under-point #[nil "\301 \211\203\302\303\"\202\304\305!)\207" [address goto-address-find-address-at-point mh-alias-add-alias nil message "No email address found under point"] 4 (#$ . 16078) nil]) #@71 Show all aliases or addresses that match a regular expression REGEXP. (defalias 'mh-alias-apropos #[(regexp) "\203\306 \210\307\211\310\212\311\312!\210\313\314\315\316\317$\210\311\320!\210\321\f\310\314#\203Y\322 \210\323\324!\203L\n\212\325\326\310\314#\2069`)\321\326\310\314#\203E\327u\210`{P\202 `\310\210`{\330Q\202\311\331!\210\203o\311\332!\210\333\334 \307#\311\335!\210) \307\230\203\210\n\307\230\203\210 \307\230\203\210\311\336!\202\343()r\337*!q\210p\340 \210)(\310\211+,\314\211-\314./\341 \210\342\343!\210+\21101 \307\230\204\301\344 !\210\n\307\230\204\317\344\345!\210\344\n!\210 \307\230?\205\335\344\346!\210\344 !\3470!\210++\207" [mh-alias-local-users passwd-matches group-matches matches regexp mh-alias-passwd-alist mh-alias-reload-maybe "" nil message "Reading MH aliases..." mh-exec-cmd-quiet t "ali" "-nolist" "-nouser" "Parsing MH aliases..." re-search-forward beginning-of-line looking-at "^[ ]" re-search-backward "^[^ ]" -1 "\n" "Parsing MH aliases...done" "Making passwd aliases..." mapconcat #[(elem) "\303 @\"\204\303 \211A@)\"\205\304\305 @ \211A@)#\207" [regexp elem x string-match format "%s: %s\n"] 5] "Making passwd aliases...done" "No matches" get-buffer-create kill-all-local-variables erase-buffer run-hooks temp-buffer-setup-hook princ "\nGroup Aliases:\n\n" "\nLocal User Aliases:\n\n" internal-temp-output-buffer-show default-directory #1=#:old-dir mh-aliases-buffer buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output] 7 (#$ . 16359) "sAlias regexp: "]) #@199 Return t if the message under point in folder-mode is in the show buffer. Return nil in any other circumstance (no message under point, no show buffer, the message in the show buffer doesn't match. (defalias 'mh-folder-line-matches-show-buffer-p #[nil "\302=\2057\303\304!\2057 \2057\305 !\2057\306\305 !!\2057\307\310\306\305 !!\"\2057\311\312\306\305 !!\"\313\303\304!!\230\207" [major-mode mh-show-buffer mh-folder-mode mh-get-msg-num nil get-buffer buffer-file-name string-match ".*/\\([0-9]+\\)$" match-string 1 int-to-string] 5 (#$ . 17987)]) (provide 'mh-alias)