diff lisp/emacs-lisp/bytecomp.el @ 90796:4ef881a120fe

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 675-697) - Update from CVS - Merge from gnus--rel--5.10 - Release ERC 5.2. * gnus--rel--5.10 (patch 211-215) - Update from CVS - Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-189
author Miles Bader <miles@gnu.org>
date Wed, 11 Apr 2007 00:17:47 +0000
parents 91bf6e05918b 14feb20665af
children e6fdae9180d4
line wrap: on
line diff
--- a/lisp/emacs-lisp/bytecomp.el	Fri Mar 30 02:06:58 2007 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Wed Apr 11 00:17:47 2007 +0000
@@ -2341,7 +2341,7 @@
 		    (eq (car (car (cdr tail))) 'declare))
 	  (let ((declaration (car (cdr tail))))
 	    (setcdr tail (cdr (cdr tail)))
-	    (princ `(if macro-declaration-function
+	    (prin1 `(if macro-declaration-function
 			(funcall macro-declaration-function
 				 ',name ',declaration))
 		   outbuffer)))))
@@ -3148,6 +3148,7 @@
 
 ;; more complicated compiler macros
 
+(byte-defop-compiler char-before)
 (byte-defop-compiler list)
 (byte-defop-compiler concat)
 (byte-defop-compiler fset)
@@ -3159,6 +3160,13 @@
 (byte-defop-compiler19 (/ byte-quo) byte-compile-quo)
 (byte-defop-compiler19 nconc)
 
+(defun byte-compile-char-before (form)
+  (cond ((= 2 (length form))
+         (byte-compile-form `(char-after (1- ,(nth 1 form)))))
+        ((= 1 (length form))
+         (byte-compile-form '(char-after (1- (point)))))
+        (t (byte-compile-subr-wrong-args form "0-1"))))
+
 (defun byte-compile-list (form)
   (let ((count (length (cdr form))))
     (cond ((= count 0)