From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28803 invoked from network); 8 Jul 1997 08:34:10 -0000 Received: from euclid.skiles.gatech.edu (list@130.207.146.50) by ns1.primenet.com.au with SMTP; 8 Jul 1997 08:34:10 -0000 Received: (from list@localhost) by euclid.skiles.gatech.edu (8.7.3/8.7.3) id EAA15417; Tue, 8 Jul 1997 04:15:52 -0400 (EDT) Resent-Date: Tue, 8 Jul 1997 04:15:52 -0400 (EDT) Date: Tue, 8 Jul 1997 09:20:02 +0100 From: Andrew Main Message-Id: <199707080820.JAA27530@taos.demon.co.uk> To: zsh-workers@math.gatech.edu Subject: ZLE suffix removal system X-Patch: 264 Resent-Message-ID: <"gEyoK.0.qm3.uSVmp"@euclid> Resent-From: zsh-workers@math.gatech.edu X-Mailing-List: archive/latest/3353 X-Loop: zsh-workers@math.gatech.edu Precedence: list Resent-Sender: zsh-workers-request@math.gatech.edu -----BEGIN PGP SIGNED MESSAGE----- I have been off-net for the past week, due to moving house. Can someone let me know where the list archives are, or alternatively summarise any important events since the 27th of June? Please note the new email address: my Warwick address will shortly disappear. Here is a rewrite of ZLE's removable suffix mechanism. Instead of the old ad hoc mechanism, the new system maintains a table of suffix lengths that should be removed for each character that might be inserted. In zle_tricky.c, I simplified the logic considerably, removing a lot of special cases. There are some changes in behaviour, most noticeably for parameter name completion. The most complex case, with all useful options on, looks like this: % echo ${HOM_ press % echo ${HOME}/_ then either: % echo ${HOME:_ `:', or % echo ${HOME}_ `}', or % echo ${HOME} _ ` ', or % echo ${HOME}/_ `/' I have tested this extensively, and do not expect there to be any bugs in it. I think all parts of the new logic have been exercised. -zefram begin 644 suffix_patch.gz M'XL(")M"OC,"`W-U9F9I>%]P871C:`#M7.M;VT;6_TS_BB'M!MO(QK*QN2W- MPZ;T;9XF:9]`VMU-LU26QJ`767(E&1<2_O<]E[E)%@G9;-I\6)9-[9'F=JZ_ M<^8,G4Y'G.3AUC\3N763R-[%FK^WM[/5'V_Y.\(?[_?[^X/QFM\;#K_H=KMW MO;HK!L/]X=Y^?^>+3O4'OPO?W_'\P4!0`P[##6,!G[M?"`&_7T9R&J=2Q.E5 M',ZB61;)5ENTUHLR#V?S5KC(+^7U+)BGP4QZX@&]]*#=QLZ;8@OV4`9I%.21 M**_G4F1342RFT_AWD^#T;B-KPL<^O&B MW+J,DT1,X*',:8:>$*<74K?$92&3J8@+,5_D,KD6DS@-\FL1!67@B0X,(SHB MS4KQ_.73;BGS&3PN902#)#+%;@%^."\O1)@MTA+:ITEP7HA%(0M1PCSXHX9Y M_/+T;R^__?;XQ5D'WDX+V'=9"-Y4)"8RR98]\8X?H$.GRO.S61"GO;"!\;O` M^.U1G?$K[S/WX;??R/V=76]OFWF/](0%"&!S*6#IY:)(D@-D8A4#9`?8'*49>X%JJ+R`S MXU1\]:;7Z]V^DP\N0^H+YQ70`FGA)(8H;Z`&N807+N*BS$#`$I1D$'Q\4&2Y MF&=%3-28PA=<79G-^24E/?"HM'(+'`@O[[=*O51D%8@#\'1WR.K;Q/+M\:ZW MO3/63%^C)1R*UB(MXG.4T_`BR$6G?1,D21:V6OB\N($W4/'$IABT42C6KN(\ M2,\E*@,\2X*B!*V'3U%&PX4%MB;PSRS(+^$_?>H%M$#ZJ#E!Y9X>?+$NUAQI MP+Z6Q/`-S,G%N9JFKZ:.TV(BSX&9NDG)JSLLM((TM%I%T^;.):[A,D53!@0G M8K?;;?$&NR$Y"WI!MEJJ0\&[QDGWU_?/SC"=C>)W\GQT.# M5]W(07/'9\?/7SY^]J.[7O!S01*#@Y`)T!1[=OG!N\24:7FK2569X^F3Y\?/ M?OCIV*SL*D:"$*.AJ\\"--J!3>[L&@'Z1)O M$$NK[.Q36Q/O]7KPIX'IMXR2P`W$*5AXZ%Y(?&^&QA_`4CR-95Z0+P$NC_M` M@O[(V.>J]XZ+L-';[X&W]\>KWMY]'WZWQ:"_/_+W_=U&\@\'WJZOB?]EG(;) M(I+B`0+&673QH-[(P\_S#)^`.:$=%C('[RW`K0:PKPC\5`[>V!/+&"#2,H[` M&A3*&1E$0:P38,*XN])VZ(G2\T9Q7#5J@J.OO41[T_=$*HT!TX\0G!V*FS*' M#RT<">V=?IB&A?MUAF_.%DGI-H8^M.(:Q.&A>`:[$8]P+Z_\U_\:#L0^/<+W M=1=0@)GXJ^BC4(%EY27Y9&5Q_.Y,#WYK.R%`3>05>O,*XA5)=AZ'^_?U[&HT M@`A/$%@5\R`D,#.1A(-0BCVE%X0@>#+`#OPZJ-B%?=T93?5$,;7=&/)2IX9! M#_@S#5E;F[,:D`-P4;F<)[32LG=_#&.IC0PZ%!OPO[=OS;>M#?'P8=4.`Q>P M#:W/J[#H^J^Q*?3!0@)KZM:1AY<):"C-X6@SC!$7X*I:1R]/?_CQZ,71L^^/ M_W'25OPFD(=!1(#B/Y\G,<#_+(5X@D"Q6LPR*#0L)KCJ8E0DU1K&&A0ED6T( M0`K$)+@(KN)L0:`P)\;*-)@DFC6`A^$%F6Z4AN(X3)#D,HBN%8NB*N._C?.B M]'!IS3#8#C//92AQP9-K0,9ZPB`G>,\P^];3:M^92`"OLF/B'C,,S\P+OI1R M#DP72(M4D<.L[!V,7ZMS!/@X0+9L==YTMH22@-L-Q9$U@$+=0[81E6B"GM7- M-#3>.GSGL?9)MM275TK05A=`(^(R=;\OW7Y_<;]T\8MY7[<^S604HPN[5G*X*@6- M!H/9T(0JK&G#GY10*)K`1PA(]_&?33"S'33+!VSZF_$$]W\OCE*^',0.DPV$ M,Y-7*6Z.P.*EIJ"=$AL6([P.'MH^HX,R,? M71YL7WE@-4ZZF$U@[FP*W)^C*051UF-O<>*(AJK((1CU@W=(UG]5;IK@T^[0 MVQMH^(0_RXLX@5&[79H)3",%2$1JX)TH-C<-/%;N:7/S-3'*85-G<[,0_Q** M39JIK&&,8XQ3;*TC3<$B7A9D-'#=AS5MNBPJF%2ASM&V-_:U"GSBI<,Z89G. M`ED"C'%PU]:8DQKN>CO;OLU([O1WO)T]&UE31'(!FI;(*?B:EN'G+8C-+:<2 MMSKUGRV5C&1"%==%*6="M3:]2P]0#E5ZQZ:S5-\"3&\9SU!X90HQ='Q%!C>* M"@L(0*P#LXZQ,'IBZ"B]7GE. MB4O0J8*44UN)HN)4&`;@K#P.FP!8Y,\7$AT8>G_80G5_A4YPX88$C,59/-I) MS]`YEYHZ,YX"OF#F0RVNB%&6@E1FBP(6`NBE`-JS&>8Q(-R:2DK$!8I($/MQ MQM`^8O-3VZ)+F2?3NY:*'2#&+=Q<74:;IK4"C&+.00]%'#,!!#)9/@L26+B# MMXN+;)%$KCP4&6(G8&(B`?B)@,>9R2"%0:>+Q*9@4;)TNEMJ&&D'I%D(\DTM MLVA/UOP;.2/1(5*]IM1V>EZ`\!*")>YC*AX@ M;)9K)--`3!Z(9F8N9:G70!M,SUOZP*H()JD%%)A0Y8%JCG<67!-T5OPQ%*HP M&L0KCY![F<#<>0G_I^0U*8%4J7`$[`K0JSDN`@RHI,*W/!8E=4F5.K-%46)( M)&YDGA$90(:7L!X@1Y#2>CQ'C1S M8"^*L&!50E@]BF:IV,)]YQ($,87M`?.@#TQ%/8S=$T_YS,,>U@!]%&($)J=6 MR(4,P*+-LZ*(<>=6L(`#"TS*=US>@`MX-1B-7Y.`P+[4T8H=')/C:99VU?B@ M;U6)*7K.*ND3'5,0#TD[J6C8(=LTVDE-6@CA9U MULR8+=BB6(!XD:[@<0<(2Q2KQ=T=X+AK)@P(D".XU-B&P!>>:[U1T*=&KT.G M`6+B6L,OY4I+2BWI@>L2J_0@6E>C@N)>-.IH<:^0RM"HR6(@OU$%,GX('PON MKPV)SP36`*^TOGKSX]'I=[>O+>K>_U!L> MV7'YOUAD.G(T?RSL/;ZNHJ`$Z\8).@ MU7B"`J<*E=&4))7EAZ\=RA6)HIQ.*4,#[6LU'+'[64FVNUO\EDR.M>^IH)Q9 MPV9!5'"38,31/!K4=M=.[8R<([>;G,D9BI#9HH<9UB*^D=G4-K;;C-3K"6J( M>L/+ZVK*V=_;]X?[@R%6(JRFJ%=[C(0_V!^.]@=^`-P],;([@9YXAZUK*/.O<.P8N;85)L!V[=ET<3S$\JRUG,CL&#GFN M>U)6B]]G*X"9/@.=T%YZYO3;Y$4[]LR71@!6JB$:%LIIV&7&Y07[M-BEDZRC M*H6TBWC"I(;X8)F2CI7#=_Q(WJG%\09"1V6]EE*/%G)R3HF>!'0J>^<]DS!& MYQ"!OH2``R%`;_<$+0GV'#(,26DIAFZ8!07CB:=`YVH(/*'D%*(>Z)JP7K1J M'JNGV(;GE$J`68&.'GT@><4/L%-/T<@S"[/5"I2KC0LVT.!5BD"EN@B5<-[! M9ITFLEPBECN7>()5H*%A M5;.@#"'0PRH3]1'1!8)2QDNZ$=C(>9SX/$4,J4H()C(,8,LXTI2??$`%P4HA M`6FB[Q0"O4<3%:C!F-=_2`5U:.QJJKX3L$JI90:7P$JY#'G+)H`R\=JXN=HVG MKE9#:,MZ17BT8.>!)GA19HPG]:$?N'J/3G0B+-7Z=6NCW:M(\F_T^IR!ALD7 M3!:E^&V1D<:=5N0I5LDIZ@C=4!7KLL+VP0S,126>Z/Q6:\*$H2->=D17>I@% M,B8"D6J!/LG?,``K&;3K,C&+_PP=U5&6HEN97Y."93:!0I:\X"Q^B_S?:9Q$ M$N MB`>>\.'7GKM,17?G8-1A3:H^L2V:'%JVZTG4J9%FX_)9R MIJZ$KI3:]GH:)C87176=D4]S.I"8QBF9E*\V5%^*BT'&6W,,N($^V71:'(BY M^!J^/7P(6HQFX80PWNQ7>PM-#_93JO(`ML+T^;&\\NKOX=3#TX96AO^M0 M`&L[GF=+2L8`5LI5NM2!;WPZ"2!5RW^.NAD*++*Z>&KP_%1#>D M^%A7#BFR/$'+Z*'!=*U1_0`U9`0]#26@AT//-RV\0U_[([_ZYMJ]"+^ M`-R([U2_8D(^R\LNX"3./"2$SO;--)BAF4WB\T6V*)PT`Y=9`:C`FC`6D,Z= M.0F$$5AK2SB"7,J;3PY\E9=_-2+84`X/'16J7H!3$UKA0GE*?_?2J M28\USG-4"WRHQK:I5>BYJ\')?A75>3C^T,@ MK[][M_$?^CL[WG`P,A=>%`(T%3D::]=*D>B[ M558XJ$K&J"IVD*R?&7:J6RG`;CPXI+/-6L;%LR*4D3OBW(W*A5P%>8QYYAKV M9@Y7UU3'*F2^XV(>E&`W4Z>^G@BVE$95+79:3K@(G$W0RF,NAUDS``@+=PYQ M**K_X?I!35P4CV;B5CW%$44Z2(ZP3$3WQ*3BK;9GJ:S[Y8Z>QQ0CALX"U\P. M\8LCS+J739AT?5[[F@L6G4%"_0UGK4J$WH'+!1U^3KC$X%)B.<)\47(]""H_ M5PKJ4L$PBZ1!9QF\%U/,=L'U!W0F;P_^-!$:[D+4]L=[(IMJO(FS0Z:,?D4S MZ>VAPZ4&5U3M+ZIE^6$5>AMS30>7JE2V2?I5?8)F-=VR"80N\`(*G2?9I&)[ M'1^@Z(.%0#8#"030E2[.,+6,X8?GK$P1>D71=0OJG2/7U;A.-2)NP4,KWW*G MP:AP=56B^JMDC.6DJ"JU?G>)\(RU5Q?6Z4?]@WHX!\KL1BZNS3#W."!:4M. MXL)_R`79$,T^X+,R6_)_1-<^KMQ4+3OLZ/\716F2WKA(;5U[U=)WO3^NH",C MH.)?XL=Z);K9O2Y=;4=;:^'/P`4M)E3.8`M*63TE:?<1G3TX> MDZ]J&9R[6D5_\O3HY+O*?;`JEJ*S]&D,Z\<"!-3'I:FVH_NEM810I=29Z+HH MLS-ZZ:R:QTKP*DHAI3)J7&:DLV,N;E=9(^.0@*F+D"M_L#+G0!^(#/WQ+@"( MX4CCU`\&$(DC*K4;6'^N-_]CW37*C!*3IS\?_>/D](?CY]^TS=NK5OY_5GTU M'Y84R8IM-[T^G2EOM-R;#19^4[@K2UPA_W2&>',E\^9H')T95).?: MQ09<"%Q&Q!B#>5FDH$@%6A8ZWE/BJ&_$9*O'GKT/D8WU9I.K`P1,D-56[E"J M`8@Y_+JY"ZQ5,"9.X3BB-:=8S9$R"I_77:EJ\BZ`2?,NYOM1L,]&3<'?6MST&[2"3MM;J[P037=?MZ^%6?BO,D9S75OW^J,\T2] MP0=+J$EBM0Q3JD2.,(JQ/H- M-+;FGG@(TWB8:`0^X$7W7E&>X3438-C)V9-OGYVV*24-'[]Y\D+'A3H7Z9*' M4!8P=(YN#,_LHDA'91WG?B6E663E3V7T*O9AS4DS;&W8,%$YW$8?V[XC@+." M]8+N=;-DB4?"QR.*@PK=;K5QTF:6K\RLA&E)&O]M16]^CHVIV=AZYZFFWS]5"^H,>$:=4&'=!MT(U??J%+=XT/@3`O'[?P M1DN[[5S&PU6[FN=.RK=0&[;QNJV>,YE7PBMK@3`E[K@]YCCHI[K$"1QV8GZDJMEA2%ASG)ZQP%4D&:11)U M,.D2VY"6F&":=)FK7X4(V'5=O=NVNK?"FR;QKYTN%-VN"_)OJX?N?(E)7;7! MOUE"!5)82%2%^^8@83C8Z8.Q[P\J!PE_OK%'"V_4W*317/"P]:"JB1;26.&O MPXFU&I;`7LKV5Z"":]'U4LE26T2GYZW>/`!#]MHJZ.VJ$S!H(XHC/(PP92/V M0CBUD*P:Q&PJ(AC]6<%]=RGEW3!9!]4<'S'RU"P(*VWIVB,KE1U.J[IC.3;%6+_/XKQ%C#[2&H MW?:>QEAOW,*$V7RE5F&1FSJ$_"JO[>_W?R75O8&?6_/'O4I.;D! M"]+3?T7GV0_?G)T^>_GTE"+O*#Z/RR`_7\!^RE;UAC+G!)K^*-'[_R#156PX EFDWI$G2[:G!QFWJU3CW+QZQV<_7O;C1NX#[+^S<8F=F%!%$````` ` end -----BEGIN PGP SIGNATURE----- Version: 2.6.3ia Charset: ascii iQEVAwUBM75G0Jmk9GeOHh7BAQFHIwf8CgO3cavv2rLUniLYipxhrOOi7M/1Z6Hv wc4F6zRp+xNu24A+L6mGkArBMWaC1dbaGw7drFopvD68uYyhyHk9YR/sFE7DUUGf nB5ap82TsGAhal+gucXq8FTPNgE/7UmdZn9m5+OsZ/FH7MvVxvy6vMSkhlWz96pN DMqsgomMHL0JhnLyeCpgvn1ck8Ffw42L9X58Yut8t3LvHIPNW4oiNGEIYc5yXmGJ TvAPQa5HdFGbVYs88YXzWn1vfThjVdF5umxcTsxxMrSXufTLcVc10r2+x7qY7nFK YPx7ZaZpparIkimLqcRLbt9VlhbIHfFLX+GFJhjyps+ZAskwebGlcA== =2gRc -----END PGP SIGNATURE-----