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/textmodes
Viewing File: /usr/share/emacs/24.3/lisp/textmodes/rst.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:58:52 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/textmodes/rst.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\301\300!\203\301\302!\203\303\304\"\305\302\304\"\210\301\207" [testcover-1value-functions boundp testcover-compose-functions delq lambda add-to-list] 3) #@209 Remove all customized variables from `testcover-module-constants'. This seems to be a bug in `testcover': `defcustom' variables are considered constants. Revert it with this function after each `defcustom'. (defalias 'rst-testcover-defcustom #[nil "\301\300!\205\302\303\304\305\"\"\211\207" [testcover-module-constants boundp delq nil mapcar #[(sym) "\301\302!\303\"?\205 \207" [sym plist-member symbol-plist standard-value] 3]] 5 (#$ . 730)]) #@43 Add FUN to `testcover-compose-functions'. (defalias 'rst-testcover-add-compose #[(fun) "\301\302!\205\n\303\302\"\207" [fun boundp testcover-compose-functions add-to-list] 3 (#$ . 1189)]) #@42 Add FUN to `testcover-1value-functions'. (defalias 'rst-testcover-add-1value #[(fun) "\301\302!\205\n\303\302\"\207" [fun boundp testcover-1value-functions add-to-list] 3 (#$ . 1385)]) #@55 Return 1 if X is positive, -1 if negative, 0 if zero. (defalias 'rst-signum #[(x) "\301V\203\302\207\301W\203\303\207\301\207" [x 0 1 -1] 2 (#$ . 1578)]) #@210 Return non-nil if any element of SEQ yields non-nil when PRED is applied. Apply PRED to each element of list SEQ until the first non-nil result is yielded and return this result. PRED defaults to `identity'. (defalias 'rst-some #[(seq &optional pred) "\204\301\302\303\215\207" [pred identity rst-some (byte-code "\305\211\205!\n@ !\211\203\306\307\f\"\210)\nA\211\204\305*\207" [seq elem --dolist-tail-- pred r nil throw rst-some] 4)] 2 (#$ . 1745)]) #@70 Return position of first element satisfying PRED in list SEQ or nil. (defalias 'rst-position-if #[(pred seq) "\300\301\215\207" [rst-position-if (byte-code "\305 \306\211\205# @\f\n!\203\307\310\"\210T A\211\204\n\306+\207" [i seq elem --dolist-tail-- pred 0 nil throw rst-position-if] 4)] 2 (#$ . 2220)]) #@75 Return position of ELEM in list SEQ or nil. Comparison done with `equal'. (defalias 'rst-position #[(elem seq) "\304\305!\211\211\nL\210)\306\307\310\311\312\313D\312D\314FE \")\207" [#1=#:--cl-elem-- #2=#:v elem seq make-symbol "--elem--" rst-position-if lambda (&rest --cl-rest--) apply quote #[(#3=#:G98700 e) "J \232\207" [#3# e] 2] --cl-rest--] 8 (#$ . 2544)]) #@197 Extract the version from a variable according to the given regexes. Return the version after regex DELIM-RE and HEAD-RE matching RE and before TAIL-RE and DELIM-RE in VAR or DEFAULT for no match. (defalias 'rst-extract-version #[(delim-re head-re re tail-re var &optional default) "\306 \307\n\310 \260\f\"\203\311\312\f\"\207 \207" [delim-re head-re re tail-re var default string-match "\\(" "\\)" match-string 1] 8 (#$ . 2921)]) (defconst rst-cvs-header "$CVSHeader: sm/rst_el/rst.el,v 1.327.2.6 2012-10-07 13:05:50 stefan Exp $") #@75 The CVS revision of this file. CVS revision is the development revision. (defconst rst-cvs-rev (rst-extract-version "\\$" "CVSHeader: \\S + " "[0-9]+\\(?:\\.[0-9]+\\)+" " .*" rst-cvs-header "0.0") (#$ . 3465)) #@34 The CVS time stamp of this file. (defconst rst-cvs-timestamp (rst-extract-version "\\$" "CVSHeader: \\S + \\S + " "[0-9]+-[0-9]+-[0-9]+ [0-9]+:[0-9]+:[0-9]+" " .*" rst-cvs-header "1970-01-01 00:00:00") (#$ . 3682)) #@82 The SVN revision of this file. SVN revision is the upstream (docutils) revision. (defconst rst-svn-rev (rst-extract-version "\\$" "LastChangedRevision: " "[0-9]+" " " "$LastChangedRevision: 7515 $") (#$ . 3903)) #@34 The SVN time stamp of this file. (defconst rst-svn-timestamp (rst-extract-version "\\$" "LastChangedDate: " ".+?+" " " "$LastChangedDate: 2012-09-20 23:28:53 +0200 (Thu, 20 Sep 2012) $") (#$ . 4121)) #@34 Official version of the package. (defconst rst-official-version (rst-extract-version "%" "OfficialVersion: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " "%OfficialVersion: 1.4.0 %") (#$ . 4327)) #@52 CVS revision of this file in the official version. (defconst rst-official-cvs-rev (rst-extract-version "[%$]" "Revision: " "[0-9]+\\(?:\\.[0-9]+\\)+" " " "%Revision: 1.327 %") (#$ . 4515)) #@155 The version string. Starts with the current official version. For developer versions in parentheses follows the development revision and the time stamp. (defconst rst-version (byte-code " \232\203\n\207\304\305\n $\207" [rst-official-cvs-rev rst-cvs-rev rst-official-version rst-cvs-timestamp format "%s (development %s [%s])"] 5) (#$ . 4711)) (defconst rst-package-emacs-version-alist '(("1.0.0" . "24.3") ("1.1.0" . "24.3") ("1.2.0" . "24.3") ("1.2.1" . "24.3") ("1.3.0" . "24.3") ("1.3.1" . "24.3") ("1.4.0" . "24.3"))) (byte-code "\303 \"\204\f\304\305\n\"\210\306\307\310 B\"\210\311\312\313\314\315\316\317\320\321\322& \207" [rst-official-version rst-package-emacs-version-alist rst-version assoc error "Version %s not listed in `rst-package-emacs-version-alist'" add-to-list customize-package-emacs-version-alist ReST custom-declare-group rst nil "Support for reStructuredText documents." :group wp :version "23.1" :link (url-link "http://docutils.sourceforge.net/rst.html")] 10) #@60 List of all possible bullet characters for bulleted lists. (defconst rst-bullets '(45 42 43 8226 8227 8259) (#$ . 5712)) #@24 Supported URI schemes. (defconst rst-uri-schemes '("acap" "cid" "data" "dav" "fax" "file" "ftp" "gopher" "http" "https" "imap" "ldap" "mailto" "mid" "modem" "news" "nfs" "nntp" "pop" "prospero" "rtsp" "service" "sip" "tel" "telnet" "tip" "urn" "vemmi" "wais") (#$ . 5839)) #@74 Characters which may be used in adornments for sections and transitions. (defconst rst-adornment-chars '(93 33 34 35 36 37 38 39 40 41 42 43 44 46 47 58 59 60 61 62 63 64 91 92 94 95 96 123 124 125 126 45) (#$ . 6118)) #@47 Maximum length of inline markup to recognize. (defconst rst-max-inline-length 1000 (#$ . 6343)) #@125 Definition alist of relevant regexes. Each entry consists of the symbol naming the regex and an argument list for `rst-re'. (defconst rst-re-alist-def (byte-code "\304\305\306\307\310\311\312\313\314\315QD\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362 \"D\363\364\365\366\367\370\371\372\373\374\375\376\377\201@\201A\201B\201C\201D\201E\201F\201G\201H\201I\201J\nBD\201K\314 \260\201LBBB\201MBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB\207" [rst-bullets rst-max-inline-length rst-uri-schemes rst-adornment-chars (hws-prt "[ ]") (hws-tag hws-prt "*") (hws-sta hws-prt "+") (lin-beg "^" hws-tag) (lin-end hws-tag "$") (linemp-tag "^" hws-tag "$") (ell-tag "\\.\\.\\.") bul-tag "[" "]" (ltr-tag "[a-zA-Z]") (num-prt "[0-9]") (num-tag num-prt "+") (rom-prt "[IVXLCDMivxlcdm]") (rom-tag rom-prt "+") (aut-tag "#") (dcl-tag "::") (bli-sfx (:alt hws-sta "$")) (bul-sta bul-tag bli-sfx) (exm-tag "\\.\\.") (exm-sta exm-tag hws-sta) (exm-beg lin-beg exm-sta) (cntany-tag (:alt ltr-tag num-tag rom-tag aut-tag)) (cntexp-tag (:alt ltr-tag num-tag rom-tag)) (enmany-tag (:alt (:seq cntany-tag "\\.") (:seq "(?" cntany-tag ")"))) (enmexp-tag (:alt (:seq cntexp-tag "\\.") (:seq "(?" cntexp-tag ")"))) (enmaut-tag (:alt (:seq aut-tag "\\.") (:seq "(?" aut-tag ")"))) (enmany-sta enmany-tag bli-sfx) (enmexp-sta enmexp-tag bli-sfx) (enmexp-beg lin-beg enmexp-sta) (itmany-tag (:alt enmany-tag bul-tag)) (itmany-sta-1 (:grp itmany-tag) bli-sfx) (itmany-beg-1 lin-beg itmany-sta-1) (ilm-pfx (:alt "^" hws-prt "[-'\"([{<‘“«’/:]")) (ilm-sfx (:alt "$" hws-prt "[]-'\")}>’”»/:.,;!?\\]")) (ilcsgl-tag "\\S ") (ilcast-prt (:alt "[^*\\]" "\\\\.")) (ilcbkq-prt (:alt "[^`\\]" "\\\\.")) (ilcbkqdef-prt (:alt "[^`\\\n]" "\\\\.")) (ilcbar-prt (:alt "[^|\\]" "\\\\.")) (ilcbardef-prt (:alt "[^|\\\n]" "\\\\.")) (ilcast-sfx "[^ *\\]") (ilcbkq-sfx "[^ `\\]") (ilcbar-sfx "[^ |\\]") ilcrep-hlp format "\\{0,%d\\}" (ilcast-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcast-prt ilcrep-hlp ilcast-sfx))) (ilcbkq-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbkq-prt ilcrep-hlp ilcbkq-sfx))) (ilcbkqdef-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbkqdef-prt ilcrep-hlp ilcbkq-sfx))) (ilcbar-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbar-prt ilcrep-hlp ilcbar-sfx))) (ilcbardef-tag (:alt ilcsgl-tag (:seq ilcsgl-tag ilcbardef-prt ilcrep-hlp ilcbar-sfx))) (fldnam-prt (:alt "[^:\n]" "\\\\:")) (fldnam-tag fldnam-prt "+") (fld-tag ":" fldnam-tag ":") (optsta-tag (:alt "[-+/]" "--")) (optnam-tag "\\sw" (:alt "-" "\\sw") "*") (optarg-tag (:shy "[ =]\\S +")) (optsep-tag (:shy "," hws-prt)) (opt-tag (:shy optsta-tag optnam-tag optarg-tag "?")) (fncnam-prt "[^]\n]") (fncnam-tag fncnam-prt "+") (fnc-tag "\\[" fncnam-tag "]") (fncdef-tag-2 (:grp exm-sta) (:grp fnc-tag)) (fnc-sta-2 fncdef-tag-2 bli-sfx) (sub-tag "|" ilcbar-tag "|") (subdef-tag "|" ilcbardef-tag "|") (sym-prt "[-+.:_]") (sym-tag (:shy "\\sw+" (:shy sym-prt "\\sw+") "*")) uri-tag :alt ado-prt ("]") ((adorep3-hlp "\\{3,\\}") (adorep2-hlp "\\{2,\\}") (ado-tag-1-1 (:grp ado-prt) "\\1" adorep2-hlp) (ado-tag-1-2 (:grp ado-prt) "\\2" adorep2-hlp) (ado-beg-2-1 "^" (:grp ado-tag-1-2) lin-end) (ttl-tag "\\S *\\w\\S *") (ttl-beg lin-beg ttl-tag) (dir-tag-3 (:grp exm-sta) (:grp (:shy subdef-tag hws-sta) "?") (:grp sym-tag dcl-tag)) (dir-sta-3 dir-tag-3 bli-sfx) (lit-sta-2 (:grp (:alt "[^.\n]" "\\.[^.\n]") ".*") "?" (:grp dcl-tag) "$") (cmt-sta-1 (:grp exm-sta) "[^[|_\n]" (:alt "[^:\n]" (:seq ":" (:alt "[^:\n]" "$"))) "*$") (par-tag- (:alt itmany-tag fld-tag opt-tag fncdef-tag-2 dir-tag-3 exm-tag)))] 70) (#$ . 6446)) (rst-testcover-add-compose 'rst-re) #@890 Interpret ARGS as regular expressions and return a regex string. Each element of ARGS may be one of the following: A string which is inserted unchanged. A character which is resolved to a quoted regex. A symbol which is resolved to a string using `rst-re-alist-def'. A list with a keyword in the car. Each element of the cdr of such a list is recursively interpreted as ARGS. The results of this interpretation are concatenated according to the keyword. For the keyword `:seq' the results are simply concatenated. For the keyword `:shy' the results are concatenated and surrounded by a shy-group ("\(?:...\)"). For the keyword `:alt' the results form an alternative ("\|") which is shy-grouped ("\(?:...\)"). For the keyword `:grp' the results are concatenated and form a referenceable group ("\(...\)"). After interpretation of ARGS the results are concatenated as for `:seq'. (defalias 'rst-re #[(&rest args) "\301\302\303\304\"\"\207" [args apply concat mapcar #[(re) ";\203\2079\203\304 \"\211A@)\207\305!\203\"\306\307!!\207<\203y\310\311A\"@\312=\203<\313\314 \315#\202w@\316=\203N\317\313\314 \315#\320Q\202w@\321=\203`\322\313\314 \315#\320Q\202w@\323=\203r\317\313\314 \324#\320Q\202w\325\326@\")\207\325\327\"\207" [re rst-re-alist x nested assoc characterp regexp-quote char-to-string mapcar #[(elt) "\301!\207" [elt rst-re] 2] :seq mapconcat identity "" :shy "\\(?:" "\\)" :grp "\\(" :alt "\\|" error "Unknown list car: %s" "Unknown object type for building regex: %s"] 6]] 5 (#$ . 10180)]) #@65 Alist mapping symbols from `rst-re-alist-def' to regex strings. (defconst rst-re-alist (byte-code "\304 \304\211\203 @\n@\305\306\nA\"DC\244 A\211\204\n\304+\207" [rst-re-alist rst-re-alist-def re --dolist-tail-- nil apply rst-re] 6) (#$ . 11732)) #@222 Bind like `define-key' but add deprecated key definitions. KEYMAP, KEY, and DEF are as in `define-key'. DEPRECATED key definitions should be in vector notation. These are defined as well but give an additional message. (defalias 'rst-define-key #[(keymap key def &rest deprecated) "\306 \n#\210 \307\211\2054 @\306\f\310\307\311\312\n\211#\313\314\315\nDD\316\317\320\321 DF\257#\210 A\211\204\307*\207" [keymap key def deprecated dep-key --dolist-tail-- define-key nil lambda format "Deprecated binding for %s, use \\[%s] instead." (interactive) call-interactively quote message "[Deprecated use of key %s; use key %s instead]" (key-description (this-command-keys)) key-description] 14 (#$ . 11999)]) #@74 Keymap for reStructuredText mode commands. This inherits from Text mode. (defvar rst-mode-map (byte-code "\301 \302\303\304#\210\302\305\306\307$\210\302\310\306#\210\302\311\304#\210\302\312\306#\210\302\313\314#\210\302\315\316\317$\210\302\320\321\322$\210\302\323\324\325$\210\302\326\327\330$\210\302\331\304#\210\302\332\333\334$\210\302\335\336\337\340%\210\302\341\304#\210\302\342\343\344$\210\302\345\346\347$\210\302\350\351\352$\210\302\353\354\355$\210\302\356\357#\210\302\360\304#\210\302\361\362#\210\302\363\364\365$\210\302\366\367\370$\210\302\371\372\373$\210\302\374\304#\210\302\375\376\377$\210\302\201@\201A\201B$\210\302\201C\201D\201E$\210\302\201F\201G\201H$\210\302\201I\201J\201K$\210)\207" [map make-sparse-keymap rst-define-key [3 8] describe-prefix-bindings [3 67108925] rst-adjust [3 1 t] [67108925] [3 1 8] [3 1 1] [3 1 4] rst-display-adornments-hierarchy [3 1 19] rst-straighten-adornments [3 19] [134217736] rst-mark-section [3 13] [134217729] rst-backward-section [3 14] [134217733] rst-forward-section [3 16] [3 18 8] [3 18 12] rst-line-block-region [3 4] [3 18 tab] rst-shift-region [3 18 t] [3 12 t] [3 12 8] [3 12 2] rst-bullet-list-region [3 2] [3 12 5] rst-enumerate-region [3 5] [3 12 3] rst-convert-bullets-to-enumeration [3 22] [3 12 19] rst-straighten-bullets-region [3 23] [3 12 9] rst-insert-list [3 20 8] [3 20 20] rst-toc [3 20 9] rst-toc-insert [3 9] [3 20 21] rst-toc-update [3 21] [3 20 10] rst-goto-section [3 6] [3 3 8] [3 3 3] rst-compile [3 49] [3 3 1] rst-compile-alt-toolset [3 50] [3 3 24] rst-compile-pseudo-region [3 51] [3 3 16] rst-compile-pdf-preview [3 52] [3 3 19] rst-compile-slides-preview [3 53]] 6) (#$ . 12719)) (byte-code "\300\301\302\303\304\"\305#\207" [define-abbrev-table rst-mode-abbrev-table mapcar #[(x) "\301\302\"\207" [x append (nil 0 system)] 3] (("contents" ".. contents::\n..\n ") ("con" ".. contents::\n..\n ") ("cont" "[...]") ("skip" "\n\n[...]\n\n ") ("seq" "\n\n[...]\n\n ")) "Abbrev table used while in `rst-mode'."] 5) #@40 Syntax table used while in `rst-mode'. (defvar rst-mode-syntax-table (byte-code "\302!\303\304\305 #\210\303\306\305 #\210\303\307\305 #\210\303\310\305 #\210\303\311\305 #\210\303\312\305 #\210\303\313\305 #\210\303\314\305 #\210\303\315\305 #\210\303\316\305 #\210\303\317\305 #\210\303\320\321 #\210\303\322\305 #\210\303\323\305 #\210\303\324\305 #\210\303\325\305 #\210\303\326\305 #\210\303\327\305 #\210\303\330\305 #\210\303\331\305 #\210 )\207" [text-mode-syntax-table st copy-syntax-table modify-syntax-entry 36 "." 37 38 39 42 43 45 47 60 61 62 92 "\\" 95 124 171 187 8216 8217 8220 8221] 4) (#$ . 14790)) (byte-code "\300\301\302\303\304\305\306\307&\210\310 \210\311\312!\210\301\313N\204 \314\301\313\315\316!#\210\317\320!\204,\314\320\321\322#\210\302\207" [custom-declare-variable rst-mode-hook nil "Hook run when `rst-mode' is turned on.\nThe hook for `text-mode' is run before this one." :group rst :type (hook) rst-testcover-defcustom require newcomment variable-documentation put purecopy "Hook run when entering ReST mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp rst-mode-map definition-name rst-mode] 8) (defvar rst-mode-map (make-sparse-keymap)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\210\302\305\310\311#\207" [rst-mode-map variable-documentation put purecopy "Keymap for `rst-mode'." rst-mode derived-mode-parent text-mode custom-mode-group rst] 5) #@218 Major mode for editing reStructuredText documents. \<rst-mode-map> Turning on `rst-mode' calls the normal hooks `text-mode-hook' and `rst-mode-hook'. This mode also supports font-lock highlighting. \{rst-mode-map} (defalias 'rst-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 !\210\321\f!\210 @\306\322!\210\323\324!\306\325!\210\323\326!\306\327!\210\330\306\331!\210\307\306\332!\210\323\333\334\335\333$\306\336!\210\337\306\340!\210\341 \306\342!\210\343\"\306\344!\210\323\345\346\347#$\306\350!\210\351(\306\352!\210\307*\306\353!\210\341+\306\354!\210\355,\306\356!\210\341.\306\357!\210\360/\306\361!\210\3621\306\363!\210\3643\306\365!\210\3665\306\367!\210\3707\306\371!\210\3729\306\373!\210\374;\375\376\377\307#\210\306\201A!\210\307A)\201B\201C!\207" [delay-mode-hooks major-mode mode-name rst-mode-map rst-mode-syntax-table rst-mode-abbrev-table make-local-variable t text-mode rst-mode "ReST" mode-class put keymap-parent set-keymap-parent current-local-map use-local-map set-syntax-table paragraph-separate rst-re (:alt "\f" lin-end) paragraph-start (:alt "\f" lin-end (:seq hws-tag par-tag- bli-sfx)) indent-line-function rst-indent-line adaptive-fill-mode adaptive-fill-regexp hws-tag par-tag- "?" adaptive-fill-function rst-adaptive-fill fill-paragraph-handle-comment nil comment-start ".. " comment-start-skip lin-beg exm-tag bli-sfx comment-continue " " comment-multi-line comment-use-syntax comment-end "" comment-end-skip comment-line-break-function rst-comment-line-break comment-indent-function rst-comment-indent comment-insert-comment-function rst-comment-insert-comment comment-region-function rst-comment-region uncomment-region-function rst-uncomment-region imenu-create-index-function rst-imenu-create-index font-lock-defaults (rst-font-lock-keywords t nil nil nil (font-lock-multiline . t) (font-lock-mark-block-function . mark-paragraph)) add-hook font-lock-extend-region-functions rst-font-lock-extend-region local-abbrev-table jit-lock-contextually run-mode-hooks rst-mode-hook] 5 (#$ . 16304) nil]) #@97 Non-nil if Rst minor mode is enabled. Use the command `rst-minor-mode' to change this variable. (defvar rst-minor-mode nil (#$ . 18459)) (make-variable-buffer-local 'rst-minor-mode) #@355 Toggle ReST minor mode. With a prefix argument ARG, enable ReST minor mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. When ReST minor mode is enabled, the ReST mode keybindings are installed on top of the major mode bindings. Use this for modes derived from Text mode, like Mail mode. (defalias 'rst-minor-mode #[(&optional arg) "\303  \304=\203\n?\202\305 !\306V\307\310\n\203\311\202\312\"\210\313\314!\203@\303 \2033\303 \232\203@\315\316\n\203=\317\202>\320\"\210)\321 \210\n\207" [#1=#:last-message arg rst-minor-mode current-message toggle prefix-numeric-value 0 run-hooks rst-minor-mode-hook rst-minor-mode-on-hook rst-minor-mode-off-hook called-interactively-p any message "Rst minor mode %sabled" "en" "dis" force-mode-line-update] 3 (#$ . 18648) (list (or current-prefix-arg 'toggle))]) (byte-code "\304\305\306\307\211%\210\310\311\307\312\313\314\315\316&\210\317\320\321\307#\210\322\307\211\203?\n@\320 N\2038\321 N\2048\323\321 \320 N#\210\nA\211\204!*\324\320\321\325#\210\326\321\327\330\313\311\331\332\333\334\335\336\334\337\340\341 \"BBB\342BBBBD&\210\343 \210\326\344\345\346\313\311\331\347&\210\343 \207" [rst-mode-map prop --dolist-tail-- rst-adornment-chars add-minor-mode rst-minor-mode " ReST" nil custom-declare-group rst-adjust "Settings for adjustment and cycling of section title adornments." :group rst :version "21.1" defvaralias rst-preferred-decorations rst-preferred-adornments (saved-value saved-variable-comment) put make-obsolete-variable "rst 1.0.0" custom-declare-variable '((61 over-and-under 1) (61 simple 0) (45 simple 0) (126 simple 0) (43 simple 0) (96 simple 0) (35 simple 0) (64 simple 0)) "Preferred hierarchy of section title adornments.\n\nA list consisting of lists of the form (CHARACTER STYLE INDENT).\nCHARACTER is the character used. STYLE is one of the symbols\nOVER-AND-UNDER or SIMPLE. INDENT is an integer giving the wanted\nindentation for STYLE OVER-AND-UNDER. CHARACTER and STYLE are\nalways used when a section adornment is described. In other\nplaces t instead of a list stands for a transition.\n\nThis sequence is consulted to offer a new adornment suggestion\nwhen we rotate the underlines at the end of the existing\nhierarchy of characters, or when there is no existing section\ntitle in the file.\n\nSet this to an empty list to use only the adornment found in the\nfile." :type repeat group :tag "Adornment specification" choice "Adornment character" mapcar #[(char) "\301\302\303!F\207" [char const :tag char-to-string] 4] ((radio :tag "Adornment type" (const :tag "Overline and underline" over-and-under) (const :tag "Underline only" simple)) (integer :tag "Indentation for overline and underline type" :value 0)) rst-testcover-defcustom rst-default-indent 1 "Number of characters to indent the section title.\n\nThis is used for when toggling adornment styles, when switching\nfrom a simple adornment style to a over-and-under adornment\nstyle." (integer)] 18) #@200 Compare adornments. Return true if both ADO1 and ADO2 adornments are equal, according to restructured text semantics (only the character and the style are compared, the indentation does not matter). (defalias 'rst-compare-adornments #[(ado1 ado2) "@ @=\205\211A@) \211A@)=\207" [ado1 ado2 x] 3 (#$ . 21695)]) #@198 Return the index (level) in hierarchy HIER of adornment ADO. This basically just searches for the item using the appropriate comparison and returns the index. Return nil if the item is not found. (defalias 'rst-get-adornment-match #[(hier ado) "\211\203\303 @\n\"\204 A\211\204 )\207" [hier cur ado rst-compare-adornments] 4 (#$ . 22017)]) #@210 Suggest a new, different adornment from all that have been seen. ALLADOS is the set of all adornments, including the line numbers. PREV is the optional previous adornment, in order to suggest a better match. (defalias 'rst-suggest-new-adornment #[(allados &optional prev) "\306 \"A\307\n\"\f\310  \2032 \2042\311 @ @\"\203) @\202 A\211 \204 *\203= A\202 \312 @!*\207" [rst-preferred-adornments prev fplist curpotential allados found rst-get-adornment-match append nil rst-compare-adornments copy-sequence cur] 4 (#$ . 22374)]) #@63 Delete the entire current line without using the `kill-ring'. (defalias 'rst-delete-entire-line #[nil "\300 \300\301!|\207" [line-beginning-position 2] 3 (#$ . 22929)]) #@397 Unconditionally update the style of a section adornment. Do this using the given character CHAR, with STYLE 'simple or 'over-and-under, and with indent INDENT. If the STYLE is 'simple, whitespace before the title is removed (indent is always assumed to be 0). If there are existing overline and/or underline from the existing adornment, they are removed before adding the requested adornment. (defalias 'rst-update-section #[(char style &optional indent) "\305\210\306 \305\n\203 \307=\203\310\311 \210\312 \210\313\n\314\"c\210\305\210\312 \210i\n\\\212\315y\210\316\317\320!!\203F\212\315y\210\316\317\321!!)\204F\322 \210)\212\323y\210\316\317\320!!\203V\322 \210`\324\323!U\203b\325\323!\210) \326=\203x\212\311 \210\327\323!\210\313\f\"c\210)\323y\210\327\323!\210\313\f\"c\210\323y\210 b*\207" [len marker indent style char nil point-marker simple 0 beginning-of-line delete-horizontal-space make-string 32 -1 looking-at rst-re ado-beg-2-1 ttl-beg rst-delete-entire-line 1 buffer-end newline over-and-under open-line] 3 (#$ . 23105)]) #@720 Classify adornment for section titles and transitions. ADORNMENT is the complete adornment string as found in the buffer with optional trailing whitespace. END is the point after the last character of ADORNMENT. Return a list. The first entry is t for a transition or a cons (CHARACTER . STYLE). Check `rst-preferred-adornments' for the meaning of CHARACTER and STYLE. The remaining list forms four match groups as returned by `match-data'. Match group 0 matches the whole construct. Match group 1 matches the overline adornment if present. Match group 2 matches the section title text or the transition. Match group 3 matches the underline adornment. Return nil if no syntactically valid adornment is found. (defalias 'rst-classify-adornment #[(adornment end) "\212\306 \307\216\310\311\312! \"\205u\nb\210\313\314\315 \"!\311 \316\"`\317y\210`\212\320\321y!?\2064\322\311\323!!)\212\320\324y!?\206E\322\311\323!!)\212\320\321y!\205Y\322\311\325!!\205Y`)\212\320\324y!\205m\322\311\325!!\205m`) \212\205\207\320\315y!\205\207\322\311\f\323\"!\205\207`)!\212 \205\241\320\326y!\205\241\322\311\f\323\"!\205\241`)\"\327\211#$\327\211%&\327\211'(\327)\203\320\203\320\330#& '\202P!\204\332\"\203. \331B#\"\203\351\202\353!\"\203\365\"\202\367\"\203 \202*+,+b\210`$\332 %*b\210`&\332 ',b\210`(\332 )+\202P \203M \333B#( ) b\210`&\332 '\202P\327##\205s#$\206^&)\206e'$%&'()\257 .+\207" [save-match-data-internal adornment end ado-ch ado-re end-pnt match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match rst-re ado-beg-2-1 string-to-char match-string 2 adorep3-hlp 0 zerop 1 looking-at lin-end -1 ttl-beg -2 nil t over-and-under line-end-position simple beg-pnt nxt-emp prv-emp ttl-blw ttl-abv und-fnd ovr-fnd key beg-ovr end-ovr beg-txt end-txt beg-und end-und txt-pnt ovr-pnt und-pnt] 10 (#$ . 24173)]) #@612 Find a section title line around point and return its characteristics. If the point is on an adornment line find the respective title line. If the point is on an empty line check previous or next line whether it is a suitable title line and use it if so. If point is on a suitable title line use it. If no title line is found return nil. Otherwise return as `rst-classify-adornment' does. However, if the title line has no syntactically valid adornment STYLE is nil in the first element. If there is no adornment around the title CHARACTER is also nil and match groups for overline and underline are nil. (defalias 'rst-find-title-line #[nil "\212\304y\210`\305 \306\307\310!!\203O\311\312\313!!\314\312\304!\304\225\"\n\204D\315\316y!\205K\306\307\317!!\205K \320B \305 `\305 \320\211\257 \202K\n@:\205K\n*\202\313\306\307\321!!\203\235\212\315\322y!\205v\306\307\317!!\205v\320\211B`\305 \320\211`\305 \320\211\257 )\206\313\212\315\316y!\205\231\306\307\317!!\205\231\320\211B`\305 \320\211`\305 \320\211\257 )\202\313\306\307\317!!\205\313\314\323\324\313!\305\313!\"\305\313!\"\211\203\273\n\202\312\320\211B`\305 \320\211`\305 \320\211\257 )+\207" [orig-end orig-pnt r char 0 line-end-position looking-at rst-re ado-beg-2-1 string-to-char match-string-no-properties 2 rst-classify-adornment zerop 1 ttl-beg nil lin-end -1 buffer-substring-no-properties line-beginning-position] 10 (#$ . 26161)]) #@118 All section adornments in the buffer as found by `rst-find-all-adornments'. t when no section adornments were found. (defvar rst-all-sections nil (#$ . 27600)) (make-variable-buffer-local 'rst-all-sections) #@150 Section hierarchy in the buffer as determined by `rst-get-hierarchy'. t when no section adornments were found. Value depends on `rst-all-sections'. (defvar rst-section-hierarchy nil (#$ . 27814)) (byte-code "\300\301!\210\302\303!\207" [make-variable-buffer-local rst-section-hierarchy rst-testcover-add-1value rst-reset-section-caches] 2) #@104 Reset all section cache variables. Should be called by interactive functions which deal with sections. (defalias 'rst-reset-section-caches #[nil "\302\211\211\207" [rst-all-sections rst-section-hierarchy nil] 3 (#$ . 28162)]) #@304 Return all the section adornments in the current buffer. Return a list of (LINE . ADORNMENT) with ascending LINE where LINE is the line containing the section title. ADORNMENT consists of a (CHARACTER STYLE INDENT) triple as described for `rst-preferred-adornments'. Uses and sets `rst-all-sections'. (defalias 'rst-find-all-adornments #[nil "\204X\304\212eb\210\305\306\307!\304\310#\203N\311\312\313!`\"\211\203J\n@:\203J\314\nA!\210\315\224b\210\316e`\"T\n\211@@)\n\211@A)\317 EB B\313\225b\210)\202\n \237\211\206V\310*\310=?\205`\207" [rst-all-sections positions ado-data x nil re-search-forward rst-re ado-beg-2-1 t rst-classify-adornment match-string-no-properties 0 set-match-data 2 count-lines current-indentation] 5 (#$ . 28397)]) #@453 Build a hierarchy of adornments using the list of given ADORNMENTS. ADORNMENTS is a list of (CHARACTER STYLE INDENT) adornment specifications, in order that they appear in a file, and will infer a hierarchy of section levels by removing adornments that have already been seen in a forward traversal of the adornments, comparing just CHARACTER and STYLE. Similarly returns a list of (CHARACTER STYLE INDENT), where each list element should be unique. (defalias 'rst-infer-hierarchy #[(adornments) "\306 \306\211\2030 @\211@\n\211A@)\307 \fB\"\204( \fB\nBB* A\211\204\n*\310\311\237\")\207" [hierarchy-alist adornments x --dolist-tail-- style char nil assoc mapcar cdr] 4 (#$ . 29164)]) #@440 Return the hierarchy of section titles in the file. Return a list of adornments that represents the hierarchy of section titles in the file. Each element consists of (CHARACTER STYLE INDENT) as described for `rst-find-all-adornments'. If the line number in IGNORE is specified, a possibly adornment found on that line is not taken into account when building the hierarchy. Uses and sets `rst-section-hierarchy' unless IGNORE is given. (defalias 'rst-get-hierarchy #[(&optional ignore) "\204 \203 \303=?\205) \207\304\305\306\307\310 \"\"!?\205&\n\206&\303\n)\207" [ignore rst-section-hierarchy r t rst-infer-hierarchy mapcar cdr assq-delete-all rst-find-all-adornments] 6 (#$ . 29873)]) #@88 Return the adornments around point. Return a list of the previous and next adornments. (defalias 'rst-get-adornments-around #[nil "\306 \307 \310\211\211\203$\f\211@@) W\203$\f\fA\211\204\f\203C\f\211@@)\203C \f\211@@)U\203A\fA\202B\f\311\312\n D\"-\207" [all curline prev next cur x rst-find-all-adornments line-number-at-pos nil mapcar cdar] 5 (#$ . 30582)]) #@60 Return true if the adornment ADO around point is complete. (defalias 'rst-adornment-complete-p #[(ado) "@\211A@)AA@\212\306\210i) \205J\307\310 \311\312 \f\\\"\313$\212\314y\210\315 \210\316!)\205I \317=?\206I\212\320y\210\315 \210\316!)),\207" [ado char x style indent endcol nil rst-re "^" format "\\{%d\\}" "$" 1 beginning-of-line looking-at over-and-under -1 exps] 8 (#$ . 30969)]) #@170 Get the next adornment for CURADO, in given hierarchy HIER. If suggesting, suggest for new adornment SUGGESTION. REVERSE-DIRECTION is used to reverse the cycling order. (defalias 'rst-get-next-adornment #[(curado hier &optional suggestion reverse-direction) "@\211A@)\306\f \f@D\" \203\202!\307!\211\n\203F \n\211@@)=\203= \n@A@=\204F\nA\211\n\204'\n)\211A@)\206R +\207" [curado char x style hier suggestion append reverse rotados reverse-direction cur] 5 (#$ . 31380)]) #@1057 Auto-adjust the adornment around point. Adjust/rotate the section adornment for the section title around point or promote/demote the adornments inside the region, depending on if the region is active. This function is meant to be invoked possibly multiple times, and can vary its behavior with a positive PFXARG (toggle style), or with a negative PFXARG (alternate behavior). This function is a bit of a swiss knife. It is meant to adjust the adornments of a section title in reStructuredText. It tries to deal with all the possible cases gracefully and to do `the right thing' in all cases. See the documentations of `rst-adjust-adornment-work' and `rst-promote-region' for full details. Prefix Arguments ================ The method can take either (but not both) of a. a (non-negative) prefix argument, which means to toggle the adornment style. Invoke with a prefix argument for example; b. a negative numerical argument, which generally inverts the direction of search in the file or hierarchy. Invoke with C-- prefix for example. (defalias 'rst-adjust #[(pfxarg) "\304  \205\f\305 !\306W \205\n?\307 \203$\310 \205\311!\210\202)\312 \n\"\210\313\314!\210b+\207" [origpt pfxarg reverse-direction toggle-style point-marker prefix-numeric-value 0 use-region-p rst-promote-region t rst-adjust-adornment-work run-hooks rst-adjust-hook] 3 (#$ . 31887) "P"]) (byte-code "\300\301\302\303\304\305\306\307\310\311& \210\312 \210\300\313\302\314\304\305\306\315\310\316& \210\312 \207" [custom-declare-variable rst-adjust-hook nil "Hooks to be run after running `rst-adjust'." :group rst-adjust :type (hook) :package-version (rst . "1.1.0") rst-testcover-defcustom rst-new-adornment-down "Controls level of new adornment for section headers." (choice (const :tag "Same level as previous one" nil) (const :tag "One level down relative to the previous one" t)) (rst . "1.1.0")] 10) #@173 Call `rst-adjust-adornment-work' interactively. Keep this for compatibility for older bindings (are there any?). Argument PFXARG has the same meaning as for `rst-adjust'. (defalias 'rst-adjust-adornment #[(pfxarg) "\205 \303!\304W\205 ?\305\n \"*\207" [pfxarg reverse-direction toggle-style prefix-numeric-value 0 rst-adjust-adornment-work] 3 (#$ . 33801) "P"]) #@4957 Adjust/rotate the section adornment for the section title around point. This function is meant to be invoked possibly multiple times, and can vary its behavior with a true TOGGLE-STYLE argument, or with a REVERSE-DIRECTION argument. General Behavior ================ The next action it takes depends on context around the point, and it is meant to be invoked possibly more than once to rotate among the various possibilities. Basically, this function deals with: - adding a adornment if the title does not have one; - adjusting the length of the underline characters to fit a modified title; - rotating the adornment in the set of already existing sectioning adornments used in the file; - switching between simple and over-and-under styles. You should normally not have to read all the following, just invoke the method and it will do the most obvious thing that you would expect. Adornment Definitions ===================== The adornments consist in 1. a CHARACTER 2. a STYLE which can be either of 'simple' or 'over-and-under'. 3. an INDENT (meaningful for the over-and-under style only) which determines how many characters and over-and-under style is hanging outside of the title at the beginning and ending. See source code for mode details. Detailed Behavior Description ============================= Here are the gory details of the algorithm (it seems quite complicated, but really, it does the most obvious thing in all the particular cases): Before applying the adornment change, the cursor is placed on the closest line that could contain a section title. Case 1: No Adornment -------------------- If the current line has no adornment around it, - search backwards for the last previous adornment, and apply the adornment one level lower to the current line. If there is no defined level below this previous adornment, we suggest the most appropriate of the `rst-preferred-adornments'. If REVERSE-DIRECTION is true, we simply use the previous adornment found directly. - if there is no adornment found in the given direction, we use the first of `rst-preferred-adornments'. TOGGLE-STYLE forces a toggle of the prescribed adornment style. Case 2: Incomplete Adornment ---------------------------- If the current line does have an existing adornment, but the adornment is incomplete, that is, the underline/overline does not extend to exactly the end of the title line (it is either too short or too long), we simply extend the length of the underlines/overlines to fit exactly the section title. If TOGGLE-STYLE we toggle the style of the adornment as well. REVERSE-DIRECTION has no effect in this case. Case 3: Complete Existing Adornment ----------------------------------- If the adornment is complete (i.e. the underline (overline) length is already adjusted to the end of the title line), we search/parse the file to establish the hierarchy of all the adornments (making sure not to include the adornment around point), and we rotate the current title's adornment from within that list (by default, going *down* the hierarchy that is present in the file, i.e. to a lower section level). This is meant to be used potentially multiple times, until the desired adornment is found around the title. If we hit the boundary of the hierarchy, exactly one choice from the list of preferred adornments is suggested/chosen, the first of those adornment that has not been seen in the file yet (and not including the adornment around point), and the next invocation rolls over to the other end of the hierarchy (i.e. it cycles). This allows you to avoid having to set which character to use. If REVERSE-DIRECTION is true, the effect is to change the direction of rotation in the hierarchy of adornments, thus instead going *up* the hierarchy. However, if TOGGLE-STYLE, we do not rotate the adornment, but instead simply toggle the style of the current adornment (this should be the most common way to toggle the style of an existing complete adornment). Point Location ============== The invocation of this function can be carried out anywhere within the section title line, on an existing underline or overline, as well as on an empty line following a section title. This is meant to be as convenient as possible. Indented Sections ================= Indented section titles such as :: My Title -------- are invalid in reStructuredText and thus not recognized by the parser. This code will thus not work in a way that would support indented sections (it would be ambiguous anyway). Joint Sections ============== Section titles that are right next to each other may not be treated well. More work might be needed to support those, and special conditions on the completeness of existing adornments might be required to make it non-ambiguous. For now we assume that the adornments are disjoint, that is, there is at least a single line between the titles/adornment lines. (defalias 'rst-adjust-adornment-work #[(toggle-style reverse-direction) "\306 \210\307 `\211\205`\310 A!\210\311\224b\210\312 \312!Z \211@@) \211@A)\313 \f E\314\211\314 \204\275\315 @\314\316 \211 \203\202!\203\\\"\204f!\204k\"\204k \202\207\317 \"\211A@)\206\207\320 \"\202\207\321#@!$\203\244A\211A@)\322=\203\241\323\202\242\322\240\210@\211A@)AA@+\202.\324!\204\342$\203\325 \322=\203\323\323\202\324\322\f \202.$\203\376\f \322=\203\364\323\202\365\322%\202.\316\312 !\320\315 @\"&\325&\"$\211'@'\211A@)'AA@+\326V\203:\202<\203Q\203Q\327#\210\330\n!?\205^\n[y\210\314.*\207" [orig-pnt ttl-fnd moved x char style rst-reset-section-caches rst-find-title-line set-match-data 2 line-number-at-pos current-indentation nil rst-get-adornments-around rst-get-hierarchy rst-get-adornment-match rst-suggest-new-adornment copy-sequence simple over-and-under rst-adornment-complete-p rst-get-next-adornment 0 rst-update-section zerop indent curado char-new style-new indent-new hier cur prev rst-new-adornment-down reverse-direction rst-preferred-adornments toggle-style rst-default-indent suggestion nextado] 6 (#$ . 34180)]) (defalias 'rst-adjust-section-title 'rst-adjust) #@237 Promote the section titles within the region. With argument DEMOTE or a prefix argument, demote the section titles instead. The algorithm used at the boundaries of the hierarchy is similar to that used by `rst-adjust-adornment-work'. (defalias 'rst-promote-region #[(demote) "\306 \210\307 \310 \311 !\312\313 !\312\314 !\315\2030\211@@) W\2030A\211\204\212\315\203c\211@@)\211\fW\203ceb\210Sy\210\316 \211@A)D BA\211\2048) \315\211\203\231@\211@b\210\317\320\321\211A@) \n$\"\210@\315\211\223\210A\211\204n*\315\211.\207" [cur hier suggestion region-begin-line region-end-line marker-list rst-reset-section-caches rst-find-all-adornments rst-get-hierarchy rst-suggest-new-adornment line-number-at-pos region-beginning region-end nil point-marker apply rst-update-section rst-get-next-adornment x line p --dolist-tail-- demote deactivate-mark] 8 (#$ . 40461) "P"]) #@144 Display the current file's section title adornments hierarchy. This function expects a list of (CHARACTER STYLE INDENT) triples in ADORNMENTS. (defalias 'rst-display-adornments-hierarchy #[(&optional adornments) "\306 \210\204\n\307  r\310\311!q\210p\312 \210\n\313\211\314\211\314\315 \210\316\317!\210+\211\320rq\210\313\211\205j@\321\322\"c\210\323\324\"\210db\210\325c\210TA\211\204C\313,\326!\210+\207" [adornments default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list rst-reset-section-caches rst-get-hierarchy get-buffer-create "*rest section hierarchy*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook 1 format "\nSection Level %d" apply rst-update-section "\n" internal-temp-output-buffer-show inhibit-modification-hooks inhibit-read-only #2=#:buf standard-output level x --dolist-tail--] 4 (#$ . 41395) nil]) #@224 Redo all the adornments in the current buffer. This is done using our preferred set of adornments. This can be used, for example, when using somebody else's copy of a document, in order to adapt it to our preferred style. (defalias 'rst-straighten-adornments #[nil "\304 \210\212\305\306\307 \"\211\310\211\205/\n@\211Ab\210\311\312 @ 8\"\210 A\310\211\223\210\nA\211\204\310,\207" [levels-and-markers lm --dolist-tail-- rst-preferred-adornments rst-reset-section-caches mapcar #[(ado) "\301A\302 \"eb\210@Sy\210\303 B\207" [ado rst-position rst-get-hierarchy point-marker] 3] rst-find-all-adornments nil apply rst-update-section] 5 (#$ . 42323) nil]) #@74 List of maps between Arabic numbers and their Roman numeral equivalents. (defconst rst-arabic-to-roman '((1000 . "M") (900 . "CM") (500 . "D") (400 . "CD") (100 . "C") (90 . "XC") (50 . "L") (40 . "XL") (10 . "X") (9 . "IX") (5 . "V") (4 . "IV") (1 . "I")) (#$ . 42992)) #@289 Convert Arabic number NUM to its Roman numeral representation. Obviously, NUM must be greater than zero. Don't blame me, blame the Romans, I mean "what have the Romans ever _done_ for /us/?" (with apologies to Monty Python). If optional prefix ARG is non-nil, insert in current buffer. (defalias 'rst-arabic-to-roman #[(num &optional arg) "\305\n\203@ \306V\203@ \n\211@@)U\204$ \n\211@@)V\2039 \n\211@A)P \n\211@@)Z\202\nA\211\204 *\207" [rst-arabic-to-roman res map num x nil 0] 3 (#$ . 43270)]) #@275 Convert STRING of Roman numerals to an Arabic number. If STRING contains a letter which isn't a valid Roman numeral, the rest of the string from that point onwards is ignored. Hence: MMD == 2500 and MMDFLXXVI == 2500. If optional ARG is non-nil, insert in current buffer. (defalias 'rst-roman-to-arabic #[(string &optional arg) "\305 \2030\306\307 \211@A)P\f\"\203)\n \211@@)\\\310\311\312\313\f$\202 A\211\204\n*\207" [rst-arabic-to-roman map res x string 0 string-match "^" replace-match "" nil t] 6 (#$ . 43795)]) #@291 Find all the positions of prefixes in region between BEG and END. This is used to find bullets and enumerated list items. PFX-RE is a regular expression for matching the lines after indentation with items. Returns a list of cons cells consisting of the point and the column of the point. (defalias 'rst-find-pfx-in-region #[(beg end pfx-re) "\305\212 b\210`\nW\203E\306 \210\307 !\203?i\212\310y\210\306 \210\307\311\312!!\2065i\fV\2065i\fU\2055\307 !*\203?`iBB\313y\210\202)\237)\207" [pfx beg end pfx-re pfx-col nil back-to-indentation looking-at -1 rst-re lin-end 1] 3 (#$ . 44335)]) #@539 Arrange relative position of a newly inserted list item of style NEWITEM. Adding a new list might consider three situations: (a) Current line is a blank line. (b) Previous line is a blank line. (c) Following line is a blank line. When (a) and (b), just add the new list at current line. when (a) and not (b), a blank line is added before adding the new list. When not (a), first forward point to the end of the line, and add two blank lines, then add the new list. Other situations are just ignored and left to users themselves. (defalias 'rst-insert-list-pos #[(newitem) "\212\301 \210\302\303\304!!)\203%\212\305y\210\302\303\304!!)\203\306\261\207\307\306\261\207\310\210\311\306\261\207" [newitem beginning-of-line looking-at rst-re lin-end -1 " " "\n" nil "\n\n"] 3 (#$ . 44944)]) #@31 List of initial enumerations. (defvar rst-initial-enums (byte-code "\304\305\304\211\203.\n@\306\304\211\203&\n@\307 \"B\nA\211\204*\nA\211\204\n*\310\237)B\207" [vals fmt --dolist-tail-- c nil ("%s." "(%s)" "%s)") ("1" "a" "A" "I" "i") format "#."] 4) (#$ . 45755)) #@70 List of initial items. It's collection of bullets and enumerations. (defvar rst-initial-items (byte-code "\302\303\304\" \"\207" [rst-bullets rst-initial-enums append mapcar char-to-string] 4) (#$ . 46046)) #@413 Insert a new list item. User is asked to select the item style first, for example (a), i), +. Use TAB for completion and choices. If user selects bullets or #, it's just added with position arranged by `rst-insert-list-pos'. If user selects enumerations, a further prompt is given. User need to input a starting item, for example 'e' for 'A)' style. The position is also arranged by `rst-insert-list-pos'. (defalias 'rst-insert-list-new-item #[nil "\306\307\310\311\310\211\312&\313\314\315! \"\205\316\317 \"\320 \321\216\n\322\232\2034\323\324\310\211\322$\211\317\325O\227)\202~\n\326\232\203J\323\327\310\211\326$\211\317\325O\226)\202~\n\330\232\203\\\331\332\325\"\333\f!)\202~\n\334\232\203o\331\332\325\"\333\f!\227)\202~\n\335\232\205~\331\332\325\"\336\f!)*\211\203\213\337 \311\211 $\340 !+\207" [rst-initial-items itemstyle cnt save-match-data-internal itemno no completing-read "Select preferred item style [#.]: " nil t "#." string-match rst-re cntexp-tag match-string 0 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) "a" read-string "Give starting value [a]: " 1 "A" "Give starting value [A]: " "I" read-number "Give starting value [1]: " rst-arabic-to-roman "i" "1" number-to-string replace-match rst-insert-list-pos] 9 (#$ . 46262) nil]) (byte-code "\301\302\303\304\305\306\307\310\311\312\313\"BD\314\315& \210\316 \207" [rst-bullets custom-declare-variable rst-preferred-bullets '(42 45 43) "List of favorite bullets." :group rst :type repeat choice mapcar #[(char) "\301\302\303!F\207" [char const :tag char-to-string] 4] :package-version (rst . "1.1.0") rst-testcover-defcustom] 12) #@142 Insert a list item with list start CURITEM including its indentation level. If PREFER-ROMAN roman numbering is preferred over using letters. (defalias 'rst-insert-list-continue #[(curitem prefer-roman) "\305\210\306\307\310\311!\"\203\202\250\307\310\312!\"\203+\313\314\315\316\317\"!T!\305\211$\202\250\307\310\320!\"\203\221\321 \322\216\307\310\323!\"\203b\212\324\325y!\203]\326\310\327!!\203]\307\310\320!\316\317!\"\202^\n)\202c\330*\203\221\313\316\317\"\321 \331\216\332\333 \226!T!* \211\226\232\203\207\f\226\202\211\f\227*\330\305$\202\250\307\310\323!\"\205\250\313\334\335\316\317\"!T!\305\211$\261\207" [curitem save-match-data-internal prefer-roman old new nil "\n" string-match rst-re (:alt enmaut-tag bul-tag) num-tag replace-match number-to-string string-to-number match-string 0 rom-tag match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) ltr-tag zerop -1 looking-at enmexp-beg t ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) rst-arabic-to-roman rst-roman-to-arabic char-to-string string-to-char] 7 (#$ . 47957)]) #@1212 Insert a list item at the current point. The command can insert a new list or a continuing list. When it is called at a non-list line, it will promote to insert new list. When it is called at a list line, it will insert a list with the same list style. 1. When inserting a new list: User is asked to select the item style first, for example (a), i), +. Use TAB for completion and choices. (a) If user selects bullets or #, it's just added. (b) If user selects enumerations, a further prompt is given. User needs to input a starting item, for example 'e' for 'A)' style. The position of the new list is arranged according to whether or not the current line and the previous line are blank lines. 2. When continuing a list, one thing need to be noticed: List style alphabetical list, such as 'a.', and roman numerical list, such as 'i.', have some overlapping items, for example 'v.' The function can deal with the problem elegantly in most situations. But when those overlapped list are preceded by a blank line, it is hard to determine which type to use automatically. The function uses alphabetical list by default. If you want roman numerical list, just use a prefix to set PREFER-ROMAN. (defalias 'rst-insert-list #[(&optional prefer-roman) "\301 \210\302\303\304!!\203\305\306\307!\"\207\310 \207" [prefer-roman beginning-of-line looking-at rst-re itmany-beg-1 rst-insert-list-continue match-string 0 rst-insert-list-new-item] 3 (#$ . 49118) "P"]) #@402 Make all the bulleted list items in the region consistent. The region is specified between BEG and END. You can use this after you have merged multiple bulleted lists to make them use the same/correct/consistent bullet characters. See variable `rst-preferred-bullets' for the list of bullets to adjust. If bullets are found on levels beyond the `rst-preferred-bullets' list, they are not modified. (defalias 'rst-straighten-bullets-region #[(beg end) "\306 \307\310!#\311\312\313\"\211\314\211\2035 @\211A\315\316\317\n\314#\f@C\"\n#\210) A\211\204*\314\320\321\n\"\210\322\323\"\314\211\205\202 @ \203z\fA\314\211\203v @\211b\210\324\325!\210\326 @!c\210 A\211\204^* A A\211\204M\314.\207" [beg end levtable bullets x --dolist-tail-- rst-find-pfx-in-region rst-re bul-sta make-hash-table :size 4 nil puthash append gethash maphash #[(x y) " B\nB\211\207" [x y poslist] 2] sort car-less-than-car delete-char 1 string key poslist rst-preferred-bullets pos] 8 (#$ . 50601) "r"]) #@391 Return the hierarchical tree of section titles. A tree entry looks like ((TITLE MARKER) CHILD...). TITLE is the stripped text of the section title. MARKER is a marker for the beginning of the title text. For the top node or a missing section level node TITLE is nil and MARKER points to the title text of the first child. Each CHILD is another tree entry. The CHILD list may be empty. (defalias 'rst-section-tree #[nil "\306 \307\310\311\312\313$\314\315\n\314\211\2032 @\316\f@\f\211A@)B #\210 T A\211\204+\212\317\320\321 \")\322\323\"A+\207" [lev-ttl-mrk-l ch-sty2level hier lev ado --dolist-tail-- rst-get-hierarchy make-hash-table :test equal :size 10 nil 0 puthash mapcar #[(ado) "eb\210@Sy\210\303\211A@)AA@B\n\"\212\304\305\306!\307 \310#\203+\311\312\224\312\225\"\202,\313)\314 E\207" [ado x ch-sty2level gethash re-search-forward rst-re "\\S .*\\S " line-end-position t buffer-substring-no-properties 0 "" point-marker] 6] rst-find-all-adornments rst-section-tree-rec -1 x] 7 (#$ . 51630)]) #@428 Process the first entry of REMAINING expected to be on level LEV. REMAINING is the remaining list of adornments consisting of (LEVEL TITLE MARKER) entries. Return (UNPROCESSED (TITLE MARKER) CHILD...) for the first entry of REMAINING where TITLE is nil if the expected level is not matched. UNPROCESSED is the list of still unprocessed entries. Each CHILD is a child of this entry in the same format but without UNPROCESSED. (defalias 'rst-section-tree-rec #[(remaining lev) "@\306\211\211\203\f@ U\203A\fA \203> \211 @@) V\203>\307 T\"\211\nA B\n@)\202\310 ! \n\206M\306 @@AB ,BB\207" [remaining children ttl-mrk unprocessed cur lev nil rst-section-tree-rec reverse x rem-children] 5 (#$ . 52667)]) #@460 Return section containing POINT by returning the closest node in TREE. TREE is a section tree as returned by `rst-section-tree' consisting of (NODE CHILD...) entries. POINT defaults to the current point. A NODE must have the structure (IGNORED MARKER ...). Return (PATH NODE CHILD...). NODE is the node where POINT is in if any. PATH is a list of nodes from the top of the tree down to and including NODE. List of CHILD are the children of NODE if any. (defalias 'rst-section-tree-point #[(tree &optional point) "\206` @ A\211\211A@)\203Y \211A@)Y\203Y\306\n\2039\n@@A@Y\2039\n\nA\211\204& \203Q\307 @\" @BA)B\202U C B)\202\\ CC*\207" [point tree children cur x found nil rst-section-tree-point sub] 4 (#$ . 53401)]) (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\304\301%\210\314 \210\310\315\316\317\304\301%\210\314 \210\310\320\321\322\304\301%\210\314 \207" [custom-declare-group rst-toc nil "Settings for reStructuredText table of contents." :group rst :version "21.1" custom-declare-variable rst-toc-indent 2 "Indentation for table-of-contents display.\nAlso used for formatting insertion, when numbering is disabled." rst-testcover-defcustom rst-toc-insert-style 'fixed "Insertion style for table-of-contents.\nSet this to one of the following values to determine numbering and\nindentation style:\n- plain: no numbering (fixed indentation)\n- fixed: numbering, but fixed indentation\n- aligned: numbering, titles aligned under each other\n- listed: numbering, with dashes like list items (EXPERIMENTAL)" rst-toc-insert-number-separator " " "Separator that goes between the TOC number and the title."] 8) #@72 (Internal) What happens when you click on propertized text in the TOC. (defvar rst-toc-insert-click-keymap (byte-code "\301 \302\303\304#\210)\207" [map make-sparse-keymap define-key [mouse-1] rst-toc-mode-mouse-goto] 4) (#$ . 55075)) (byte-code "\300\301\302\303\304\305%\210\306 \207" [custom-declare-variable rst-toc-insert-max-level nil "If non-nil, maximum depth of the inserted TOC." :group rst-toc rst-testcover-defcustom] 6) #@320 Insert a simple text rendering of the table of contents. By default the top level is ignored if there is only one, because we assume that the document will have a single title. If a numeric prefix argument PFXARG is given, insert the TOC up to the specified level. The TOC is inserted indented at the current column. (defalias 'rst-toc-insert #[(&optional pfxarg) "\306 \210\250\203\307!\310V\203\307!\202 \311\312 !\313i\314\"`\n\211AA)\205?\315\nA\310 \316$\210\f\211 G\\|\210\317\320!,\207" [pfxarg rst-toc-insert-max-level sectree-pair initial-indent init-point x rst-reset-section-caches prefix-numeric-value 0 rst-section-tree-point rst-section-tree make-string 32 rst-toc-insert-node "" delete-char -1] 6 (#$ . 55518) "P"]) #@300 Insert tree node NODE in table-of-contents. Recursive function that does printing of the inserted toc. LEVEL is the depth level of the sections in the tree. INDENT is the indentation string. PFX is the prefix numbering, that includes the alignment necessary for all the children of level to align. (defalias 'rst-toc-insert-node #[(node level indent pfx) "\306V\307\211\203\221 c\210` \310\232\204%&\261\210'\211(@@)\206(\311c\210\312\f`\313\314$\210\312\f`\315'@A@$\210\312\f`\316)$\210)\317c\210 \310=\203X \320*\321\"P\202\220 \322=\203h \320*\321\"P\202\220 \323=\203{ \320%G\324\\\321\"P\202\220 \325=\205\220 \306\326O\320%G\324\\\321\"\327PP+\330=\204\237+W\205\306Y\330,\211-\203\332%G\306V\203\306\331\332\333!%\"\210\334\335\336\211%$\337P%'A\203\332\340\341\342\343'AG!!T\",'A\330.\211/\205/@.\344.T -\203%\340, \"P\202%$\210 T/A\211/\204\346\330,*\207" [level count do-print indent b rst-toc-insert-style 0 1 plain "[missing node]" put-text-property mouse-face highlight rst-toc-target keymap "\n" make-string 32 fixed aligned 2 listed -3 " - " nil string-match rst-re "[ \n]*\\'" replace-match "" t "." format "%%-%dd" floor log10 rst-toc-insert-node pfx rst-toc-insert-number-separator node x rst-toc-insert-click-keymap rst-toc-indent rst-toc-insert-max-level fmt do-child-numbering child --dolist-tail--] 9 (#$ . 56273)]) #@190 Automatically find the contents section of a document and update. Updates the inserted TOC if present. You can use this in your file-write hook to always make it up-to-date automatically. (defalias 'rst-toc-update #[nil "\212eb\210\302\303\304\305\306\307\310\311\312\313\314\315&\n\316\317#\316\211\203\\\320y\210`dW\203B\321\303\312\322\"!\2034`\211\204<\321\303\323!!\203B\320y\210\202\203Sb\210\316\210 `|\210\202V b\210\324c\210\325 \210+\316\207" [last-real beg re-search-forward rst-re "^" exm-sta "contents" dcl-tag ".*\n" "\\(?:" hws-sta fld-tag ".*\n\\)*" exm-tag nil t 1 looking-at "\\S " lin-end "\n " rst-toc-insert] 13 (#$ . 57687) nil]) (defalias 'rst-toc-insert-update 'rst-toc-update) #@77 Recursive function that does insert NODE at LEVEL in the table-of-contents. (defalias 'rst-toc-node #[(node level) "\306V\2032`\307\nS_\310\"c\210 \211@@)\206\311c\210\312 `\313\314$\210\312 `\315 @A@$\210\316c\210) A\317\211\205P@\320 T\"\210A\211\204<\317*\207" [level b rst-toc-indent node x child 0 make-string 32 "[missing node]" put-text-property mouse-face highlight rst-toc-target "\n" nil rst-toc-node --dolist-tail--] 6 (#$ . 58414)]) #@219 Count the number of lines from NODE to the TARGET-NODE node. This recursive function returns a cons of the number of additional lines that have been counted for its node and children, and t if the node has been found. (defalias 'rst-toc-count-lines #[(node target-node) "\306\307\n =\203\310\2020\nA\f\203/\204/\311\f@ \" @\\ A\fA)\202) *B\207" [found count node target-node child cl 1 nil t rst-toc-count-lines] 3 (#$ . 58886)]) #@39 Name of the Table of Contents buffer. (defvar rst-toc-buffer-name "*Table of Contents*" (#$ . 59340)) #@63 Window configuration to which to return when leaving the TOC. (defvar rst-toc-return-wincfg nil (#$ . 59448)) #@306 Display a table-of-contents. Finds all the section titles and their adornments in the file, and displays a hierarchically-organized list of the titles, which is essentially a table-of-contents of the document. The Emacs buffer can be navigated, and selecting a section brings the cursor in that section. (defalias 'rst-toc #[nil "\306 \210\307 \310 D\311 \312 !A\313\314\f!r q\210\315\316 \210ed|\210\317\320 \211@@)\2062\321\"c\210\322e`\323\324C$\210\325 \326\"\210\327 \n\"\211A\203S@\202T\326+\330 !\210\331 !\210\332\333!\210eb\210 Sy-\207" [curbuf sectree our-node line rst-toc-buffer-name buf rst-reset-section-caches current-window-configuration point-marker rst-section-tree rst-section-tree-point nil get-buffer-create t rst-toc-mode format "Table of Contents: %s\n" "" put-text-property face (background-color . "gray") rst-toc-node 0 rst-toc-count-lines display-buffer pop-to-buffer make-local-variable rst-toc-return-wincfg inhibit-read-only x linefound] 6 (#$ . 59565) nil]) #@46 Get the section from text property at point. (defalias 'rst-toc-mode-find-section #[nil "\301`\302\"\211\204 \303\304!\210\305\306!!\204\303\307!\210)\207" [pos get-text-property rst-toc-target error "No section on this line" buffer-live-p marker-buffer "Buffer for this section was killed"] 4 (#$ . 60581)]) #@82 Go to the section the current line describes. If KILL a toc buffer is destroyed. (defalias 'rst-goto-section #[(&optional kill) "\304  \203\305\n@!\210\306\307 !!\210\310\311!!\210b\210\312\313!)\207" [pos kill rst-toc-return-wincfg rst-toc-buffer-name rst-toc-mode-find-section set-window-configuration kill-buffer get-buffer pop-to-buffer marker-buffer recenter 5] 3 (#$ . 60902) nil]) #@71 Go to the section the current line describes and kill the TOC buffer. (defalias 'rst-toc-mode-goto-section #[nil "\300\301!\207" [rst-goto-section t] 2 (#$ . 61301) nil]) #@92 In `rst-toc' mode, go to the occurrence whose line you click on. EVENT is the input event. (defalias 'rst-toc-mode-mouse-goto #[(event) "r\303\304!\211@)!q\210\212\304!\305 8\206( A@:\203% A@@\202( A@)b\210\306 *\307\310\n!!\210\nb\210\311\305!)\207" [event position pos window-buffer event-end 5 rst-toc-mode-find-section pop-to-buffer marker-buffer recenter] 4 (#$ . 61478) "e"]) #@91 Same as `rst-toc-mode-mouse-goto', but kill TOC buffer as well. EVENT is the input event. (defalias 'rst-toc-mode-mouse-goto-kill #[(event) "\302\303\"\210\304\305 !!\207" [event rst-toc-buffer-name call-interactively rst-toc-mode-mouse-goto kill-buffer get-buffer] 3 (#$ . 61874) "e"]) #@31 Leave the current TOC buffer. (defalias 'rst-toc-quit-window #[nil "\303 @!\210 \211A@)b)\207" [rst-toc-return-wincfg retbuf x set-window-configuration] 3 (#$ . 62168) nil]) #@28 Keymap for `rst-toc-mode'. (defvar rst-toc-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\310#\210\302\312\313#\210\302\314\315#\210)\207" [map make-sparse-keymap define-key [mouse-1] rst-toc-mode-mouse-goto-kill [mouse-2] rst-toc-mode-mouse-goto " " rst-toc-mode-goto-section "f" "q" rst-toc-quit-window "z" kill-this-buffer] 4) (#$ . 62351)) (byte-code "\300\301\302\303#\210\304\305N\204\300\304\305\306\307!#\210\310\311!\204 \300\311\312\301#\210\300\207" [put rst-toc-mode mode-class special rst-toc-mode-hook variable-documentation purecopy "Hook run when entering ReST-TOC mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp rst-toc-mode-map definition-name] 5) (defvar rst-toc-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" [rst-toc-mode-map variable-documentation put purecopy "Keymap for `rst-toc-mode'." boundp rst-toc-mode-syntax-table definition-name rst-toc-mode] 5) (defvar rst-toc-mode-syntax-table (make-syntax-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [rst-toc-mode-syntax-table variable-documentation put purecopy "Syntax table for `rst-toc-mode'." rst-toc-mode-abbrev-table definition-name rst-toc-mode] 5) (defvar rst-toc-mode-abbrev-table (progn (define-abbrev-table 'rst-toc-mode-abbrev-table nil) rst-toc-mode-abbrev-table)) (byte-code "\300\301N\204\302\300\301\303\304!#\210\302\305\306\307#\207" [rst-toc-mode-abbrev-table variable-documentation put purecopy "Abbrev table for `rst-toc-mode'." rst-toc-mode derived-mode-parent nil] 5) #@167 Major mode for output from \[rst-toc], the table-of-contents for the document. This mode runs the hook `rst-toc-mode-hook', as the final step during initialization. (defalias 'rst-toc-mode #[nil "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 \307)\315\316!\207" [delay-mode-hooks major-mode mode-name rst-toc-mode-map rst-toc-mode-syntax-table rst-toc-mode-abbrev-table make-local-variable t kill-all-local-variables rst-toc-mode "ReST-TOC" use-local-map set-syntax-table run-mode-hooks rst-toc-mode-hook local-abbrev-table buffer-read-only] 2 (#$ . 64087) nil]) #@168 Skip to the next reStructuredText section title. OFFSET specifies how many titles to skip. Use a negative OFFSET to move backwards in the file (default is to use 1). (defalias 'rst-forward-section #[(&optional offset) "\306 \210\206\307\310 \311  \312 \203+ \211@@)\nW\203+ A\fT\202\312V\203C \203C \211@@)\nU\203C\fT\f\312V\203OS\202P\\\211 8\211\203j\f\312Y\203jeb\210 @Sy\202w\312V\203udb\202web-\207" [offset allados curline cur idx x rst-reset-section-caches 1 rst-find-all-adornments line-number-at-pos 0] 4 (#$ . 64675) nil]) #@57 Like `rst-forward-section', except move back one title. (defalias 'rst-backward-section #[nil "\300\301!\207" [rst-forward-section -1] 2 (#$ . 65249) nil]) #@122 Select COUNT sections around point. Mark following sections for positive COUNT or preceding sections for negative COUNT. (defalias 'rst-mark-section #[(&optional count allow-extend) "\204\304\305!\203\306\307!\210 \2033\n =\203 \310\311!\204%\312 \2033\313\212\310 b\210\314!\210`)!\207\314!\210\315\316\311\211#\210\314[!\207" [count allow-extend last-command this-command 1 zerop error "Cannot mark zero sections" mark t use-region-p set-mark rst-forward-section push-mark nil] 4 (#$ . 65412) "p\np"]) #@50 Return the leftmost column in region BEG to END. (defalias 'rst-find-leftmost-column #[(beg end) "\303\212 b\210`\nW\203)\304 \210\305\306\307!!\204#\203!i^\202\"i\310y\210\202))\207" [mincol beg end nil back-to-indentation looking-at rst-re lin-end 1] 3 (#$ . 65936)]) #@278 Call FUN at the beginning of each line, with an argument that specifies whether we are at the first line of a paragraph that starts at the leftmost column of the given region BEG and END. Set FIRST-ONLY to true if you want to callback on the first line of each paragraph only. (defalias 'rst-iterate-leftmost-paragraphs '(macro . #[(beg end first-only body-consequent body-alternative) "\305\306\307\310 ED\311\312 DDD\313\314\315\316D\317BB\320BB\321B\322\323\211\n\324BB \fFFED\207" [beg end first-only body-consequent body-alternative save-excursion let leftcol rst-find-leftmost-column endm copy-marker do* l progn goto-char ((back-to-indentation)) ((progn (forward-line 1) (back-to-indentation))) ((previous nil valid) (curcol (current-column) (current-column)) (valid (and (= curcol leftcol) (not (looking-at (rst-re 'lin-end)))) (and (= curcol leftcol) (not (looking-at (rst-re 'lin-end)))))) ((>= (point) endm)) if ((and valid (not previous)) valid)] 10 (#$ . 66224)])) #@210 Evaluate BODY for each line in region defined by BEG END. LEFTMOST is set to true if the line is one of the leftmost of the entire paragraph. PARABEGIN is set to true if the line is the first of a paragraph. (defalias 'rst-iterate-leftmost-paragraphs-2 '(macro . #[(spec &rest body) "\211G\306U\203 \211A@\202\307\310\311 GD\" \211A@ \211A@ \211A@ \211A@ @\312\313 \314\n ED\315\316 DDD\317\320\321\322\nD\323BB\324BB\325\311E\326B\f\327D\330\325\327DEE\330\327D\331\332 EE\330\327D\331\333 EEE\257\334\321BFE.D\207" [spec #1=#:--cl-rest-- beg end parabegin leftmost 6 signal wrong-number-of-arguments nil save-excursion let rst-find-leftmost-column endm copy-marker do* l progn goto-char ((back-to-indentation)) ((progn (forward-line 1) (back-to-indentation))) empty-line-previous ((looking-at (rst-re 'lin-end)) (looking-at (rst-re 'lin-end))) not and = (current-column) (current-column) ((>= (point) endm)) isleftmost isempty body] 16 (#$ . 67211)])) (byte-code "\302\303\304\305#\210\302\303\306\307#\210\310\311\312\313\314\315\316\317&\210\320\321\322\312#\210\323\312\211\203C @\321N\203<\322N\204<\302\322\321N#\210 A\211\204%*\324\321\322\325#\210\326\322\327\330\314\311\331\332&\210\333 \210\326\334\335\336\314\311\316\337\331\340& \210\333 \210\326\341\335\342\314\311\316\343\331\344& \210\333 \210\326\345\327\346\314\311\316\347\331\350& \210\333 \210\326\351\335\352\314\311\316\353\331\354& \210\333 \207" [prop --dolist-tail-- put rst-iterate-leftmost-paragraphs-2 lisp-indent-function 1 edebug-form-spec (sexp body) custom-declare-group rst-indent nil "Settings for indentation in reStructuredText.\n\nIn reStructuredText indentation points are usually determined by\npreceding lines. Sometimes the syntax allows arbitrary\nindentation points such as where to start the first line\nfollowing a directive. These indentation widths can be customized\nhere." :group rst :package-version (rst . "1.1.0") defvaralias rst-shift-basic-offset rst-indent-width (saved-value saved-variable-comment) make-obsolete-variable "rst 1.0.0" custom-declare-variable 2 "Indentation when there is no more indentation point given." :type (integer) rst-testcover-defcustom rst-indent-field 3 "Indentation for first line after a field or 0 to always indent for content." (rst . "1.1.0") (integer) rst-indent-literal-normal "Default indentation for literal block after a markup on an own line." (rst . "1.1.0") (integer) rst-indent-literal-minimized "Default indentation for literal block after a minimized markup." (rst . "1.1.0") (integer) rst-indent-comment "Default indentation for first line of a comment." (rst . "1.1.0") (integer)] 11) #@347 Return tabs of the current line or nil for no tab. The list is sorted so the tab where writing continues most likely is the first one. Each tab is of the form (COLUMN . INNER). COLUMN is the column of the tab. INNER is non-nil if this is an inner tab. I.e. a tab which does come from the basic indentation and not from inner alignment points. (defalias 'rst-line-tabs #[nil "\212\306y\210\307 \310\216\311\312\313!!?\205\314 \210`\306\315EC\311\312\316\317\320#!\2036\321\322!\203\342\322\224\306\323E B\202\342\311\312\324\325\326\320$!\203}\327\n!\204O\330\224\n\323E B\321\331!\203`\331\224\306\323E B\202\342\327\n!\203\342\322\225\321\322!\332\230\203t\330\202u\306\323E B\202\342\311\312\333\334\320#!\203\260\330\225\306\323E B\321\322!\332\230\204\237\322\225\306\323E B\321\335!\203\342\335\224\306\323E B\202\342\311\312\336\337\320#!\203\323\330\225\306\323E B\321\331!\203\342\331\224\306\323E B\202\342\311\312\340!!\203\342` \323E B\311\312\341!!\203  @\211@\f\211A@)\321\330!\203$\202%\\\323E B)\342\343 \")+\207" [save-match-data-internal tabs rst-indent-field rst-indent-comment tab0 x 0 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) looking-at rst-re lin-end back-to-indentation nil (:grp itmany-tag hws-sta) (:grp "\\S ") "?" match-string 2 t (:grp fld-tag) (:grp hws-tag) (:grp "\\S ") zerop 1 3 "" dir-sta-3 (:grp "\\S ") 4 fnc-sta-2 (:grp "\\S ") cmt-sta-1 lit-sta-2 mapcar #[(tab) "@b\210i\211A@)\\AA@B\207" [tab x] 3] rst-indent-literal-minimized rst-indent-literal-normal] 7 (#$ . 69909)]) #@326 Build the list of possible tabs for all lines above. Search backwards from point PT to build the list of possible tabs. Return a list of tabs sorted by likeliness to continue writing like `rst-line-tabs'. Nearer lines have generally a higher likeliness than farther lines. Return nil if no tab is found in the text above. (defalias 'rst-compute-tabs #[(pt) "\212b\210\306\211\211\307\310y!\203\245 \203 \311V\203\245\312 \211\205)\313\314\315\316\f\"\"\f\203\241 \203B W\204B\n\204\241 U\203\241\f\306\211\203\217@\211A@\211\204i \203y W\204y\203\205\n\203y\nW\203\205 >\204\205 B*A\211\204L*\317\315\320\f\"!\203\235 \202\236\n *\202\n \237,\207" [pt tablist innermost leftmost tabs leftcol nil zerop -1 0 rst-line-tabs apply min mapcar car rst-some cdr tab --dolist-tail-- newcol inner] 6 (#$ . 71532)]) #@592 Indent current line to next best reStructuredText tab. The next best tab is taken from the tab list returned by `rst-compute-tabs' which is used in a cyclic manner. If the current indentation does not end on a tab use the first one. If the current indentation is on a tab use the next tab. This allows a repeated use of \[indent-for-tab-command] to cycle through all possible tabs. If no indentation is possible return `noindent' or use DFLT. Return the indentation indented to. When point is in indentation it ends up at its end. Otherwise the point is kept relative to the content. (defalias 'rst-indent-line #[(&optional dflt) "\306 \307 i\310`!\311 \"\312 \204 \204 \313\202V \204*\202C\f\2043\314\202?\fT\211 GY\203?\314\f 8\315 !\210\n V\203Pb\210\312\211\223\210 .\207" [pt cur clm tabs fnd ind point-marker current-indentation rst-compute-tabs rst-position nil noindent 0 indent-line-to dflt] 4 (#$ . 72409)]) #@227 Shift region BEG to END by CNT tabs. Shift by one tab to the right (CNT > 0) or left (CNT < 0) or remove all indentation (CNT = 0). A tab is taken from the text above. If no suitable tab is found `rst-indent-width' is used. (defalias 'rst-shift-region #[(beg end cnt) "\306\307!\310\"\311 \"\n\312V\204\f\312V\205\307\313 \314\f!\203&\n[\202\306\f\312V\2030\315\2021\316\f\312V\203< \202?\317 !\211G\320\f!\321\f!\322\323!\322\324! \211!\211\" L\210) \211#\nL\210)\325\326\327\330\331\332D\331 D\331!D\333\257E \"*\211$\206\207S\\\211%W\203\233% 8\202\277\334 !@\206\243\n\335%SZ&#\\\211'\312W\203\274\312\202\276')\211(\nZ.#*\207" [beg end leftmostcol tabs cnt cmp sort rst-compute-tabs #[(x y) " X\207" [x y] 2] rst-find-leftmost-column 0 indent-rigidly zerop > < reverse rst-signum abs make-symbol "--cmp--" "--leftmostcol--" rst-position-if lambda (&rest --cl-rest--) apply quote #[(#1=#:G98701 #2=#:G98702 elt) "J \nJ\"\207" [#2# elt #1#] 3] --cl-rest-- last * len dir #3=#:--cl-leftmostcol-- #4=#:--cl-cmp-- #5=#:v #6=#:v fnd pos rst-indent-width col tab] 12 (#$ . 73369) "r\np"]) #@72 Return fill prefix found at point. Value for `adaptive-fill-function'. (defalias 'rst-adaptive-fill #[nil "\304!\205 \305\306!\307 \310\216\311 \"*\204 \202-\312\212\306\225b\210i)\212\306\224b\210i)Z\313\")\207" [adaptive-fill-regexp fnd save-match-data-internal comment-start-skip looking-at match-string-no-properties 0 match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) string-match make-string 32] 3 (#$ . 74521)]) #@189 Break line and indent, continuing reStructuredText comment if within one. Value for `comment-line-break-function'. If SOFT use soft newlines as mandated by `comment-line-break-function'. (defalias 'rst-comment-line-break #[(&optional soft) "\203 \302\303!\210\202\304\305!\210\212\306u\210\307 \210)\307 \210\310`!\211\205&\311 @!)\207" [soft tabs insert-and-inherit 10 newline 1 -1 delete-horizontal-space rst-compute-tabs indent-line-to] 3 (#$ . 75002)]) #@46 Return indentation for current comment line. (defalias 'rst-comment-indent #[nil "\300`!@\207" [rst-compute-tabs] 2 (#$ . 75472)]) #@39 Insert a comment in the current line. (defalias 'rst-comment-insert-comment #[nil "\301\302!\210c\207" [comment-start rst-indent-line 0] 2 (#$ . 75609)]) #@93 Comment or uncomment the current region. Region is from from BEG to END. Uncomment if ARG. (defalias 'rst-comment-region #[(beg end &optional arg) "\212:\203\306 \n#\2024 b\210\307 \310\311y\210`\312 \n #\210 b\210\313\314!\210\315\f!\210\316\317\211#c*)\207" [arg beg end bol ind rst-indent-comment rst-uncomment-region current-indentation nil 0 indent-rigidly open-line 1 indent-line-to comment-string-strip t comment-start] 4 (#$ . 75770)]) #@74 Uncomment the current region. Region is from BEG to END. ARG is ignored (defalias 'rst-uncomment-region #[(beg end &optional arg) "\212\305\211\nb\210\306y\210`\307y\210`\310 \f[#\210 |+\207" [eol bol beg end rst-indent-comment nil 0 1 indent-rigidly] 4 (#$ . 76231)]) #@166 Add enumeration to all the leftmost paragraphs in the given region. The region is specified between BEG and END. With ALL, do all lines instead of just paragraphs. (defalias 'rst-enumerate-region #[(beg end all) "\306\307\212\310\n \"\311 !\nb\210\312 \307i\211 U\205'\313\314\315!!?`\fY\204}\204?\203X?\202A\203X\316\317 T\211\"\211Gc\210)\202^\320\321\"c\210\322y\210\312 i\211 U\205x\313\314\315!!?\202). \307\207" [last-insert-len count beg end endm leftcol 0 nil rst-find-leftmost-column copy-marker back-to-indentation looking-at rst-re lin-end format "%d. " make-string 32 1 l previous curcol valid all ins-string] 5 (#$ . 76514) "r\nP"]) #@162 Add bullets to all the leftmost paragraphs in the given region. The region is specified between BEG and END. With ALL, do all lines instead of just paragraphs. (defalias 'rst-bullet-list-region #[(beg end all) "\212\306 \"\307 !b\210\310 \311i\211 U\205!\312\313\314!!?`\nY\204g\2048\203G ?\202:\203G@\315\261\210\202J\316c\210\317y\210\310 i\211 U\205b\312\313\314!!?\202#.\311\207" [beg end endm leftcol l previous rst-find-leftmost-column copy-marker back-to-indentation nil looking-at rst-re lin-end " " " " 1 curcol valid all rst-preferred-bullets] 4 (#$ . 77214) "r\nP"]) #@129 Convert the bulleted and enumerated items in the region to enumerated lists. Renumber as necessary. Region is from BEG to END. (defalias 'rst-convert-bullets-to-enumeration #[(beg end) "\306\307\310 \311\312!#\"\313\212\n\314\211\2059 @\211@b\210\315\311\316!!\210\317\320\321 \"\314\211\211\313%\210 T A\211\204\314-\207" [beg end items count x --dolist-tail-- mapcar #[(x) "\301@!AB\207" [x copy-marker] 2] rst-find-pfx-in-region rst-re itmany-sta-1 1 nil looking-at itmany-beg-1 replace-match format "%d."] 8 (#$ . 77838) "r"]) #@109 Toggle line block prefixes for a region. Region is from RBEG to REND. With PFXARG set the empty lines too. (defalias 'rst-line-block-region #[(rbeg rend &optional pfxarg) "\306\307\306\310??\212\311\"\312!b\210\313 \314\315\316\317!!\211??\205;iU`Y\204\213 \204M\204`\320 \"\210``\321 Z\\|\210\306c\210\322y\210\313 \315\316\317!!\205z??\205\206iU\202=. \314\207" [pfxarg force comment-style comment-start-skip comment-end comment-start "| " "" indent rst-find-leftmost-column copy-marker back-to-indentation nil looking-at rst-re lin-end move-to-column current-indentation 1 rbeg rend endm leftmost l empty-line-previous isempty parbegin isleft] 6 (#$ . 78390) "r\nP"]) (byte-code "\302\303!\210\304\305\306\307\310\311\310\312\313\314& \210\315\316\317\320\313\321\310\305&\210\322\323\324\325\313\321\310\305\326\327& \210\330 \210\331\323\332\321#\210\315\333\334\335\313\321\310\305&\210\322\336\337\340\313\321\310\305\326\341& \210\330 \210\331\336\342\321#\210\315\343\344\345\313\321\310\305&\210\322\346\347\350\313\321\310\305\326\351& \210\330 \210\331\346\352\321#\210\315\353\354\355!\203\200\356\202\201\357\360\313\321\310\305&\210\322\361\362\363\310\305\326\364&\210\330 \210\331\361\365\321#\210\315\366\367\370\313\321\310\305&\210\322\371\372\373\313\321\310\305\326\374& \210\330 \210\331\371\375\321#\210\315\376\377\201@\313\321\310\305&\210\322\201A\201B\201C\313\321\310\305\326\201D& \210\330 \210\331\201A\201E\321#\210\315\201F\201G\201H\313\321\310\305&\210\322\201I\201J\201K\310\305\326\201L&\210\330 \210\331\201I\201M\321#\210\315\201N\201O\201P\313\321\310\305&\210\322\201Q\201R\201S\313\321\310\305\326\201T& \210\330 \210\331\201Q\201U\321#\210\315\201V\201W\201X\313\321\310\305&\210\322\201Y\201Z\201[\313\321\310\305\326\201\\& \210\330 \210\331\201Y\201]\321#\210\315\201^\201_\201`\201a\201b\310\305&\210\315\201c\201d\201e\201a\201f\310\305&\210\201g\306\211\203\314 @\331\201h\201i#\210 A\211\204\270*\315\201j\201k\201l\201a\201m%\210\315\201n\201o\201p\201a\201q%\210\315\201r\201s\201t\201a\201u%\210\315\201v\201w\201x\201a\201y%\210\315\201z\201{\201|\201a\201}%\210\315\201~\201\201\200\201a\201\201%\210\322\201\202\201\203\201\204\310\305\326\201\205&\210\330 \207" [var --dolist-tail-- require font-lock custom-declare-group rst-faces nil "Faces used in Rst Mode." :group rst faces :version "21.1" custom-declare-face rst-block ((t :inherit font-lock-keyword-face)) "Face used for all syntax marking up a special block." "24.1" custom-declare-variable rst-block-face 'rst-block "All syntax marking up a special block." :type (face) rst-testcover-defcustom make-obsolete-variable "customize the face `rst-block' instead." rst-external ((t :inherit font-lock-type-face)) "Face used for field names and interpreted text." rst-external-face 'rst-external "Field names and interpreted text." (face) "customize the face `rst-external' instead." rst-definition ((t :inherit font-lock-function-name-face)) "Face used for all other defining constructs." rst-definition-face 'rst-definition "All other defining constructs." (face) "customize the face `rst-definition' instead." rst-directive boundp font-lock-builtin-face ((t :inherit font-lock-builtin-face)) ((t :inherit font-lock-preprocessor-face)) "Face used for directives and roles." rst-directive-face 'rst-directive "Directives and roles." (face) "customize the face `rst-directive' instead." rst-comment ((t :inherit font-lock-comment-face)) "Face used for comments." rst-comment-face 'rst-comment "Comments." (face) "customize the face `rst-comment' instead." rst-emphasis1 ((t :inherit italic)) "Face used for simple emphasis." rst-emphasis1-face 'rst-emphasis1 "Simple emphasis." (face) "customize the face `rst-emphasis1' instead." rst-emphasis2 ((t :inherit bold)) "Face used for double emphasis." rst-emphasis2-face 'rst-emphasis2 "Double emphasis." (face) "customize the face `rst-emphasis2' instead." rst-literal ((t :inherit font-lock-string-face)) "Face used for literal text." rst-literal-face 'rst-literal "Literal text." (face) "customize the face `rst-literal' instead." rst-reference ((t :inherit font-lock-variable-name-face)) "Face used for references to a definition." rst-reference-face 'rst-reference "References to a definition." (face) "customize the face `rst-reference' instead." rst-transition ((t :inherit font-lock-keyword-face)) "Face used for a transition." :package-version (rst . "1.3.0") rst-adornment ((t :inherit font-lock-keyword-face)) "Face used for the adornment of a section header." (rst . "1.3.0") (rst-level-face-max rst-level-face-base-color rst-level-face-base-light rst-level-face-format-light rst-level-face-step-light rst-level-1-face rst-level-2-face rst-level-3-face rst-level-4-face rst-level-5-face rst-level-6-face) "customize the faces `rst-level-*' instead." "24.3" rst-level-1 ((((background light)) (:background "grey85")) (((background dark)) (:background "grey15"))) "Default face for section title text at level 1." (rst . "1.4.0") rst-level-2 ((((background light)) (:background "grey78")) (((background dark)) (:background "grey22"))) "Default face for section title text at level 2." (rst . "1.4.0") rst-level-3 ((((background light)) (:background "grey71")) (((background dark)) (:background "grey29"))) "Default face for section title text at level 3." (rst . "1.4.0") rst-level-4 ((((background light)) (:background "grey64")) (((background dark)) (:background "grey36"))) "Default face for section title text at level 4." (rst . "1.4.0") rst-level-5 ((((background light)) (:background "grey57")) (((background dark)) (:background "grey43"))) "Default face for section title text at level 5." (rst . "1.4.0") rst-level-6 ((((background light)) (:background "grey50")) (((background dark)) (:background "grey50"))) "Default face for section title text at level 6." (rst . "1.4.0") rst-adornment-faces-alist '((t . rst-transition) (nil . rst-adornment) (1 . rst-level-1) (2 . rst-level-2) (3 . rst-level-3) (4 . rst-level-4) (5 . rst-level-5) (6 . rst-level-6)) "Faces for the various adornment types.\nKey is a number (for the section title text of that level\nstarting with 1), t (for transitions) or nil (for section title\nadornment). If you need levels beyond 6 you have to define faces\nof your own." (alist :key-type (choice (integer :tag "Section level") (const :tag "transitions" t) (const :tag "section title adornment" nil)) :value-type (face))] 11) #@36 Keywords to highlight in rst mode. (defvar rst-font-lock-keywords (byte-code "\300\301\302\"\303B\300\301\304\"\305B\300\301\306\307#\310B\300\301\311\312#\313B\300\301\314\315#\316B\300\301\317\"\320B\300\301\321\"\322B\300\301\323\307#\324B\300\301\325\307#\326B\300\327\330\331#\332B\300\327\333\331#\334B\300\327\335\331#\336B\300\327\337\331#\340B\300\327\341\331#\342B\300\327\343\344\345\331%\346B\300\327\347\331#\350B\300\327\351\331#\352B\300\327\353\331#\354B\300\327\355\331#\356B\300\357!\360B\300\301\361\"\362B\300\301\363\364\365$\366B\300\301\367\"\370B\300\301\371\372#\373B\257\207" [rst-re lin-beg (:grp bul-sta) (1 rst-block-face) (:grp enmany-sta) (1 rst-block-face) (:grp fld-tag) bli-sfx (1 rst-external-face) (:grp opt-tag (:shy optsep-tag opt-tag) "*") (:alt "$" (:seq hws-prt "\\{2\\}")) (1 rst-block-face) (:grp "|" bli-sfx) "[^|\n]*$" (1 rst-block-face) fnc-sta-2 ((1 rst-definition-face) (2 rst-definition-face)) dir-sta-3 ((1 rst-directive-face) (2 rst-definition-face) (3 rst-directive-face)) (:grp exm-sta "_" (:alt (:seq "`" ilcbkqdef-tag "`") (:seq (:alt "[^:\\\n]" "\\\\.") "+")) ":") (1 rst-definition-face) (:grp "__") (1 rst-definition-face) ilm-pfx (:grp "\\*\\*" ilcast-tag "\\*\\*") ilm-sfx (1 rst-emphasis2-face) (:grp "\\*" ilcast-tag "\\*") (1 rst-emphasis1-face) (:grp "``" ilcbkq-tag "``") (1 rst-literal-face) (:grp "_`" ilcbkq-tag "`") (1 rst-definition-face) (:grp (:alt (:seq "`" ilcbkq-tag "`") (:seq "\\sw" (:alt "\\sw" "-") "+\\sw")) "__?") (1 rst-reference-face) (:grp (:shy ":" sym-tag ":") "?") (:grp "`" ilcbkq-tag "`") (:grp (:shy ":" sym-tag ":") "?") ((1 rst-directive-face) (2 rst-external-face) (3 rst-directive-face)) (:grp fnc-tag "_") (1 rst-reference-face) (:grp sub-tag) (1 rst-reference-face) (:grp uri-tag ":\\S +") (1 rst-definition-face) (:grp sym-tag "@" sym-tag) (1 rst-definition-face) ado-beg-2-1 ((rst-font-lock-handle-adornment-matcher (rst-font-lock-handle-adornment-pre-match-form (match-string-no-properties 1) (match-end 1)) nil (1 (cdr (assoc nil rst-adornment-faces-alist)) append t) (2 (cdr (assoc rst-font-lock-adornment-level rst-adornment-faces-alist)) append t) (3 (cdr (assoc nil rst-adornment-faces-alist)) append t))) cmt-sta-1 ((1 rst-comment-face) (rst-font-lock-find-unindented-line-match (rst-font-lock-find-unindented-line-limit (match-end 1)) nil (0 rst-comment-face append))) (:grp exm-tag) (:grp hws-tag) "$" ((1 rst-comment-face) (2 rst-comment-face) (rst-font-lock-find-unindented-line-match (rst-font-lock-find-unindented-line-limit 'next) nil (0 rst-comment-face append))) lit-sta-2 ((2 rst-block-face) (rst-font-lock-find-unindented-line-match (rst-font-lock-find-unindented-line-limit t) nil (0 rst-literal-face append))) (:grp (:alt ">>>" ell-tag)) (:grp ".+") ((1 rst-block-face) (2 rst-literal-face))] 27) (#$ . 84999)) #@155 Extend the font-lock region if it might be in a multi-line construct. Return non-nil if so. Font-lock region is from `font-lock-beg' to `font-lock-end'. (defalias 'rst-font-lock-extend-region #[nil "\303 \"\211\205\n@\nA\304)\207" [font-lock-beg font-lock-end r rst-font-lock-extend-region-internal t] 4 (#$ . 87836)]) #@137 Check the region BEG / END for being in the middle of a multi-line construct. Return nil if not or a cons with new values for BEG / END (defalias 'rst-font-lock-extend-region-internal #[(beg end) "\304\305\"\304 \306\"\211\204\n\205 \206\n\206 B*\207" [beg end nend nbeg rst-font-lock-extend-region-extend -1 1] 5 (#$ . 88169)]) #@120 Like `forward-line' but always end up in column 0 and return accordingly. Move N lines forward just as `forward-line'. (defalias 'rst-forward-line #[(&optional n) "yn\203 \202\302y\210 \303!Z)\207" [n moved 0 rst-signum] 3 (#$ . 88517)]) #@115 Extend the region starting at point PT and extending in direction DIR. Return extended point or nil if not moved. (defalias 'rst-font-lock-extend-region-extend #[(pt dir) "\303\304\"?\205\207\212\305\306!b\210\307y\210`\310 !\204#\311\312\n!!\204\310\305\313!!\203a\311\312\n!!\203~\310\305\314!!\203S\311\312\n!!\203~\310\305\313!!\204~\312\n[!\210\202~\n\307W\203~\312\n[!\210\202~\310\305\314!!\203~\311\312\n!!\203~\310\305\313!!\204~\312\n[!\210`U?\205\206`*\207" [pt stop-re dir get-text-property font-lock-multiline rst-re (:alt "[^ \n]" (:seq hws-tag exm-tag) (:seq ".*" dcl-tag lin-end)) 0 looking-at zerop rst-forward-line ado-beg-2-1 ttl-beg] 3 (#$ . 88769)]) #@379 Move forward across one indented block. Find the next non-empty line which is not indented at least to COLUMN (defaults to the column of the point). Moves point to first character of this line or the first empty line immediately before it and returns that position. If there is no such line before LIMIT (defaults to the end of the buffer) returns nil and point is not moved. (defalias 'rst-forward-indented-block #[(&optional column limit) "\206i`\306\211\211\204d\307 \310\216 \204c`W\203c\311y\210`W\203`\312\313\314!!\203D \206@\n\202\315 !\210\316\313\317!\320\n`\"\"\203Y\306\202 \206^\n\211\203 * \206i\fb\210 -\207" [column cand beg fnd start clm nil match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) 1 looking-at rst-re lin-end move-to-column string-match linemp-tag buffer-substring-no-properties limit save-match-data-internal] 6 (#$ . 89469) nil]) #@69 Beginning of the match if `rst-font-lock-find-unindented-line-end'. (defvar rst-font-lock-find-unindented-line-begin nil (#$ . 90422)) #@150 End of the match as determined by `rst-font-lock-find-unindented-line-limit'. Also used as a trigger for `rst-font-lock-find-unindented-line-match'. (defvar rst-font-lock-find-unindented-line-end nil (#$ . 90564)) #@392 Find the next unindented line relative to indentation at IND-PNT. Return this point, the end of the buffer or nil if nothing found. If IND-PNT is `next' take the indentation from the next line if this is not empty and indented more than the current one. If IND-PNT is non-nil but not a number take the indentation from the next non-empty line if this is indented more than the current one. (defalias 'rst-font-lock-find-unindented-line-limit #[(ind-pnt) "\212\247\204n\305 \306\216\307 \310=\203@\311\312y!\205l`dW\205l`\313\314\315!!?\205l\307 V\205l\313\314\316!!\210\317\225\202l\311\312y!\203U`dW\203U\313\314\315!!\204@`dW\205l`\307 V\205l\313\314\316!!\210\317\225+\205}b\210\320\321d\"\206}d)\211\207" [ind-pnt rst-font-lock-find-unindented-line-begin save-match-data-internal cur-ind rst-font-lock-find-unindented-line-end match-data ((byte-code "\301\302\"\207" [save-match-data-internal set-match-data evaporate] 3)) current-indentation next zerop 1 looking-at rst-re lin-end hws-tag 0 rst-forward-indented-block nil] 3 (#$ . 90785)]) #@244 Set the match found earlier if match were found. Match has been found by `rst-font-lock-find-unindented-line-limit' the first time called or no match is found. Return non-nil if match was found. LIMIT is not used but mandated by the caller. (defalias 'rst-font-lock-find-unindented-line-match #[(limit) "\205\302 D!\210\303 \304\305$\210\306\305\207" [rst-font-lock-find-unindented-line-end rst-font-lock-find-unindented-line-begin set-match-data put-text-property font-lock-multiline t nil] 5 (#$ . 91867)]) #@124 Storage for `rst-font-lock-handle-adornment-matcher'. Either section level of the current adornment or t for a transition. (defvar rst-font-lock-adornment-level nil (#$ . 92391)) #@260 Return section level for adornment KEY. KEY is the first element of the return list of `rst-classify-adornment'. If KEY is not a cons return it. If KEY is found in the hierarchy return its level. Otherwise return a level one beyond the existing hierarchy. (defalias 'rst-adornment-level #[(key) ":\204\207\306 @A\307\310!\307\311!\307\312!\211\211\nL\210) \211 L\210)\f\211 L\210)\313\314\315\316\317\320D\317\fD\317 D\317D\321\257E\fJ\"+\206S GT+\207" [key hier char style #1=#:--cl-hier-- #2=#:--cl-style-- rst-get-hierarchy make-symbol "--char--" "--style--" "--hier--" rst-position-if lambda (&rest --cl-rest--) apply quote #[(#3=#:G98703 #4=#:G98704 #5=#:G98705 elt) "@ J\232\205\211A@) J\232\207" [elt #5# x #4#] 3] --cl-rest-- #6=#:--cl-char-- #7=#:v #8=#:v #9=#:v] 10 (#$ . 92577)]) #@168 Storage for match for current adornment. Set by `rst-font-lock-handle-adornment-pre-match-form'. Also used as a trigger for `rst-font-lock-handle-adornment-matcher'. (defvar rst-font-lock-adornment-match nil (#$ . 93406)) #@405 Determine limit for adornments. Determine all things necessary for font-locking section titles and transitions and put the result to `rst-font-lock-adornment-match' and `rst-font-lock-adornment-level'. ADO is the complete adornment matched. ADO-END is the point where ADO ends. Return the point where the whole adorned construct ends. Called as a PRE-MATCH-FORM in the sense of `font-lock-keywords'. (defalias 'rst-font-lock-handle-adornment-pre-match-form #[(ado ado-end) "\305 \"\211\204\306\211\211\202!\307\n@!\nA\nA@b\210\310\n8)\207" [ado ado-end ado-data rst-font-lock-adornment-level rst-font-lock-adornment-match rst-classify-adornment nil rst-adornment-level 2] 4 (#$ . 93636)]) #@307 Set the match found earlier if match were found. Match has been found by `rst-font-lock-handle-adornment-pre-match-form' the first time called or no match is found. Return non-nil if match was found. Called as a MATCHER in the sense of `font-lock-keywords'. LIMIT is not used but mandated by the caller. (defalias 'rst-font-lock-handle-adornment-matcher #[(limit) "\302 \205\303 !\210\304\225b\210\305\304\224\304\225\306\307$\210\307)\207" [rst-font-lock-adornment-match match nil set-match-data 0 put-text-property font-lock-multiline t] 5 (#$ . 94345)]) (byte-code "\300\301\302\303\304\305\306\307&\210\310\311\312\313\314\315\304\305\316\317& \210\320 \207" [custom-declare-group rst-compile nil "Settings for support of conversion of reStructuredText\ndocument with \\[rst-compile]." :group rst :version "21.1" custom-declare-variable rst-compile-toolsets `((html ,(if (executable-find "rst2html.py") "rst2html.py" "rst2html") ".html" nil) (latex ,(if (executable-find "rst2latex.py") "rst2latex.py" "rst2latex") ".tex" nil) (newlatex ,(if (executable-find "rst2newlatex.py") "rst2newlatex.py" "rst2newlatex") ".tex" nil) (pseudoxml ,(if (executable-find "rst2pseudoxml.py") "rst2pseudoxml.py" "rst2pseudoxml") ".xml" nil) (xml ,(if (executable-find "rst2xml.py") "rst2xml.py" "rst2xml") ".xml" nil) (pdf ,(if (executable-find "rst2pdf.py") "rst2pdf.py" "rst2pdf") ".pdf" nil) (s5 ,(if (executable-find "rst2s5.py") "rst2s5.py" "rst2s5") ".html" nil)) "Table describing the command to use for each tool-set.\nAn association list of the tool-set to a list of the (command to use,\nextension of produced filename, options to the tool (nil or a\nstring)) to be used for converting the document." :type (alist :options (html latex newlatex pseudoxml xml pdf s5) :key-type symbol :value-type (list :tag "Specification" (file :tag "Command") (string :tag "File extension") (choice :tag "Command options" (const :tag "No options" nil) (string :tag "Options")))) :package-version "1.2.0" rst-testcover-defcustom] 10) #@41 The default tool-set for `rst-compile'. (defvar rst-compile-primary-toolset 'html (#$ . 96374)) #@64 The default tool-set for `rst-compile' with a prefix argument. (defvar rst-compile-secondary-toolset 'latex (#$ . 96476)) #@69 Look for the configuration file in the parents of the current path. (defalias 'rst-compile-find-conf #[nil "\304\305 \306!\307\n \230\203\307\211\203/\310\n P!\204/\n\311\306\312\306\n!!!!\211\202\f\n\2056\n P,\207" [buffer-file file-name dir prevdir "docutils.conf" buffer-file-name file-name-directory nil file-exists-p expand-file-name directory-file-name] 6 (#$ . 96604) nil]) (require 'compile) #@223 Compile command to convert reST document into some output file. Attempts to find configuration file, if it can, overrides the options. There are two commands to choose from, with USE-ALT, select the alternative tool-set. (defalias 'rst-compile #[(&optional use-alt) "\203 \202 \n \236A\211@\f\211A@)\fAA@\306 \307!\310!\311\312!\210\313\314 \206<\315\203J\316\317!P\202K\315\317!\317P!\257\320#\n\204e\203k\321\322!\202o\322\n!.\207" [use-alt rst-compile-secondary-toolset rst-compile-primary-toolset rst-compile-toolsets toolset command rst-compile-find-conf file-name-nondirectory file-name-sans-extension make-local-variable compile-command mapconcat identity "" "--config=" shell-quote-argument " " call-interactively compile x extension options conffile buffer-file-name bufname outname compilation-read-command] 10 (#$ . 97025) "P"]) #@48 Compile command with the alternative tool-set. (defalias 'rst-compile-alt-toolset #[nil "\300\301!\207" [rst-compile t] 2 (#$ . 97919) nil]) #@132 Show pseudo-XML rendering. Rendering is done of the current active region, or of the entire buffer, if the region is not selected. (defalias 'rst-compile-pseudo-region #[nil "r\306\307!q\210p\310 \210 \311\211\312\211\312\313 \210\314\315!\210+\211\316\2031\317 \2022e\203<\320 \202=d\321\236\211A@)$\322!\210+\207" [default-directory #1=#:old-dir buffer-read-only buffer-file-name buffer-undo-list inhibit-modification-hooks get-buffer-create "*pseudoxml*" kill-all-local-variables nil t erase-buffer run-hooks temp-buffer-setup-hook shell-command-on-region region-beginning region-end pseudoxml internal-temp-output-buffer-show inhibit-read-only #2=#:buf standard-output mark-active rst-compile-toolsets x] 6 (#$ . 98067) nil]) #@36 Program used to preview PDF files. (defvar rst-pdf-program "xpdf" (#$ . 98832)) #@66 Convert the document to a PDF file and launch a preview program. (defalias 'rst-compile-pdf-preview #[nil "\306\307\310\311#\312\313\314 \236\211A@) \f\211&\315\316\310 #*\207" [tmp-filename rst-compile-toolsets x buffer-file-name rst-pdf-program command make-temp-file "rst_el" nil ".pdf" format "%s %s %s && %s %s ; rm %s" pdf start-process-shell-command "rst-pdf-preview"] 9 (#$ . 98918) nil]) #@36 Program used to preview S5 slides. (defvar rst-slides-program "firefox" (#$ . 99327)) #@80 Convert the document to an S5 slide presentation and launch a preview program. (defalias 'rst-compile-slides-preview #[nil "\306\307\310\311#\312\313\314 \236\211A@) \f\211&\315\316\310 #*\207" [tmp-filename rst-compile-toolsets x buffer-file-name rst-slides-program command make-temp-file "rst_el" nil ".html" format "%s %s %s && %s %s ; rm %s" s5 start-process-shell-command "rst-slides-preview"] 9 (#$ . 99419) nil]) #@54 Find adornments cell in ADORNMENTS for position POS. (defalias 'rst-imenu-find-adornments-for-position #[(adornments pos) "\303 \203\" @\203 @@\n=\203 \303\211\202 A\211\204)\207" [a adornments pos nil] 3 (#$ . 99851)]) #@134 Convert a cell ELT in a tree returned from `rst-section-tree' to imenu index. ADORNMENTS is used as hint information for conversion. (defalias 'rst-imenu-convert-cell #[(elt adornments) "@A @ \205\\\306 \211A@)!\307 \"\211@A\310\311\312\3138TA@\" \3148\315=\203A\316\202G\317A@!$\211\n\204R \202Z B\320\321\n\"B-B+\207" [elt kar kdr title x p marker-position rst-imenu-find-adornments-for-position format "%s%s%s" make-string 3 2 simple "" char-to-string mapcar #[(elt0) "\302 \"\207" [elt0 adornments rst-imenu-convert-cell] 3] adornments a] 7 (#$ . 100092)]) #@71 Create index for imenu. Return as described for `imenu--index-alist'. (defalias 'rst-imenu-create-index #[nil "\302 \210\303 \212\304\305\306 \")\307\310\304\311 \"\"*\207" [adornments tree rst-reset-section-caches rst-section-tree mapcar #[(ln-ado) "eb\210@Sy\210`AB\207" [ln-ado] 2] rst-find-all-adornments delete nil #[(elt) "\302 \"\207" [elt adornments rst-imenu-convert-cell] 3]] 5 (#$ . 100692)]) #@73 Replace flush-left lines of FROMCHAR with equal-length lines of TOCHAR. (defalias 'rst-replace-lines #[(fromchar tochar) "\212\305\306\307#\310\311\n\312\313#\203& T\314\224b\210i\315 \210\316\f \"\210)\202 \317\320\321 \"!+\207" [fromchar found searchre width tochar rst-re "^" "+\\( *\\)$" 0 search-forward-regexp nil t 1 rst-delete-entire-line insert-char message format "%d lines replaced."] 4 (#$ . 101107) "cSearch for flush-left lines of char:\ncand replace with char: "]) #@71 Join lines in current paragraph into one line, removing end-of-lines. (defalias 'rst-join-paragraph #[nil "\301\302\303!)\207" [fill-column 65000 call-interactively fill-paragraph] 2 (#$ . 101600) nil]) #@121 Fill paragraph at point, first joining the paragraph's lines into one. This is useful for filling list item paragraphs. (defalias 'rst-force-fill-paragraph #[nil "\300 \210\301\302!\207" [rst-join-paragraph fill-paragraph nil] 2 (#$ . 101811) nil]) #@495 Fill the current line using the last character on the current line. Fill up to the length of the preceding line or up to `fill-column' if preceding line is empty. If USE-NEXT, use the next line rather than the preceding line. If the current line is longer than the desired length, shave the characters off the current line to fit the desired length. As an added convenience, if the command is repeated immediately, the alternative column is used (fill-column vs. end of previous/next line). (defalias 'rst-repeat-last-character #[(use-next) "i\306e`\"\307!\203\310\202\311\\\312\311! \310U\203% \204%\f\202F\212 \203.\310\202/\313y\210\314\210\315\nx\210i\307 !\203D\f\202E *\316\232\203^\fU\203Z\202m\f\202m\212\307!\203j\f\202l)\314\210iV\203\204`iZZ`|\202\213\317hiZ\"-\207" [curcol curline lbp use-next fill-column cc count-lines zerop 1 0 line-beginning-position -1 nil " " rst-repeat-last-character insert-char prevcol last-command rightmost-column] 4 (#$ . 102067) "P"]) (provide 'rst)