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/cedet/srecode
Viewing File: /usr/share/emacs/24.3/lisp/cedet/srecode/document.elc
;ELC ;;; Compiled by mockbuild@buildfarm01-new.corp.cloudlinux.com on Tue Nov 11 12:57:42 2025 ;;; from file /builddir/build/BUILD/emacs-24.3/lisp/cedet/srecode/document.el ;;; in Emacs version 24.3.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\312\313\314\315\316\317\316\320&\210\321\322\323\324\316\313\325\326&\210\321\327\330\331\316\313\325\332&\210\321\322\333\324\316\313\325\334&\210\321\335\336\337\316\313\325\340&\210\321\341\342\343\316\313\325\344&\210\321\345\346\347\316\313\325\350&\210\321\351\352\353\316\313\325\354&\207" [require srecode/args srecode/dictionary srecode/extract srecode/insert srecode/semantic semantic semantic/tag semantic/doc pulse custom-declare-group document nil "File and tag browser frame." :group texinfo srecode custom-declare-variable srecode-document-autocomment-common-nouns-abbrevs '(("sock\\(et\\)?" . "socket") ("addr\\(ess\\)?" . "address") ("buf\\(f\\(er\\)?\\)?" . "buffer") ("cur\\(r\\(ent\\)?\\)?" . "current") ("dev\\(ice\\)?" . "device") ("doc" . "document") ("i18n" . "internationalization") ("file" . "file") ("line" . "line") ("l10n" . "localization") ("msg\\|message" . "message") ("name" . "name") ("next\\|nxt" . "next") ("num\\(ber\\)?" . "number") ("port" . "port") ("host" . "host") ("obj\\|object" . "object") ("previous\\|prev" . "previous") ("str\\(ing\\)?" . "string") ("use?r" . "user") ("\\(^\\|\\s-\\)id\\($\\|\\s-\\)" . "Identifier")) "List of common English abbreviations or full words.\nThese are nouns (as opposed to verbs) for use in creating expanded\nversions of names. This is an alist with each element of the form:\n (MATCH . RESULT)\nMATCH is a regexp to match in the type field.\nRESULT is a string." :type (repeat (cons (string :tag "Regexp") (string :tag "Doc Text"))) srecode-document-autocomment-function-alist '(("abort" . "Aborts the") ("realloc" . "moves or ") ("alloc\\(ate\\)?" . "Allocates and initializes a new ") ("clean" . "Cleans up the") ("clobber" . "Removes") ("close" . "Cleanly closes") ("check" . "Checks the") ("comp\\(are\\)?" . "Compares the") ("create" . "Creates a new ") ("find" . "Finds ") ("free" . "Frees up space") ("gen\\(erate\\)?" . "Generates a new ") ("get\\|find" . "Looks for the given ") ("gobble" . "Removes") ("he?lp" . "Provides help for") ("li?ste?n" . "Listens for ") ("connect" . "Connects to ") ("acc?e?pt" . "Accepts a ") ("load" . "Loads in ") ("match" . "Check that parameters match") ("name" . "Provides a name which ") ("new" . "Allocates a ") ("parse" . "Parses the parameters and returns ") ("print\\|display" . "Prints out") ("read" . "Reads from") ("reset" . "Resets the parameters and returns") ("scan" . "Scans the ") ("setup\\|init\\(ialize\\)?" . "Initializes the ") ("select" . "Chooses the ") ("send" . "Sends a") ("re?c\\(v\\|ieves?\\)" . "Receives a ") ("to" . "Converts ") ("update" . "Updates the ") ("wait" . "Waits for ") ("write" . "Writes to")) "List of names to string match against the function name.\nThis is an alist with each element of the form:\n (MATCH . RESULT)\nMATCH is a regexp to match in the type field.\nRESULT is a string.\n\nCertain prefixes may always mean the same thing, and the same comment\ncan be used as a beginning for the description. Regexp should be\nlower case since the string they are compared to is downcased.\nA string may end in a space, in which case, last-alist is searched to\nsee how best to describe what can be returned.\nDoesn't always work correctly, but that is just because English\ndoesn't always work correctly." (repeat (cons (string :tag "Regexp") (string :tag "Doc Text"))) '(("sock\\(et\\)?" . "socket") ("addr\\(ess\\)?" . "address") ("buf\\(f\\(er\\)?\\)?" . "buffer") ("cur\\(r\\(ent\\)?\\)?" . "current") ("dev\\(ice\\)?" . "device") ("file" . "file") ("line" . "line") ("msg\\|message" . "message") ("name" . "name") ("next\\|nxt" . "next") ("port" . "port") ("host" . "host") ("obj\\|object" . "object") ("previous\\|prev" . "previous") ("str\\(ing\\)?" . "string") ("use?r" . "user") ("num\\(ber\\)?" . "number") ("\\(^\\|\\s-\\)id\\($\\|\\s-\\)" . "Identifier")) (repeat (cons (string :tag "Regexp") (string :tag "Doc Text"))) srecode-document-autocomment-return-first-alist '(("static" . "Locally defined function which ") ("Bool\\|BOOL" . "Status of ")) "List of regexp matches for types.\nThey provide a little bit of text when typing information is\ndescribed.\nThis is an alist with each element of the form:\n (MATCH . RESULT)\nMATCH is a regexp to match in the type field.\nRESULT is a string." (repeat (cons (string :tag "Regexp") (string :tag "Doc Text"))) srecode-document-autocomment-return-last-alist '(("static[ \n]+struct \\([a-zA-Z0-9_]+\\)" . "%s") ("struct \\([a-zA-Z0-9_]+\\)" . "%s") ("static[ \n]+union \\([a-zA-Z0-9_]+\\)" . "%s") ("union \\([a-zA-Z0-9_]+\\)" . "%s") ("static[ \n]+enum \\([a-zA-Z0-9_]+\\)" . "%s") ("enum \\([a-zA-Z0-9_]+\\)" . "%s") ("static[ \n]+\\([a-zA-Z0-9_]+\\)" . "%s") ("\\([a-zA-Z0-9_]+\\)" . "of type %s")) "List of regexps which provide the type of the return value.\nThis is an alist with each element of the form:\n (MATCH . RESULT)\nMATCH is a regexp to match in the type field.\nRESULT is a string, which can contain %s, which is replaced with\n`match-string' 1." (repeat (cons (string :tag "Regexp") (string :tag "Doc Text"))) srecode-document-autocomment-param-alist '(("[Cc]txt" . "Context") ("[Ii]d" . "Identifier of") ("[Tt]ype" . "Type of") ("[Nn]ame" . "Name of") ("argc" . "Number of arguments") ("argv" . "Argument vector") ("envp" . "Environment variable vector")) "Alist of common variable names appearing as function parameters.\nThis is an alist with each element of the form:\n (MATCH . RESULT)\nMATCH is a regexp to match in the type field.\nRESULT is a string of text to use to describe MATCH.\nWhen one is encountered, document-insert-parameters will automatically\nplace this comment after the parameter name." (repeat (cons (string :tag "Regexp") (string :tag "Doc Text"))) srecode-document-autocomment-param-type-alist '(("const" . "Constant") ("void" . "Empty") ("char[ ]*\\*" . "String ") ("\\*\\*" . "Pointer to ") ("\\*" . "Pointer ") ("char[ ]*\\([^ *]\\|$\\)" . "Character") ("int\\|long" . "Number of") ("FILE" . "File of") ("float\\|double" . "Value of") ("Bool\\|BOOL" . "Flag") ("Window" . "Window") ("GC" . "Graphic Context") ("Widget" . "Widget")) "Alist of input parameter types and strings describing them.\nThis is an alist with each element of the form:\n (MATCH . RESULT)\nMATCH is a regexp to match in the type field.\nRESULT is a string." (repeat (cons (string :tag "Regexp") (string :tag "Doc Text")))] 8) #@364 Insert some comments. Whack any comments that may be in the way and replace them. If the region is active, then insert group function comments. If the cursor is in a comment, figure out what kind of comment it is and replace it. If the cursor is in a function, insert a function comment. If the cursor is on a one line prototype, then insert post-fcn comments. (defalias 'srecode-document-insert-comment #[nil "\306 \210\307  \204\n\310=\204 \203/\f\203/`\311 V\203'\312\311 `\"\202\253\312`\311 \"\202\253\313\232\203Q\212\314 \210\315 )\203E\314 \210\202Q\316 \211\203P\317 !\210)\315 \203\223\315 \320\211\211A@)*=\203u\321\315 !\203u\322 \202\253\315 \323\211\211A@)*=\203\215\324 \202\253\325\326!\202\253\327\330!\211;\205\252G\331U?\205\252\332!))\207" [ctxt srecode-handle-region-when-non-active-flag last-command transient-mark-mode mark-active tag semantic-fetch-tags srecode-calculate-context mouse-drag-region mark srecode-document-insert-group-comments ("declaration" "comment") back-to-indentation semantic-current-tag semantic-find-tag-by-overlay-next semantic-go-to-tag variable srecode-document-one-line-tag-p srecode-document-insert-variable-one-line-comment function srecode-document-insert-function-comment error "Not sure what to comment" read-string "Section Title (RET to skip): " 0 srecode-document-insert-section-comment class title] 4 (#$ . 7080) nil]) #@38 Insert a section comment with TITLE. (defalias 'srecode-document-insert-section-comment #[(&optional title) "\304!\210\304\305\"\210\306 \204\307\310\"\210\311 \312\306 \313\314\305$\211\204&\307\315!\210 \2030\316 \317 #\210\320\n \"*\207" [major-mode dict temp title srecode-load-tables-for-mode document srecode-table error "No template table found for mode %s" srecode-create-dictionary srecode-template-get-table "section-comment" "declaration" "No templates for inserting section comments" srecode-dictionary-set-value "TITLE" srecode-insert-fcn] 6 (#$ . 8510) "sSection Title: "]) #@41 Strip stray whitespace from around STR. (defalias 'srecode-document-trim-whitespace #[(str) "\301\302\"\203\303\304\305\211$\301\306\"\203\303\304\305\211$\207" [str string-match "^\\(\\s-\\|\n\\)+" replace-match "" t "\\(\\s-\\|\n\\)+$"] 5 (#$ . 9113)]) #@227 Insert or replace a function comment. FCN-IN is the Semantic tag of the function to add a comment too. If FCN-IN is not provided, the current tag is used instead. It is assumed that the comment occurs just in front of FCN-IN. (defalias 'srecode-document-insert-function-comment #[(&optional fcn-in) "\306!\210\306\307\"\210\310 \204\311\312\"\210\313 \314\310 \315\316\307$\211\204&\311\317!\210 \2040\320 \210\321  \203D \322\211\211A@)\f*=\204H\311\323!\210p\324 !=\204T\311\325!\210\326 !\210\327 \210\330u\210\331 \332\"\333 !3\2114\203T4\2115\2115A@\247\204\2025AA\202\2055A)@)64\2115\2115A@\247\204\2375AA\202\2425A)A)7\334\2126b\210\335\336!)!8\336\337\340\2179\3417 \211\342 8):\343:!\203\325\344:!\202\331:\345H*\";\2126b\210\346 \210\321 )\211<\204R\34767\"\210;\350V\203\351\352!\203R;\350V\2037b\210\353 \210\354 \2108\20349\2044\351\355!\203'8367|\2106b\210\202R9\203R\351\356!\203R67|\2106b\210\334\3579\360\"!3.\327 \210 \361=>\362\n \".\207" [major-mode dict temp fcn-in class tag srecode-load-tables-for-mode document srecode-table error "No template table found for mode %s" srecode-create-dictionary srecode-template-get-table "function-comment" "declaration" "No templates for inserting function comments" semantic-fetch-tags semantic-current-tag function "No tag of class 'function to insert comment for" semantic-tag-buffer "Only insert comments for tags in the current buffer" semantic-go-to-tag beginning-of-line -1 semantic-documentation-comment-preceeding-tag lex srecode-document-function-name-comment srecode-document-trim-whitespace semantic-doc-snarf-comment-for-tag nil (srecode-extract temp s e) ((error)) count-lines 4 semantic-overlay-p semantic-overlay-start 0 back-to-indentation pulse-momentary-highlight-region 2 y-or-n-p "Replace this comment? " delete-horizontal-space delete-blank-lines "Convert old-style comment to Template with old text? " "Refresh pre-existing comment (recycle old doc)? " srecode-dictionary-lookup-name "DOC" #[(tag dict) "\304\305 \n=\203 \202\306 !#\207" [dict tag fcn-in doctext srecode-dictionary-set-value "DOC" srecode-document-parameter-comment] 5] srecode-insert-fcn doctext lextok token s e plaintext extract o distance belongelsewhere srecode-semantic-apply-tag-augment-hook srecode-semantic-selected-tag] 6 (#$ . 9386) nil]) #@221 Insert or replace a variable comment. VAR-IN is the Semantic tag of the function to add a comment too. If VAR-IN is not provided, the current tag is used instead. It is assumed that the comment occurs just after VAR-IN. (defalias 'srecode-document-insert-variable-one-line-comment #[(&optional var-in) "\306!\210\306\307\"\210\310 \204\311\312\"\210\313 \314\310 \315\316\307$\211\204&\311\317!\210 \2040\320 \210\321  \203D \322\211\211A@)\f*=\204H\311\323!\210p\324 !=\204T\311\325!\210 \211\326 8)*\327*!\203l\330*!\202p*\331H*b\210\332\333\334 \"\210\335\336!\211+\203\340+\211,\211,A@\247\204\227,AA\202\232,A)@)+\211,\211,A@\247\204\262,AA\202\265,A)A)-.\337.-\"\210\340\341!\204\315\311\342!\210\343\n.-#\210.-|\210.b\210*)\344\210\345 \210\346/\347\"\210`\334 W\203\367\344\210 \35001\351\n \",\207" [major-mode dict temp var-in class tag srecode-load-tables-for-mode document srecode-table error "No template table found for mode %s" srecode-create-dictionary srecode-template-get-table "variable-same-line-comment" "declaration" "No templates for inserting variable comments" semantic-fetch-tags semantic-current-tag variable "No tag of class 'variable to insert comment for" semantic-tag-buffer "Only insert comments for tags in the current buffer" 4 semantic-overlay-p semantic-overlay-end 1 skip-syntax-forward "-" point-at-eol semantic-doc-snarf-comment-for-tag lex pulse-momentary-highlight-region y-or-n-p "A comment already exists. Replace? " "Quit" srecode-extract nil delete-horizontal-space move-to-column t #[(tag dict) "\302\303\304 !#\207" [dict tag srecode-dictionary-set-value "DOC" srecode-document-parameter-comment] 5] srecode-insert-fcn o lextok token e s comment-column srecode-semantic-apply-tag-augment-hook srecode-semantic-selected-tag] 6 (#$ . 11781) nil]) #@223 Insert group comments around the active between BEG and END. If the region includes only parts of some tags, expand out to the beginning and end of the tags on the region. If there is only one tag in the region, complain. (defalias 'srecode-document-insert-group-comments #[(beg end) "\306!\210\306\307\"\210\310 \204\311\312\"\210\313 \314\315\211\212 b\210\316 \206'\317 )$\212%b\210\316 \2066\320 )&\315' (%)$\203\223&\203\223$\211**\321*8)+\322+!\203i\323+!\202m+\324H*&\211**\321*8)+\322+!\203\212\325+!\202\216+\326H*V\203\231\315\211$&$\203I$&=\203\322$\203\322$\327,\211*\211*A@),*=\203\322$'\317 !$\320%!&\202\374\330$!&=\203\351&'\320%!&\202\374$\330&!=\203\374$'\317 !$'\203\331$\211**\321*8)+\322+!\203\325+!\202#+\326H*(&\211**\321*8)+\322+!\203B\323+!\202F+\324H*)\332\310 \333\n\307$\332\310 \334\n\307$ \203a\f\204e\311\335!\210\336 \337\340\341!#\210)b\210\315\210\342\f \"\210(b\210\343 \210\342 \". \207" [major-mode dict context temp-start temp-end beg srecode-load-tables-for-mode document srecode-table error "No template table found for mode %s" srecode-create-dictionary "declaration" nil semantic-current-tag semantic-find-tag-by-overlay-next semantic-find-tag-by-overlay-prev 4 semantic-overlay-p semantic-overlay-end 1 semantic-overlay-start 0 type semantic-find-tag-parent-by-overlay "classdecl" srecode-template-get-table "group-comment-start" "group-comment-end" "No templates for inserting group comments" srecode-dictionary-set-value "GROUPNAME" read-string "Name of group: " srecode-insert-fcn beginning-of-line tag-start end tag-end parent-tag first-pos second-pos tag o class] 6 (#$ . 13638) "r"]) #@292 Create documentation for the function defined in TAG. If we can identify a verb in the list followed by some name part then check the return value to see if we can use that to finish off the sentence. That is, any function with 'alloc' in it will be allocating something based on its type. (defalias 'srecode-document-function-name-comment #[(tag) "\306\211\307 \211@) \211\310\311 \312 8)\n\"+\206\307 <\203. @\203T\313@@ \227\"\203K @AP\314\306A\211\2043\211\203\224\313@@\f\227\"\203\213 \203u@A\227\202y@AP\211\211GSH\315U\203\210\314\306A\211\204\\\211\203\307\313@@\f\227\"\203\276 \203\265@A\227\202\271@AP\306A\211\204\234\203\375\211\203\375\313@@ \227\"\203\364 \316\317@A\320 \321\224\321\225O!\"Q\306A\211\204\324 .\207" [srecode-document-autocomment-return-first-alist tag attribute retval fname news nil "" :type plist-get 2 string-match t 32 " " format srecode-document-programmer->english 1 tailit dropit al srecode-document-autocomment-function-alist srecode-document-autocomment-common-nouns-abbrevs srecode-document-autocomment-return-last-alist] 9 (#$ . 15391)]) #@230 Convert tag or string PARAM into a name,comment pair. Optional COMMENTLIST is list of previously existing comments to use instead in alist form. If the name doesn't appear in the list of standard names, then english it instead. (defalias 'srecode-document-parameter-comment #[(param &optional commentlist) "\306\307 ;\203\f \202 \211@) ;?\205' \211\310\311\n\312\n8) \"+\f<\203:\f\211@)\203^\313@@ \"\203U\314@APA\211\204?G\315U\203\254 ;\204\204 \211\316\311\n\312\n8) \"+\203\204\317P\211\203\254\f\203\254\313@@\f\"\203\243@APA\211\204\214\204\272\320\321 !Q-\207" [srecode-document-autocomment-param-alist param tag attribute tt name "" nil :type plist-get 2 string-match t 0 :typemodifiers "array of " " " srecode-document-programmer->english fnd aso cmt srecode-document-autocomment-param-type-alist] 8 (#$ . 16592)]) #@319 Take PROGRAMMER and convert it into English. Works with the following rules: 1) convert all _ into spaces. 2) inserts spaces between CamelCasing word breaks. 3) expands noun names based on common programmer nouns. This function is designed for variables, not functions. This does not account for verb parts. (defalias 'srecode-document-programmer->english #[(programmer) "\306\230\203\306\207\307\310\211\211\211GW\2032\n\fH\311U\203$\312\202)\313\fH!P\fT\211\202\n\310\307\211GW\203s\n\fH\211\314Y\203X \315X\203X\316\313 !\202i \203f\310\312\313 !P\202i\313 !)P\fT\211\2029\310\307\n\310\317\320\"\203\310\321\224\321\225O\321\225\310 \203\261\317 @@\227\"\203\252\n @AP\316 A\211\204\227 \204\272\nP\n\312P\310O*\202{\n,\207" [programmer al newstr llow ind tc "" 0 nil 95 " " char-to-string 97 122 t string-match "^\\s-*\\([^ \n]+\\)" 1 end ts srecode-document-autocomment-common-nouns-abbrevs] 5 (#$ . 17506)]) #@49 Does TAG fit on one line with space on the end? (defalias 'srecode-document-one-line-tag-p #[(tag) "\212\302!\210\211\3038)\304 !\203\305 !\202 \306H*\307 X\205D\211\3038)\304 !\2039\305 !\202< \306H*b\205Di\310W)\207" [tag o semantic-go-to-tag 4 semantic-overlay-p semantic-overlay-end 1 point-at-eol 70] 3 (#$ . 18505)]) (provide 'srecode/document)