Commit dc5d230c authored by Stefan Monnier's avatar Stefan Monnier

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.
parent e8c1cabf
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
......@@ -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)
(require 'cl)
......@@ -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
......@@ -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)
(cl-caddr err)
(+ (cl-caddr err)
(if (< (point) (cl-caddr err))
-1 1)))))))
(let ((pos (nth 2 err)))
(throw 'return
(list t pos
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))))))
......@@ -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))
......@@ -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)
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)
......@@ -1126,11 +1126,12 @@ mail status in mode line"))
(define-key menu [word-wrap]
,(purecopy "Word Wrap (Visual Line mode)")
(lambda ()
(unless visual-line-mode
(visual-line-mode 1))
(message ,(purecopy "Visual-Line mode enabled")))
(lambda ()
(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))
......@@ -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)))
(toggle-read-only 1)
(setq buffer-read-only t)
(message "Retrieving revision %s... Done" rev)
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment