]> git.eshelyaron.com Git - emacs.git/commitdiff
(find-library): Wrap search for library name in condition-case
authorMartin Rudalics <rudalics@gmx.at>
Fri, 25 Jan 2008 17:48:59 +0000 (17:48 +0000)
committerMartin Rudalics <rudalics@gmx.at>
Fri, 25 Jan 2008 17:48:59 +0000 (17:48 +0000)
to avoid reporting a scan-error.

lisp/ChangeLog
lisp/emacs-lisp/find-func.el

index 2058d25eceff16585f59b45256b05375894cb731..b3b48c704cc4974b9d3e2c9927334aa2098bad17 100644 (file)
@@ -1,3 +1,8 @@
+2008-01-25  Martin Rudalics  <rudalics@gmx.at>
+
+       * emacs-lisp/find-func.el (find-library): Wrap search for
+       library name in condition-case to avoid reporting a scan-error.
+
 2008-01-25  Juanma Barranquero  <lekktu@gmail.com>
 
        * server.el (server-process-filter): Don't force
index 7c4c01a6e32f38c6bf490f7ad3deec6aa2d7e920..58695e95347f878e0292f4108832844aa4503e16 100644 (file)
@@ -200,11 +200,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)))