From 467f3b337c3f67ddf8380c52efbf49715fb5ea4c Mon Sep 17 00:00:00 2001 From: Glenn Morris Date: Fri, 7 Jun 2013 18:35:47 -0700 Subject: [PATCH] Improve previous bytecomp fix * lisp/emacs-lisp/bytecomp.el (byte-compile-char-before) (byte-compile-backward-char, byte-compile-backward-word): Improve previous change, to handle non-explicit nil. --- lisp/ChangeLog | 6 ++++++ lisp/emacs-lisp/bytecomp.el | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 082aeeeca2..4e02c72d98 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-06-08 Glenn Morris + + * emacs-lisp/bytecomp.el (byte-compile-char-before) + (byte-compile-backward-char, byte-compile-backward-word): + Improve previous change, to handle non-explicit nil. + 2013-06-07 Stefan Monnier * emacs-lisp/smie.el: Improve show-paren-mode behavior. diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el index 5efdd6a675..e603f76f41 100644 --- a/lisp/emacs-lisp/bytecomp.el +++ b/lisp/emacs-lisp/bytecomp.el @@ -3446,6 +3446,7 @@ discarding." (byte-defop-compiler (/ byte-quo) byte-compile-quo) (byte-defop-compiler nconc) +;; Is this worth it? Both -before and -after are written in C. (defun byte-compile-char-before (form) (cond ((or (= 1 (length form)) (and (= 2 (length form)) (not (nth 1 form)))) @@ -3453,10 +3454,12 @@ discarding." ((= 2 (length form)) (byte-compile-form (list 'char-after (if (numberp (nth 1 form)) (1- (nth 1 form)) - `(1- ,(nth 1 form)))))) + `(1- (or ,(nth 1 form) + (point))))))) (t (byte-compile-subr-wrong-args form "0-1")))) ;; backward-... ==> forward-... with negated argument. +;; Is this worth it? Both -backward and -forward are written in C. (defun byte-compile-backward-char (form) (cond ((or (= 1 (length form)) (and (= 2 (length form)) (not (nth 1 form)))) @@ -3464,7 +3467,7 @@ discarding." ((= 2 (length form)) (byte-compile-form (list 'forward-char (if (numberp (nth 1 form)) (- (nth 1 form)) - `(- ,(nth 1 form)))))) + `(- (or ,(nth 1 form) 1)))))) (t (byte-compile-subr-wrong-args form "0-1")))) (defun byte-compile-backward-word (form) @@ -3474,7 +3477,7 @@ discarding." ((= 2 (length form)) (byte-compile-form (list 'forward-word (if (numberp (nth 1 form)) (- (nth 1 form)) - `(- ,(nth 1 form)))))) + `(- (or ,(nth 1 form) 1)))))) (t (byte-compile-subr-wrong-args form "0-1")))) (defun byte-compile-list (form) -- 2.20.1