Mercurial > hg > xemacs-beta
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 |