From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21972 invoked from network); 22 Feb 1999 10:35:18 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 22 Feb 1999 10:35:18 -0000 Received: (qmail 2973 invoked by alias); 22 Feb 1999 10:34:55 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 5465 Received: (qmail 2963 invoked from network); 22 Feb 1999 10:34:53 -0000 Date: Mon, 22 Feb 1999 11:34:10 +0100 (MET) Message-Id: <199902221034.LAA21162@beta.informatik.hu-berlin.de> From: Sven Wischnowsky To: zsh-workers@sunsite.auc.dk Subject: PATCH: line building cleanup When the completion code tries to build a string to insert in the line it uses the match specs currently in use. These specs are stored in a variable called `mstack' in tricky.c. However, we can't use this variable directly since the completion-adding builtins may have their own `local' specs. So for building the string we have to keep track of a different set of specs to use. Previously I used another stack (`bmstack') for this, but after playing with it at the weekend it became clear that this gave up too early (I had feared that already but was rather fed up with the code at that time). So the patch below improves this by keeping a list of specs to use and trying hard to remove entries from this list as late as possible. Also, it fixes a small memory problem with `compadd' (if used with `-M'). For all this I didn't have to change many lines, but the different match-spec code allowed me to replace two nested loop with one loop in several places. The re-indentation after that made the patch quite long, so I have compressed it. I apologise for the inconvenience. Bye Sven begin 600 patch-comp-fix.gz M'XL("$4MT38"`W!A=&-H+6-O;7`M9FEX`.T]:7?;1I*?Z5_1G@\**9`.2=W1 MYO`Z\<3['&=FDFS>;G:>%B1!"1$N`Z`99:/_OG7U!8"4*.?T1,^6P#ZKJZKK M;#07\7*I1BN55^__=Q*]_V,27=1E/+^^>3)77Y7S5N&CT6C4U;CW19ZIY]%, M3:=J,O[@\.R#@T,U.3L[>Q0$0>=(7H_)!^.3#\9C[O'))VHTG1P.)Q,5X-\S M]P?*6>:EJZ)C$6?1$[;\/8XVJ.JSC.30H5_-:S=,DKFHU2Z%X?CT>ZJ?) MN6GYS&MBR^.L5E?AXB))SQ\%S;8"WCG."-`_552^CNLK54;+J(RR>52I.E=A MDNC%J'5$RR%(@_OVJKQN@"P!Y66<7;_$[BXLB.#)T?')\%@%\/=H>'I`*,:? M_:0LU(%4&4X"]1\$\+2[T@%7_F1XZ'"KS/!L\"OX/ M1H&?]56<1*H?#A04]&"2?CCZ",:.WZC''ZJ9?O[I)Y5&*0R-U74X&V(5_9T> M'0]@N!X.QD"K,="N%\*RH6T6_5#CQYFBT>0C-K[E/]('>".XQ:5T(\C0Y2[< MW($7/4[_F>8/Q(M^=O`B8/5A&0`XK%^6B.M?)N%E1>7Z>6]/JG')20(;AVOI M<6\/2]>V=,VENDO_L>X$6/:IAQ6PS0C;^#`8N/WTJ/_VH1IW]EWGY8+ZXH/? M][%=R)YZ]L7SBY>?/?]Z8-?)PR>ALY;0!UL#'FZ$/%K6##D\#`9WS/^/%W_] MO`U`Z0!0=@-0;@2@C"^O&`)Z&M"/PV=/%PN29)?QF\B1?B`*L%3+&]J4#89Z MD\>+1T&X6%S,VAR56BX2T94G"V1_W72H]E_#YSVG`.1#P%U0O/;/50K_H$W* M6\;NSO[CU#(=5A,'?`0,P!\3^>A@LI\Z+&M0[7:'\M$$"Q[+"`.>D"08@@I- M5)\7,P#YG"3YO%_%/T;YLN_)?$(O=0RY8OE,F@2`>P,Z[2K,+J%QG;.HS*H52(;Z*JP]RE:L"N9Y M5H_7-RY=#&/E<-]1\4T@) M*L':,(1(Z())4L,`)%^)3](*L.Q12(Y-"V\+THKK" M]J+)?+&9%D-5F-X#`K*'_0HKZI%-']>6@_#S:QKO-3?"YIHCHJ2*L,K21"HM M8R`GH+7RK6>0K`HU1Y$H.I.(B_(?=N\L`A1645D#"PC)(U`;.6D)T,O[:*C@ M&("1G+D'113P#K2JXD5D>"I>+!*0OF`,+%`H`!M6$6@EH'MR@PBEP=)54L=@ M0ZER!4P$LP#[E>&\QL7HY@LUNZ$APVQ^E9?4['_WWV-^4UIH/1%;XG0ZG(*U M-CD^.AE.Q\:8P''5/F(;X$?+0SG\@;L64#YBQB`V&3(CS.YB$.KV`!:A?D1N M+-H@8HJ&C,$N.-=CK-'ZD806CZREO/=!=Q)$71!H-*O(>$#(4#86_AX(;-C' MD2$YL`MQ05Y%!NG0&6P_4`6A,!1+M">Z/U#X6RS,281H"FH6$DZACL@^-9G4 M61UE=>6,T(^?@+&,E=RO`B:MUY'(,F&*@1X-U;5:QE'"]J<,0\+Q,JH)RCZM MV.`(=B4A08WP80P;4SJQQ.WOOQX8H2LUV#IP<&XJ$.6CK@K#>?(9F6Q"GVZU M0/+Y3AO)VSB/Q4"+Z1S9L0MS@239C;&@PTY,!>T?S%#0]RV8B7N_%2/!$+LQ M$7R7%X.#P>`SU.)J?#HS.CBVY]Y1/29ILA%9FB^U6(#N1^-6NHE]TU M4^]!:DE+C\=6?+@20UO,A3691<_T3!OPJWAA7HDLB!5?6W:PSU6%6G)$H59& MGD"C20,U@8D3H[IE4"K@C]CEQV4917WV`ZGJG.N(S<$N9[-@H'YDNYS=3^5, M,A5](-O.!:4_2Y`.P#TX&K$/=>3)[&^>D?HEX/17,UZ8`1L;?:>G_"<,^=[_ MC-\[MTLJ2\2=;F"Z6:LF1S\!XRDC6T/&8!GQLM!Z[I<)2AU8C\8!-2NYT"TJ ML`CZCV#323DOO(=AC.*F7Q9Z?08H:<=]=:DN++5D$LT40* M=4>G33+#0M/&ZE&'0K=D&JNM3#;[O3%9L&F?W\\2Z'69`;W==W'0$Z/B[HT< M6(S=>R\'/6OU=J`X<*C`6,:27@>&=65YM[PN09AMH$T*/I<(H9KE.`^.B(0-71#>RQ)ZNHJWS??:^K!%%E/8@N%`&B/1U`_Z?QDI*+M>_C9&O[125,\%&3@[L,#\@Y-:ZLS79U)M05!;Z>HMLA@HS;'_,0Y,K)8L512 MYYX5RTT1G@P:9*8IEM29U]08-+@F^)W;]&&=F3"6D288-P4^RC`16^=:OE-+ M?LI-_H;2/[I7_S$U-_DVV6"#QMBX.2]@_,H`(D.ZJD/#9>>EO!I5ST#(7Y/P MN]66.V<2B#]TI9;D>O&U#:P]SU<=K#VD*%BVN(3W7Q[(>NO1>!`[IH0:^[0Q M]2Z$O:DW[P9-Q"12/=KZFF=()9X>G6%Z)IB<'4^&$XZ-`9J3(#`Q3LTPJJM4,`[,&YF6V^,YAO:R5O[L6\*7^M#*[SDQ=!T`^)F^5I5UW&A\C=1Z:2%H1?LOSC/*IU`L19VRTNB M.";.U'*#J$_;@Z(.3K#;[\"F;;O-73*0R6"F?3 M@^%D#&)A.IX>#L]LR%QBY3FB78%99&/EL%2,E6=K+I,]\4H$;16FD95Q0SR7 MQ@D`G35F%O]-(NSO4SX+(:*4@Y\(T_D93'&'=%HK2HOZQDF+VDS(;".'#)UA M6EWIT$:29Y?$(V'F9,90<51UG"1T)L3I"2:;'"Z3H=E!H9,CQN!@"'2ETUMC M7V?V"`C$'Q\Y`,9T<[9OGX%@=G%+F'5&O+.^+F]<9F`R\'DXPM[(WU\5BZ-] MF[F,;"),).6V*$B^WA!R!E"^""4S-5NA_X)'=4`;KR/'=2AR4,VS)')E."'2 ML,PLO@3+(E]=7GF2^W>4-N%SLW(2A0Z-NBNCY;`[#3Z;NTX`T2(]=9.2*K=D M:*WZ`:'.#!RO;-T(=0+8_Q450Y?P#*H6JQJ04E"XWX2(&0,E5;[V0J&,D9(2 MI[SC0E6M9FZ2-JYL<]R"6JSIG>\ZQ^%BX376:73:9+4%QT1AJ_`-H`BDJ!>& M1:GJ!73I6)J;_69&'@^=0$$QL(B$_NYI"G=4F-$I(^83SNLEQI#/G"9TS(D; M@/W=J$R&6L1DL'M".:7H"!Q./UM,;`MC>RNV"R6_S4;-]*H)Y08O:/Y^ M^N+Y\U\JL_,@[1$XO+F#YG"[W5]K<*^':`SN>4]M\7-EN38IB\!NU%WU16#V MX0:5<8\,6DMKB%FXB\80LW"KMOC=A.1WTA&RLAWTP]M%_9OJ(;!B_+X:(N@U M[#`#EF$%JR<"*]#NTA&!:)X[]8-NV*$;;!["T0N2B'!U0M"2CAOT@8,\5R4X M`Y(Z4,8.&?`S,9"K#:B4-(&I-\J`2EQ%``.WTW+9VDO=Y4E'6BY+O-0=REW2 MC#W/@=GMI$&VQ>Q[!9`N`/MNIF6;.Y[TS)I MIB7U[G_+Y'>V08'?>^^_`\GRYJ;?INW>%?5CM$C6I8UR7]-D7=IHN_IY!_:K MN]NR#3LX;^W+;,,.WK!?-QT?F$[&)YAY"*93?#B5%`0!FXQ&)E0)<\@G)U'] M5A'#AX4,WR(FYA_+[0AFFQ=%[@I0M](6&^/?14?"0IQ6]OV,:6Q,V:$-6EO_ MO.MH5G?&H9=TY!MZG;F&]K'1H/>63GJWE_XPU[1]`G,CS8)[I8Y::8AM":JB M(P]AX]7W)9[=E9WGB+HS#+SYND\8=68:MNYSLV$DO3"=')[BB^;3Z>&)'!AJ MBGK.@2LKZZVD-^GQQ&EG,L$V66F-+O&O%GE4V9"'9WCAFVUE!"BK(I,.'PJL MQP<,*_S]>6#MF81X.\'J*%VDS'>H2LX%D-,Q`W(Z,8#T.J`P"D`9^6_`T!K` M:^R`X_I1@!^T*K"IR\0#SN\8YOE.M!TI<`;T3``]F_[B@!I0FKDF#$QDN1SP M(9<;#&\YOR41#89V.F9>/)@X:/4)7"7,U0982^`JT2DYVXQ%32[),3F$%V4+ MJZDI_:X:.Y#V%1\B8L`.!+##Z7#"+U"Z[^Z:HTI\$"H?RHFH;$C'H/!@A3S1 M>0HEK_0Z!S#D[,7XW-;(T0LY=8&8-GW\DS>O/OO6YOZQ%?&RN26,BT6@)I_-=4B6S.ZZX`?\[8.!CCJU3!]!#(=2IG#!G3,#M3 MF5*2(JL?TSF'-9GAVXY$C)P7MV^UW93K-_((`[?.12/+'"ST-8H-\^81GM;0 M[S/%);Y=E8$T+\(2+\&8@1B6-YGP35M>R=$!G;B8'AY/__5.7""+MUSGG0]A MR"AK;Y3.PG.[1WG'_+U=Z/)/U'N9/3TAWYC<%N^?GN.I'-C_@%?(JP> MFJ*^3P2U\`.HQ>[Q4QC<0E+@"P;K9@"U>&?BI[_7U_'N2%3NL%&Z9.SO_?6< MZNT2=7=%'`L;<"QVBS?2WG!@<+>''?`7BC>.NM)=H]\FW=4ABWOOJBQ^<#;K M3UG\@%S6'S74/=J0FAK]YJFIMCKHO9/JX*$)J#^N.G#33Z,_TT]=>[*1?AK] MNNFGHZ-#NJEL>GP\T3>5-3-._'+A@D,T?^:?.KV\5H1@>UJJ,Q#4"A#(!AAU MIYY&;Y-ZPO=/@W_MA%2GUMDM1]6.%?54=]JJZ$XG=0=Z'I2`:E%T]\S4R<&4 MPLRG!Z=>M@?%Y^MS'3+2)JL)F_O!<8QZ>S='9A*:[F@$(^J8$C%1,]!.$72; MYLB9?.852UOL!;=18G,:X0#31<2LU7-;=+RG)BX>:7@83 M@KZU?G%=DP<+KIT6"5^':7M@P???NRVPY/I:(#X:,\3'X],&Q+<-,-``VAV4 M9J\[P#DY.1N>`CBG@,!3?%&":)17\BF%;PQ]\K"-\>W6&'V<5U:=H1!:) MY(PV0+(K$,%N0'"KA/)M^/,TC;-EKL)8/G,B+)G;78(_YM[S1!/V['AX<`24 M/1L?#@^F3%HDO1Q;1HX(8[P"'(<_UW'@D22SOC(7(&J:Q9G*5WAD#"_QS9?F M(EX^1&$<;2QEW09FPA,QG\PE\E3H7#N,3U*,PWZH]N`)"W`LOF:>-$"V2@^/OAE\3'+*!!%"(T:? M@AC][-4W]*)T7%51W7_ZS==?4A$:^JLJPN&6!9+[U(0R M!%G8&2SL"QBNO'@3EE1E;KA%AEG'^![(#,DH]W/CO8IRQTCH?F5![7^IP3I> MP,@\$$AM;!MG;_)K?;<__GSU[8NOGWW^^6=/__95'[OBT*PXL.SIRY=?/C,Z M:7?N=6XRU>R+L=4V_TIIBZ.XW.7@P`9BB>YB:/D7DFO6HL;;N0]G\-FO?4L# MSH1Y6CQ(BK!0DW-X17G2A/Z/@1O+SP%1M%WE1Z<@L6#VO;LP-H' M"4MNZR8B*)QD'_`)%A#!]BH;;"[E@)=61\854PBEMM,1J@;N\1WW./ZJ2&*\ MA-2[*%;6KI9EGIJ+7/#0@/TF#TL"!$L6>7A*.OP,?+UCO4@7DL*#Q!Q+X3;> MC2P=J$1O`30C1E)P'/4Q77""]YL4I.UHF>H#X'3"#S#=8]*#`S,CA3\06IBS MB7N-7-T.._*JSL!`PH.3A^.)8^4AS6LKC) M@`ST"?0QKJ.R%S`S&^!%0F04C-S;8$!MXS#$*^"7%)0NL5>_`%YHR"*AJU?0 MXY(N@$N3XM:CP!P??4BJ'^="NCC>B3ZJI$&$>?`&&"PB`E2,:54_/(LN+G\(`TAG91-84%*["*0JA;2YQIVRBJ&K*9V5-[R7S8H-'?O_GR MZ\\&M@69/'M@\PP&')`29&"$L;4<;J&M>4.*%)D)_U>`-SFMY!)N)(94X#3G MILTJ7G)5K91G=S4X""BB"V^^4$Q_S5ON`PJ0R M#9O5^W,Z&T;L6R=S4RNN0.7)KFJ`;D'$B`Y@%^-E>!5;14[@%P4-`+E/JY*H MC\P#`UUPT%($D,AK;(E$2>82F93V-9G][8`P]R;/`1WD_WSZ#^DGR^E#1_=R M<"_X@T#.=&ZW#5D%;#)+##1JPZC*R77I40$WCV$HV7&@&4!:H(!!;-#3H(&/ MQOIPZHAXN!JZT'KC-@!O#0&-$'P9!W[!)RV$VKD@C$AL7J0^(M("0$?46MB+ M@"Y]TW"DHLA@4O?9--&MF:Z)M6T3)JR5C?&"[7>8LI,%MBPBN(,=G&#R74R, MU`8/^#[\;JA*@GR6^'D8_Y3F[IO!8%LC^SX[4&RA!F]U@7+G#E(>:"U09= MO&FW8MPA_@;:M\_$Q1HSL6!&-3")P;0R*J)L(;L@9O0@UZ/^.CP]I=#9$=JG M]@XA_QOV\#N$E/-E0ZFY*]30,WN\RATER2?U957(_1]=O9[>.;@43Y1G3_HU-G3RW)R'#H4-_;]K'>-KJ+]WB9\/5P[\7EY#6#CMS@`LD-5745)8H\5RU=%N7Z. M=@816OEZ*#LFKD.1KCYB@&NDI1NUHPZ6I$.]L?#R< M'"/U#L;&NZ#O\TK/O3.1")KU]W4,96;=?>>K$[VPDS"NKA_[]>,G_C697I6= M;V-,*;"$"Q.\>J_$.Q8V(\I^<=DY;T?WZYQTM)U$B[WA*JU\($VI$_]P\CZZ MVL9!SOU0W'A#QV!+X$;B1G*.OO&]8.NK>'Z%1B>VL;>KMK\7DP^LZW=?]94& MN=SQ00?QJ<:.83SNH"MNXWZ_EGXMI[E^P9FP&V=>CL9'9]I%YUN*H76*=V3( MFQ^AOE1"/E-(1WQT$S2DFEET.4\I+-__RR):AJND_@OG_='ZG,\);?@VQAJC M2HBNO@BNHZ,3N@PQ.#H^.\%-P+Q?-8-=5&8I-I][M&[2^1<)V'IS=H=M`_U] M9CK.UB:7,\J`GP_%,+9S1,OAHS+D[`7'_0&IZF0B-#_`[XGEW