comparison lisp/files.el @ 5652:cc6f0266bc36

Avoid #'delq in core Lisp, for the sake of style, a very slightly smaller binary lisp/ChangeLog addition: 2012-05-01 Aidan Kehoe <kehoea@parhasard.net> Avoid #'delq in core code, for the sake of style and a (very slightly) smaller binary. * behavior.el (disable-behavior): * behavior.el (compute-behavior-group-children): * buff-menu.el (buffers-tab-items): * byte-optimize.el (byte-optimize-delay-constants-math): * byte-optimize.el (byte-optimize-logmumble): * byte-optimize.el (byte-decompile-bytecode-1): * byte-optimize.el (byte-optimize-lapcode): * bytecomp.el: * bytecomp.el (byte-compile-arglist-warn): * bytecomp.el (byte-compile-warn-about-unresolved-functions): * bytecomp.el (byte-compile-lambda): * bytecomp.el (byte-compile-out-toplevel): * bytecomp.el (byte-compile-insert): * bytecomp.el (byte-compile-defalias-warn): * cl-macs.el (cl-upcase-arg): * cl-macs.el (cl-transform-lambda): * cl-macs.el (cl-do-proclaim): * cl-macs.el (defstruct): * cl-macs.el (cl-make-type-test): * cl-macs.el (define-compiler-macro): * cl-macs.el (delete-duplicates): * cus-edit.el (widget-face-value-delete): * cus-edit.el (face-history): * easymenu.el (easy-menu-remove): * files.el (files-fetch-hook-value): * files.el (file-expand-wildcards): * font-lock.el (font-lock-update-removed-keyword-alist): * font-lock.el (font-lock-remove-keywords): * frame.el (frame-initialize): * frame.el (frame-notice-user-settings): * frame.el (set-frame-font): * frame.el (delete-other-frames): * frame.el (get-frame-for-buffer-noselect): * gnuserv.el (gnuserv-kill-buffer-function): * gnuserv.el (gnuserv-check-device): * gnuserv.el (gnuserv-kill-client): * gnuserv.el (gnuserv-buffer-done-1): * gtk-font-menu.el (gtk-reset-device-font-menus): * gutter-items.el (buffers-tab-items): * gutter.el (set-gutter-element-visible-p): * info.el (Info-find-file-node): * info.el (Info-history-add): * info.el (Info-build-annotation-completions): * info.el (Info-index): * info.el (Info-reannotate-node): * itimer.el (delete-itimer): * itimer.el (start-itimer): * lib-complete.el (lib-complete:cache-completions): * loadhist.el (unload-feature): * menubar-items.el (build-buffers-menu-internal): * menubar.el (delete-menu-item): * menubar.el (relabel-menu-item): * msw-font-menu.el (mswindows-reset-device-font-menus): * mule/make-coding-system.el (fixed-width-generate-helper): * next-error.el (next-error-find-buffer): * obsolete.el: * obsolete.el (find-non-ascii-charset-string): * obsolete.el (find-non-ascii-charset-region): * occur.el (multi-occur-by-filename-regexp): * occur.el (occur-1): * packages.el (packages-package-hierarchy-directory-names): * packages.el (package-get-key-1): * process.el (setenv): * simple.el (undo): * simple.el (handle-pre-motion-command-current-command-is-motion): * sound.el (load-sound-file): * wid-edit.el (widget-field-value-delete): * wid-edit.el (widget-checklist-match-inline): * wid-edit.el (widget-checklist-match-find): * wid-edit.el (widget-editable-list-delete-at): * wid-edit.el (widget-editable-list-entry-create): * window.el (quit-window): * x-font-menu.el (x-reset-device-font-menus-core): 1. Replace (delq nil (mapcar ....)) with analogous (mapcan ...) forms; this is in non-dumped files, it was done previously in dumped files. 2. Replace (delq FOO (copy-sequence BAR)) with (remove* FOO BAR), where #'eq and #'eql are equivalent 3. Replace (delq FOO BAR) with (delete* FOO BAR), where FOO is not a non-fixnum number. Saves a little space in the dumped file (since the compiler macro adds :test #'eq to the delete* call if it's not clear that FOO is not a non-fixnum number).
author Aidan Kehoe <kehoea@parhasard.net>
date Tue, 01 May 2012 16:17:42 +0100
parents f0f1fd0d8486
children b7ae5f44b950
comparison
equal deleted inserted replaced
5651:ae2fdb1fd9e0 5652:cc6f0266bc36
2836 2836
2837 (defun files-fetch-hook-value (hook) 2837 (defun files-fetch-hook-value (hook)
2838 (let ((localval (copy-list (symbol-value hook))) 2838 (let ((localval (copy-list (symbol-value hook)))
2839 (globalval (copy-list (default-value hook)))) 2839 (globalval (copy-list (default-value hook))))
2840 (if (memq t localval) 2840 (if (memq t localval)
2841 (setq localval (append (delq t localval) (delq t globalval)))) 2841 (setq localval (append (delete* t localval) (delete* t globalval))))
2842 localval)) 2842 localval))
2843 2843
2844 (defun basic-save-buffer () 2844 (defun basic-save-buffer ()
2845 "Save the current buffer in its visited file, if it has been modified. 2845 "Save the current buffer in its visited file, if it has been modified.
2846 The hooks `write-contents-hooks', `local-write-file-hooks' and 2846 The hooks `write-contents-hooks', `local-write-file-hooks' and
4063 (while dirs 4063 (while dirs
4064 (when (or (null (car dirs)) ; Possible if DIRPART is not wild. 4064 (when (or (null (car dirs)) ; Possible if DIRPART is not wild.
4065 (file-directory-p (directory-file-name (car dirs)))) 4065 (file-directory-p (directory-file-name (car dirs))))
4066 (let ((this-dir-contents 4066 (let ((this-dir-contents
4067 ;; Filter out "." and ".." 4067 ;; Filter out "." and ".."
4068 (delq nil 4068 (nset-difference (directory-files (or (car dirs) ".") full
4069 (mapcar #'(lambda (name) 4069 (wildcard-to-regexp nondir))
4070 (unless (string-match "\\`\\.\\.?\\'" 4070 '("." "..") :test #'equal)))
4071 (file-name-nondirectory name))
4072 name))
4073 (directory-files (or (car dirs) ".") full
4074 (wildcard-to-regexp nondir))))))
4075 (setq contents 4071 (setq contents
4076 (nconc 4072 (nconc
4077 (if (and (car dirs) (not full)) 4073 (if (and (car dirs) (not full))
4078 (mapcar (function (lambda (name) (concat (car dirs) name))) 4074 (mapcar (function (lambda (name) (concat (car dirs) name)))
4079 this-dir-contents) 4075 this-dir-contents)