From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4703 invoked from network); 13 Jun 1997 17:44:29 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 13 Jun 1997 17:44:29 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id MAA10855; Fri, 13 Jun 1997 12:59:39 -0400 (EDT) Resent-Date: Fri, 13 Jun 1997 12:59:39 -0400 (EDT) Date: Fri, 13 Jun 1997 18:03:25 +0100 (BST) From: Zefram Message-Id: <20416.199706131703@stone.dcs.warwick.ac.uk> Subject: object declarations X-Patch: 260 Resent-Message-ID: <"0Aeyj2.0.Vf2.wnNep"@euclid> To: zsh-workers@math.gatech.edu Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3242 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- This patch replaces makepro.sh with a new makepro.awk, which does a non-trivial amount of parsing on the declarations it processes. It is able to handle most object declarations, including multiple declarators, initialisers, nested parameter lists, redundant parentheses and embedded multi-line comments. (There are currently no nested parameter lists in zsh, but almost everything else is done somewhere.) The immediate advantage of the new makepro is that it can generate extern declarations for data objects, in addition to functions. I added "/**/" in front of the declarations of data objects that are used elsewhere, and these declarations (minus initialiser) are copied into the *.pro files, making a number of manual extern declarations unnecessary. (Incidentally, for each data object with external linkage that was *not* used in another file, I added "static" to their declarations. Every object that came up on my nm-generated symbol lists now has either "static" or "/**/" on its declaration.) The real reason for the extensive declarator parsing is so that it will later be possible to automatically generate lists of exported symbols. Before this can be done, the objects declared in globals.h, Zle/comp.h and Zle/zle.h will have to move into normal code files, so that they appear in *.pro files. Bearing in mind the portability problems we've had with signames.awk, could someone who knows awk better than I do please look over the new script? -zefram begin 644 proto_patch.gz M'XL(""Z@H#,"`W!R;W1O7W!A=&-H`.0\:W?;MI*?W5^!I#F-Y-"V2%%/-]LX MMA)[*]LYEMR;37I7ER8AB35%:DG*BMW;_[XS`X`$)9H/8W3MUKOG8#_BN'VZ9G4YKK];<,RU6JW5K9K=6VS)W[?HW.SL[ M]S4V[6Z]T34[WVP7/_C.S)IIF+46HP+&MEX\J?3>#B\.1B\O3_I'!X?#*I3" MWZZ[.X^C[C>/V-:3RN"XU^]7V9-*$KN>'U?W9C`R5.\F4_;D>_8?[,D+T>O@ M;'`R^O'L@CUG3ICXUG48RU(L9,\)=84"/.\\&(6#?_Q893OC$ARCI%$71GAS<3X\KXKWG9B[BSCQ;S@V>I35=EE. M'-']2>5L,#Q]4T4(I^='+T_.!E7Q>/BJRF;72>K,YDA*@LM>G5\<]H@N8J;/ MGV9S?LH.7PUZ1UA"#U`@`6*1@OV4_4QT5A.1=/[\B0"%_[R9;,N=<;7P@]0/ M=]T"JUM=V^XV<%^TF]F^*&^*6Z)K6J5KWJBWC89=%VN.8$2!K=%N#^L8X,[= M-(IO=Z9.Z`5^.&%RM(0Z[V'C9]@8G_PP95XTC^$;.@(7UO:WMO:V6<)3J&/\ M`W=W75891S%S%FGD>E4F(.!P;+[TNC!@,@^<6Y9..0N=&6?1F)YAR6*.X!5" MV+.4G=N-NF&UFS7%T`#Y@CL>M'`200$P#FP;;9(^'@1 M,,])'>9<18N4\`4.3#,:<<]/<85P',!^"$4[/9`$'MOA"$,`BN8T")MQ)X1N MC@`4\V01I"R91HO`8U<`&:D-3)VD'@P&X``&=DD,)E@&"&T#H1L=P31E:U$W M.PVC;M5LM1;XD7,;#,\O#RNN6]V'\M\$#8%>TRCP$A8`J\"J`''F3CQRH]"K MP"9D813/G""X9;>WT*)2-5C*DY0>J?&5'XZPI$)\E:W)3>1[K+*-8*!ME8TJ M%2RJ5O-E$L,Z\60Q@WDG!"V'36N,W`/SP%)HE^QG?(LE!GO?)3H"G)TD!?1@ MS4,>.P&;+^)YE'`61!/?A7?^80[$3F`-U%8B9(&B0"X;R66J;7@ON1Z&=[8W MOR[Z2FJ)+5XBLFP064T[$UFK[>JH\AO-;JU<7IFF;9AF)Y=75%*$D08J2 M*/"3=#3WYQP%D<$2?S8/^&A.NQ!%D^B#.\AWV=SW1EH7^.?MEZ+2:M>-5KM3 MPM&!DZ0W3I`MT"/"`K1T,AVY`=+P.=LQ<\(C#1:P>W&\;,OZ228'F),DL*P) M+54!>\+J=6R MZCAV.Y-:Q(^3(+HJ\JTP04T3^+9N9GR[W@[UK-VURJW/=LUH-W*NQ=?,#M26 M83(>A8L@0.`&OLR<^!KFDM!+&&&Y%Z7B%5DTO9US;0>_B<$L_@`<#BK)_T`R MP(M0$=S!/DYCW[WF0E\^8ZOR`$&/8$,;\A%`Y'#G3CHE'8P:*@I1(B/;(9$\^$BQRC$T'5)+T0IZ[>>`D)-_B:XD+.K*I*83XZK- M]?!QP<[O79Q]SKBE5ENC931:;.4'?GHK!I2((C-"-V>V+[88[DAIG<#J`Q/-(VQ" M_WF<9%L1&=+C8^I?V3X47=#J>A62NA7,9B@EI![4M]3$V98N`%`8H"4U3^,< MLW?]WL.PDOK_7)4FX!E#<["5/9$J`6&R[`MYJ$W)/8BSX;9VNP#$`^ MPPP7V)_`'+!186JPOZ-T&<4>/<.F!D4[E5,N]B/D6#)W7.Z'*'O76DG:`>", M;MFV]M&.19_%!44.L_%X/"%Y\525H5Y(_72!S/I4WPK$@DVK*#Q!+Z2EPK,. M.][*_93U=B@\6UW;+&5W&X;*5,2W0'A4W,<'H_^\//NQ=[15,;__WJJB>]$' M%<<0.+H%I-Z7R/K$,;?LET5X#6M%D]"@G)V?G!T2D#H!.8*9@D($&"`,P=M` M>*3-_-"-.5I7"LBJL6^P(,@MR8,X!O<%Z(L+"88T;+T0:)N0'0XN!#W#=E0. MC8ZW5)I@A,R0)LL2GR2-@A'M-H5QGU(+Z#+13$T MW+,`"=E6@MG573EK@)[:: MYHJM#H.]]F]`5RK8X%A@T`J(0=#!^,.50O-5+0=H.9XCO5LVN^D27&UJ7C1G MB4XP,PUQ$DE^Z*^++C166B"Z&NU,=*VW`]%E-[J67>[X-@W;S"F`KSG7`_,% M"X^SQW?)],,L@J6:/BZ4TV`@BA^ON31AQ#_XJ9MJ_@M,[IKSN338A?N?I"C6 M4S^@T,485?[&U6JUP9UI::O5ZH`G4=)ES[Y$_'C-@"M5.!#%XX,P3[NU@(1%N@:-'8:(YO85M]?LC MKP/[*G-0:QOP#Z7F$SI,=2M;VK5F8F4;Y=93O66H`&_!U_2NP`G@(;^J@-]5;0R"_(VBZ80N0!5Z`F>_*\R&+%:OAT"D'VQBJUL M%4L%E&VTZQLY-`<8B._G%'W8S^*)Q[K&PKZ+1&,"BOL*L[00,5S5W46+KU2# M*OLO<6XXZ4Q`C0)F(D2K61D^!DW@GP.N%F!,KIN3_J!,I!;&ES;3PVJWP!FM MK]K%_;?6Z'QXW+M@9GNE^+0W/&!F1[!UT74RL__;#Q]L]MZP.[HS>5P4'%G7C)GCYZS MB)X,]OCEY6N*U<,@78:%Q%*`5CCAWNYCBKUJH;4YY]COTI=I=NUDN#2RCGOM2N@6R:GP0 M8&5\%":EC(^,UY59`O^Q5X5F'D_M M@6J#S$]XY13EEA'=N3`NMY1B`:`R]B#]-R&;$',QL)*"_9]8(&.Q^`DBL-;H MG4A$F&>&UR=CK@GS>R:@!W_OG\/,@(&85:H"9@03PIC!(D5_&XN64Y`42S!7'?#5P#]7PUPY="XC M@-'),TTIFX>0^$`(0)D($.CV\:D3PL0QX((++Q:`,$WP/%<6=`7PP<*=JB;Z MB@BWMA*%2>7*3^Q;A'-V6_@(DDH+\++Q6< MCK\02Y4**%`+C4XSRR_;$NX.=(S&%5R0*K"!?"TN=+7*]MCI:'!V>5K5E/KI MZ&QP>M#OLW:YB*'IO5>ME!DLHQ$%G9/K.^@EG+O9Z$IPABK/=!`PFWC5B=J4,V-^D_UQZ M;JD<74PO@IT=A>3E:L>?^D&FMHSG;X:CP\'QUE;O]+)_,.SABS@3J!OVRG'\ MW(F=65)F/UJ8^];("5+6$FW(UJ:XB-5L&%;++,G?,+4<">G`3)RX/*,`^5BX MP!+<>N*%N9YR\2"H&@T27DH"S$FP+)T$JPUE\E\Y1W0ZMM'I:,DT6``^1#X) M//6E7"F,55"N%8E&D7Z%*5F)'TX,=H6B'@]E0%N*"!KLP&@I(*#\Q-2B+$L( MJO'L0B5TE9U/;$S4@DU):&14V^#K-^LPD68A.><0@#%T22WEJXA52$S0*8F% M_^K[VM;PD'=)!NQ0F72`R].GJ-.8512YGC]7V5=5\I1P?PVXB`=Y/'%C7VP3 MU"](&R#+F_/!R5MTX>J[E@H!P1P:F#)<*^X*#)-@QD093U@8'FAE/%':5'!% M8]-IJPW;L+`OU.P`6!H[\SGWW@].7I^<#?]9U5K@QXNP04749F$2(A]&MW^5 MM,P*\Z!"EG%53-`BZB,!%0X5'^R2M/+FXN2GDW[O=>^HRO[];R8*+WJ#X<7) MX1`*T0,CI2-J`)O>Q<'A\.2G'OEF8<3C&*,8['M6JU+#.WR5F!O,K.[+AR>/J&;2]E8HELB7'GD3A"6Z2S.9EMN0&%.:FT27V198L)?N$>_$<+#K?[ M/PZ&A\=9;B+AN':$]2`<9>$?@:I:*@ILE:0A4O0AWR;KS4"5VMU:N>`T,=X) M_[1S(5%4SV6GTG;O@*-&)Z_/SB_DL;997:U]=2D/JZUJ=FA4_(CT3=;+DUR2 M+*=SO:5H_+%\'6KW.^3KJ/'NR\(IC'5O%LZSAV;A//O2+)QG67)[R6=/\-L` MN@#@*0##-&0_4"E=F_LIQGLIL^,W7E:I=2U,<"L(C(]VLKH-L`5K&[1>#95> MYH$\J1SU\2BQRIY\_Y"[+;N[&Z^W?"O<6XT.J._)WB!U+W*$4_2>9C[F)Z+C M=^/X`1J`T/^B?W)Z,AR,3LX.1\>@5%\4"EY(72?05^["1]!?OQ>CX7_/U9BO M/97RZ!QH<=O\V=7JFO:&.RQ&HZW?8#$: MF8(ZZA^^ZA^\'C!<*?7R@BKZ1Z*&*N0+UO1/7FI5^=L+D!C`=-)R@2IXD3P% M2]^_/.IAAYT3H./N+G[3,_S+.%1_AC:;0IV=#NR#QM?8QN^.CRX026B2)=WB M"V:PDJ\F7HE1*+58O"L;"8]2@_87SS"'YC%8W^R._TC M-_J?/]ER46""F=#Z(E'@.G/:>OA-NY%_<-!BID+UG(D!-$O:7R8&'CJ@$@&@ M?S^R_?$6B)6G@-_3P;3)$"L_!VI81D,SPO"U_7]ZZ[<-TZS]/;>^U+Y*OWHL M'PNF0^P'^-V!XT=Y&%!++]?\=@9LIU[5J;1X\1.B!R%'!=$-SVIE1$B]RHRR M[!W,@'!RF[_B]8C;`K1%Z@=Y_QL_>\1<#WJA[*SL"4QG>O9XD$9H;>*;BH:B M5#?-O[_0>_@R7_DBD38CZ]]NW4O#CK6&89E?9@M^RYYG'W;4>],[.^J='9Z` M%'IU?@$B:3`\0.9ZK353;&C5FC"\]67ZX#/'U]7#';+B>KHM70^LUPJ*8:TI MQE`ZW?J&NT%VQ[`:F8(%KU3<:!'>WXT/^VF:B*3+K`[=55G#PX3+D#Z>EXF8 M]YA=A]&2SOC"B9]=Z\FSQ&1N('%6UNH]G0TH3W\XK;RMLLIW6>W;?U;5R426 MA:/8DS*!Q55VG$UF*WW9;$HG\248EH?5:X;5U),SE)\NJ20V-MO^D;[S!+U4 M9.)%E$SAX!UD:,F4D"B[[,=GCIM@@_=X(,,!@'R^\<&'SE_\C,+F6L> MW+*$!]Q%.27P,NC`$OP<<8*A:)015V"-_:\E_K1,#5@F=;Y<&MF#;5@,1$RJN@2X['Z^MD!*DZS6Y5%VORQ.^ M5C9J/EI)R-/&Y%2SL;IC-_2QZEVKO;[C*7@5TB5S"D?+2R*RN;P%*T\XJ(^\\[K`.(+X M<8+@5AR-T$FRZ(B!?I\.2T`M<6!!EY>G*[9J1BL38C`&RF"6+&(Z0KAE(;_A M,85#0>EP0"R_KJ/E6Z_*(_8<*G_5MWP%N=R`)B.\/I@8;#DB/*%HA)FY55** M^/F5\FD-MMK!6NO#?C,*JZ/&W\40OQ!K+]9H4;@2DDO#NJ6( M@!^0=O_]`CJPNU'"4[Q1##;+#*2^[8Q M]*T??2+,D8"Y"+W(R,Z2"RAG,MNTVBLHG^XHI/%:(B72@>PR"@T.RAJ4ZB1P M#*U&X3100/A!3MMQKY=.[%W[08`V7H[N(ZE-E3XATLI-M$+<#7@J+$'/0&W" MXU2O?+E>*?0)6&G-^@I%'X:PW!XE>']-K#=?TVZLD%WQ11%TD=Q*8PN^^"QZ M;ZI^659--.\`DW0Z&[BX'-L"K8M(?VV45W6TB807+!K+G^-" M$$ZP=&X3/&P'PW@VE]:K/YMQSX?%!MM7$F;UR@"PUBB>0P]!2/63$TNN?CA* M_7Q7[$^FZ8Z$KM$RTB'H(&1'0*/055Q?\)5+1B`^8&*!["Y>V`ZC+[I"3,=Y M=$LTP4,\_.TQ'8-P,8.5BH(`++PH?Q$.G5H@31E\9($TXFCK]`7+9'S.$N%G M$V7_M[NC_VK;2/[,_16+;)XE?TB6"=`&R(-+2$*;D'LAO7N]R!A_B.(7(G/^ M2-("][???.UJ5Q84TMY[;9V`;>WN[&AF=G9FM#/\)9A3W/8D?%?FF'[K5NRY M:P1N>IW'<7G*U.96;#UV;<;-$I#PYL<%4> MBBM8A7DP/#N@TW/$4*QID-'AR8_C&26'AL60QQV%>G18X_.`SUNG5`^,"]EI MDSY"]63J#,C!9LJ&A.YX&!I#F>!M0=?0Q#WL8SP#<(-27AY(DKM2-3>^`9(] M6J[J%".OEZ93E)$/],//QJ!"FN*5_/2/6W>*K3$BV^F7FO:;Q+?A2A%2T@ZK M/&(%.;GW4!?`^]U>=GF#]G)Y@_O>M47L/]7-E^YPF^!SP:]"D2*Z"ZE55\RO MT`>6A%*+F26)JSJ#7@V'&*<2NC#0YV-)9=`0Y(0IDD+.X([G4@>1,B],G3S* M1D!4Q)'=?/0-(EU(`K?FEPV.9'S`99(P>=#DH;2YUT'LZVQJB9%;F#! M?$@YO0/#@!BO5A0:"D7$H]P(`V`%;&TK,\^(;F-(N+UUNR@]F/R.9?U[3X=J^\6F<*:D[#Y@PG05F@3$/^B4?HIPEI\H;Q6 MWITOU'%ZJ=06,/=Q^]'C=>J^4:[^FANR_;54955%L--'LW/\@C^J>CBRRR4W M/ZGU,`X[8:S8*-F(UF/5WB3G/5;GOTPNQNK@RZ6J&@C6<_Y6?F;-/&OEC";J M.>BC?0$"9H;`U\'/ZG5_^D']*^UCJ'4'O_3XR]Y@.OFEH\41F@_\8$MT] M38?G$U6-U;5"&+79VDE8CQ+__4G4K2=!=2V)UZ#O;"T<5M?6:J=BO>`@KS(^ MP_`%R7:O>H7P;GKRB-K+>XEI=5GR#'Z.T.XZ M0<&H)WZ2)<%@,IGW`,]>N_5MO_7+?NO?B"^V^JK.1\]`KIQF50^P!P,=)T1) M*\_WV8]'^Z\/G_;@]T'OZ:O]XY>]-]\[6;^OWSS[X=5!@*A&447)=<6H=.0] MKE`UJ;,D1FQU6\]/UH/MZ!+&#N#GIG@[Z!]DB\L_R!T9;#KY1_>^K!XEMS:+ MX)[@3@3/`LY)X$(`.RHLDF$?U1?W6?HR.#NJW,H75ML+YS?B1A$$;L/X;K*^JYHM]#.4.W4-= M)S-\Q@K:9C\;3=//H'3&&;7\%JW$B,#_OQ^\.#P")CW0[GIOC[;U\\Q3(BZP'A MM&(A%.-WXG(L_6_DG>#O*AC[S_=Q5R[^!#/Y$6C7)(J:RO/XF53@M":@94L: M;7B=KO)Z'EURAQ+47F$DHD\\-X0XO9@,85%0/=^^R?2GB[#ZAQ?]*9J$FF6!? M[&[O(+_>':[#E1N>MH)I:V!,7*2?^I@`5L0:O.YA.F(Y]=#&\%"`I9S[`"4" MGQ)(0H2U+QD)K9`9;\%%PL+OLPFFR^F*[3,Q]\G/2&1J86'&^II9"RM(_!61RSG* MI?(0N169GM[@FJJVK8Y`6S`[ZMWKI-Z`]R3J!D#L!@NV`E[CL$#0(A#_530J M"C0&PTD&2"U0(E8JZO!,%G0_=[))E,AKQBI?H.)FD[`($G;4JQ`VU4!5;C1D M0ZA8>A/.L!U?;7>Q+R]:PM`>-IBF_0\%[5!1_UC,=9R,:_;R<8+Q"%S`\=DX MG88.-SYB'A:AUU31^Q/<3&$GA?U4\<[*7[H19LWIB=TQ5B]W?!38?*'*L%,9 M%3?5V^-W^V_?!<0JIXT;&G$N<;"#]6G+<%88/9[HD\%/WF^N<'2WR706&B"' M&1,B;P2R[EUY--;;@_V8_7$,EF8*W*PAJ7&N>89%!S0@?"*>\YP.#Z9S>J@P MP_0/!K?JH6PL0:.`2[YQC)?&PU+V]G8T4D_*D3+CT<5R`0B^H:.^54\U2,Y[ MMJ27KD@11;#B'":CS>X'9+0+5ZT%7\[95AS0C'XI>Z$M\&B/PS1/F-B9#H:! MY0IS-G'2YGVG;+Q]=7#TXMW+5B=@%I3)E?0)[CEY`D;P@VX91:ILW@WX).AM M!2QP7X6>A=G#\-JY99WE>!'9GMP/K[N4$!LC8*U:BDN:G%LY\3'_>3:_9LO\ MFD_H7"\R6%B!:@1U6[B9;.TW^P MA>PT\^=FK'F4^@'$Q-MK:*W1\A@$J,?!M#_\D%H`,*@CP5\'Q/%\.KX$U8+U M5W[FX;K&Y8RWC)71\`+ZWD[D5GRKNL\)ASU(/';SC8T!4Q,3A2^0@-@[2O=: M$?^5,'X)(SW.8CS3I=#NHE.<,ZSO)0U'\AXR6^M79AL!&P`&-QIJ\*2:'M`E M)]1>RZ*4M#"#<*>7[2F=#T.JCI.;/'M7K/)]WR6QM-Y@:Q"4MNU@6_FP)S2L MM&D5FYI.DS&5*(62C*6/'&O`T$4D?K[93)M4/8(,*#I'.>4_%S&>:RMJ>=6B M#1I1T(&Y@]>0E#Y.<"T3!#V'G7LM5>^ABC>1#Y?=BI0^J"_+)`6T1<4@#_15 MNO%>SA_I9;2R6?ORP?NZ"`H[';=!U'$5CU`CRFALO=[=0SGFPEUN#+^>8[6. MN:,CQN1T3&6HK`8DAF&&T-_;]H17JZ)L#3%XA"