]> code.delx.au - gnu-emacs-elpa/commitdiff
Expose chars to be read as args.
authorYang Zhao <YangZhao11@users.noreply.github.com>
Sun, 17 May 2015 04:53:09 +0000 (21:53 -0700)
committerYang Zhao <YangZhao11@users.noreply.github.com>
Sun, 17 May 2015 04:53:09 +0000 (21:53 -0700)
avy.el

diff --git a/avy.el b/avy.el
index 637a3391816fe86e6fca5f563fb609e274340e51..860aea8c1f0fa2c567f48d1d1fc8bddc7eb9c2f6 100644 (file)
--- a/avy.el
+++ b/avy.el
@@ -516,29 +516,31 @@ STYLE determines the leading char overlay style."
 
 ;;* Commands
 ;;;###autoload
-(defun avy-goto-char (&optional arg)
+(defun avy-goto-char (arg char)
   "Read one char and jump to it.
 The window scope is determined by `avy-all-windows' (ARG negates it)."
-  (interactive "P")
+  (interactive (list current-prefix-arg
+                    (read-char "char: ")))
   (avy--with-avy-keys avy-goto-char
     (avy--generic-jump
-     (let ((c (read-char "char: ")))
-       (if (= 13 c)
+     (if (= 13 char)
            "\n"
-         (regexp-quote (string c))))
+         (regexp-quote (string char)))
      arg
      avy-style)))
 
 ;;;###autoload
-(defun avy-goto-char-2 (&optional arg)
+(defun avy-goto-char-2 (arg char1 char2)
   "Read two consecutive chars and jump to the first one.
 The window scope is determined by `avy-all-windows' (ARG negates it)."
-  (interactive "P")
+  (interactive (list current-prefix-arg
+                    (read-char "char 1: ")
+                     (read-char "char 2: ")))
   (avy--with-avy-keys avy-goto-char-2
     (avy--generic-jump
      (regexp-quote (string
-                    (read-char "char 1: ")
-                    (read-char "char 2: ")))
+                    char1
+                    char2))
      arg
      avy-style)))
 
@@ -564,12 +566,13 @@ The window scope is determined by `avy-all-windows' (ARG negates it)."
     (avy--generic-jump "\\b\\sw" arg avy-style)))
 
 ;;;###autoload
-(defun avy-goto-word-1 (&optional arg)
+(defun avy-goto-word-1 (arg char)
   "Read one char at word start and jump there.
 The window scope is determined by `avy-all-windows' (ARG negates it)."
-  (interactive "P")
+  (interactive (list current-prefix-arg
+                    (read-char "char: ")))
   (avy--with-avy-keys avy-goto-word-1
-    (let* ((str (string (read-char "char: ")))
+    (let* ((str (string char))
            (regex (cond ((string= str ".")
                          "\\.")
                         ((and avy-word-punc-regexp
@@ -612,13 +615,14 @@ should return true."
        (avy--process candidates (avy--style-fn avy-style))))))
 
 ;;;###autoload
-(defun avy-goto-subword-1 (&optional arg)
+(defun avy-goto-subword-1 (arg char)
   "Prompt for a subword start char and jump there.
 The window scope is determined by `avy-all-windows' (ARG negates it).
 The case is ignored."
-  (interactive "P")
+  (interactive (list current-prefix-arg
+                    (read-char "char: ")))
   (avy--with-avy-keys avy-goto-subword-1
-    (let ((char (downcase (read-char "char: "))))
+    (let ((char (downcase char)))
       (avy-goto-subword-0
        arg (lambda () (eq (downcase (char-after)) char))))))