diff options
Diffstat (limited to 'lisp/emacs-lisp')
| -rw-r--r-- | lisp/emacs-lisp/byte-opt.el | 18 | ||||
| -rw-r--r-- | lisp/emacs-lisp/gv.el | 17 | ||||
| -rw-r--r-- | lisp/emacs-lisp/package.el | 4 |
3 files changed, 23 insertions, 16 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el index 90d1dd913e9..ee0a5a11c7b 100644 --- a/lisp/emacs-lisp/byte-opt.el +++ b/lisp/emacs-lisp/byte-opt.el @@ -859,14 +859,16 @@ (defun byte-optimize-binary-predicate (form) - (if (macroexp-const-p (nth 1 form)) - (if (macroexp-const-p (nth 2 form)) - (condition-case () - (list 'quote (eval form)) - (error form)) - ;; This can enable some lapcode optimizations. - (list (car form) (nth 2 form) (nth 1 form))) - form)) + (cond + ((or (not (macroexp-const-p (nth 1 form))) + (nthcdr 3 form)) ;; In case there are more than 2 args. + form) + ((macroexp-const-p (nth 2 form)) + (condition-case () + (list 'quote (eval form)) + (error form))) + (t ;; This can enable some lapcode optimizations. + (list (car form) (nth 2 form) (nth 1 form))))) (defun byte-optimize-predicate (form) (let ((ok t) diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index 66241897536..692b76e8a36 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el @@ -340,13 +340,18 @@ The return value is the last VAL in the list. (gv-define-simple-setter process-filter set-process-filter) (gv-define-simple-setter process-sentinel set-process-sentinel) (gv-define-simple-setter process-get process-put) -(gv-define-simple-setter window-buffer set-window-buffer) -(gv-define-simple-setter window-display-table set-window-display-table 'fix) -(gv-define-simple-setter window-dedicated-p set-window-dedicated-p) -(gv-define-simple-setter window-hscroll set-window-hscroll) (gv-define-simple-setter window-parameter set-window-parameter) -(gv-define-simple-setter window-point set-window-point) -(gv-define-simple-setter window-start set-window-start) +(gv-define-setter window-buffer (v &optional w) + (macroexp-let2 nil v v + `(progn (set-window-buffer ,w ,v) ,v))) +(gv-define-setter window-display-table (v &optional w) + (macroexp-let2 nil v v + `(progn (set-window-display-table ,w ,v) ,v))) +(gv-define-setter window-dedicated-p (v &optional w) + `(set-window-dedicated-p ,w ,v)) +(gv-define-setter window-hscroll (v &optional w) `(set-window-hscroll ,w ,v)) +(gv-define-setter window-point (v &optional w) `(set-window-point ,w ,v)) +(gv-define-setter window-start (v &optional w) `(set-window-start ,w ,v)) (gv-define-setter buffer-local-value (val var buf) (macroexp-let2 nil v val diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el index c49cace04e4..d65633282c9 100644 --- a/lisp/emacs-lisp/package.el +++ b/lisp/emacs-lisp/package.el @@ -291,14 +291,14 @@ contrast, `package-user-dir' contains packages for personal use." (const t :tag "Check always")) :risky t :group 'package - :version "24.1") + :version "24.4") (defcustom package-unsigned-archives nil "A list of archives which do not use package signature." :type '(repeat (string :tag "Archive name")) :risky t :group 'package - :version "24.1") + :version "24.4") (defvar package--default-summary "No description available.") |
