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
Viewing File: /usr/share/emacs/24.3/lisp/replace.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 13:00:14 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/replace.el ;;; in Emacs version 24.3 ;;; 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\302\303\304\305\306\307&\210\300\310\311\312\304\305\306\307\313\314& \210\300\315\311\316\304\305\306\307\313\314& \207" [custom-declare-variable case-replace t "Non-nil means `query-replace' should preserve case in replacements." :type boolean :group matching replace-lax-whitespace nil "Non-nil means `query-replace' matches a sequence of whitespace chars.\nWhen you enter a space or spaces in the strings to be replaced,\nit will match any sequence matched by the regexp `search-whitespace-regexp'." :version "24.3" replace-regexp-lax-whitespace "Non-nil means `query-replace-regexp' matches a sequence of whitespace chars.\nWhen you enter a space or spaces in the regexps to be replaced,\nit will match any sequence matched by the regexp `search-whitespace-regexp'."] 10) #@133 Default history list for query-replace commands. See `query-replace-from-history-variable' and `query-replace-to-history-variable'. (defvar query-replace-history nil (#$ . 1348)) #@150 Default values of FROM-STRING and TO-STRING for `query-replace'. This is a cons cell (FROM-STRING . TO-STRING), or nil if there is no default value. (defvar query-replace-defaults nil (#$ . 1534)) #@98 Non-nil means `query-replace' uses the last search string. That becomes the "string to replace". (defvar query-replace-interactive nil (#$ . 1737)) (byte-code "\300\301\302\303#\210\304\305\306\307\310\311\312\313\314\315& \210\304\316\317\320\310\311\312\313\314\315& \210\304\321\322\323\312\324\310\311\314\325& \210\304\326\327\330\312\324\310\311\314\331& \210\304\332\327\333\312\324\310\311&\210\304\334\327\335\312\324\310\336\310\311\314\325& \210\337\340\341\342\310\311\314\325&\207" [make-obsolete-variable query-replace-interactive "use `M-n' to pull the last incremental search string\nto the minibuffer that reads the string to replace, or invoke replacements\nfrom Isearch by using a key sequence like `C-s C-s M-%'." "24.3" custom-declare-variable query-replace-from-history-variable 'query-replace-history "History list to use for the FROM argument of `query-replace' commands.\nThe value of this variable should be a symbol; that symbol\nis used as a variable to hold a history list for the strings\nor patterns to be replaced." :group matching :type symbol :version "20.3" query-replace-to-history-variable 'query-replace-history "History list to use for the TO argument of `query-replace' commands.\nThe value of this variable should be a symbol; that symbol\nis used as a variable to hold a history list for replacement\nstrings or patterns." query-replace-skip-read-only nil "Non-nil means `query-replace' and friends ignore read-only matches." boolean "22.1" query-replace-show-replacement t "Non-nil means to show what actual replacement text will be." "23.1" query-replace-highlight "Non-nil means to highlight matches during query replacement." query-replace-lazy-highlight "Controls the lazy-highlighting during query replacements.\nWhen non-nil, all text in the buffer matching the current match\nis highlighted lazily using isearch lazy highlighting (see\n`lazy-highlight-initial-delay' and `lazy-highlight-interval')." lazy-highlight custom-declare-face query-replace ((t (:inherit isearch))) "Face for highlighting query replacement matches."] 12) #@91 Number of replacements done so far. See `replace-regexp' and `query-replace-regexp-eval'. (defvar replace-count 0 (#$ . 3825)) (defalias 'query-replace-descr #[(string) "\301\302\303#\207" [string mapconcat isearch-text-char-description ""] 4]) #@172 Query and return the `from' argument of a query-replace operation. The return value can also be a pair (FROM . TO) indicating that the user wants to replace FROM with TO. (defalias 'query-replace-read-from #[(prompt regexp-flag) "\203 \203\f\n\202 @\207\306 \203%\307\310\311 @!\311 A!$\202*\307\312\"\212 \203;\313\306#\202P\314\306\211\211 \203K\n\202L @\315&)\316G!\203j \203j @\317 A \"B\202\245\320\306\315$\210 \203\243\321\322\"\203\243\323\324\"\211\325\230\203\223\326\327!\210\202\236\330\230\203\236\326\331!\210\332\333!\210)+\207" [query-replace-interactive regexp-flag regexp-search-ring search-ring history-add-new-input query-replace-defaults nil format "%s (default %s -> %s): " query-replace-descr "%s: " read-regexp read-from-minibuffer t zerop query-replace-compile-replacement add-to-history string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" match-string 3 "\\n" message "Note: `\\n' here doesn't match a newline; to do that, type C-q C-j instead" "\\t" "Note: `\\t' here doesn't match a tab; to do that, just type TAB" sit-for 2 prompt query-replace-from-history-variable from match] 9 (#$ . 4078)]) #@136 Maybe convert a regexp replacement TO to Lisp. Returns a list suitable for `perform-replace' if necessary, the original string if not. (defalias 'query-replace-compile-replacement #[(to regexp-flag) "\203\232\306\307 \"\203\232\310\211\211\311\225 \311\f\312ZO B \fSH \f\310O\n\313=\2034\314 B\202v\n\315=\203v\316 !\317\f@D B\f@9\204[\f@\242\320=\203m \311H\321U\204m\306\322 \fA#\fA=\203m\fAT\202o\fA \310O)\306\307 \"\204\323\324 B\"\237\325 !\210\326 A\203\225\327 B\202\227 @+B\207 \207" [regexp-flag to char list pos end string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" nil 0 2 35 (number-to-string replace-count) 44 read-from-string replace-quote quote 40 " " delete "" replace-match-string-symbols replace-eval-replacement concat] 4 (#$ . 5273)]) #@66 Query and return the `to' argument of a query-replace operation. (defalias 'query-replace-read-to #[(from prompt regexp-flag) "\306\212\307\310\311\312 \313\n!#\307\211\211 \n\314&\315 \f\307\314$\210\n\fB\f+\"\207" [history-add-new-input prompt from query-replace-to-history-variable to query-replace-defaults query-replace-compile-replacement nil read-from-minibuffer format "%s %s with: " query-replace-descr t add-to-history regexp-flag] 9 (#$ . 6071)]) (defalias 'query-replace-read-args #[(prompt regexp-flag &optional noerror) "\204\306 \210\307 \n\"\211:\203 A @\202\310 \n# \f E*\207" [noerror prompt regexp-flag from to current-prefix-arg barf-if-buffer-read-only query-replace-read-from query-replace-read-to] 5]) #@1490 Replace some occurrences of FROM-STRING with TO-STRING. As each match is found, the user must type a character saying what to do with it. For directions, type \[help-command] at that time. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. Use \<minibuffer-local-map>\[next-history-element] to pull the last incremental search string to the minibuffer that reads FROM-STRING, or invoke replacements from incremental search with a key sequence like `C-s C-s M-%' to use its current search string as the string to replace. Matching is independent of case if `case-fold-search' is non-nil and FROM-STRING has no uppercase letters. Replacement transfers the case pattern of the old text to the new text, if `case-replace' and `case-fold-search' are non-nil and FROM-STRING has no uppercase letters. (Transferring the case pattern means that if the old text matched is all caps, or capitalized, then its replacement is upcased or capitalized.) If `replace-lax-whitespace' is non-nil, a space or spaces in the string to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on. To customize possible responses, change the "bindings" in `query-replace-map'. (defalias 'query-replace #[(from-string to-string &optional delimited start end) "\305 \306\307\n\307\211 \f& \207" [from-string to-string delimited start end perform-replace t nil] 10 (#$ . 6821) (let ((common (query-replace-read-args (concat "Query replace" (if current-prefix-arg " word" #1="") (if (and transient-mark-mode mark-active) " in region" #1#)) nil))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))]) (define-key esc-map "%" 'query-replace) #@2454 Replace some things after point matching REGEXP with TO-STRING. As each match is found, the user must type a character saying what to do with it. For directions, type \[help-command] at that time. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. Use \<minibuffer-local-map>\[next-history-element] to pull the last incremental search regexp to the minibuffer that reads REGEXP, or invoke replacements from incremental search with a key sequence like `C-M-s C-M-s C-M-%' to use its current search regexp as the regexp to replace. Matching is independent of case if `case-fold-search' is non-nil and REGEXP has no uppercase letters. Replacement transfers the case pattern of the old text to the new text, if `case-replace' and `case-fold-search' are non-nil and REGEXP has no uppercase letters. (Transferring the case pattern means that if the old text matched is all caps, or capitalized, then its replacement is upcased or capitalized.) If `replace-regexp-lax-whitespace' is non-nil, a space or spaces in the regexp to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on. In TO-STRING, `\&' stands for whatever matched the whole of REGEXP, and `\=\N' (where N is a digit) stands for whatever what matched the Nth `\(...\)' in REGEXP. `\?' lets you edit the replacement text in the minibuffer at the given position for each replacement. In interactive calls, the replacement text can contain `\,' followed by a Lisp expression. Each replacement evaluates that expression to compute the replacement string. Inside of that expression, `\&' is a string denoting the whole match as a string, `\N' for a partial match, `\#&' and `\#N' for the whole or a partial match converted to a number with `string-to-number', and `\#' itself for the number of replacements done so far (starting with zero). If the replacement expression is a symbol, write a space after it to terminate it. One space there, if any, will be discarded. When using those Lisp features interactively in the replacement text, TO-STRING is actually made a list instead of a string. Use \[repeat-complex-command] after this command for details. (defalias 'query-replace-regexp #[(regexp to-string &optional delimited start end) "\305 \306\211\n\307\211 \f& \207" [regexp to-string delimited start end perform-replace t nil] 10 (#$ . 8898) (let ((common (query-replace-read-args (concat "Query replace" (if current-prefix-arg " word" #1="") " regexp" (if (and transient-mark-mode mark-active) " in region" #1#)) t))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))]) (define-key esc-map [67108901] 'query-replace-regexp) #@1827 Replace some things after point matching REGEXP with the result of TO-EXPR. Interactive use of this function is deprecated in favor of the `\,' feature of `query-replace-regexp'. For non-interactive use, a loop using `search-forward-regexp' and `replace-match' is preferred. As each match is found, the user must type a character saying what to do with it. For directions, type \[help-command] at that time. TO-EXPR is a Lisp expression evaluated to compute each replacement. It may reference `replace-count' to get the number of replacements already made. If the result of TO-EXPR is not a string, it is converted to one using `prin1-to-string' with the NOESCAPE argument (which see). For convenience, when entering TO-EXPR interactively, you can use `\&' or `\0' to stand for whatever matched the whole of REGEXP, and `\N' (where N is a digit) to stand for whatever matched the Nth `\(...\)' in REGEXP. Use `\#&' or `\#N' if you want a number instead of a string. In interactive use, `\#' in itself stands for `replace-count'. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. Use \<minibuffer-local-map>\[next-history-element] to pull the last incremental search regexp to the minibuffer that reads REGEXP. Preserves case in each replacement if `case-replace' and `case-fold-search' are non-nil and REGEXP has no uppercase letters. If `replace-regexp-lax-whitespace' is non-nil, a space or spaces in the regexp to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches that are surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on. (defalias 'query-replace-regexp-eval #[(regexp to-expr &optional delimited start end) "\305\306 B\307\310\n\311\211 \f& \207" [regexp to-expr delimited start end perform-replace replace-eval-replacement t literal nil] 10 (#$ . 11958) (progn (barf-if-buffer-read-only) (let* ((from (let ((query-replace-to-history-variable nil)) (query-replace-read-from "Query replace regexp" t))) (to (list (read-from-minibuffer (format "Query replace regexp %s with eval: " (query-replace-descr from)) nil nil t query-replace-to-history-variable from t)))) (replace-match-string-symbols to) (list from (car to) current-prefix-arg (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end)))))]) (make-obsolete 'query-replace-regexp-eval "use the `\\,' feature of `query-replace-regexp'\nfor interactive calls, and `search-forward-regexp'/`replace-match'\nfor Lisp calls." "22.1") #@851 Replace some matches for REGEXP with various strings, in rotation. The second argument TO-STRINGS contains the replacement strings, separated by spaces. This command works like `query-replace-regexp' except that each successive replacement uses the next successive replacement string, wrapping around from the last such string to the first. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. Non-interactively, TO-STRINGS may be a list of replacement strings. Use \<minibuffer-local-map>\[next-history-element] to pull the last incremental search regexp to the minibuffer that reads REGEXP. A prefix argument N says to use each replacement string N times before rotating to the next. Fourth and fifth arg START and END specify the region to operate on. (defalias 'map-query-replace-regexp #[(regexp to-strings &optional n start end) "\306 <\203\f \202? G\307U\204?\310\311 \"\2033\312 \307\310\311 \"OC\" \310\311 \"T\306O\211\202 \312 C\"\313\211\202 \314\n\315\211\306 \306\f & )\207" [replacements to-strings regexp n start end nil 0 string-match " " append "" perform-replace t] 11 (#$ . 14715) (let* ((from (read-regexp "Map query replace (regexp): " nil query-replace-from-history-variable)) (to (read-from-minibuffer (format "Query replace %s with (space-separated strings): " (query-replace-descr from)) nil nil nil query-replace-to-history-variable from t))) (list from to (and current-prefix-arg (prefix-numeric-value current-prefix-arg)) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))]) #@1320 Replace occurrences of FROM-STRING with TO-STRING. Preserve case in each match if `case-replace' and `case-fold-search' are non-nil and FROM-STRING has no uppercase letters. (Preserving case means that if the string matched is all caps, or capitalized, then its replacement is upcased or capitalized.) If `replace-lax-whitespace' is non-nil, a space or spaces in the string to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on. Use \<minibuffer-local-map>\[next-history-element] to pull the last incremental search string to the minibuffer that reads FROM-STRING. This function is usually the wrong thing to use in a Lisp program. What you probably want is a loop like this: (while (search-forward FROM-STRING nil t) (replace-match TO-STRING nil t)) which will run faster and will not set the mark or print anything. (You may need a more complex loop if FROM-STRING can match the null string and TO-STRING is also null.) (defalias 'replace-string #[(from-string to-string &optional delimited start end) "\305 \306\211\n\306\211 \f& \207" [from-string to-string delimited start end perform-replace nil] 10 (#$ . 16406) (let ((common (query-replace-read-args (concat "Replace" (if current-prefix-arg " word" #1="") " string" (if (and transient-mark-mode mark-active) " in region" #1#)) nil))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))]) #@2195 Replace things after point matching REGEXP with TO-STRING. Preserve case in each match if `case-replace' and `case-fold-search' are non-nil and REGEXP has no uppercase letters. If `replace-regexp-lax-whitespace' is non-nil, a space or spaces in the regexp to be replaced will match a sequence of whitespace chars defined by the regexp in `search-whitespace-regexp'. In Transient Mark mode, if the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of the buffer. Third arg DELIMITED (prefix arg if interactive), if non-nil, means replace only matches surrounded by word boundaries. Fourth and fifth arg START and END specify the region to operate on. In TO-STRING, `\&' stands for whatever matched the whole of REGEXP, and `\=\N' (where N is a digit) stands for whatever what matched the Nth `\(...\)' in REGEXP. `\?' lets you edit the replacement text in the minibuffer at the given position for each replacement. In interactive calls, the replacement text may contain `\,' followed by a Lisp expression used as part of the replacement text. Inside of that expression, `\&' is a string denoting the whole match, `\N' a partial match, `\#&' and `\#N' the respective numeric values from `string-to-number', and `\#' itself for `replace-count', the number of replacements occurred so far. If your Lisp expression is an identifier and the next letter in the replacement string would be interpreted as part of it, you can wrap it with an expression like `\,(or \#)'. Incidentally, for this particular case you may also enter `\#' in the replacement text directly. When using those Lisp features interactively in the replacement text, TO-STRING is actually made a list instead of a string. Use \[repeat-complex-command] after this command for details. Use \<minibuffer-local-map>\[next-history-element] to pull the last incremental search regexp to the minibuffer that reads REGEXP. This function is usually the wrong thing to use in a Lisp program. What you probably want is a loop like this: (while (re-search-forward REGEXP nil t) (replace-match TO-STRING nil nil)) which will run faster and will not set the mark or print anything. (defalias 'replace-regexp #[(regexp to-string &optional delimited start end) "\305 \306\307\n\306\211 \f& \207" [regexp to-string delimited start end perform-replace nil t] 10 (#$ . 18277) (let ((common (query-replace-read-args (concat "Replace" (if current-prefix-arg " word" #1="") " regexp" (if (and transient-mark-mode mark-active) " in region" #1#)) t))) (list (nth 0 common) (nth 1 common) (nth 2 common) (if (and transient-mark-mode mark-active) (region-beginning)) (if (and transient-mark-mode mark-active) (region-end))))]) #@158 History list for some commands that read regular expressions. Maximum length of the history list is determined by the value of `history-length', which see. (defvar regexp-history nil (#$ . 21012)) #@49 History of regexp for occur's collect operation (defvar occur-collect-regexp-history '("\\1") (#$ . 21216)) #@532 Read and return a regular expression as a string. When PROMPT doesn't end with a colon and space, it adds a final ": ". If DEFAULTS is non-nil, it displays the first default in the prompt. Non-nil optional arg DEFAULTS is a string or a list of strings that are prepended to a list of standard default values, which include the string at point, the last isearch regexp, the last isearch string, and the last replacement regexp. Non-nil HISTORY is a symbol to use for the history list. If HISTORY is nil, `regexp-history' is used. (defalias 'read-regexp #[(prompt &optional defaults history) ":\203\n@\202 \306<\203\202C\307\n\206$ \302N\206$\310 \206)\311!\f@\307 @\2063\311!J@F\"\312\313\314\315\311\"\"!\314\316\317\314\320\321#,\203g\202{ \203v\322\323\324 !#\202{\322\325\"\314\211\211\206\204\326\320&\211 \311\232\203\231 \206\246 \202\246 \327\206\242\326 \"\210-\207" [defaults default find-tag-default-function major-mode regexp-search-ring search-ring append regexp-quote find-tag-default "" delete-dups delq nil delete read-from-minibuffer ":[ ]*\\'" t string-match format "%s (default %s): " query-replace-descr "%s: " regexp-history add-to-history query-replace-from-history-variable history-add-new-input prompt start string regexp inhibit-changing-match-data history input] 9 (#$ . 21331)]) (byte-code "\300\301\302\"\210\300\303\304\"\210\300\305\306\"\207" [defalias delete-non-matching-lines keep-lines delete-matching-lines flush-lines count-matches how-many] 3) #@106 Read arguments for `keep-lines' and friends. Prompt for a regexp with PROMPT. Value is a list, (REGEXP). (defalias 'keep-lines-read-args #[(prompt) "\301!\302\211\303F\207" [prompt read-regexp nil t] 4 (#$ . 22887)]) #@1149 Delete all lines except those containing matches for REGEXP. A match split across lines preserves all the lines it lies in. When called from Lisp (and usually interactively as well, see below) applies to all lines starting after point. If REGEXP contains upper case characters (excluding those preceded by `\') and `search-upper-case' is non-nil, the matching is case-sensitive. Second and third arg RSTART and REND specify the region to operate on. This command operates on (the accessible part of) all lines whose accessible part is entirely contained in the region determined by RSTART and REND. (A newline ending a line counts as part of that line.) Interactively, in Transient Mark mode when the mark is active, operate on all lines whose accessible part is entirely contained in the region. Otherwise, the command applies to all lines starting after point. When calling this function from Lisp, you can pretend that it was called interactively by passing a non-nil INTERACTIVE argument. This function starts looking for the next match from the end of the previous match. Hence, it ignores matches that overlap a previously found match. (defalias 'keep-lines #[(regexp &optional rstart rend interactive) "\203! ^b\210\212 ]b\210n\204m\204\306y\210\307 )\202M\n\203E \203E\f\203E\310 \311 b\210n\204?m\204?\306y\210\307 \202J`\312 b\210\212n\204U\313y\210` \203g\203g\314\315\"\202h ` W\203\271\316 \317#\204\202 |\210\202\235\212\306\224b\210\306y\210`)W\203\234|\210)\212\313y\210`)` W\203k\306\224\306\225U\203k\313u\210\202k+ \320\211\223\210\320\207" [rstart rend interactive transient-mark-mode mark-active case-fold-search 0 point-marker region-beginning region-end point-max-marker 1 isearch-no-upper-case-p t re-search-forward move nil search-upper-case regexp start end] 4 (#$ . 23113) (byte-code "\300 \210\301\302!\207" [barf-if-buffer-read-only keep-lines-read-args "Keep lines containing match for regexp"] 2)]) #@1134 Delete lines containing matches for REGEXP. When called from Lisp (and usually when called interactively as well, see below), applies to the part of the buffer after point. The line point is in is deleted if and only if it contains a match for regexp starting after point. If REGEXP contains upper case characters (excluding those preceded by `\') and `search-upper-case' is non-nil, the matching is case-sensitive. Second and third arg RSTART and REND specify the region to operate on. Lines partially contained in this region are deleted if and only if they contain a match entirely contained in it. Interactively, in Transient Mark mode when the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of (the accessible portion of) the buffer. When calling this function from Lisp, you can pretend that it was called interactively by passing a non-nil INTERACTIVE argument. If a match is split across lines, all the lines it lies in are deleted. They are deleted _before_ looking for the next match. Hence, a match starting on the same line at which another match ended is ignored. (defalias 'flush-lines #[(regexp &optional rstart rend interactive) "\203 ^b\210\306 ]!\2021\n\203) \203)\f\203)\307 \306\310 !\202.`\311 b\210 \203B\203B\312\313\"\202C \212` W\203g\314 \313#\203g\212\315\224b\210\315y\210`)\316y\210`|\210\202E* \317\211\223\210\317\207" [rstart rend interactive transient-mark-mode mark-active case-fold-search copy-marker region-beginning region-end point-max-marker isearch-no-upper-case-p t re-search-forward 0 1 nil search-upper-case regexp] 4 (#$ . 25112) (byte-code "\300 \210\301\302!\207" [barf-if-buffer-read-only keep-lines-read-args "Flush lines containing match for regexp"] 2)]) #@815 Print and return number of matches for REGEXP following point. When called from Lisp and INTERACTIVE is omitted or nil, just return the number, do not print it; if INTERACTIVE is t, the function behaves in all respects as if it had been called interactively. If REGEXP contains upper case characters (excluding those preceded by `\') and `search-upper-case' is non-nil, the matching is case-sensitive. Second and third arg RSTART and REND specify the region to operate on. Interactively, in Transient Mark mode when the mark is active, operate on the contents of the region. Otherwise, operate from point to the end of (the accessible portion of) the buffer. This function starts looking for the next match from the end of the previous match. Hence, it ignores matches that overlap a previously found match. (defalias 'how-many #[(regexp &optional rstart rend interactive) "\212\203 ^b\210 ]\202-\n\203& \203&\f\203&\306 \307 \202*`db\210\310\311 \203@\203@\312\313\"\202A ` W\203m`\314 \313#\203m`U\203e\315u\210\202FT\202F\n\203\202\316\317\211\315U\203\320\202\200\321#\210,\207" [rstart rend interactive transient-mark-mode mark-active case-fold-search region-beginning region-end 0 nil isearch-no-upper-case-p t re-search-forward 1 message "%d occurrence%s" "" "s" search-upper-case regexp opoint count] 5 (#$ . 26909) (keep-lines-read-args "How many matches for regexp")]) #@31 Menu keymap for `occur-mode'. (defvar occur-menu-map (byte-code "\302 \303\304\305#\210\303\306 #\210\303\307\310#\210\303\311\312#\210\303\313\314#\210\303\315\316#\210\303\317\320#\210\303\321\322#\210\303\323 #\210\303\324\325#\210\303\326\327#\210\303\330\331#\210\303\332\333#\210\303\334\335#\210)\207" [map menu-bar-separator make-sparse-keymap bindings--define-key [next-error-follow-minor-mode] (menu-item "Auto Occurrence Display" next-error-follow-minor-mode :help "Display another occurrence when moving the cursor" :button (:toggle and (boundp 'next-error-follow-minor-mode) next-error-follow-minor-mode)) [separator-1] [kill-this-buffer] (menu-item "Kill Occur Buffer" kill-this-buffer :help "Kill the current *Occur* buffer") [quit-window] (menu-item "Quit Occur Window" quit-window :help "Quit the current *Occur* buffer. Bury it, and maybe delete the selected frame") [revert-buffer] (menu-item "Revert Occur Buffer" revert-buffer :help "Replace the text in the *Occur* buffer with the results of rerunning occur") [clone-buffer] (menu-item "Clone Occur Buffer" clone-buffer :help "Create and return a twin copy of the current *Occur* buffer") [occur-rename-buffer] (menu-item "Rename Occur Buffer" occur-rename-buffer :help "Rename the current *Occur* buffer to *Occur: original-buffer-name*.") [occur-edit-buffer] (menu-item "Edit Occur Buffer" occur-edit-mode :help "Edit the *Occur* buffer and apply changes to the original buffers.") [separator-2] [occur-mode-goto-occurrence-other-window] (menu-item "Go To Occurrence Other Window" occur-mode-goto-occurrence-other-window :help "Go to the occurrence the current line describes, in another window") [occur-mode-goto-occurrence] (menu-item "Go To Occurrence" occur-mode-goto-occurrence :help "Go to the occurrence the current line describes") [occur-mode-display-occurrence] (menu-item "Display Occurrence" occur-mode-display-occurrence :help "Display in another window the occurrence the current line describes") [occur-next] (menu-item "Move to Next Match" occur-next :help "Move to the Nth (default 1) next match in an Occur mode buffer") [occur-prev] (menu-item "Move to Previous Match" occur-prev :help "Move to the Nth (default 1) previous match in an Occur mode buffer")] 4) (#$ . 28351)) #@26 Keymap for `occur-mode'. (defvar occur-mode-map (byte-code "\302 \303\304\305#\210\303\306\307#\210\303\310\311#\210\303\312\307#\210\303\313\314#\210\303\315\316#\210\303\317\320#\210\303\321\322#\210\303\323\324#\210\303\325\326#\210\303\327\330#\210\331\332\333 B#\210)\207" [map occur-menu-map make-sparse-keymap define-key [mouse-2] occur-mode-mouse-goto "" occur-mode-goto-occurrence "e" occur-edit-mode " " "o" occur-mode-goto-occurrence-other-window "" occur-mode-display-occurrence "\356" occur-next "\360" occur-prev "r" occur-rename-buffer "c" clone-buffer "" next-error-follow-minor-mode bindings--define-key [menu-bar occur] "Occur"] 5) (#$ . 30641)) #@93 Arguments to pass to `occur-1' to revert an Occur mode buffer. See `occur-revert-function'. (defvar occur-revert-arguments nil (#$ . 31330)) (byte-code "\300\301!\210\302\301\303\304#\210\305\306\307\310\311\312\313\314&\210\305\315\316\317\311\312\313\314&\210\305\320\316\321\311\312\313\314&\210\302\322\323\324#\210\306\325N\204?\302\306\325\326\327!#\210\330\331!\204K\302\331\332\322#\210\316\207" [make-variable-buffer-local occur-revert-arguments put permanent-local t custom-declare-variable occur-mode-hook '(turn-on-font-lock) "Hook run when entering Occur mode." :type hook :group matching occur-hook nil "Hook run by Occur when there are any matches." occur-mode-find-occurrence-hook "Hook run by Occur after locating an occurrence.\nThis will be called with the cursor position at the occurrence. An application\nfor this is to reveal context in an outline-mode when the occurrence is hidden." occur-mode mode-class special variable-documentation purecopy "Hook run when entering Occur mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp occur-mode-map definition-name] 8) (defvar occur-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" [occur-mode-map variable-documentation put purecopy "Keymap for `occur-mode'." boundp occur-mode-syntax-table definition-name occur-mode] 5) (defvar occur-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [occur-mode-syntax-table variable-documentation put purecopy "Syntax table for `occur-mode'." occur-mode-abbrev-table definition-name occur-mode] 5) (defvar occur-mode-abbrev-table (progn (define-abbrev-table 'occur-mode-abbrev-table nil) occur-mode-abbrev-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [occur-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `occur-mode'." occur-mode derived-mode-parent special-mode] 5) #@436 Major mode for output from \[occur]. \<occur-mode-map>Move point to one of the items in this buffer, then use \[occur-mode-goto-occurrence] to go to the occurrence that the item refers to. Alternatively, click \[occur-mode-mouse-goto] on an item to go to it. \{occur-mode-map} In addition to any hooks its parent mode `special-mode' might have run, this mode runs the hook `occur-mode-hook', as the final step during initialization. (defalias 'occur-mode #[nil "\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\2036 \321 =\203<\322\f\323 \"\210)\324\325\"\204V=\204V\326\325C#\210\327 !\210\330\f!\210\306\331!\210\332\333 )\334\335!\207" [delay-mode-hooks major-mode mode-name occur-mode-map occur-mode-syntax-table parent make-local-variable t special-mode occur-mode "Occur" 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 revert-buffer-function occur-revert-function occur-next-error run-mode-hooks occur-mode-hook occur-mode-abbrev-table local-abbrev-table next-error-function] 6 (#$ . 33416) nil]) #@31 Keymap for `occur-edit-mode'. (defvar occur-edit-mode-map (byte-code "\303 \304 \"\210\305\306\307#\210\305\310\311#\210\305\312\313#\210\305\314\315#\210\316\317\320\nB#\210)\207" [map text-mode-map occur-menu-map make-sparse-keymap set-keymap-parent define-key [mouse-2] occur-mode-mouse-goto "" occur-cease-edit "" occur-mode-display-occurrence "" next-error-follow-minor-mode bindings--define-key [menu-bar occur] "Occur"] 5) (#$ . 34685)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\305\306!\204\302\306\307\310#\210\300\207" [occur-edit-mode-hook variable-documentation put purecopy "Hook run when entering Occur-Edit mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp occur-edit-mode-map definition-name occur-edit-mode] 5) (defvar occur-edit-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" [occur-edit-mode-map variable-documentation put purecopy "Keymap for `occur-edit-mode'." boundp occur-edit-mode-syntax-table definition-name occur-edit-mode] 5) (defvar occur-edit-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [occur-edit-mode-syntax-table variable-documentation put purecopy "Syntax table for `occur-edit-mode'." occur-edit-mode-abbrev-table definition-name occur-edit-mode] 5) (defvar occur-edit-mode-abbrev-table (progn (define-abbrev-table 'occur-edit-mode-abbrev-table nil) occur-edit-mode-abbrev-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [occur-edit-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `occur-edit-mode'." occur-edit-mode derived-mode-parent occur-mode] 5) #@349 Major mode for editing *Occur* buffers. In this mode, changes to the *Occur* buffer are also applied to the originating buffer. To return to ordinary Occur mode, use \[occur-cease-edit]. In addition to any hooks its parent mode `occur-mode' might have run, this mode runs the hook `occur-edit-mode-hook', as the final step during initialization. (defalias 'occur-edit-mode #[nil "\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\2036 \321 =\203<\322\f\323 \"\210)\324\"\325\"\204V\"#=\204V\326\"\325#C#\210\327 !\210\330\f!\210\"#\331$\332\333\334\331\307$\210\335\336\337!!\210)\340\341!\207" [delay-mode-hooks major-mode mode-name occur-edit-mode-map occur-edit-mode-syntax-table parent make-local-variable t occur-mode occur-edit-mode "Occur-Edit" 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 nil add-hook after-change-functions occur-after-change-function message substitute-command-keys "Editing: Type \\[occur-cease-edit] to return to Occur mode." run-mode-hooks occur-edit-mode-hook occur-edit-mode-abbrev-table local-abbrev-table buffer-read-only] 6 (#$ . 36513) nil]) #@44 Switch from Occur Edit mode to Occur mode. (defalias 'occur-cease-edit #[nil "\300\301!\205\f\302 \210\303\304!\207" [derived-mode-p occur-edit-mode occur-mode message "Switching to Occur mode."] 2 (#$ . 37849) nil]) (defalias 'occur-after-change-function #[(beg end length) "\212b\210\306 \307 \310\"\311\n!\312\307 \313\"\205\252\307 \313\"?\205\252!\314U\203>\315 \310\n$\210\212\316\317 \320#\203=`S |\210)\321 \321\322 !Z\"r q\210#)$\323 !\206Z\324 \325\"%\326 &\212\327 \313\312&$b\210` Z\330`&\")'\331%!(r\332\216\333(@\334\"\210\nb\210\335\"!\210$\203\233\336\337 \"\210\202\245\306 \326 |\210'c\210\340\f!.-\207" [beg line-beg m buf col end line-beginning-position get-text-property occur-target marker-buffer nil occur-prefix 0 put-text-property search-forward "\n" t line-number-at-pos window-start get-buffer-window display-buffer (nil (inhibit-same-window . t) (inhibit-switch-frame . t)) line-end-position next-single-property-change buffer-substring-no-properties internal--before-with-selected-window ((internal--after-with-selected-window save-selected-window--state)) select-window norecord recenter message "Buffer `%s' is read only." move-to-column length line buffer-read-only readonly win line-end text save-selected-window--state] 5]) #@48 Handle `revert-buffer' for Occur mode buffers. (defalias 'occur-revert-function #[(_ignore1 _ignore2) "\301\302\303\304 C\"\"\207" [occur-revert-arguments apply occur-1 append buffer-name] 5 (#$ . 39144)]) (defalias 'occur-mode-find-occurrence #[nil "\301`\302\"\211\204 \303\304!\210\305\306!!\204\303\307!\210)\207" [pos get-text-property occur-target error "No occurrence on this line" buffer-live-p marker-buffer "Buffer for this occurrence was killed"] 4]) (defalias 'occur-mode-mouse-goto 'occur-mode-goto-occurrence) #@43 Go to the occurrence on the current line. (defalias 'occur-mode-goto-occurrence #[(&optional event) "\204 \303 \2027r\304\305!\211@)!q\210\212\305!\306 8\2061 A@:\203. A@@\2021 A@)b\210\303 *\307\310\n!!\210\nb\210\311\312!)\207" [event position pos occur-mode-find-occurrence window-buffer event-end 5 pop-to-buffer marker-buffer run-hooks occur-mode-find-occurrence-hook] 4 (#$ . 39681) (list last-nonmenu-event)]) #@69 Go to the occurrence the current line describes, in another window. (defalias 'occur-mode-goto-occurrence-other-window #[nil "\301 \302\303!!\210b\210\304\305!)\207" [pos occur-mode-find-occurrence switch-to-buffer-other-window marker-buffer run-hooks occur-mode-find-occurrence-hook] 3 (#$ . 40115) nil]) #@70 Display in another window the occurrence the current line describes. (defalias 'occur-mode-display-occurrence #[nil "\303 \304\305\306 !\307\"\310 r\311\216\312!\210 b\210\313\314!-\207" [window pos save-selected-window--state occur-mode-find-occurrence nil display-buffer marker-buffer t internal--before-save-selected-window ((internal--after-save-selected-window save-selected-window--state)) select-window run-hooks occur-mode-find-occurrence-hook] 3 (#$ . 40430) nil]) (defalias 'occur-find-match #[(n search message) "\204\304\305\306V\2058\n`\307\"\211\203#\310 \307\"\203#\n \307\" \203- b\210\2021\311 !\210S\211\202 )\207" [n r search message 1 nil 0 occur-match get-text-property error] 4]) #@65 Move to the Nth (default 1) next match in an Occur mode buffer. (defalias 'occur-next #[(&optional n) "\301\302\303#\207" [n occur-find-match next-single-property-change "No more matches"] 4 (#$ . 41159) "p"]) #@69 Move to the Nth (default 1) previous match in an Occur mode buffer. (defalias 'occur-prev #[(&optional n) "\301\302\303#\207" [n occur-find-match previous-single-property-change "No earlier matches"] 4 (#$ . 41376) "p"]) #@119 Move to the Nth (default 1) next match in an Occur mode buffer. Compatibility function for \[next-error] invocations. (defalias 'occur-next-error #[(&optional argp reset) "rp\306\211\211\307 !\2056\n\205 p=?\2056r q\210\f\203/\203+ \2025\310\2025 \2055 ),\203>p\202C\311\306\211\312#q\210 \203Me\202f\313W\203Y\314 \202f\313V\203e\315 \202f`b\210\316\317!\313V\203x\320\202y\321\322#\210\323p\310\"\211\203\214\324`\"\210)\325 )\207" [extra-test-exclusive extra-test-inclusive avoid-current buffer next-error-function reset nil buffer-name t next-error-find-buffer #[nil "\301=\207" [major-mode occur-mode] 2] 0 line-beginning-position line-end-position occur-find-match abs previous-single-property-change next-single-property-change "No more matches" get-buffer-window set-window-point occur-mode-goto-occurrence argp win] 5 (#$ . 41605) "p"]) (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314\315\304\305&\210\316\317\320\"\210\310\321\322\323\314\324\304\305&\210\310\325\326\327\314\324\304\305&\210\310\330\331\332\314\333\304\305\306\307& \207" [custom-declare-face match ((((class color) (min-colors 88) (background light)) :background "yellow1") (((class color) (min-colors 88) (background dark)) :background "RoyalBlue3") (((class color) (min-colors 8) (background light)) :background "yellow" :foreground "black") (((class color) (min-colors 8) (background dark)) :background "blue" :foreground "white") (((type tty) (class mono)) :inverse-video t) (t :background "gray")) "Face used to highlight matches permanently." :group matching :version "22.1" custom-declare-variable list-matching-lines-default-context-lines 0 "Default number of context lines included around `list-matching-lines' matches.\nA negative number means to include that many lines before the match.\nA positive number means to include that many lines both before and after." :type integer defalias list-matching-lines occur list-matching-lines-face 'match "Face used by \\[list-matching-lines] to show the text that matches.\nIf the value is nil, don't highlight the matching portions specially." face list-matching-lines-buffer-name-face 'underline "Face used by \\[list-matching-lines] to show the names of buffers.\nIf the value is nil, don't highlight the buffer names specially." occur-excluded-properties '(read-only invisible intangible field mouse-face help-echo local-map keymap yank-handler follow-link) "Text properties to discard when copying lines to the *Occur* buffer.\nThe value should be a list of text properties to discard or t,\nwhich means to discard all text properties." (choice (const :tag "All" t) (repeat symbol))] 10) (defalias 'occur-read-primary-args #[nil ":\306 \203\f\307\202 \310\n@\"\211 \2031\311\312 !!\203\"\313\2028\f@\306\314\315 \" \304#)\2028\2058\316!*D\207" [current-prefix-arg perform-collect regexp-history regexp occur-collect-regexp-history default read-regexp "Collect strings matching regexp" "List lines matching regexp" zerop regexp-opt-depth "\\&" format "Regexp to collect (default %s): " prefix-numeric-value] 6]) #@441 Rename the current *Occur* buffer to *Occur: original-buffer-name*. Here `original-buffer-name' is the buffer name where Occur was originally run. When given the prefix argument, or called non-interactively, the renaming will not clobber the existing buffer(s) of that name, but use `generate-new-buffer-name' instead. You can add this to `occur-hook' if you always want a separate *Occur* buffer for each buffer where you invoke `occur'. (defalias 'occur-rename-buffer #[(&optional unique-p interactive-p) "r\305=\203 p\202\306\307!q\210\310\311\312\313 \211AA)@\314#\315Q \206%\f?\")\207" [major-mode occur-revert-arguments x unique-p interactive-p occur-mode get-buffer "*Occur*" rename-buffer "*Occur: " mapconcat buffer-name "/" "*"] 7 (#$ . 44738) "P\np"]) #@1236 Show all lines in the current buffer containing a match for REGEXP. If a match spreads across multiple lines, all those lines are shown. Each line is displayed with NLINES lines before and after, or -NLINES before if NLINES is negative. NLINES defaults to `list-matching-lines-default-context-lines'. Interactively it is the prefix arg. The lines are shown in a buffer named `*Occur*'. It serves as a menu to find any of the occurrences in this buffer. \<occur-mode-map>\[describe-mode] in that buffer will explain how. If REGEXP contains upper case characters (excluding those preceded by `\') and `search-upper-case' is non-nil, the matching is case-sensitive. When NLINES is a string or when the function is called interactively with prefix argument without a number (`C-u' alone as prefix) the matching strings are collected into the `*Occur*' buffer by using NLINES as a replacement regexp. NLINES may contain \& and \N which convention follows `replace-match'. For example, providing "defun\s +\(\S +\)" for REGEXP and "\1" for NLINES collects all the function names in a lisp program. When there is no parenthesized subexpressions in REGEXP the entire match is collected. In any case the searched buffer is not modified. (defalias 'occur #[(regexp &optional nlines) "\302 pC#\207" [regexp nlines occur-1] 4 (#$ . 45516) (occur-read-primary-args)]) #@292 Show all lines in buffers BUFS containing a match for REGEXP. This function acts on multiple buffers; otherwise, it is exactly like `occur'. When you invoke this command interactively, you must specify the buffer names that you want, one by one. See also `multi-occur-in-matching-buffers'. (defalias 'multi-occur #[(bufs regexp &optional nlines) "\303 \n#\207" [regexp nlines bufs occur-1] 4 (#$ . 46886) (byte-code "\304\305p\306#C\307\304 \310=\203\311\202\312\307\306#\211\313\230\204+\314\300 \"\210\202 \315\316\"\237+\317 B\207" [bufs buf ido-ignore-item-temp-list read-buffer-function read-buffer "First buffer to search: " t nil ido-read-buffer "Next buffer to search (C-j to end): " "Next buffer to search (RET to end): " "" add-to-list mapcar get-buffer occur-read-primary-args] 4)]) #@233 Show all lines matching REGEXP in buffers specified by BUFREGEXP. Normally BUFREGEXP matches against each buffer's visited file name, but if you specify a prefix argument, it matches against the buffer name. See also `multi-occur'. (defalias 'multi-occur-in-matching-buffers #[(bufregexp regexp &optional allbufs) "\205\302 \303\304\303\305\306\307 \"\"#\207" [bufregexp regexp occur-1 nil delq mapcar #[(buf) "\203 \303 \304\n!\"\202\305\n!\205\303 \305\n!\"\205\n\207" [allbufs bufregexp buf string-match buffer-name buffer-file-name] 4] buffer-list] 8 (#$ . 47703) (byte-code "@\304\n\203\f\305\202 \306!\211\307\232\203 \202 *\310 B\207" [regexp-history default current-prefix-arg input read-regexp "List lines in buffers whose names match regexp: " "List lines in buffers whose filenames match regexp: " "" occur-read-primary-args] 3)]) (defalias 'occur-1 #[(regexp nlines bufs &optional buf-name) "\203\n\306\232\203\307\310!\210 \204\311\312\313\312\314\315\n\"\" \314\316 \"\235\2031r\317 !q\210\320 \210)\321 !r\fq\210 ;\203D\322 \210\202G\323 \210\324\211/0\325 \210 ;\203\241 \3261\211\203\233r\n@q\210\212eb\210\327\312\324#\203\223\330 !\2112\203\217r\fq\2102c\2101T1\331i!\204\216\332c\210))\202g*\nA\211\204^1*\202\312\333 \f \206\25334\203\2745\203\274\334\324\"\202\27646\31278\324=?& 1 G9\nG9Z:\335\3369\211\337U\203\345\306\202\346\340\331:!\203\361\306\202\366\341\342:\"\3311!\203\343\202\341\3441\"1\337U\203\306\202\345G\346\\\347 V\203 \306\202&\341\350\351!\"&\210* \nE;1\326U\203=\352\f!\202N\353\f!\210\f<\324=\354\312!\210\355\356!.\207" [regexp buf-name bufs active-bufs occur-buf nlines "" error "Occur doesn't work with the empty regexp" "*Occur*" nil delq mapcar #[(buf) "\301!\205\207" [buf buffer-live-p] 2] buffer-name get-buffer rename-uniquely get-buffer-create fundamental-mode occur-mode t erase-buffer 0 re-search-forward match-substitute-replacement zerop "\n" occur-engine isearch-no-upper-case-p message "Searched %d buffer%s%s; %s match%s%s" 1 "s" format " (%d killed)" "no" "%d" "es" 42 window-width " for `%s'" query-replace-descr kill-buffer display-buffer set-buffer-modified-p run-hooks occur-hook buffer-undo-list inhibit-read-only count str list-matching-lines-default-context-lines case-fold-search search-upper-case list-matching-lines-buffer-name-face list-matching-lines-face occur-excluded-properties bufcount diff occur-revert-arguments next-error-last-buffer buffer-read-only] 12]) (defalias 'occur-engine #[(regexp buffers out-buf nlines case-fold title-face prefix-face match-face keep-props) "rq\210\306\307  \307;\211<\203<@;\310;!\203\306\311\307\211\306\307\211\211\211\312\307\313rq\210`)=>?@ABCDEFGHIr;q\210 \204^\314\315!\203^ \212eb\210m\204\230`D\316J\307\313#\211B\203iITI\306\224E\212Eb\210\317 CBb\210\320 B)H\321DC\"\\H\322 \211AE\307\223\210\323CBK#\211@G\306LMLMW\203\346\324J@L#\203\346\325\306\224\306\225\326\327N\205\331\330ND\"@$\210\306\225\211L\202\270*\331\332\333\334H\"\326O\205\365\335\336\313\337\340\341\313\342\313\343A\344BBBBBBBBBB\"#P\332@\337\345C\343A\346\313\347\350& QP\351\352\353Q#\332\352\343A#QRS\306U\203=R\202Z\354RSKCBHFG&\211?A@G?@Trq\210Tc\210-Bb\210B\203\215\355H\321CB\"n\203\203l\203\203\311\202\204\306#H\311y\210\202\220db\210HSF\202bG\203\253rq\210\331\356\357G!\"c\210)*\360I!\204\fI\\rq\210=b\210`\307UV\332\333\361I\211\311U\203\325\312\202\326\362 G\311V\203\341\312\202\350\333\363\364J!\"\365;!%\366\313#c\210`U\325VU\326W\205\367WD\370;D\"#\210*eb\210). <A\211<\204*\360\f!\204^ G\311V\203^eb\210`\307UV\333\371\f\211\311U\203?\312\202@\362\364J!$c\210`U\325VUW\205X\367WD#\210*eb\210 \203f\372 !\210\f,\207" [out-buf case-fold case-fold-search coding globalcount buffers 0 nil buffer-live-p 1 "" t local-variable-p buffer-file-coding-system re-search-forward line-beginning-position line-end-position count-lines make-marker occur-engine-line string-match add-text-properties append (occur-match t) face apply propertize format "%7d:" (font-lock-face prefix-face) occur-prefix mouse-face (highlight) front-sticky rear-nonsticky occur-target (follow-link t help-echo "mouse-2: go to this occurrence") highlight follow-link help-echo "mouse-2: go to this occurrence" replace-regexp-in-string "\n" "\n :" occur-context-lines + concat occur-engine-add-prefix zerop "%d match%s%s in buffer: %s\n" "es" " for \"%s\"" query-replace-descr buffer-name read-only font-lock-face occur-title "%d match%s total for \"%s\":\n" set-buffer-file-coding-system buf --dolist-tail-- headerpt inhibit-field-text-motion ret curstring marker endpt begpt origpt matchbeg prev-lines prev-after-lines lines matches regexp keep-props start len match-face prefix-face match-prefix match-str out-line nlines data end beg title-face] 17]) (defalias 'occur-engine-line #[(beg end &optional keep-props) "\203\"\306\301!\203\" \203\"\307\n \310\311$\203\"\312\313!\203\"\313\n \"\210\203;\f\311=\204;\n {\314\315 G\f $\210 )\207\316\n \"\207" [keep-props jit-lock-mode beg end occur-excluded-properties str boundp text-property-not-all fontified t fboundp jit-lock-fontify-now remove-list-of-text-properties 0 buffer-substring-no-properties] 5]) (defalias 'occur-engine-add-prefix #[(lines) "\301\302\"\207" [lines mapcar #[(line) "\301\302Q\207" [line " :" "\n"] 3]] 3]) (defalias 'occur-accumulate-lines #[(count &optional keep-props pt) "\212\203b\210 \306V\307\211\211\211\310 !\204Z\203$m\202*o\203-\n?\204Z \2037\311\2028\312\\\313 \314 \315\f # B\203R\312\202S\311y\306U\202 \237.\207" [pt count moved end beg result 0 nil zerop -1 1 line-beginning-position line-end-position occur-engine-line forwardp keep-props] 5]) (defalias 'occur-context-lines #[(out-line nlines keep-props begpt endpt lines prev-lines prev-after-lines) "\306\307!T[ \n#A\237\306T #A\310\203DG\\GZY\203B\311\211G\312G\313$Z\"\202D\314\203pGZX\203hG\312\313#Z\233\202p\315V\204p\314\316\317\320\205|\321!\f\205\202\fC\321!C$\"\315V\205\222 +D\207" [nlines keep-props begpt endpt separator after-lines occur-accumulate-lines abs nil butlast - 1 "-------\n" 0 apply concat append occur-engine-add-prefix before-lines prev-after-lines prev-lines lines out-line] 8]) #@40 Help message while in `query-replace'. (defconst query-replace-help "Type Space or `y' to replace one match, Delete or `n' to skip to next,\nRET or `q' to exit, Period to replace one match and exit,\nComma to replace but not move point immediately,\nC-r to enter recursive edit (\\[exit-recursive-edit] to get out again),\nC-w to delete match and recursive edit,\nC-l to clear the screen, redisplay, and offer same replacement again,\n! to replace all remaining matches in this buffer with no more questions,\n^ to move point back to previous match,\nE to edit the replacement string.\nIn multi-buffer replacements type `Y' to replace all remaining\nmatches in all remaining buffers with no more questions,\n`N' to skip to the next buffer without replacing remaining matches\nin the current buffer." (#$ . 54228)) #@477 Keymap of responses to questions posed by commands like `query-replace'. The "bindings" in this map are not commands; they are answers. The valid answers include `act', `skip', `act-and-show', `act-and-exit', `exit', `exit-prefix', `recenter', `scroll-up', `scroll-down', `scroll-other-window', `scroll-other-window-down', `edit', `edit-replacement', `delete-and-edit', `automatic', `backup', `quit', and `help'. This keymap is used by `y-or-n-p' as well as `query-replace'. (defvar query-replace-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\306#\210\302\310\306#\210\302\311\304#\210\302\312\306#\210\302\313\304#\210\302\314\306#\210\302\315\316#\210\302\317\316#\210\302\320\321#\210\302\322\323#\210\302\324\323#\210\302\325\323#\210\302\326\327#\210\302\330\331#\210\302\332\333#\210\302\334\335#\210\302\336\337#\210\302\340\341#\210\302\342\343#\210\302\344\343#\210\302\345\343#\210\302\346\343#\210\302\347\350#\210\302\351\350#\210\302\352\353#\210\302\354\355#\210\302\356\353#\210\302\357\355#\210\302\360\361#\210\302\362\361#\210\302\363\364#\210\302\365\364#\210\302\366\367#\210)\207" [map make-sparse-keymap define-key " " act "" skip [delete] [backspace] "y" "n" "Y" "N" "e" edit-replacement "E" "," act-and-show "q" exit " " [return] "." act-and-exit "" edit "" delete-and-edit "\f" recenter "!" automatic "^" backup "" help [f1] [help] "?" "" quit "" "" scroll-up "\366" scroll-down [next] [prior] [134217750] scroll-other-window [M-next] [167772182] scroll-other-window-down [M-prior] [escape] exit-prefix] 4) (#$ . 55049)) #@455 Keymap that defines additional bindings for multi-buffer replacements. It extends its parent map `query-replace-map' with new bindings to operate on a set of buffers/files. The difference with its parent map is the additional answers `automatic-all' to replace all remaining matches in all remaining buffers with no more questions, and `exit-current' to skip remaining matches in the current buffer and to continue with the next buffer in the sequence. (defvar multi-query-replace-map (byte-code "\302 \303 \"\210\304\305\306#\210\304\307\310#\210)\207" [map query-replace-map make-sparse-keymap set-keymap-parent define-key "Y" automatic-all "N" exit-current] 4) (#$ . 56665)) #@373 Process a list (and any sub-lists), expanding certain symbols. Symbol Expands To N (match-string N) (where N is a string of digits) #N (string-to-number (match-string N)) & (match-string 0) #& (string-to-number (match-string 0)) # replace-count Note that these symbols must be preceded by a backslash in order to type them using Lisp syntax. (defalias 'replace-match-string-symbols #[(n) ":\205s@:\203\302@!\210\202l@9\203l\303@!\304\305 \"\2030\306\307 !D\240\210\202k\304\310 \"\203G\307\306\307 \311\312O!DD\240\210\202k \313\230\203T\314\240\210\202k \315\230\203a\316\240\210\202k \317\230\203k\320\240\210)A\211\202\207" [n name replace-match-string-symbols symbol-name string-match "^[0-9]+$" match-string string-to-number "^#[0-9]+$" 1 nil "&" (match-string 0) "#&" (string-to-number (match-string 0)) "#" replace-count] 8 (#$ . 57356)]) (defalias 'replace-eval-replacement #[(expression count) "\304\n!\211;\203 \202\305 \306\"*\207" [count replace-count expression replacement eval prin1-to-string t] 4]) #@268 Quote a replacement string. This just doubles all backslashes in REPLACEMENT and returns the resulting string. If REPLACEMENT is not a string, it is first passed through `prin1-to-string' with the `noescape' argument set. `match-data' is preserved across the call. (defalias 'replace-quote #[(replacement) "\302 \303\216\304\305\211 ;\203 \202\306 \307\"\307\211%*\207" [save-match-data-internal replacement match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) replace-regexp-in-string "\\\\" prin1-to-string t] 6 (#$ . 58444)]) (defalias 'replace-loop-through-replacements #[(data count) "\303H U\203'\303 \304H\\I\210\305HA\305\n:\203!\n\202$\306HI\210)\305H@\207" [data count next 0 1 2 3] 5]) #@169 Like `match-data', but markers in REUSE get invalidated. If NEW is non-nil, it is set and returned instead of fresh data, but coerced to the correct value of INTEGERS. (defalias 'replace-match-data #[(integers reuse &optional new) "\203\303!\210 =\203\n?\304 @!=\203\206!\305\n \306#\207" [new reuse integers set-match-data markerp match-data t] 4 (#$ . 59210)]) #@390 Make a replacement with `replace-match', editing `\?'. NEWTEXT, FIXEDCASE, LITERAL are just passed on. If NOEDIT is true, no check for `\?' is made to save time. MATCH-DATA is used for the replacement. In case editing is done, it is changed to use markers. The return value is non-nil if there has been no `\?' or NOEDIT was passed in. If LITERAL is set, no checking is done, anyway. (defalias 'replace-match-maybe-edit #[(newtext fixedcase literal noedit match-data) "\204+ \204+\305\306\307\n\"\203+\310\311\312\313\305\211\n\314%\314\224TB\315\316 \211#\"\316\202\n\317 !\210\312\n\f#\210 \207" [literal noedit newtext match-data fixedcase t string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\\\?\\)" read-string "Edit replacement string: " replace-match "" 3 replace-match-data nil set-match-data] 8 (#$ . 59591)]) #@176 Function to use when searching for strings to replace. It is used by `query-replace' and `replace-string', and is called with three arguments, as if it were `search-forward'. (defvar replace-search-function nil (#$ . 60434)) #@243 Function to use when searching for regexps to replace. It is used by `query-replace-regexp', `replace-regexp', `query-replace-regexp-eval', and `map-query-replace-regexp'. It is called with three arguments, as if it were `re-search-forward'. (defvar replace-re-search-function nil (#$ . 60666)) #@578 Subroutine of `query-replace'. Its complexity handles interactive queries. Don't use this in your own program unless you want to query and set the mark just as `query-replace' does. Instead, write a simple loop like this: (while (re-search-forward "foo[ \t]+bar" nil t) (replace-match "foobar" nil nil)) which will run faster and probably do exactly what you want. Please see the documentation of `replace-match' to find out how to simulate `case-replace'. This function returns nil if and only if there were no matches to make, or the user didn't cancel the call. (defalias 'perform-replace #[(from-string replacements query-flag regexp-flag delimited-flag &optional repeat-count map start end) "\204 \n\203 \203\306\307\310 !!\210\f\203& \203&\311@A\"\202'\fB\205.\f?CA?\206;A\312=\n@D\313\211EF\313G\314H\313I\315J\313\211KL\313\211MN\314O\n\205n\316\317\320\321!P#2Q\203\322QR]!NQR^b\210\313ST\204\222S\205U\323=\203\241T\242\323=\202\243U\203\336\324 \203\336\325 \203\336V\203\301\326\327V\"\210\313V\202\336\330 \331 U\204\336\332\327!\204\325\333\327!\204\336\326\327\330 \331 {\"\210S\204\377T\334=\204\370T\242\323=\203\377TA\204\377\313\211T\202T\242\323=\203\fTAT\313W\335\336!)\210\337\340X!\"\341=\203%\313\314LY;\2035YF\313Y\202PY@;\203PZ\204D\342Z\343\340Z\211Y\211$BY[\203X\313\\\344 \210\345 \210\346\216H\203\361m\204\361N\203u`NY\204\361A]^_`abc\fd\313e\314\211fgA\203\233h\202\235i\206\242\347 jO:\203\272OA@b\210\350\314EO#\202O\203\322jDN\314#\205\350\314E\"\202`TdW\205N\203\346`TNW\205`k\342u\210jDN\314#\203\377\350\314E\"\202kb\210\313)\211E. \203\361E@EA@U?\211K\205;A?\206;\351D!\205;\352 \211l@lA@U?\205:l)Om\203P\353E@EA@\354\313$\204`Y\203e\355E!\210Y@YAJ\"F\n\204\237\n\204\211G\204\211\356E@EA@QRDA^\f&\210\357FC\nGE%GJTJ\202`\345 \210\313\211\211\211nopqq\204\324\355E!\210\356\315\224\315\225QRDA^\f&\210\313r\203\350\352 s\360\216\355E!\210\361FC\n#*\202\352Ftu\3622\363@!\363t!#\210*\364 o\355E!\210\340o!o\337o\"\211n\365=\203\204vwr\366\367!q\210p\370 \210wv\313\211xy\314\211z\314{|\371 \210\335\372!\210+\211}~\373\374^\203Q\375\202R\376A\203[\377\202\\\376@\201\206F\201\207\320!\260!\210r~q\210\201\210 \210)\201\211}!\210+\202\264n\201\212=\203\226\313H\314q\202\264n\201\213=\203\253\314L\313H\314q\202\264n\201\214=\203\364I\203\335I\211AI@\211\200@b\210\200A@p\350\314E\201\215\2008#E)\202\264\362\201\216!\210\201\217\201\220!\210\201\221\342!\210\202\264n\201\222=\203p\204\357FC\nGE%GJTJ\314\211qp\202\264n\201\223=\203Kp\204?\357FC\nGE%GJTJ\313H\314\211qp\202\264n\201\224=\203yp\204\264\357FC\nGE%GJTJ\350\314E\"E\314p\202\264n\201\225=\204\211n\341=\203\266p\204\241\357FC\nGE%GJTJ\314q\313\314pn\341=\203\264\314L\202\264n\201\226=\203\305\314q\202\264n\201\227=\203\337\201\230\211\201\202\201\230 \210*\202\264n\201\231=\203.\201\232 \203\350\313E\211#E\315\224b\210\212\201\233 \204\201\234\216\201\235 \210+\203b\210\203\313\211\223\210)A\203\264K\203\264\351D!\205)\352 O\202\264n\201\236=\203q\350\313E\211#E\201\237\201\240F\"F\313Gp\203Z\355E!\210\202k\357FC\nGE%G\314p\314q\202\264n\201\241=\203\233\201\242\376\314\211#\210\350\313E\"E\201\243 \210\212\201\235 \210)\314p\202\264\201\244\202\313H\201\245\201\246o!\205\"\205\314q[\203\305n\201\247>\204\305\313\\n\201\227=\204\256\313M\202\256`p\211\203\344\315\224\315\225pE\202\347\352\314!EIBI,\202`)\205\204\f\362\201\250J\211\342U\203\376\202\n\201\251#\210H\203I\206L.\207" [map query-replace-map query-flag minibuffer-auto-raise case-fold-search search-upper-case raise-frame window-frame minibuffer-window isearch-no-upper-case-p literal nil t 0 apply propertize substitute-command-keys "Query replacing %s with %s: (\\<query-replace-map>\\[help] for help) " copy-marker only region-active-p display-selections-p x-set-selection PRIMARY region-beginning region-end x-selection-owner-p x-selection-exists-p lambda run-hooks deactivate-mark-hook lookup-key vector automatic-all 1 replace-loop-through-replacements push-mark undo-boundary ((replace-dehighlight)) isearch-search-fun-default replace-match-data looking-at match-data text-property-not-all read-only set-match-data replace-highlight replace-match-maybe-edit ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) match-substitute-replacement message query-replace-descr read-event help get-buffer-create "*Help*" kill-all-local-variables erase-buffer temp-buffer-setup-hook princ "Query replacing " "word " "" "regexp " from-string regexp-flag case-replace nocasify search-string real-match-data next-replacement noedit keep-going stack replace-count nonempty-match multi-buffer recenter-last-op limit match-again minibuffer-prompt-properties start end force transient-mark-mode select-active-regions saved-region-selection mark-active last-input-event replacements repeat-count query-replace-lazy-highlight isearch-lazy-highlight-last-string isearch-regexp delimited-flag isearch-word replace-lax-whitespace isearch-lax-whitespace replace-regexp-lax-whitespace isearch-regexp-lax-whitespace isearch-case-fold-search isearch-adjusted isearch-nonincremental isearch-forward replace-re-search-function replace-search-function search-function opoint match query-replace-skip-read-only def key replaced done query-replace-show-replacement save-match-data-internal replacement-presentation message-log-max default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output query-replace-help elt last-command this-command opos #3=#:wconfig unread-command-events " with " ".\n\n" help-mode internal-temp-output-buffer-show exit exit-current backup 2 "No previous match" ding no-terminate sit-for act act-and-exit act-and-show automatic skip recenter recenter-top-bottom edit point-marker current-window-configuration ((set-window-configuration #3#)) recursive-edit edit-replacement read-string "Edit replacement string: " delete-and-edit replace-match replace-dehighlight mode-exited append listify-key-sequence (skip backup) "Replaced %d occurrence%s" "s"] 11 (#$ . 60968)]) (defvar replace-overlay nil) (defalias 'replace-highlight #[(match-beg match-end range-beg range-end search-string regexp-flag delimited-flag case-fold-search) "\203# \203\306 \n p$\210\202#\307\n \"\310 \311\312#\210\310 \313\314#\210\f\205O \315\n\316\317\". \207" [query-replace-highlight replace-overlay match-beg match-end query-replace-lazy-highlight search-string move-overlay make-overlay overlay-put priority 1001 face query-replace t nil isearch-lazy-highlight-new-loop regexp-flag delimited-flag replace-lax-whitespace replace-regexp-lax-whitespace case-fold-search isearch-error isearch-other-end isearch-forward isearch-case-fold-search isearch-regexp-lax-whitespace isearch-lax-whitespace isearch-word isearch-regexp isearch-string range-beg range-end] 9]) (defalias 'replace-dehighlight #[nil "\203\304!\210 \205\302\n!\210\305\211\207" [replace-overlay query-replace-lazy-highlight lazy-highlight-cleanup isearch-lazy-highlight-last-string delete-overlay nil] 2])