From dc5d230cac26a7ad04afd63bfc8db7c3df529fba Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Sat, 23 Jun 2012 11:38:23 -0400 Subject: [PATCH] Miscellaneous minor cleanups and simplifications. * lisp/help-fns.el (describe-variable): Don't croak when doc is not found. * lisp/vc/pcvs.el (cvs-retrieve-revision): Avoid toggle-read-only. * lisp/menu-bar.el (menu-bar-line-wrapping-menu): Purecopy a tiny bit more. * lisp/emacs-lisp/syntax.el (syntax-ppss): Simplify with new `if' place. * lisp/emacs-lisp/smie.el (smie-next-sexp): CSE. * lisp/emacs-lisp/macroexp.el (macroexp-let2): Fix edebug spec and avoid ((lambda ..) ..). * lisp/emacs-lisp/eieio.el (eieio-oref, slot-value): Use simpler defsetf. --- lisp/ChangeLog | 11 +++++++++++ lisp/emacs-lisp/eieio.el | 6 ++++-- lisp/emacs-lisp/macroexp.el | 4 ++-- lisp/emacs-lisp/smie.el | 13 ++++++------- lisp/emacs-lisp/syntax.el | 6 ++---- lisp/help-fns.el | 8 ++++++-- lisp/menu-bar.el | 11 ++++++----- lisp/vc/pcvs.el | 2 +- 8 files changed, 38 insertions(+), 23 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 22e8c23c142..d157c36e36f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,14 @@ +2012-06-23 Stefan Monnier + + * help-fns.el (describe-variable): Don't croak when doc is not found. + * vc/pcvs.el (cvs-retrieve-revision): Avoid toggle-read-only. + * menu-bar.el (menu-bar-line-wrapping-menu): Purecopy a tiny bit more. + * emacs-lisp/syntax.el (syntax-ppss): Simplify with new `if' place. + * emacs-lisp/smie.el (smie-next-sexp): CSE. + * emacs-lisp/macroexp.el (macroexp-let2): Fix edebug spec and avoid + ((lambda ..) ..). + * emacs-lisp/eieio.el (eieio-oref, slot-value): Use simpler defsetf. + 2012-06-23 Chong Yidong * info.el (Info-mouse-follow-link): Accept symbol values of diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el index 1efb74e7139..cfba4a84d13 100644 --- a/lisp/emacs-lisp/eieio.el +++ b/lisp/emacs-lisp/eieio.el @@ -2543,10 +2543,12 @@ This is usually a symbol that starts with `:'." ;;; Here are some CLOS items that need the CL package ;; -(defsetf slot-value (obj slot) (store) (list 'eieio-oset obj slot store)) -(defsetf eieio-oref (obj slot) (store) (list 'eieio-oset obj slot store)) +(defsetf eieio-oref eieio-oset) +;; FIXME: Not needed for Emacs>=24.2 since setf follows function aliases. +(defsetf slot-value eieio-oset) ;; The below setf method was written by Arnd Kohrs +;; FIXME: Not needed for Emacs>=24.2 since setf expands macros. (define-setf-method oref (obj slot) (with-no-warnings (require 'cl) diff --git a/lisp/emacs-lisp/macroexp.el b/lisp/emacs-lisp/macroexp.el index 6275fd1cdf8..c6e1c0fea38 100644 --- a/lisp/emacs-lisp/macroexp.el +++ b/lisp/emacs-lisp/macroexp.el @@ -269,11 +269,11 @@ This is like `(let ((v ,EXP)) ,EXPS) except that `v' is a new generated symbol which EXPS can find in VAR. TEST should be the name of a predicate on EXP checking whether the `let' can be skipped; if nil, as is usual, `macroexp-const-p' is used." - (declare (indent 3) (debug (sexp form sexp body))) + (declare (indent 3) (debug (sexp sexp form body))) (let ((bodysym (make-symbol "body")) (expsym (make-symbol "exp"))) `(let* ((,expsym ,exp) - (,var (if (,(or test #'macroexp-const-p) ,expsym) + (,var (if (funcall #',(or test #'macroexp-const-p) ,expsym) ,expsym (make-symbol "x"))) (,bodysym ,(macroexp-progn exps))) (if (eq ,var ,expsym) ,bodysym diff --git a/lisp/emacs-lisp/smie.el b/lisp/emacs-lisp/smie.el index be3a9828491..9fa8a108236 100644 --- a/lisp/emacs-lisp/smie.el +++ b/lisp/emacs-lisp/smie.el @@ -708,13 +708,12 @@ Possible return values: (when (zerop (length token)) (condition-case err (progn (goto-char pos) (funcall next-sexp 1) nil) - (scan-error (throw 'return - (list t (cl-caddr err) - (buffer-substring-no-properties - (cl-caddr err) - (+ (cl-caddr err) - (if (< (point) (cl-caddr err)) - -1 1))))))) + (scan-error + (let ((pos (nth 2 err))) + (throw 'return + (list t pos + (buffer-substring-no-properties + pos (+ pos (if (< (point) pos) -1 1)))))))) (if (eq pos (point)) ;; We did not move, so let's abort the loop. (throw 'return (list t (point)))))) diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index 748f31464e0..c3d78b3444b 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -511,10 +511,8 @@ Point is at POS when this function returns." (setq ppss (parse-partial-sexp pt-min (setq pt-min (/ (+ pt-min pos) 2)) nil nil ppss)) - (let ((pair (cons pt-min ppss))) - (if cache-pred - (push pair (cdr cache-pred)) - (push pair syntax-ppss-cache)))) + (push (cons pt-min ppss) + (if cache-pred (cdr cache-pred) syntax-ppss-cache))) ;; Compute the actual return value. (setq ppss (parse-partial-sexp pt-min pos nil nil ppss)) diff --git a/lisp/help-fns.el b/lisp/help-fns.el index 72b494f9800..555bdbb69ce 100644 --- a/lisp/help-fns.el +++ b/lisp/help-fns.el @@ -806,8 +806,12 @@ it is displayed along with the global value." (obsolete (get variable 'byte-obsolete-variable)) (use (car obsolete)) (safe-var (get variable 'safe-local-variable)) - (doc (or (documentation-property variable 'variable-documentation) - (documentation-property alias 'variable-documentation))) + (doc (condition-case err + (or (documentation-property + variable 'variable-documentation) + (documentation-property + alias 'variable-documentation)) + (error (format "Doc not found: %S" err)))) (extra-line nil)) ;; Add a note for variables that have been make-var-buffer-local. (when (and (local-variable-if-set-p variable) diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index ec6a4621a4e..64b0a18e901 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el @@ -1126,11 +1126,12 @@ mail status in mode line")) (define-key menu [word-wrap] `(menu-item ,(purecopy "Word Wrap (Visual Line mode)") - (lambda () - (interactive) - (unless visual-line-mode - (visual-line-mode 1)) - (message ,(purecopy "Visual-Line mode enabled"))) + ,(purecopy + (lambda () + (interactive) + (unless visual-line-mode + (visual-line-mode 1)) + (message "Visual-Line mode enabled"))) :help ,(purecopy "Wrap long lines at word boundaries") :button (:radio . (and (null truncate-lines) (not (truncated-partial-width-window-p)) diff --git a/lisp/vc/pcvs.el b/lisp/vc/pcvs.el index 6aec24755b5..0508f45149a 100644 --- a/lisp/vc/pcvs.el +++ b/lisp/vc/pcvs.el @@ -1758,7 +1758,7 @@ Signal an error if there is no backup file." (set-buffer-modified-p nil) (let ((buffer-file-name (expand-file-name file))) (after-find-file)) - (toggle-read-only 1) + (setq buffer-read-only t) (message "Retrieving revision %s... Done" rev) (current-buffer)))))) -- 2.39.2