summaryrefslogtreecommitdiff
path: root/lisp/emulation/viper-ex.el
diff options
context:
space:
mode:
authorMark Oteiza <mvoteiza@udel.edu>2017-08-08 15:00:21 -0400
committerMark Oteiza <mvoteiza@udel.edu>2017-08-08 15:00:21 -0400
commit884d43b43eb51fe91c657ed0780cf85d31522248 (patch)
tree705090b93f988963de8b529c3f0cfe11f8d74cd6 /lisp/emulation/viper-ex.el
parent4cb0bdd675f0bc3adc130f1f3d037e4d51152396 (diff)
downloademacs-884d43b43eb51fe91c657ed0780cf85d31522248.tar.gz
Convert uses of looking-at in viper-ex to following-char
* lisp/emulation/viper-ex.el (viper-get-ex-token): Bind (following-char) and use it in the subsequent cond's clauses. (viper-ex, ex-quit, viper-get-ex-file): Use following-char instead. Convert single branch ifs to when
Diffstat (limited to 'lisp/emulation/viper-ex.el')
-rw-r--r--lisp/emulation/viper-ex.el99
1 files changed, 47 insertions, 52 deletions
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index ca067033e63..185cf990f76 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -401,13 +401,14 @@ reversed."
(setq viper-ex-work-buf (get-buffer-create viper-ex-work-buf-name))
(set-buffer viper-ex-work-buf)
(skip-chars-forward " \t|")
- (let ((case-fold-search t))
- (cond ((looking-at "#")
+ (let ((case-fold-search t)
+ (char (following-char)))
+ (cond ((= char ?#)
(setq ex-token-type 'command)
- (setq ex-token (char-to-string (following-char)))
+ (setq ex-token (char-to-string char))
(forward-char 1))
((looking-at "[a-z]") (viper-get-ex-com-subr))
- ((looking-at "\\.")
+ ((= char ?.)
(forward-char 1)
(setq ex-token-type 'dot))
((looking-at "[0-9]")
@@ -419,13 +420,13 @@ reversed."
(t 'abs-number)))
(setq ex-token
(string-to-number (buffer-substring (point) (mark t)))))
- ((looking-at "\\$")
+ ((= char ?$)
(forward-char 1)
(setq ex-token-type 'end))
- ((looking-at "%")
+ ((= char ?%)
(forward-char 1)
(setq ex-token-type 'whole))
- ((looking-at "+")
+ ((= char ?+)
(cond ((or (looking-at "+[-+]") (looking-at "+[\n|]"))
(forward-char 1)
(insert "1")
@@ -436,7 +437,7 @@ reversed."
(setq ex-token-type 'plus))
(t
(error viper-BadAddress))))
- ((looking-at "-")
+ ((= char ?-)
(cond ((or (looking-at "-[-+]") (looking-at "-[\n|]"))
(forward-char 1)
(insert "1")
@@ -447,7 +448,7 @@ reversed."
(setq ex-token-type 'minus))
(t
(error viper-BadAddress))))
- ((looking-at "/")
+ ((= char ?/)
(forward-char 1)
(set-mark (point))
(let ((cont t))
@@ -459,9 +460,9 @@ reversed."
(setq cont nil))))
(backward-char 1)
(setq ex-token (buffer-substring (point) (mark t)))
- (if (looking-at "/") (forward-char 1))
+ (when (= (following-char) ?/) (forward-char 1))
(setq ex-token-type 'search-forward))
- ((looking-at "\\?")
+ ((= char ??)
(forward-char 1)
(set-mark (point))
(let ((cont t))
@@ -472,27 +473,27 @@ reversed."
(line-beginning-position 0)))
(setq cont nil))
(backward-char 1)
- (if (not (looking-at "\n")) (forward-char 1))))
+ (when (/= (following-char) ?\n) (forward-char 1))))
(setq ex-token-type 'search-backward)
(setq ex-token (buffer-substring (1- (point)) (mark t))))
- ((looking-at ",")
+ ((= char ?,)
(forward-char 1)
(setq ex-token-type 'comma))
- ((looking-at ";")
+ ((= char ?\;)
(forward-char 1)
(setq ex-token-type 'semi-colon))
((looking-at "[!=><&~]")
(setq ex-token-type 'command)
- (setq ex-token (char-to-string (following-char)))
+ (setq ex-token (char-to-string char))
(forward-char 1))
- ((looking-at "'")
+ ((= char ?\')
(setq ex-token-type 'goto-mark)
(forward-char 1)
- (cond ((looking-at "'") (setq ex-token nil))
+ (cond ((= (following-char) ?\') (setq ex-token nil))
((looking-at "[a-z]") (setq ex-token (following-char)))
(t (error "%s" "Marks are ' and a-z")))
(forward-char 1))
- ((looking-at "\n")
+ ((= char ?\n)
(setq ex-token-type 'end-mark)
(setq ex-token "goto"))
(t
@@ -687,9 +688,9 @@ reversed."
(get-buffer-create viper-ex-work-buf-name))
(set-buffer viper-ex-work-buf)
(skip-chars-forward " \t")
- (cond ((looking-at "|")
+ (cond ((= (following-char) ?|)
(forward-char 1))
- ((looking-at "\n")
+ ((= (following-char) ?\n)
(setq cont nil))
(t (error
"`%s': %s" ex-token viper-SpuriousText)))
@@ -994,33 +995,31 @@ reversed."
(with-current-buffer (setq viper-ex-work-buf
(get-buffer-create viper-ex-work-buf-name))
(skip-chars-forward " \t")
- (if (looking-at "!")
- (if (and (not (looking-back "[ \t]" (1- (point))))
- ;; read doesn't have a corresponding :r! form, so ! is
- ;; immediately interpreted as a shell command.
- (not (string= ex-token "read")))
- (progn
- (setq ex-variant t)
- (forward-char 1)
- (skip-chars-forward " \t"))
- (setq ex-cmdfile t)
- (forward-char 1)
- (skip-chars-forward " \t")))
- (if (looking-at ">>")
- (progn
- (setq ex-append t
- ex-variant t)
- (forward-char 2)
- (skip-chars-forward " \t")))
- (if (looking-at "+")
- (progn
- (forward-char 1)
- (set-mark (point))
- (re-search-forward "[ \t\n]")
- (backward-char 1)
- (setq ex-offset (buffer-substring (point) (mark t)))
- (forward-char 1)
- (skip-chars-forward " \t")))
+ (when (= (following-char) ?!)
+ (if (and (not (memq (preceding-char) '(?\s ?\t)))
+ ;; read doesn't have a corresponding :r! form, so ! is
+ ;; immediately interpreted as a shell command.
+ (not (string= ex-token "read")))
+ (progn
+ (setq ex-variant t)
+ (forward-char 1)
+ (skip-chars-forward " \t"))
+ (setq ex-cmdfile t)
+ (forward-char 1)
+ (skip-chars-forward " \t")))
+ (when (looking-at ">>")
+ (setq ex-append t
+ ex-variant t)
+ (forward-char 2)
+ (skip-chars-forward " \t"))
+ (when (= (following-char) ?+)
+ (forward-char 1)
+ (set-mark (point))
+ (re-search-forward "[ \t\n]")
+ (backward-char 1)
+ (setq ex-offset (buffer-substring (point) (mark t)))
+ (forward-char 1)
+ (skip-chars-forward " \t"))
;; this takes care of :r, :w, etc., when they get file names
;; from the history list
(if (member ex-token '("read" "write" "edit" "visual" "next"))
@@ -1602,7 +1601,7 @@ reversed."
;; skip "!", if it is q!. In Viper q!, w!, etc., behave as q, w, etc.
(with-current-buffer (setq viper-ex-work-buf
(get-buffer-create viper-ex-work-buf-name))
- (if (looking-at "!") (forward-char 1)))
+ (when (= (following-char) ?!) (forward-char 1)))
(if (< viper-expert-level 3)
(save-buffers-kill-emacs)
(kill-buffer (current-buffer))))
@@ -2322,8 +2321,4 @@ Type `mak ' (including the space) to run make with no args."
(with-output-to-temp-buffer " *viper-info*"
(princ lines))))))
-
-
-
-
;;; viper-ex.el ends here