diff lisp/simple.el @ 5576:071b810ceb18

Declare labels as line where appropriate; use #'labels, not #'flet, tests. lisp/ChangeLog addition: 2011-10-03 Aidan Kehoe <kehoea@parhasard.net> * simple.el (handle-pre-motion-command-current-command-is-motion): Implement #'keysyms-equal with #'labels + (declare (inline ...)), instead of abusing macrolet to the same end. * specifier.el (let-specifier): * mule/mule-cmds.el (describe-language-environment): * mule/mule-cmds.el (set-language-environment-coding-systems): * mule/mule-x-init.el (x-use-halfwidth-roman-font): * faces.el (Face-frob-property): * keymap.el (key-sequence-list-description): * lisp-mode.el (construct-lisp-mode-menu): * loadhist.el (unload-feature): * mouse.el (default-mouse-track-check-for-activation): Declare various labels inline in dumped files when that reduces the size of the dumped image. Declaring labels inline is normally only worthwhile for inner loops and so on, but it's reasonable exercise of the related code to have these changes in core. tests/ChangeLog addition: 2011-10-03 Aidan Kehoe <kehoea@parhasard.net> * automated/case-tests.el (uni-mappings): * automated/database-tests.el (delete-database-files): * automated/hash-table-tests.el (iterations): * automated/lisp-tests.el (test1): * automated/lisp-tests.el (a): * automated/lisp-tests.el (cl-floor): * automated/lisp-tests.el (foo): * automated/lisp-tests.el (list-nreverse): * automated/lisp-tests.el (needs-lexical-context): * automated/mule-tests.el (featurep): * automated/os-tests.el (original-string): * automated/os-tests.el (with): * automated/symbol-tests.el (check-weak-list-unique): Replace #'flet with #'labels where appropriate in these tests, following my own advice on style in the docstrings of those functions.
author Aidan Kehoe <kehoea@parhasard.net>
date Mon, 03 Oct 2011 20:16:14 +0100
parents 3bc58dc9d688
children cc6f0266bc36
line wrap: on
line diff
--- a/lisp/simple.el	Mon Oct 03 19:39:01 2011 +0100
+++ b/lisp/simple.el	Mon Oct 03 20:16:14 2011 +0100
@@ -2084,20 +2084,19 @@
 
 (defun handle-pre-motion-command-current-command-is-motion ()
   (and (key-press-event-p last-input-event)
-       (macrolet
-	   ((keysyms-equal (&rest args)
-	      `((lambda (a b)
-		  (when (and
-			 ;; As of now, none of the elements of
-			 ;; motion-keys-for-shifted-motion are non-symbols;
-			 ;; this redundant check saves a few hundred
-			 ;; funcalls on startup.
-			 (not (symbolp b)) 
-			 (characterp b))
-		    (setf (car char-list) b
-			  b (intern (concat char-list nil))))
-		  (eq a b))
-		,@args)))
+       (labels
+	   ((keysyms-equal (a b)
+              (when (and
+                     ;; As of now, none of the elements of
+                     ;; motion-keys-for-shifted-motion are non-symbols;
+                     ;; this redundant check saves a few hundred
+                     ;; funcalls on startup.
+                     (not (symbolp b)) 
+                     (characterp b))
+                (setf (car char-list) b
+                      b (intern (concat char-list nil))))
+              (eq a b)))
+         (declare (inline keysyms-equal) (special char-list))
          (loop
            for keysym in motion-keys-for-shifted-motion
            with key = (event-key last-input-event)