]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/windmove.el: Support more prefix args (bug#32790)
authorJuri Linkov <juri@linkov.net>
Thu, 15 Nov 2018 23:09:54 +0000 (01:09 +0200)
committerJuri Linkov <juri@linkov.net>
Thu, 15 Nov 2018 23:09:54 +0000 (01:09 +0200)
* lisp/windmove.el (windmove-left, windmove-up, windmove-right)
(windmove-down): Use prefix-numeric-value to support more prefix args
like 'C-u' and 'M--'.  Doc fix.

etc/NEWS
lisp/windmove.el

index 76531f288ff8a7e731d9555eaf40960b9eb807b8..4f3b9a9a0619ede90c172945b4e6989445dd991b 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -371,6 +371,7 @@ To disable it, set the new defcustom 'diff-font-lock-refine' to nil.
 *** File headers can be shortened, mimicking Magit's diff format.
 To enable it, set the new defcustom 'diff-font-lock-prettify to t.
 
++++
 *** Prefix arg of 'diff-goto-source' means jump to the old revision
 of the file under version control if point is on an old changed line,
 or to the new revision of the file otherwise.
index 598e495c7a9c51643c74909c52f93f8125a756b9..c38524fede66c1f108bd4eaf494330fd602cd03a 100644 (file)
@@ -481,8 +481,8 @@ DIR, ARG, and WINDOW are handled as by `windmove-other-window-loc'."
   "Move to the window at direction DIR.
 DIR, ARG, and WINDOW are handled as by `windmove-other-window-loc'.
 If no window is at direction DIR, an error is signaled.
-If `windmove-create-window' is non-nil, instead of signalling an error
-it creates a new window at direction DIR ."
+If `windmove-create-window' is non-nil, try to create a new window
+in direction DIR instead."
   (let ((other-window (windmove-find-other-window dir arg window)))
     (when (and windmove-create-window
                (or (null other-window)
@@ -510,9 +510,9 @@ With no prefix argument, or with prefix argument equal to zero,
 it is relative to the top edge (for positive ARG) or the bottom edge
 \(for negative ARG) of the current window.
 If no window is at the desired location, an error is signaled
-unless `windmove-create-window' is non-nil that creates a new window."
+unless `windmove-create-window' is non-nil and a new window is created."
   (interactive "P")
-  (windmove-do-window-select 'left arg))
+  (windmove-do-window-select 'left (and arg (prefix-numeric-value arg))))
 
 ;;;###autoload
 (defun windmove-up (&optional arg)
@@ -522,9 +522,9 @@ is relative to the position of point in the window; otherwise it is
 relative to the left edge (for positive ARG) or the right edge (for
 negative ARG) of the current window.
 If no window is at the desired location, an error is signaled
-unless `windmove-create-window' is non-nil that creates a new window."
+unless `windmove-create-window' is non-nil and a new window is created."
   (interactive "P")
-  (windmove-do-window-select 'up arg))
+  (windmove-do-window-select 'up (and arg (prefix-numeric-value arg))))
 
 ;;;###autoload
 (defun windmove-right (&optional arg)
@@ -534,9 +534,9 @@ With no prefix argument, or with prefix argument equal to zero,
 otherwise it is relative to the top edge (for positive ARG) or the
 bottom edge (for negative ARG) of the current window.
 If no window is at the desired location, an error is signaled
-unless `windmove-create-window' is non-nil that creates a new window."
+unless `windmove-create-window' is non-nil and a new window is created."
   (interactive "P")
-  (windmove-do-window-select 'right arg))
+  (windmove-do-window-select 'right (and arg (prefix-numeric-value arg))))
 
 ;;;###autoload
 (defun windmove-down (&optional arg)
@@ -546,9 +546,9 @@ With no prefix argument, or with prefix argument equal to zero,
 it is relative to the left edge (for positive ARG) or the right edge
 \(for negative ARG) of the current window.
 If no window is at the desired location, an error is signaled
-unless `windmove-create-window' is non-nil that creates a new window."
+unless `windmove-create-window' is non-nil and a new window is created."
   (interactive "P")
-  (windmove-do-window-select 'down arg))
+  (windmove-do-window-select 'down (and arg (prefix-numeric-value arg))))
 
 
 ;;; set up keybindings