Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

PATCH: pws-24: Stop the unbearable beeping of magic-space



I should have noticed this when 6814 was posted, but I was preoccupied with
testing job control in 3.0.6 ...

If you have

	bindkey " " magic-space

then every time you press the spacebar you get a beep, unless there happens
to be an expandable history item in the word.

Now, the really good thing would be for doexpandhist() to return failure
only if there is a history reference but it can't be expanded, rather than
failing whenever no expansion took place.  It's beyond my comprehension of
the interaction between zle and the history mechanism to pull that off, so
I settled for making magic-space fail only if selfinsert() does [the old
code didn't make sense anyway -- why store the return from selfinsert and
then do nothing with it?].

Line numbers below may be off a bit, because I also got annoyed by Oliver
Kiddle's patch from 6772.  Gosh, I actually went one whole revision of zsh
without having to either put in or maintain a local change ...

Index: Src/Zle/zle_tricky.c
@@ -8249,8 +8243,9 @@
 {
     int ret;
     c = ' ';
-    ret = selfinsert(args);
-    return !doexpandhist();
+    if (!(ret = selfinsert(args)))
+	doexpandhist();
+    return ret;
 }
 
 /**/

-- 
Bart Schaefer                                 Brass Lantern Enterprises
http://www.well.com/user/barts              http://www.brasslantern.com



Messages sorted by: Reverse Date, Date, Thread, Author