Miscellaneous minor cleanups and simplifications.
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 23 Jun 2012 15:38:23 +0000 (11:38 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 23 Jun 2012 15:38:23 +0000 (11:38 -0400)
* 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
lisp/emacs-lisp/eieio.el
lisp/emacs-lisp/macroexp.el
lisp/emacs-lisp/smie.el
lisp/emacs-lisp/syntax.el
lisp/help-fns.el
lisp/menu-bar.el
lisp/vc/pcvs.el

index 22e8c23..d157c36 100644 (file)
@@ -1,3 +1,14 @@
+2012-06-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * 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  <cyd@gnu.org>
 
        * info.el (Info-mouse-follow-link): Accept symbol values of
index 1efb74e..cfba4a8 100644 (file)
@@ -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 <kohrs@acm.org>
+;; FIXME: Not needed for Emacs>=24.2 since setf expands macros.
 (define-setf-method oref (obj slot)
   (with-no-warnings
     (require 'cl)
index 6275fd1..c6e1c0f 100644 (file)
@@ -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
index be3a982..9fa8a10 100644 (file)
@@ -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))))))
index 748f314..c3d78b3 100644 (file)
@@ -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))
index 72b494f..555bdbb 100644 (file)
@@ -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)
index ec6a462..64b0a18 100644 (file)
@@ -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))
index 6aec247..0508f45 100644 (file)
@@ -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))))))