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/vc
Viewing File: /usr/share/emacs/24.3/lisp/vc/log-view.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:52:14 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/vc/log-view.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\302\303\304\"\210\302\305\304\"\210\306\307\310\311\312\313\314\315&\207" [require pcvs-util autoload vc-find-revision "vc" vc-diff-internal custom-declare-group log-view nil "Major mode for browsing log output of RCS/CVS/SCCS." :group pcl-cvs :prefix "log-view-"] 8) #@20 Log-View's keymap. (defconst log-view-mode-map (byte-code "\301\302\303\304\300!\205\n\305\306D$\207" [log-view-mode-map easy-mmode-define-keymap (("z" . kill-this-buffer) ("q" . quit-window) ("g" . revert-buffer) (" " . log-view-toggle-entry-display) ("m" . log-view-toggle-mark-entry) ("e" . log-view-modify-change-comment) ("d" . log-view-diff) ("=" . log-view-diff) ("D" . log-view-diff-changeset) ("a" . log-view-annotate-version) ("f" . log-view-find-revision) ("n" . log-view-msg-next) ("p" . log-view-msg-prev) (" " . log-view-msg-next) ([backtab] . log-view-msg-prev) ("N" . log-view-file-next) ("P" . log-view-file-prev) ("\356" . log-view-file-next) ("\360" . log-view-file-prev)) nil boundp :group log-view] 6) (#$ . 849)) #@23 Log-View Display Menu (defvar log-view-mode-menu nil (#$ . 1592)) (easy-menu-do-define 'log-view-mode-menu log-view-mode-map "Log-View Display Menu" '("Log-View" ["Mark Log Entry for Diff" set-mark-command :help ""] ["Diff Revisions" log-view-diff :help "Get the diff between two revisions"] ["Changeset Diff" log-view-diff-changeset :help "Get the changeset diff between two revisions"] ["Visit Version" log-view-find-revision :help "Visit the version at point"] ["Annotate Version" log-view-annotate-version :help "Annotate the version at point"] ["Modify Log Comment" log-view-modify-change-comment :help "Edit the change comment displayed at point"] ["Toggle Details at Point" log-view-toggle-entry-display :active log-view-expanded-log-entry-function] "-----" ["Next Log Entry" log-view-msg-next :help "Go to the next count'th log message"] ["Previous Log Entry" log-view-msg-prev :help "Go to the previous count'th log message"] ["Next File" log-view-file-next :help "Go to the next count'th file"] ["Previous File" log-view-file-prev :help "Go to the previous count'th file"])) #@41 Hook run at the end of `log-view-mode'. (defvar log-view-mode-hook nil (#$ . 2683)) #@257 Function returning the detailed description of a Log View entry. It is called by the command `log-view-toggle-entry-display' with one arg, the revision tag (a string), and should return a string. If it is nil, `log-view-toggle-entry-display' does nothing. (defvar log-view-expanded-log-entry-function nil (#$ . 2774)) (byte-code "\300\301\302\303\304\305%\210\306\307\310\301#\210\306\307\311\312\313!\206\314#\207" [custom-declare-face log-view-file ((((class color) (background light)) (:background "grey70" :weight bold)) (t (:weight bold))) "Face for the file header line in `log-view-mode'." :group log-view put log-view-file-face face-alias obsolete-face purecopy "22.1" t] 6) (defvar log-view-file-face 'log-view-file) (byte-code "\300\301\302\303\304\305%\210\306\307\310\301#\210\306\307\311\312\313!\206\314#\207" [custom-declare-face log-view-message ((((class color) (background light)) (:background "grey85")) (t (:weight bold))) "Face for the message header line in `log-view-mode'." :group log-view put log-view-message-face face-alias obsolete-face purecopy "22.1" t] 6) (defvar log-view-message-face 'log-view-message) #@108 Regexp matching the text identifying the file. The match group number 1 should match the file name itself. (defvar log-view-file-re "^\\(?:Working file: \\(?1:.+\\)\\|\\(?:SCCS/s\\.\\|Changes to \\)\\(?1:.+\\):\\)\n" (#$ . 3921)) #@55 Set if to t if the logs are shown one file at a time. (defvar log-view-per-file-logs t (#$ . 4157)) #@116 Regexp matching the text identifying a revision. The match group number 1 should match the revision number itself. (defvar log-view-message-re "^\\(?:revision \\(?1:[.0-9]+\\)\\(?: .*\\)?\\|r\\(?1:[0-9]+\\) | .* | .*\\|D \\(?1:[.0-9]+\\) .*\\|[^ \n].*[^0-9\n][0-9][0-9]:[0-9][0-9][^0-9\n].*[^ \n] .*@.*\n\\(?: \\* \\(?1:.*\\)\\)?\\)$" (#$ . 4264)) (defvar log-view-font-lock-keywords '((eval \` ((\, log-view-file-re) (1 (if (boundp 'cvs-filename-face) cvs-filename-face)) (0 log-view-file-face append))) (eval \` ((\, log-view-message-re) . log-view-message-face)))) (defconst log-view-font-lock-defaults '(log-view-font-lock-keywords t nil nil nil)) #@50 The VC fileset corresponding to the current log. (defvar log-view-vc-fileset nil (#$ . 4924)) #@46 The VC backend that created the current log. (defvar log-view-vc-backend nil (#$ . 5024)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [log-view-mode-hook variable-documentation put purecopy "Hook run when entering Log-View mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp log-view-mode-map definition-name log-view-mode] 5) (defvar log-view-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [log-view-mode-map variable-documentation put purecopy "Keymap for `log-view-mode'." boundp log-view-mode-syntax-table definition-name log-view-mode] 5) (defvar log-view-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [log-view-mode-syntax-table variable-documentation put purecopy "Syntax table for `log-view-mode'." log-view-mode-abbrev-table definition-name log-view-mode] 5) (defvar log-view-mode-abbrev-table (progn (define-abbrev-table 'log-view-mode-abbrev-table nil) log-view-mode-abbrev-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [log-view-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `log-view-mode'." log-view-mode derived-mode-parent special-mode] 5) #@229 Major mode for browsing CVS log output. In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `log-view-mode-hook', as the final step during initialization. \{log-view-mode-map} (fn) (defalias 'log-view-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R #=\204R\326 \325#C#\210\327 !\210\330\f!\210 #\307$\306\331!\210%\306\332!\210\333\306\334!\210\335\306\336!\210\337\340 \210)\341\342!\207" [delay-mode-hooks major-mode mode-name log-view-mode-map log-view-mode-syntax-table log-view-mode-abbrev-table make-local-variable t special-mode log-view-mode "Log-View" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table font-lock-defaults beginning-of-defun-function log-view-beginning-of-defun end-of-defun-function log-view-end-of-defun cvs-minor-wrap-function log-view-minor-wrap hack-dir-local-variables-non-file-buffer run-mode-hooks log-view-mode-hook local-abbrev-table buffer-read-only log-view-font-lock-defaults] 5 (#$ . 6447) nil]) #@60 Go to the next COUNT'th log message. (fn &optional COUNT) (defalias 'log-view-msg-next #[256 "\211\204\301\262\211\302W\203\303[!\207\304!\203\211T\262\305\306\307$\2043\304!\203.db\207\310\311\312\"\207\302\224b\210p\313\314 !=\205`\315\316!\205`\212\305\306\307\317$)\206Rd\320\306\307#?\205^\321\322!\262\207" [log-view-message-re 1 0 log-view-msg-prev looking-at re-search-forward nil t user-error "No next %s" "log message" window-buffer selected-window called-interactively-p interactive 2 pos-visible-in-window-p recenter (0)] 6 (#$ . 7752) "p"]) (put 'log-view-msg-next 'definition-name 'log-view-msg) #@63 Go to the previous COUNT'th log message (fn &optional COUNT) (defalias 'log-view-msg-prev #[256 "\211\204\301\262\211\302W\203\303[!\207\304\305\306$?\205 \307\310\311\"\207" [log-view-message-re 1 0 log-view-msg-next re-search-backward nil t user-error "No previous %s" "log message"] 6 (#$ . 8391) "p"]) (put 'log-view-msg-prev 'definition-name 'log-view-msg) #@53 Go to the next COUNT'th file. (fn &optional COUNT) (defalias 'log-view-file-next #[256 "\211\204\301\262\211\302W\203\303[!\207\304!\203\211T\262\305\306\307$\2043\304!\203.db\207\310\311\312\"\207\302\224b\210p\313\314 !=\205`\315\316!\205`\212\305\306\307\317$)\206Rd\320\306\307#?\205^\321\322!\262\207" [log-view-file-re 1 0 log-view-file-prev looking-at re-search-forward nil t user-error "No next %s" "file" window-buffer selected-window called-interactively-p interactive 2 pos-visible-in-window-p recenter (0)] 6 (#$ . 8769) "p"]) (put 'log-view-file-next 'definition-name 'log-view-file) #@56 Go to the previous COUNT'th file (fn &optional COUNT) (defalias 'log-view-file-prev #[256 "\211\204\301\262\211\302W\203\303[!\207\304\305\306$?\205 \307\310\311\"\207" [log-view-file-re 1 0 log-view-file-next re-search-backward nil t user-error "No previous %s" "file"] 6 (#$ . 9395) "p"]) (put 'log-view-file-prev 'definition-name 'log-view-file) (defalias 'log-view-goto-rev #[257 "eb\210\300\301\302\303\304\305\306!\307\"\310\311%D\312\301\313\300EDC\217\207" [#1=#:err funcall make-byte-code 0 "\300\301 \232\204 \302 \210\202\303\207" vconcat vector [log-view-current-tag log-view-msg-next t] 2 "\n\n(fn)" error #[257 "\300\207" [nil] 2 "\n\n(fn IGNORED)"]] 9 "\n\n(fn REV)"]) (defconst log-view-dir-re "^cvs[.ex]* [a-z]+: Logging \\(.+\\)$") (defalias 'log-view-current-file #[0 "\212\304y\210\305\306\307#\204\310\306\307#\204\311\312!\210\313\304!\305 \306\307#\205&\313\304!\314\302!\2057\305\n\306\307#\2057\313\304!\315\211\203D\316\"\262\203N\316\"\262)\316\"\266\204)\207" [log-view-file-re log-view-dir-re cvs-pcl-cvs-dirchange-re default-directory 1 re-search-backward nil t re-search-forward error "Unable to determine the current file" match-string boundp "" expand-file-name] 7 "\n\n(fn)"]) #@352 Return the position and revision tag of the Log View entry at POS. This is a list (BEG TAG), where BEG is a buffer position and TAG is a string. If POS is nil or omitted, it defaults to point. If there is no entry at POS, return nil. If optional arg MOVE is non-nil, move point to BEG if found. Otherwise, don't move point. (fn &optional POS MOVE) (defalias 'log-view-current-entry #[512 "\301\302\212\203\nb\210\303y\210\203$\304\302\305#\262\205\306`!\262\202 \203/\307\303!D\262)\203;\211\203;b\210\207" [log-view-message-re t nil 1 re-search-backward move log-view-inside-comment-p match-string-no-properties] 8 (#$ . 10650)]) #@68 Return non-nil if POS lies inside an expanded log entry. (fn POS) (defalias 'log-view-inside-comment-p #[257 "\300\301\"\302=\207" [get-text-property log-view-comment t] 4 (#$ . 11310)]) #@134 Return the revision tag (a string) of the Log View entry at POS. if POS is omitted or nil, it defaults to point. (fn &optional POS) (defalias 'log-view-current-tag #[256 "\301!\211A@)\207" [x log-view-current-entry] 4 (#$ . 11506)]) #@252 Toggle the marked state for the log entry at point. Individual log entries can be marked and unmarked. The marked entries are denoted by changing their background color. `log-view-get-marked' returns the list of tags for the marked log entries. (fn) (defalias 'log-view-toggle-mark-entry #[0 "\212\300\301\302\"\211@\301\205H\303\304\"\262\211\203\305!\202H\306\307\"\203*\310\311\"\202.\312 \210`\313\"\314\315\316#\210\314\304#\210\314\317A@#\266\202\266\203)\207" [log-view-current-entry nil t get-char-property log-view-self delete-overlay get-text-property log-view-entry-expanded next-single-property-change log-view-comment log-view-end-of-defun make-overlay overlay-put face log-view-file log-view-marked] 9 (#$ . 11749) nil]) #@59 Return the list of tags for the marked log entries. (fn) (defalias 'log-view-get-marked #[0 "\212e\300\211\301\302\"\211\262\203(\303\304\"\211\262\203\305\306\"B\262\307!\262\202\266\203)\207" [nil next-single-property-change face get-char-property log-view-self overlay-get log-view-marked overlay-end] 6 (#$ . 12511)]) #@121 If possible, expand the current Log View entry. This calls `log-view-expanded-log-entry-function' to do the work. (fn) (defalias 'log-view-toggle-entry-display #[0 "\302!\205q`\303\304\305\"\211@\304\205n\306\307\"\203H\310\311\"\211\203(\312!\204,\313\314!\210\211\310\311\"|\210\315\211T\307\304$\210W\205Cb\262\202nA@!\211\205l\315\211T\307\305$\210\316 \210`\262\211\317\261\210\320`\321#\210b\262)\266\203\207" [log-view-expanded-log-entry-function buffer-read-only functionp log-view-current-entry nil t get-text-property log-view-entry-expanded next-single-property-change log-view-comment log-view-inside-comment-p error "Broken markup in `log-view-toggle-entry-display'" put-text-property log-view-end-of-defun "\n" add-text-properties (font-lock-face font-lock-comment-face log-view-comment t)] 9 (#$ . 12856) nil]) #@329 Move backward to the beginning of a Log View entry. With ARG, do it that many times. Negative ARG means move forward to the beginning of the ARGth following entry. This is Log View mode's default `beginning-of-defun-function'. It assumes that a log entry starts with a line matching `log-view-message-re'. (fn &optional ARG) (defalias 'log-view-beginning-of-defun #[256 "\211C\211@\203\300@!\203\211\301\240\210\211@\302W\2034\211@[\302\211W\205/\211\303 \266\211T\262\202\266\202\202E\304\305\306\302\307\310\311!\312\"\313\314%D\215\207" [zerop 1 0 log-view-end-of-defun beginning-of-buffer funcall make-byte-code "\300@\301\211W\203\211\302\303\304\"\204\305\306\303\"\210\210\211T\262\202\266`\207" vconcat vector [0 log-view-current-entry nil t throw beginning-of-buffer] 6 "\n\n(fn)"] 10 (#$ . 13718)]) #@48 Move forward to the next Log View entry. (fn) (defalias 'log-view-end-of-defun #[0 "\301\302!\203 \303\225b\210\211\2056\304\305\306#\203'\307`!\204 \305\262\303\224b\210\202 \310\311!\203 \305\262\312y\210\202 \207" [log-view-message-re t looking-at 0 re-search-forward nil move log-view-inside-comment-p looking-back "Show 2X entries Show unlimited entries" -1] 5 (#$ . 14560)]) (defalias 'log-view-minor-wrap #[514 "rq\210`\305 \203\306 \202`\307!\307!\230\203(\212b\210\310 \210\307 \262)\311 B\311 BB\266\204)\211\211@A)\211@A)\205I\211AA)\211@@)\211A@)\205p\211@@)\211A@)\232?\205p\211A@)CB\312 ,\207" [x cvs-force-command cvs-minor-current-files cvs-secondary-branch-prefix cvs-branch-prefix use-region-p mark log-view-current-tag log-view-msg-next log-view-current-file "/F"] 10 "\n\n(fn BUF F)"]) #@39 Visit the version at point. (fn POS) (defalias 'log-view-find-revision #[257 "\204 G\302V\203\303\304!\210\212\211b\210\305\306\203\307 \202 @\310 \"!)\207" [log-view-per-file-logs log-view-vc-fileset 1 error "Multiple files shown in this buffer, cannot use this command here" switch-to-buffer vc-find-revision log-view-current-file log-view-current-tag] 5 (#$ . 15424) "d"]) #@63 Parse comment from around the current point in the log. (fn) (defalias 'log-view-extract-comment #[0 "\212\300\211\301\302 !\303 \210\211\304=\203\305y\210`\262\306 \210\211\307>\203%\310y\210\2024\211\311=\2034\312y\210\313\314\300\315#\210`\262{\266\203)\207" [nil vc-backend log-view-current-file log-view-end-of-defun SVN -1 log-view-beginning-of-defun (SCCS RCS CVS MCVS SVN) 2 Hg 4 re-search-forward "summary: *" t] 7 (#$ . 15817)]) #@51 Edit the change comment displayed at point. (fn) (defalias 'log-view-modify-change-comment #[0 "\302\203\n\303 \202\f @C\304 \305 #\207" [log-view-per-file-logs log-view-vc-fileset vc-modify-change-comment log-view-current-file log-view-current-tag log-view-extract-comment] 4 (#$ . 16272) nil]) #@42 Annotate the version at point. (fn POS) (defalias 'log-view-annotate-version #[257 "\204 G\302V\203\303\304!\210\212\211b\210\305\203\306 \202 @\307 \")\207" [log-view-per-file-logs log-view-vc-fileset 1 error "Multiple files shown in this buffer, cannot use this command here" vc-annotate log-view-current-file log-view-current-tag] 4 (#$ . 16578) "d"]) #@404 Get the diff between two revisions. If the region is inactive or the mark is on the revision at point, get the diff between the revision at point and its previous revision. Otherwise, get the diff between the revisions where the region starts and ends. Unlike `log-view-diff-changeset', this function only shows the part of the changeset which affected the currently considered file(s). (fn BEG END) (defalias 'log-view-diff #[514 "\303!\303!\230\203\212b\210\304 \210\303 \262)\305\306 \203%\307 C\202&\nD$\207" [log-view-vc-backend log-view-per-file-logs log-view-vc-fileset log-view-current-tag log-view-msg-next vc-diff-internal t log-view-current-file] 9 (#$ . 16951) (byte-code "\300 \203\n\301 \202 `\300 \203\302 \202`D\207" [use-region-p region-beginning region-end] 2)]) #@413 Get the diff between two revisions. If the region is inactive or the mark is on the revision at point, get the diff between the revision at point and its previous revision. Otherwise, get the diff between the revisions where the region starts and ends. Unlike `log-view-diff' this function shows the whole changeset, including changes affecting other files than the currently considered file(s). (fn BEG END) (defalias 'log-view-diff-changeset #[514 "\301\302\"\303=\203\304\305\"\210\306!\306!\230\203\"\301\307\310$\262\311\312\310D$\207" [log-view-vc-backend vc-call-backend revision-granularity file error "The %s backend does not support changeset diffs" log-view-current-tag previous-revision nil vc-diff-internal t] 9 (#$ . 17761) (byte-code "\300 \203\n\301 \202 `\300 \203\302 \202`D\207" [use-region-p region-beginning region-end] 2)]) (provide 'log-view)