diff options
author | Glenn Morris <rgm@gnu.org> | 2013-06-06 17:04:43 -0400 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2013-06-06 17:04:43 -0400 |
commit | 961166f506a6184881f4318f9d0cf198ef29b036 (patch) | |
tree | af597ef65fb2b9b678245eb8038833891a84fca6 /lisp/emacs-lisp/bytecomp.el | |
parent | 9ef6111b7cab7e28e74c0763696a38b34285dc4f (diff) | |
download | emacs-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.el | 21 |
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) |