comparison 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
comparison
equal deleted inserted replaced
5575:89cb6a66a61f 5576:071b810ceb18
2082 symbol)) 2082 symbol))
2083 :group 'editing-basics) 2083 :group 'editing-basics)
2084 2084
2085 (defun handle-pre-motion-command-current-command-is-motion () 2085 (defun handle-pre-motion-command-current-command-is-motion ()
2086 (and (key-press-event-p last-input-event) 2086 (and (key-press-event-p last-input-event)
2087 (macrolet 2087 (labels
2088 ((keysyms-equal (&rest args) 2088 ((keysyms-equal (a b)
2089 `((lambda (a b) 2089 (when (and
2090 (when (and 2090 ;; As of now, none of the elements of
2091 ;; As of now, none of the elements of 2091 ;; motion-keys-for-shifted-motion are non-symbols;
2092 ;; motion-keys-for-shifted-motion are non-symbols; 2092 ;; this redundant check saves a few hundred
2093 ;; this redundant check saves a few hundred 2093 ;; funcalls on startup.
2094 ;; funcalls on startup. 2094 (not (symbolp b))
2095 (not (symbolp b)) 2095 (characterp b))
2096 (characterp b)) 2096 (setf (car char-list) b
2097 (setf (car char-list) b 2097 b (intern (concat char-list nil))))
2098 b (intern (concat char-list nil)))) 2098 (eq a b)))
2099 (eq a b)) 2099 (declare (inline keysyms-equal) (special char-list))
2100 ,@args)))
2101 (loop 2100 (loop
2102 for keysym in motion-keys-for-shifted-motion 2101 for keysym in motion-keys-for-shifted-motion
2103 with key = (event-key last-input-event) 2102 with key = (event-key last-input-event)
2104 with mods = (delq 'shift (event-modifiers last-input-event)) 2103 with mods = (delq 'shift (event-modifiers last-input-event))
2105 with char-list = '(?a) ;; Some random character; the list will be 2104 with char-list = '(?a) ;; Some random character; the list will be