From: Glenn Morris Date: Wed, 13 Aug 2008 03:07:55 +0000 (+0000) Subject: (sync from trunk 2008-01-25) X-Git-Tag: emacs-pretest-22.2.90~3 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6ad38dc0acb6370bf5a65688fc891e67ae789e5b;p=emacs.git (sync from trunk 2008-01-25) Martin Rudalics (find-library): Wrap search for library name in condition-case to avoid reporting a scan-error. (Bug#563) --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 8e4f7bb0f21..fa439380097 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2008-08-13 Martin Rudalics + + * emacs-lisp/find-func.el (find-library): Wrap search for + library name in condition-case to avoid reporting a scan-error. + (Bug#563) (sync from trunk 2008-01-25) + 2008-08-12 Juanma Barranquero * desktop.el (desktop-minor-mode-table): Add `savehist-mode'. diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 2022d3ab7d4..fc7ea2415e0 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -198,11 +198,17 @@ TYPE should be nil to find a function, or `defvar' to find a variable." (let* ((path (cons (or find-function-source-path load-path) (find-library-suffixes))) (def (if (eq (function-called-at-point) 'require) - (save-excursion - (backward-up-list) - (forward-char) - (backward-sexp -2) - (thing-at-point 'symbol)) + ;; `function-called-at-point' may return 'require + ;; with `point' anywhere on this line. So wrap the + ;; `save-excursion' below in a `condition-case' to + ;; avoid reporting a scan-error here. + (condition-case nil + (save-excursion + (backward-up-list) + (forward-char) + (forward-sexp 2) + (thing-at-point 'symbol)) + (error nil)) (thing-at-point 'symbol)))) (when def (setq def (and (locate-file-completion def path 'test) def)))