comparison lisp/wid-edit.el @ 5366:f00192e1cd49

Examining the result of #'length: `eql', not `=', it's better style & cheaper 2011-03-08 Aidan Kehoe <kehoea@parhasard.net> * buff-menu.el (list-buffers-noselect): * byte-optimize.el (byte-optimize-identity): * byte-optimize.el (byte-optimize-if): * byte-optimize.el (byte-optimize-nth): * byte-optimize.el (byte-optimize-nthcdr): * bytecomp.el (byte-compile-warn-wrong-args): * bytecomp.el (byte-compile-two-args-19->20): * bytecomp.el (byte-compile-list): * bytecomp.el (byte-compile-beginning-of-line): * bytecomp.el (byte-compile-set): * bytecomp.el (byte-compile-set-default): * bytecomp.el (byte-compile-values): * bytecomp.el (byte-compile-values-list): * bytecomp.el (byte-compile-integerp): * bytecomp.el (byte-compile-multiple-value-list-internal): * bytecomp.el (byte-compile-throw): * cl-macs.el (cl-do-arglist): * cl-macs.el (cl-parse-loop-clause): * cl-macs.el (multiple-value-bind): * cl-macs.el (multiple-value-setq): * cl-macs.el (get-setf-method): * cmdloop.el (command-error): * cmdloop.el (y-or-n-p-minibuf): * cmdloop.el (yes-or-no-p-minibuf): * coding.el (unencodable-char-position): * cus-edit.el (custom-face-prompt): * cus-edit.el (custom-buffer-create-internal): * cus-edit.el (widget-face-action): * cus-edit.el (custom-group-value-create): * descr-text.el (describe-char-unicode-data): * dialog-gtk.el (popup-builtin-question-dialog): * dragdrop.el (experimental-dragdrop-drop-log-function): * dragdrop.el (experimental-dragdrop-drop-mime-default): * easymenu.el (easy-menu-add): * easymenu.el (easy-menu-remove): * faces.el (read-face-name): * faces.el (set-face-stipple): * files.el (file-name-non-special): * font.el (font-combine-fonts): * font.el (font-set-face-font): * font.el (font-parse-rgb-components): * font.el (font-rgb-color-p): * font.el (font-color-rgb-components): * gnuserv.el (gnuserv-edit-files): * help.el (key-or-menu-binding): * help.el (function-documentation-1): * help.el (function-documentation): * info.el (info): * isearch-mode.el (isearch-exit): * isearch-mode.el (isearch-edit-string): * isearch-mode.el (isearch-*-char): * isearch-mode.el (isearch-complete1): * ldap.el (ldap-encode-country-string): * ldap.el (ldap-decode-string): * minibuf.el (read-file-name-internal-1): * minibuf.el (read-non-nil-coding-system): * minibuf.el (get-user-response): * mouse.el (drag-window-divider): * mule/ccl.el: * mule/ccl.el (ccl-compile-if): * mule/ccl.el (ccl-compile-break): * mule/ccl.el (ccl-compile-repeat): * mule/ccl.el (ccl-compile-write-repeat): * mule/ccl.el (ccl-compile-call): * mule/ccl.el (ccl-compile-end): * mule/ccl.el (ccl-compile-read-multibyte-character): * mule/ccl.el (ccl-compile-write-multibyte-character): * mule/ccl.el (ccl-compile-translate-character): * mule/ccl.el (ccl-compile-mule-to-unicode): * mule/ccl.el (ccl-compile-unicode-to-mule): * mule/ccl.el (ccl-compile-lookup-integer): * mule/ccl.el (ccl-compile-lookup-character): * mule/ccl.el (ccl-compile-map-multiple): * mule/ccl.el (ccl-compile-map-single): * mule/devan-util.el (devanagari-compose-to-one-glyph): * mule/devan-util.el (devanagari-composition-component): * mule/mule-cmds.el (finish-set-language-environment): * mule/viet-util.el: * mule/viet-util.el (viet-encode-viscii-char): * multicast.el (open-multicast-group): * newcomment.el (comment-quote-nested): * newcomment.el (comment-region): * newcomment.el (comment-dwim): * regexp-opt.el (regexp-opt-group): * replace.el (map-query-replace-regexp): * specifier.el (derive-device-type-from-tag-set): * subr.el (skip-chars-quote): * test-harness.el (test-harness-from-buffer): * test-harness.el (batch-test-emacs): * wid-edit.el (widget-choice-action): * wid-edit.el (widget-symbol-prompt-internal): * wid-edit.el (widget-color-action): * window-xemacs.el (push-window-configuration): * window-xemacs.el (pop-window-configuration): * window.el (quit-window): * x-compose.el (electric-diacritic): It's better style, and cheaper (often one assembler instruction vs. a C funcall in the byte code), to use `eql' instead of `=' when it's clear what numerical type a given result will be. Change much of our code to do this, with the help of a byte-compiler change (not comitted) that looked for calls to #'length (which always returns an integer) in its args.
author Aidan Kehoe <kehoea@parhasard.net>
date Tue, 08 Mar 2011 23:41:52 +0000
parents e687f1912d5b
children ac37a5f7e5be
comparison
equal deleted inserted replaced
5365:dbae25a8949d 5366:f00192e1cd49
2485 (let* ((external (widget-value widget)) 2485 (let* ((external (widget-value widget))
2486 (internal (widget-apply old :value-to-internal external))) 2486 (internal (widget-apply old :value-to-internal external)))
2487 (widget-put old :value internal))) 2487 (widget-put old :value internal)))
2488 ;; Find new choice. 2488 ;; Find new choice.
2489 (setq current 2489 (setq current
2490 (cond ((= (length args) 0) 2490 (cond ((eql (length args) 0)
2491 nil) 2491 nil)
2492 ((= (length args) 1) 2492 ((eql (length args) 1)
2493 (nth 0 args)) 2493 (nth 0 args))
2494 ((and widget-choice-toggle 2494 ((and widget-choice-toggle
2495 (= (length args) 2) 2495 (eql (length args) 2)
2496 (memq old args)) 2496 (memq old args))
2497 (if (eq old (nth 0 args)) 2497 (if (eq old (nth 0 args))
2498 (nth 1 args) 2498 (nth 1 args)
2499 (nth 0 args))) 2499 (nth 0 args)))
2500 (t 2500 (t
3637 ;; Read file from minibuffer. 3637 ;; Read file from minibuffer.
3638 (let ((answer (completing-read (concat prompt ": ") obarray 3638 (let ((answer (completing-read (concat prompt ": ") obarray
3639 (widget-get widget :prompt-match) 3639 (widget-get widget :prompt-match)
3640 nil initial history))) 3640 nil initial history)))
3641 (if (and (stringp answer) 3641 (if (and (stringp answer)
3642 (not (zerop (length answer)))) 3642 (not (eql (length answer) 0)))
3643 answer 3643 answer
3644 (error "No value")))) 3644 (error "No value"))))
3645 3645
3646 (defvar widget-function-prompt-value-history nil 3646 (defvar widget-function-prompt-value-history nil
3647 "History of input to `widget-function-prompt-value'.") 3647 "History of input to `widget-function-prompt-value'.")
4029 4029
4030 (defun widget-color-action (widget &optional event) 4030 (defun widget-color-action (widget &optional event)
4031 "Prompt for a color." 4031 "Prompt for a color."
4032 (let* ((tag (widget-apply widget :menu-tag-get)) 4032 (let* ((tag (widget-apply widget :menu-tag-get))
4033 (answer (read-color (concat tag ": ")))) 4033 (answer (read-color (concat tag ": "))))
4034 (unless (zerop (length answer)) 4034 (unless (eql (length answer) 0)
4035 (widget-value-set widget answer) 4035 (widget-value-set widget answer)
4036 (widget-setup) 4036 (widget-setup)
4037 (widget-apply widget :notify widget event)))) 4037 (widget-apply widget :notify widget event))))
4038 4038
4039 (defun widget-color-notify (widget child &optional event) 4039 (defun widget-color-notify (widget child &optional event)