From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4631 invoked from network); 13 Jun 1997 17:39:53 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 13 Jun 1997 17:39:53 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id MAA10723; Fri, 13 Jun 1997 12:57:31 -0400 (EDT) Resent-Date: Fri, 13 Jun 1997 12:57:31 -0400 (EDT) Date: Fri, 13 Jun 1997 18:01:20 +0100 (BST) From: Zefram Message-Id: <20348.199706131701@stone.dcs.warwick.ac.uk> Subject: adding builtins X-Patch: 259 Resent-Message-ID: <"68Vhy3.0.Ud2.wlNep"@euclid> To: zsh-workers@math.gatech.edu Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3241 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- This patch makes the initialisation of static builtins and the dynamic addition of builtins from modules use the same mechanism. It replaces uses of struct binlist (for dynamic builtins) with struct builtin, making the `added' flag one of the BINF_* flags. This avoids some unnecessary memory allocation when adding dynamic builtins. -zefram begin 644 builtins_patch.gz M'XL("$?EGS,"`V)U:6QT:6YS7W!A=&-H`.T]:W?CMHZ?,[^"<<]M[8R=6(X= M)TZG>SR),Y.]SF/SZ//VI+)-Q]J19:\DSR1IL[]]`;Y$290M.3-M]^SF3!M1 M)$`2``&0`)6MK2UR[0]W!@O'#1UO>[AA'1RT=^I[.U:#6/5.H]%I'6Q8V_NM M5[5:;4E3JV,==*S&JZWX#Y;);J.ZVR:LB$B@:!U8!!YKKPCYRO&&[F)$2>DI MF&Q/2K%7LJ^Y/\.*5Z_)SA9YRU\&Q/%(.*%D:L,#?:##16@/7$JV=J`=_`M" M.W2&\,M?#$,B4,G?P2^_DC?0Z'?X#W_>GI[?75[U3DY_+)=JI2J63^Z.N]?O M*U5#"X%$MGM[>]J_.3TW-AW.IE/;&\FF1Q=G9]WS8V-3G(-LU_NQ=V1LY,WN MW=E`-CN_>->_>!LUY`,IEWZ!!O4J&3C>74B#D!5J%@.Z>WO5/?IG[Z9*SF_[ M??[_-()MVQ>7-P+9>.$-0V?FQ1&& MT+BT**61#>XC`H_OX^1]MWQ2`Y_:'\RT854,F6)5K_O/%>@>:324%(+>CZ##$7ML<-BCXQ60DY'CKPT\\V`!+6A.0AQ=G`/8;6\YTA$=NK9/DQPF M?Z0D2+Y*R.;CG`8TC,O4U>W/8\?UP\5#IF@!'8*($%B*H?BX!#!`E17!4@_+ M,7DZ/KWNONW#S$OV>(EX`ZK9)R]3*@'+Q0_GR\E'AY.9XL?5Z?F-3KS>T?MH MM,\UDTCA; M.9^L4,[*#!2Q$E-&%S/">QJZVJH$OHYBL'3H=5VV9I[\DA%\-@\UY2)>,#V; M@[83.YAD&E"LC`UF!*(?4U;P[RMG/*)C\O/U^[OWX`[='??>WKXS=>-XXUDT M3OF&O:B;QOD5]4;.F'<21^8$X]8H.E6,LU;PG MPZ*:?](&!`6=^'[_,G,J:MU?+=,@;C8\M4=+E+;_I)/UPW\I)9Z-;>:YCU_" M+Q4:R60[?"JT?SVA[NM2VW_,!@T7OI?3-[GJW=Q>K7`M`YKAZ22FM0('F+YH M/KP<8^QU#T5N!9J),\X:#%;E'LYLX0_IB[?)P2*84T^3-O%"Y]0X4[1P<[]D MJW_3NUY!C3!\'(::U>'E6.?9JCQTIC3(V.9C54[5'OKV/.NPP)[GY0<>+&CS M*'#,@,LK@OPTH=XP!ENRI_,QSA,4OAE:$^_/O>G,=G,74SOX$(V;%>6Z1"37 MV9">/%F1L!Y7#I;FU.)\[9()6'K!J^''1OBX6C+`VN"(+AE\IC)A53%,J_"L M4BBWYWE4RB?;"3-]OQ^ZJ[9N7.*62^!P.O\XSG8=`<1?CF$^91(\-+'TT\09 M3E:M``Y>2NP+CG\Z[YZ='B4Q/DUG(W'8)I#*-W$YMQ?`[-RYC#45 M[4@YJB1OB$<_H9CSEONMJCK;AC>2`(>1\QA5UKY#.")^WA`L4?_0T(Y.Y^$C M/P*'=HC1U`K4BBL:+6EECT;>;$1%GU#";O&-J3'L2;7&4,K1N)%JW#"U]NET M]I%R[&\(+RW#+@[4&,`;(DK+`/A)D.R`EY:U'_N4RLF^(5@2M5D`S/$5$&\( M*R4@!!`06<8FRA@+`:F0Y2H)G"+&EWC#I>9:B2BZQ(V*KL$=" MBD5L1`AS-\[/^K='5V_KS!T&[Q-N?2/H$-`PEV7#[T&Z$4(Y5]H<`9>[3O/ MGK+9;G`W55+].6^GW_>NWEY<]U(=$R<`BFF=.UZ!/H'HH!#MA1LB'FA/"3K] MG/+X$W64POJ\A#D)&=-YDYL7$5W*FV7L6-*%&='N\7'ON"+(\11@A^78G+5W M>/@4^N*U>*O$,QYJXR(IJ<2F2.3(!5B2^9-%# MC#EB9"P><*S7.XUF9[>^86WO[:K89+J=5>^T6AVK:0Q,6HUZNVHUK"8/3A*R ML>$$=W+)O"'6(8M&Q@P=-@)6RV@2BT!*"!`[CPYI$-@^X_LF(@11W"SK#*F@ M2O=&+O71D:HPC$@E1'<'5G(!%B()H,A.I(E$*#L(G'O&[TF2IYK;R:`V-MB^ M[9"12LY[3P9A_XIY@[@5FOEKT7B"(S18E'+TKDJ&TY'MWPNHYY=330JBLN$I M::Q;':L!TMB((N49C2VK4S_H6'M&D=QOM*K[!TH@\4>LOI"-".?RJE;$>:D5 M<8L*8N;M\8DIJUJV6U0#=M<2BNJ08UC35S+`9OE*M5R^4BV7KU0KXBO5BOA* MM4*^4JV@KU0KZBO5"OI*M:*^4JVPKZ18/I[YI#S0%$%P*.TI/KQ^C0*W86!2 M3$D("'Q@\O0L)=KD/>G"KAOH6D'OR;004A9;3327]U1;PWNJ19Y,3=CHG)UJ MWE.MF/>TK,\EWE-MN?>D\4TY>R#&F7*/4:V6L4C4P.:R,JE;[3FIB M^(_D5TJ".1TZMGO'2L$OO\;\)$D^ MQ61Y?D6\Q71`?=`=BP`H-7@DPC]1+0)P<^Q0O";3F4\)L\I;^-X#"54^T#8A MY[.0\O92*9%@,9P0.\`U.&?'JJS:!C3>+"02%^AI'UT@.JJ2TSU1(\_-"+&X`,M*-*+0X.CLF)3+J!O+6Q5R M5R[S#4&5_Y*_J]"@`AN3>D7#(!+A?JS^!"J(':O!HSI:9955K1OC&?1S5:EZ M5`8!,RB#I'@P9T+E%/)I<*<8D^[`1V3:)CN[,%(OYLS"1&5&4F&B548^8:)5 M*I4P46_,(A1M?ANF"J\_S9@FG0 MER4+IO'ES15,0[XL53"%KU"FH`FZ0*)@"GS]/$'I2IGS!-.]%$@39*B%&Z\V MB@I7\2S!U*R_<))@JK_".8(I#'E3!%.`^3($TV!?/$'0T&6._$`35-'T0$UR M"Z0'QKO-DQV8$N/$R7H9,,TX#Y#K)!B:T:R37YC"5"B],`U=-+O0A"%W MMN#I!L8P M/EYXWVVHF(6II67QJ_%9]]W;!_*`?>G]=H%:7F_?Q`/I*`^L7"%#&T_A>7PB MG&$=Q@7H)RWL<(KQB8!0YWZ"H87[Q91Z8=`A6X".;!%28ZD:/*(VYL\1/,G] M$Z%CZV*+\.!@.:"4L)E56`C$G]JN^T@<%L:K;^=`AR-*QEWD2'./,D(W=3QG MNIB*X`DB4C199[)3^R$#'2G7+#*EMA>0A>DHTH.V@'I3H]9P"&*^T01 MH[(G25BOK![=?!8$#L8G0*\@V6!C1_T"\TR@DQ%8CBW(,4B6BV%$!V+)?;J` M/%%_AN&D8#'$)"'0GU@:VXZ[\"F(R,U$!'O5=-!:(:TC=*(U2A6/H2G9^.2$ M$R8L+`@X=F"@3-AM%WW@1]`73A`&VU&8C(AH*C[!Y@#P:TN.!YY85@!&IYB0 M5\E[+I\8.R43%%)>"[(&TA"(@OT0%;"-`VX51\?#PK(D0\'0_>\XN41.S"81 M+Q.Q:%-B2"R=@<>D-U4('^"__IH%RI/I9IPQF.85M=X<>!4VG@W6[Q/L^V'S M7U9YIBPDS6I9]!N;A/YH,2_+;CU=GW7[_XHBCR4B369*!`4#/I-^]OF%8 MY.">%3EDLM8;SI9#K4*;(>;]X&^]6C`*JL13K)(S#BOYDU[)&8E=L@=998KY M1T#\542B1!-C6D`$+=Y%X%$C+L."?765#\;L1A=LPQ16KS-WE>)$L0>KZ\+* M%MZ&B@8N7`>3HZY.L6(;$I^$(H=K!N'[E>H".T9:!>O4>VV*OP1*CO M0Z]R9`S9%-,,[YDB8'M[#)HO`HQ3HU3:`5,%+JQ\\0H5S)501!9V"7)-M)$Y M7-6),51)`]L$,U`@XA6+?K,7(REA2G[5I'>3ZJLUGLOI)]2I95UC+ M)G6KQ+2&CNUZ*D,4VBA,$H^8F$_GKCV$!IQQX01E1YC^[>S\AJ6*6ZE0LUXM MIDH',L,GJ4TSDZ>SU"HH-J8U#6EQ97/RGFD@:B0)';M2OTKUJA#$%.R742>Z MSU98G9S\OSK9RD@,KEIU2^XJLA="P%V8(8PB%([,6\?KHX)'UG'W!#G%UPDG M!KZ;V".T.;`C@Z^92C@Z?5KX36H3J#)U]C3+]ZO MS*0[X_(@MF:DQ<`E@XAE0%^VUA:UDM_:=X!RS!Z8^Z4<#&7;69WRP0;2>) ML\1T3C:6/`^.#&Y7-4](DN"/-QH-=%@D?H/#"HH_,[NRUZCNUZ5=*<9WJ?V^ M*-]E)ROY?E*`[W\U?T[R\<=XJ<2"E=I0&?S()W:YZPX-XR"^Q>"/W!_0[990 MR1I%^&3D08\Z[.2@*B=>*'"1`8H6);:-9IH3]!S]Z,P6`;@"@\>8XZ'I-J&X MXULWIJQJEM"TW&/P9DDO`=2R4)0"23<,,=\>M?B(XA95]RR8"6!X0AERPV&E M]I,Q!^F3`\H2]2<9V".8!^MYX<',1LZ0&R2P-6"]Y+[/X#W@VCJP0*DVY>): MBU4Q%R-KUR1=>^/&*6O7(/HZS)0)MFGZN[$\36CSS:N#JM5LZ-=\ML5$P+TGB>HFW!!.!#M'F\:MM=1"LAK*77UBPC&Z]NF-0 M$0OT"PF*]+-?Y&/_GQ04HT9J[E6MO5:6@\TI\C?VL3%&>@:44VZU:U66_+%2G9L.2J%B'JY*6_)25RC0ED[)X^[U!-M&_MMJLM6$SJ7KQ!H/"N(;B"[(Y3='=EBV_`A1AM M",8K,=IXECLNL0/CAV0%>"7NC1L&HZZC!YI\LQU%>ESZF*+1,+:UK%:UU;"B MN_%??.XFV_PE9RECX.QL.A$`;[8[S7W\JL*>"H"GFEG0K-FIFZ_KM5O[U?;> M;O2]=_Y"[;+`[6%7?*.@O;RBJE^XTORQBMI4X($U9D[R>V-:4$Z_0D;D'3(B M7[!;9/@I`.,EM!B:>H7WE,@ND$M7W1[UZ$-XR#Z(@$\X%S9VZ#%'M!JF8R1< MVZJV]RV-<.T&O-C7?=E8!)$/0`9K\0AT\*ABN(G8K;:\Q,W/YT/^17UU;4]\ MNPF]L:H,?`JP*L;-JA@?JZK0ICQ4DR=JY%_B:Q^_BT.*-1&Q+X7H=PG%G34- M7=278=`%KP)6^'=)=J(@!<S3D])H<`\+SWC'I7I.R]>VW]4KJ1B3T MVK^]QL2LC0UL8E600Z\?'I_`][RW70/`U09OVF!-62C$"6);^-_\;TAY/"0U M2FK&+F7&*T>T6XG33V@47MEDO3CJ;R>HD'[\KF.B!W[5@F-H59*U(A>-5^^E MJL4=(%[=KF06L<[*FL&8'AY^O3=WWYT>"ONJ6>+Y/9AP_@E`Y0\4&3ISIPKO'/4O.;V6(:Z-2<4FU(O;X6\*A M/XS?D8U\8"%GO#H!+.^6JC,J>;4ELNRGKS``^-1.W5XKD[.99Q;1RY7 MJ%(\&@81BJ\)?9)]HURLI^L)[B')!`P7)OPX+@WDW66KL6^!%.SOQ3.UY-_[ MV/%9EDV0_B,ENYTZFJSHFOD*$*O3;'5VS1]@:;7KU5:4OJ4NDN/8-]]WO^_= MO>O=7/5/STYOT$_9Q,<[D//3\].;GX2EVDS^[1'!L@&S9W@W6!T?_EYB(]1N M/&`QEA_'4AG%N>]S5<$M$H"+%&2DY!*07A+42_MFFFI-@!PF6Z9_P"/A>L*'`DAT]H7,L"-FM\!MN$'AI/Y4>R#/16@?/1> M^T*78)3K>!^8&^=IX,BMF-1]K2,75"BR.("/"*FET&(Q4\:)65#E](6@_LVF MGT/B\Q,A6]K.6#0AV!G:1T+$F+3=WNHQY1&*O"-;S17Z8$_G;C9? M+"O%&",(LJ8-_\P.6*NZ%P4&85LVFX5W`@WN7/A?>@-]RJ+_[`_`\54$=7RS MN_U*17R+,5'THMWZYR]BEITYO*55S.2SD+S\W+/(P?;"[GM1RT/=]67+)E+VK^^Z=Y$'&?W1C5/TF,E*[I>TS]G MUQ8=I%*R,?C3&`9_JD]'C0&FXR?6@H8A-@M63,V"`V:,(7CTAIJ;CD5>$H2V'Q6JTBD;-G?P6NG%&2Z.9K&_4[3[%_SR$3+ MX+;`KU@JD`I\$FYYL*,R[Y5,EV>:E;"MYL=!*6.OH?4H%LO9Q?%MOZ=%40X, M[HP^UM=YUD+R+Z;D'5]5_1V!=4BRJ>=63F4BJL@0D=]CYP&*Z&OLO)Q-&2-7 M&_O5UFXB81!S+;S%?.4HXT%@3IM8]^(F)'($;RCL'L2SW5;VDXB;%R;$IMF3 M52.3*^AGE^Z(SR0:%U`+78SH+"2S.2Z@@TY]W[Q!K3