From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18258 invoked from network); 23 Jun 1999 14:58:09 -0000 Received: from sunsite.auc.dk (130.225.51.30) by ns1.primenet.com.au with SMTP; 23 Jun 1999 14:58:09 -0000 Received: (qmail 27115 invoked by alias); 23 Jun 1999 14:57:50 -0000 Mailing-List: contact zsh-workers-help@sunsite.auc.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 6814 Received: (qmail 27108 invoked from network); 23 Jun 1999 14:57:48 -0000 Message-Id: <9906231429.AA18332@ibmth.df.unipi.it> To: zsh-workers@sunsite.auc.dk (Zsh hackers list) Subject: PATCH: pws-N: Handling feeps by return value Date: Wed, 23 Jun 1999 16:29:10 +0200 From: Peter Stephenson This patch removes the feep() function and relies on return values of widgets to determine whether to beep or not. Needless to say, there is never a beep if NO_BEEP is set, mainly because I wouldn't like being hanged by the neck from a lamppost. I've handled it a little differently from how I suggested, because I think this is the simplest and most natural way. There is only a beep when an interactive widget exits; calling a widget with zle never causes a beep. That's because when a top-level user-defined widget exits with non-zero status, there is now a beep anyway. If a user widget needs an additional beep, it can call the new `beep' widget. So it's now important to get the return value of your zle widgets right. I fixed one piece of idiocy: I merged the zle argument patches wrongly, so zle -n and zle -N didn't work. Also, LIST_BEEP works a little differently to fit in with everything else, namely by changing the return value, rather than by beeping immediately. This means I had to make one change to the way completion widgets return values: if the widget itself returned zero, but the completion-call hierarchy returned non-zero, the latter value is used. I hope that seems a natural way of handling things beyond the control of the widget function. (In fact, you don't even know back in completecall() if the function got called at all, and before the patch you just got status 0 if something went wrong elsewhere.) But maybe if people are going to start writing functions which call completion widgets this needs doing a different way, i.e. have a different status for LIST_BEEP from a genuine error. Some of the vi widgets were a little messy to change, since they feeped without any obvious connection with the status. However, I think I've made sure the status is returned all right and simple experiments work OK. Someone who uses vi ranges and changes with beeps turned on will have to test this. Note that feeping still doesn't have any side effects apart from the beep itself. begin 644 feep.gz M'XL(`,WL<#<``]0\^U?;1KH_F[]BR)Z3R,@B>OA-DRUM2,M=(#F%;+/-S;)" M'F-=9,DKR1#8Y'_?[_MF1AK)$I"VN_>4DX`ES>-[/T>V+(N]2H+GOV2+Y\MD M=GX7\=W;9'?.^:KS,Y^Q_UG'S/68/9D.[*DS8&4S[X^E@ M),9_^RVSW+[;&S$3_S@N^_;;+;;%SA:)"N>^GF8Q"SPTS3DLRV6K'-V<4M/;\+9)<][."^< MLS!G8<9\MLYX:LWX/(P!3#&$1EEKF.(T07G^2Y\=W! MP=LN8(I;9>S&S]@ZSF`T8*7-Q?N!'T6`TW7HXQ,`-3>`(UT6),NE'\\`SK,% MP`.T$%1@-2JD_)_K,`50_9B%RR6?A7[."50`"LB7+9)U-*-M%'#XL*OFSV!R MD$>WNUNLN\5X/`MSOC2Z>&5IXB51*<3K=1J2N#ACYO2GGC.U1YOB54ZJB9=K M3SVO%*_!8(3BA7\X!`( M5C$#AA$^@/71X>G9.?&E:VQ9WZF1<>/R(#,/C6#L.`&A]H-@#>+,H]L>T!>$ M=9ZD@9"<+;,<+LF=H1Q5)B%L8+&"A-G$,E4[1)H7DH=)$6<)`YO8$ M6$O_=LN\X`Q4/IR#TN%,#;RPD,1YFBR;-4Z(R$J0GW!ZA7& MEVP>1B!HMRN>585(MT_'L"D)A(/VR04!ZF\*4+-M&DWM82D\D\&P-V0F_I'" M<_")!VM0`B0,,"?E<"F47=4O(%5V"2)'`]%B['4`:DQ4`X0*:R=6N0RM8SBQ@ M"]>$5;_+C+^___M?X<\ZODC6\0QO?,`=V4&<`X324B!G.3+;1YO9`]:C,29` M_D$KPH+=9^R*WR[]U2[QY30%,D?\^8Q'>1(L_'0W$,PY74OFV*3=PZGCE#H.?+_`7_HN/%OX!>32VDRN0F`["8'3W MQ&.I+?`(;L"4"N2A5*O="/@H8#];77Y\J:V!KTS M0?&"WR."_LD%R,.-G\ZLJS"*+)2K)V!XY$V\)T3MEZ.#\[\<'AVQS^(C",+I MN]>O#]]O+'&3I+/:$GCKD4O49HN9]I;Y!.42'BQ`-"(^)]FT<2*_#.,8M-1* MYI:0<2M)+:D'N)(:D,S%XR25#QL6:)S6/EQ1JQPKB&57F`I:?XYK-$GC`'@S M!3W?X&@YJ<[.?B$!R,X1^1ASA#*)_%RO)+@&BC+;V?'32W0;_Q+2%X)1B)/9 M>I6Q%Z!6H+W&CV#Y#G\X>?/3P:MW;T]!3$OQ12`NDSPA2`S\)?"S[I;K"((: ML5*7/7VJK25\$FQ8"K[Y>ZP(&B9UQY$P?JEHE"WUB83<'1-9''` MM-P()NUAV-<)D!))D,&:'03Q.DS]^!)"/_^2??[,MA%&\"3)#9\)I'#+`K$' MITC[H$&.=J)#4,#&\9Y`"SZ6G".6[6FCEGL"JZ$ML!K\<;"2.&7<3X.%TNI6 M#%V'O)[I.O8?!L-9HD4`FWJQ%(EQ51FJ0$6!"EMM&MX&<2UAPS/),^THP/[DYLN1\E//E]HQPU*O.O MD9X[N3!"@XE#I8KA1"H)_@@YQEVE2'>!\J#J5Q5#V"5_5?"IAJV.2YV::,:" M0``PG'@(P!"T=%0`@`.RBU6>`@@@U'FR.L]622ZN5@EF@R&``==C>T\WC4L_ M#Q9B6'85KL[1/FF7,!6OM"G)+,1-X#=FF'&F'#)[@0S_,_/8M.`&CE]$TC,* MRX?4A`P4IUF.8O$#PWID<30XSA9@16X9Y+-[.OT3D=K"0$CZQ>?87_+2M>1A M((>N4GX=)NOL7#CK0ATI01A2K7/DJ8RO0W80.'H>9C"8*&LH$O?8TT4$OXC( M3P/\18SHX3R:^91H]532FCC=*81`W251Z)2B+S]+UPA7):N<8H4OZL.FQB^B MKL!F;).XC,9*7`0R"96AYKB4E+-P;@!!D8UG"^/NG,H%5'X0ZB\@-D1101#7 M".-BE-$%WC]9^F'\!`3@"=U_@M85TWD=+1VKQT*BHN`9;)YSY"!:,KE`1Q_; M,!+!)T(XCB#$N&!KC:66]3BF,O'3P%>\C2@\@#/9M)+QL*8H!4KE0TTE'FLJ MZ$ANCA!Z?T04P@')!`R M!SR6QAQ)S`F%'..1ITO5%S)5V53;7QJE%^SM_MF/Y\?[[Z6DMVS>"9(87.2: MUW')FK7/-'L,.46,0CX)-@GS5'*&RH0VU9C'XWYO4@69U@>:?Z#)IOD1+0BA M#)"6Y9,R79B+`J!0O?(Y!!IQ(N-]LU.S69ICI6T$X^\H3*A9(T"G>N,<%E98 MB$KYQ!OJ,9H6E7QEK#89$2,G@[[FSC18:]$3^/QDMHMY4L:>LN,WK\Z/WQV= MH>X+)S!%TXLCR]@*9>*^0&W3[]4C+8)S0D9Y,E1&&63ZF@0BRU/C.@EG9=`O MO;'P=W<+3.0"8VQW-:^4"5?I4!HI_5U6.DCS4>-^NU\210J[3W&W8[ON_Y=6 MUTPN6/FY"%37\9+G/@6.S0,*^^K8X#E:NKA3\_P%5 MK-A<+1JON#C)NQX%N82F`URBFI)C.S*]4=(2JV"HPOZLFL<74ML6OY<#'A&> M?Z.'YQ85(^1\B,T0,4N[5!A(>7-^:\+H.).^6.FWIHR.ZSE497?M86_PZU:J M5Y`Q&%$5Y'N;X9N3&BK(MM80`!@=#R5]*/7U^<[.<\IRT7+/PT]H((GKSW?8 M-@B>[-*E7#2S5]AEC2]%`\]89VLP4;`63,9$-DD@&\>CTPUSV%5/C*?H(,ELE,83V"6DO MKUG-S-TLL&]H;%-1"++R;2`"CB8)EXUBFT#I>ZHJV+D`]*Z:C.0%$/1*AAO\ M$P^`O=C\%_=[K&HBR)C<.PJMS'UF!D`13P36/!,X=8!'\R1EUR'UYWILZ5_A MX8BT:$]F>-(ABY^!MTF6_$:(213Q2S]"UC`!6S76!N($&23#8(1G%TE$=P2! M1H-J>OHGE+6Y6F5;\;:K4@>=`U8=OZX,*#I-MA*X?NU'X0Q[WU1/D?FI0Q`, M[2+.EL60>$G+98OD9IE=&O!?U$7%4W&IV4-95*UEP^"HC!NXC3R"=)V:>%WK MI8I(C)\/7_UP<'9^>'+V67X\^?[-\5N9Q*!TWXBQ+]B-G*;$?-BGV'K8=_28 MM@H\^8<:`MHHA<2F+RN1Z6AYO7(<288./9MC],L_X>&7+)25V?D,/#SA3&5T=8+(U0!@O.;!C",`L:#"'V:;VI[;080IJT:0@]K3,Z(8+! M;VD6,/N"S$NX)CVT*SWOX[S!F((]9^RHE5%VLU*I%T5/Q$!B<5YG6UY95NQD&6I M5D^0J\J@'-U"AVK,^,"LEH9/@"JJ3Z"*;F6!`F;M$86ZLG3G#40[TNOW%>:U MW$<$=K44ZZ^'W[U[C6")Q./I-18(/M`P^OA1[V'`M?42?K5%E\7SUN`2#_&0 M@$F8;OWXZD*_495*0FPD8F)OV*\VLU3ALM+(HN@!DHFG=*KA;_LG?Q&%Z:L4 M8I8/5T"SW7L0>.ST5ORH7TA(27S`/7,T6WB/`ROIF3)/Q'9M:?#X@IE]CZQ? MWU7FCYHF<+4K+&]\6#W1!R",_O]H2Q4_"F-9`'9$?TCB9*:IS:D6R5W0S"V!'0J+[@_$FX[/P M$JV9GJG\&8R[,'^L"NTS^QGEF!#3/)L\NP?TVL!&+FOEBTUM.J.*19/2,KA5:BO`6LI>:*M\?E$N M\QD_G1S\($=5XG#I>H8#$:8556XN#LUA96(F3Y09JEB^S,OJBE[D*.HIH!4] MAOD`I*WPV:`I&+5D9!6S'(.F6"NL/&["1H5%`I2G7U-@&8['>&K9'(Z*T\L; MH:_T+7I9I:S68KF%*BQD9P+R'#S&>R?[QT<')X\MO.Q0\0/![.$"PCDV5V#^ MN4YR/M-*+`4LS;6?_QYD+<5XZISTJ1PP5SDD6^/'"SQ:Y?Q%Q(R?Y@<]T MJL#NL5>'I_O?'1V\ZM%`/)(*VV'QD-*G+^QH__1L_^CHS?=[*HOARU5^BT!% MD>@O5'W\1O&H(_%@%410RH)%$@8\D^T$(0/:D!+')(U$!_5?1?L&I)@L6^9? MEW4?T4"B?'DT*%HNG&IV__B[PQ_>O7EW*O*XY8Q._H)!PS*OW*'3 MO#P]P6RP6$SVJZW.!A4VR:#2.-2[".+A8FM3#5"'5.1E1`TYR.T$K25ZHR&I MTP@/5_4E@BK^TY(;`K0BC2B>81"#QAM!45+<;B@I/I:GBA>-XBN-Y^]=.JR? M0*5D"1*UE@RK/QWT6S(LFE0;[PVFKO[>!:F2Z19!!H*1Y,GEM/1Q]^5%]5)[ M>5:JH>Q.&U)'QW1'E=*@"-X5!;2-OQ&I#M8B$(2OV:XP+MA0?@GK@"YHY["Z M`IR)S!4F18)4/WB%BXJS8`(\2P,/@0J7;=%$\;S5Z9:1KJRX?*/&R]1&B^%D M`.$Y(GSSG%\%,?"MJ.FTPUT9]0CHA5$),LRIZC MROE:;)=$,V(N]MSTLG?MB,=]!SH>`+R:]5*U2PB8%$D2+82B7G!IS<\%T3B5 MRTP5!Q6'GE0MMY/[8>3/9JI$*1<"T>0K[N>X1!$&:_PKI<"L;4\!*557*Q110 MG4/MHU5MA3K9I:)$^+&0KFTYB2*VV@,2NTW)5%:EW;!MLEVW.)MB0&B-9
M'F0?@L5'/?D6]P4YZ(DZ-"./)]FV.(PV'BKGK,&#-1VR7HB>.Y1+%BVX^Q'4 MB6VVCVTKG]3P^U)IB>DXM??%*J/NE7#9A2:IJQ(,VPK5GG9U@&Q<"^W8(';1 MQ+BO>NH[^-ATV\TW\4YX0DVF;\CJ0=JV# M7+T,EN('/'.U5VI#BB]AXKVR7V,*0<64ZP83+#P6AZ:07*$B/AT9\(,\O.84 M[XF(/H^P8E_>P"MY!(*G*2QFX((]]D2])@>I`$OBZ!8;6/+%-'KS\I>C`VJB MT09/>@+A(34/!\,RO]ODC"9)!#SN;G;N()6)]>W3)+YD<=%44UE_]J1'U761 MEPCQ5\11020FXU2UEZ0T-2C,3;],I$-Y%+4$LFS6,^FJB)XXD#\MI#V]6+JP67ZJHG%Q(Z]^N(8=6(8342PVJJT]`']#FI MD&Q#BI/2>_V18)I$X>W!3\>4$RKO*4T.C->;>"#!%5>MYY(;*IF&P56ADO@2 M&2F8RYSAU!E-W997CM2TBDH.I_9HZFDO'7GBW!;^*7U.,)=M&_RC"AIS>=!$ M74M=01<`'X5V6"_7NWBUBT\D.9N>QM5DIC".#PPE&TF`H&0KB)Q-B&0CL!(& MTW#IBX:B*CP8>GHMS0\"OLHAX0)16LLW4/D]1\%IV'+5YA;4XU9_(/;#JG&] M[%H!H"QMT@$W.B]ICD<3/?B)M(J5.NE+H4EK_"'.S\QOZ6!MV6.]/U958:`\ MK]&G&IT)?XLW*#L1_Y1R/$3/99N9#O5`?I_F9>[;M!?P.`I]?)=8QK>$5VTU MO%>HROE/!V?O?CK13L@ZHX&+.8'IC/J3>@]']>RWM/.=/)XI.R%J-]>1J-GO M*"JN.+^BH_GXJ-K`VHX36#.KE;(>O58#'`K4RD`TI'20#'F:9;(B9"111DTI M["*?'[Q_NW_RZAP_X[LLHHG88=OX)C$=]:;5Z!.A@<:=#/M9&,VXZM$[6"`: M(_6&E6,S;`>,UPH4(TF55&K?$-"#O'_!TYLP`]/\?VN`"H^/[(J)S[7VVST` M4U=NEI2O?1N0:M!`-:*'(("LXKO"2ECK)UKK!"UYKV]-[X>+_95SZGL#JBY` M9C'0$5<-&"HQJ:YXEN/)OB0-+QL4#.ZV)7X!1!]4K-/KG%K[O8`=J4#P"]"& M`Q)I@+%XC[QH]X,#DBM:+JY1U!/7&2?HBK3T^0[[F;,%OC-`AT]YMDOG:\IS MO_(V1,M.5^NX5NZ+^AFL=:8.#2T3.C!"09%<6BY,*\R2\^+K`\C*:*RK+H_' M]$7H4[R-5YUJZG6\QJD"M#<8G%6!@0??+R_39+VB%_5\.5'5X<&.V8+]UU2^[*T3+"NNR6A4@#H]5+ZR6*-Q[FH4JF M-_;PR.+(&WF*YX#9CU0,%,=SP%*R&^3!#0_U$Q MGA;ZZG4NA<,IS^ET&KID47\F*5]R/\[$UQ<0Z2O?35%^.09^T\&.#/IVV/Z[ MLS?GQP=&:Y;$TWZX=`RJI4IQL5!:VA7H%X?9S\54>JP3D MI8>"H"'MZV@B%$!BX/LIF"^BI[RET:[X>IV8@_F="5?RM3\H^4I!&[H2;<>Y M"N,)U`(OB9^)59"PN^C-C6W=[F)`FD0SV8(AKUL=@#/4$F"FO,8966%BU284 MR^+7M:A==BIWQ&NNFPY`K_`)%LD:7Z%E/ITNEM_%<1DG^/T\V#C+0'`0@C"6 M2AM1PY7TD[-_1-DS*8]CUQ-U0OA@Z]&SB!`>?H%REI0C6TO)]5&M,73#:X]C M5[;*Q^[8JU72BM>T"^G-1#T-K`M$%D;EK=O6%QGO><%/[U/A#[YT3!%VY42F M/E*^0SSV7*?G#`%JSYZH:@'^Z'%Q\39R'>B-D;%?P43VM&XNBA(F7'"XH)NM M>#XPK94*V;_;N]H>MVTD_'G[*[0MT-JQU5B27S=M@J#8X@I<!= M.UUUO;:PZW6=`OGOY3,S)(>2Z#II[MH#;K\DEBB*'`[)F8?/C&BW)%35M.^N M[R,QA8]X%PHZSCD_R#9G;P1->1029KB9J333"JV:7R[+-8V&N$JHO=OTN.^W MY>JN_=BLR,^*R+&9/%5G)LZH%/%VO$$BO2-9V7S(^H`D1_L8;;VU.7(5.W8FK%:_G8A(U-_IP7?7`&] M!`W\`A3^/10X<,9N^"@+3QRX<687W#C=7FP$".Z<0NNO^M@,PK& MB^=H.GW'+L-..*++5"S2Y=8.\[%H>_=16;SW$$X@@V?GW[]HF56[,C*EBK-L MW#ZE\$BM]"AW(#2'/$C0BX,5:6&`2M_\6/S4-VZNX^0$45!.S2,A2VWK432\ MR2U0:8/L=?/CP`85T4\"73HWQ#'Y^OS%TY?/_D5@AHOB&7$(1^8,?XXC3;8O M-87O44`F0XE&(-1Z01$(L:@V1]52'M5!H@_#)(?$5=?(>#Q8H)BIU$8TRLU#L*9SUZ+)\)EF#'*$U)%4U"%7^'`]5,BCDZ%61"7?Y-OU)8E', M+4-B(4N+LS'KO+"QM=IWHW!#(B=T.(A`K>$(^]E8Q*Y7O]2O.79D'QF;)$M< M*AM87UEPE*]@N$V(VS?F&I1==Y1!G%%=[<+G3$#:[I=#=RIJ6% MWI`R+,V,)^_,#](W,8V.J+Q0NLMCL M2MQC^9(C*1X1[FI`_SJO!^X\?`#7ZD'R7;F]2E3[^M:);&T6/W.@;7"TR4*7 M=*%TF9]BP=QA90$H,"]7G]*-AW8R:BDE3^J]2\X.]*C[@0X7D>"J5\C==_4S M-]Y.`F?70I4L)M5VS[38W%T\,M:MO\PZY4C@+$*VL*52K/BF\@O.W M2CP;/',C2`A^LTY!@,)QDALE<]>8E>5-R0B`]U2I>C,H@-8`%=PN?[&I#1FA MH:MZP%V62U4+>\%(+V%:PE&>IL`\,25?+2E)I+A55"ITAZ&KLCO960I?E6AA%:#)B-AZT M0(QL=F5*$$-Z<6M\_248):B-DX'NYJM[2H&LWT%'VEXN1@H2MBEYDM<4)LJU M]0DAH_N`%7Y=$FZ#P@P9Y`53]W)[[/_F*$Q2+TYA''VXBRE&$B=H,Y837E<, M-='$=`))N4`05@<6R7V%*P)S\$)FU.+>O.#G6/O$2(ZM9JE/Q(34QQ4UVAF?E:RA8&E68[3) M7,1OWSK\:L41%;N-J'W4>IVG(S>6`KBZ^7`64-]=LSAX-*TUZ[VUJDX;#7>* M/.['LNM:L/O>RV<3VWS2VEW)S.R(4XTU)U>FV&7>5R=`%CN9WVZQKY+B.^"$ MK>FB04^@5#E0\!-27CO MC35@[*PY9U7&\D0'/90LVK-@=B"(HGH?`%[!-O5Y M/>[W+?0467I'""@<6?S.]CY@QD;Z'I"08X%PZU@@W/_U_S^D_\."Q/&88SFTMI2%FCD0LM6= M$!1CO1D2P;SU1E7VE;-I/R\X"#'S@HK,<:,(EU?+RVNO"CSLX8BX#(H]GSEB MZ:,,:DZF)^"`E2Y!,#[W2"_BE.Y*`7L"HI/L5E2-I]]TW$[F]T4ZM*#KB.#U M<`5?4.?2+3LA@Q1_Q,TUPL)'+X`'>/ETB!NM6M\5>U](P.&.>\P[%ANQ_1,+ MPA?\A8O,)DSSV3S:$]:NYB,#GW8)=#AINI3VZ9DU?9& M8T)S'0T-U6SHO-6Z4LR.H,5:/D+CZP^FI-X./S)"&9`""*UK?;&:KZ]UQ+4> M]C]GF8T%81^YP&,;<1*Q#:S`?#X92PR96]VCS(KD:P5>LYM/1J6"2=C.NF\K M?&A7$B8AG/O["O00_FJ):=E"-A6``?)U#;U(17++80X"LL!=`;9^L_^76&:> M7.,L5TGLVK08F?5(DT>8>L0?*&'@#GS%R@Q4LQXNS!_-"3K8.6W+ M:Y0FV*^\9=F5:*!X<-R!I?@]&$DDRYP]I_$L(#/O2OO%CS@70YG(C^,F2[U4 M=(K9+#LD*"6DF`$S$9]ODF5_XZPC9A>F0NZ`\]\OS/N_//_FY3^_>G9N`Q@U M:D&.B2(;T..(-^ZY9'V3"8>/3GR^L/_UKB^/[/IT,);OG.1U6_LH^[H3F.1= MP2K:^]A>]C"?9"]8&/Z0'XWJR!XE;(1P\&#)^ZWUB;JXBXRO>XH0"2;#WG9; M/JLP=0"'6FPB`\U4[XY8@>H8];/DDTP%M\TX;90Q;"-1?T$%;0*V"0>`J6$)/[P#B#S]-EDZ>9-^3;KYX^?RY"I:,D MCH*8<;KA3&T@+5KC-ZPUJZMY+R^@9EFEO6V^0A;"UW)<0"=_QYC1O*DPT5R[ MVY1]3-:UV2"71#GX:\N+8Y6,2$M*RP_DR7E_:7+J_`R[X"R/'S`=-:M ML6#7_-FY#WVR;_JNE3,6ZK'L\MNL&H\YQ+^V7.PI)9?X,/"C\QS^]`3XFT/! M]PZR4J_8N^ADKL,&*-,Y:(E6R1M^HCEYLN=T9&X&[!V,LV_)1M:2:RW^Q`>1 M1&MO&*I+.M40*^FCQ/SK%TW?Q&J(-;,:\G(ICQ3`\X?FE=R4@'/V"Z)U6W#AFRF:"/,%)7T!.%$J.P:AZD?5U4_"<*^3)FJZ"?\1&%* *_PZSTB&JD74``&W# ` end -- Peter Stephenson Tel: +39 050 844536 WWW: http://www.ifh.de/~pws/ Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy