about summary refs log tree commit diff
path: root/Functions/Zle/history-search-end
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-09-13 16:18:06 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-09-13 16:18:06 +0000
commit7605a5302689c92d838e0617c74c31da455df238 (patch)
tree653c46b81461003967a9de521b050333dbbe1a33 /Functions/Zle/history-search-end
parent829fcac25f0b8d42ca162be3bd21c81124a57a4d (diff)
downloadzsh-7605a5302689c92d838e0617c74c31da455df238.tar.gz
zsh-7605a5302689c92d838e0617c74c31da455df238.tar.xz
zsh-7605a5302689c92d838e0617c74c31da455df238.zip
Initial revision
Diffstat (limited to 'Functions/Zle/history-search-end')
-rw-r--r--Functions/Zle/history-search-end28
1 files changed, 28 insertions, 0 deletions
diff --git a/Functions/Zle/history-search-end b/Functions/Zle/history-search-end
new file mode 100644
index 000000000..24e7a0a87
--- /dev/null
+++ b/Functions/Zle/history-search-end
@@ -0,0 +1,28 @@
+# function history-search-end {
+#
+# This implements functions like history-beginning-search-{back,for}ward,
+# but takes the cursor to the end of the line after moving in the
+# history, like history-search-{back,for}ward.  To use them:
+#   zle -N history-beginning-search-backward-end history-search-end
+#   zle -N history-beginning-search-forward-end history-search-end
+#   bindkey '...' history-beginning-search-backward-end
+#   bindkey '...' history-beginning-search-forward-end
+
+integer ocursor=$CURSOR
+
+if [[ $LASTWIDGET = history-beginning-search-*-end ]]; then
+  # Last widget called set $hbs_pos.
+  CURSOR=$hbs_pos
+else
+  hbs_pos=$CURSOR
+fi
+
+if zle .${WIDGET%-end}; then
+  # success, go to end of line
+  zle .end-of-line
+else
+  # failure, restore position
+  CURSOR=$ocursor
+  return 1
+fi
+# }