summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/bytecomp.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2013-06-06 17:04:43 -0400
committerGlenn Morris <rgm@gnu.org>2013-06-06 17:04:43 -0400
commit961166f506a6184881f4318f9d0cf198ef29b036 (patch)
treeaf597ef65fb2b9b678245eb8038833891a84fca6 /lisp/emacs-lisp/bytecomp.el
parent9ef6111b7cab7e28e74c0763696a38b34285dc4f (diff)
downloademacs-961166f506a6184881f4318f9d0cf198ef29b036.tar.gz
emacs-961166f506a6184881f4318f9d0cf198ef29b036.tar.bz2
emacs-961166f506a6184881f4318f9d0cf198ef29b036.zip
bytecomp fix for bug#14565
* lisp/emacs-lisp/bytecomp.el (byte-compile-char-before) (byte-compile-backward-char, byte-compile-backward-word): Handle explicit nil arguments.
Diffstat (limited to 'lisp/emacs-lisp/bytecomp.el')
-rw-r--r--lisp/emacs-lisp/bytecomp.el21
1 files changed, 12 insertions, 9 deletions
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index aa28c747ff6..5efdd6a675c 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -3447,31 +3447,34 @@ discarding."
(byte-defop-compiler nconc)
(defun byte-compile-char-before (form)
- (cond ((= 2 (length form))
+ (cond ((or (= 1 (length form))
+ (and (= 2 (length form)) (not (nth 1 form))))
+ (byte-compile-form '(char-after (1- (point)))))
+ ((= 2 (length form))
(byte-compile-form (list 'char-after (if (numberp (nth 1 form))
(1- (nth 1 form))
`(1- ,(nth 1 form))))))
- ((= 1 (length form))
- (byte-compile-form '(char-after (1- (point)))))
(t (byte-compile-subr-wrong-args form "0-1"))))
;; backward-... ==> forward-... with negated argument.
(defun byte-compile-backward-char (form)
- (cond ((= 2 (length form))
+ (cond ((or (= 1 (length form))
+ (and (= 2 (length form)) (not (nth 1 form))))
+ (byte-compile-form '(forward-char -1)))
+ ((= 2 (length form))
(byte-compile-form (list 'forward-char (if (numberp (nth 1 form))
(- (nth 1 form))
`(- ,(nth 1 form))))))
- ((= 1 (length form))
- (byte-compile-form '(forward-char -1)))
(t (byte-compile-subr-wrong-args form "0-1"))))
(defun byte-compile-backward-word (form)
- (cond ((= 2 (length form))
+ (cond ((or (= 1 (length form))
+ (and (= 2 (length form)) (not (nth 1 form))))
+ (byte-compile-form '(forward-word -1)))
+ ((= 2 (length form))
(byte-compile-form (list 'forward-word (if (numberp (nth 1 form))
(- (nth 1 form))
`(- ,(nth 1 form))))))
- ((= 1 (length form))
- (byte-compile-form '(forward-word -1)))
(t (byte-compile-subr-wrong-args form "0-1"))))
(defun byte-compile-list (form)