]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/progmodes/which-func.el (which-func-ff-hook): Log the error message.
authorStefan Monnier <monnier@iro.umontreal.ca>
Sat, 4 Dec 2010 00:49:49 +0000 (19:49 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Sat, 4 Dec 2010 00:49:49 +0000 (19:49 -0500)
(which-func-update-1): Distinguish symbols from strings.
(which-function): Stay within 80 columns.

lisp/ChangeLog
lisp/progmodes/which-func.el

index d8aa0eb839893696c91aae45f4a04e02cbc44ef2..141881a17a4972ab8c68cb56d70527d9a6b45784 100644 (file)
@@ -1,3 +1,9 @@
+2010-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * progmodes/which-func.el (which-func-ff-hook): Log the error message.
+       (which-func-update-1): Distinguish symbols from strings.
+       (which-function): Stay within 80 columns.
+
 2010-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * subr.el (with-demoted-errors): Distinguish symbols from strings.
index 049d708d1918743887cd3e13d00005395496ee5c..6262e1c195803f7f7756fc159322666defa76180 100644 (file)
@@ -198,7 +198,7 @@ It creates the Imenu index for the buffer, if necessary."
             (or (eq which-func-modes t)
                 (member major-mode which-func-modes))))
 
-  (condition-case nil
+  (condition-case err
       (if (and which-func-mode
               (not (member major-mode which-func-non-auto-modes))
               (or (null which-func-maxout)
@@ -207,6 +207,7 @@ It creates the Imenu index for the buffer, if necessary."
          (setq imenu--index-alist
                (save-excursion (funcall imenu-create-index-function))))
     (error
+     (message "which-func-ff-hook error: %S" err)
      (setq which-func-mode nil))))
 
 (defun which-func-update ()
@@ -225,7 +226,7 @@ It creates the Imenu index for the buffer, if necessary."
              (force-mode-line-update)))
        (error
         (setq which-func-mode nil)
-        (error "Error in which-func-update: %s" info))))))
+        (error "Error in which-func-update: %S" info))))))
 
 ;;;###autoload
 (defalias 'which-func-mode 'which-function-mode)
@@ -294,29 +295,31 @@ If no function name is found, return nil."
         ;; ("submenu" ("name" . marker) ... ). The list can be
         ;; arbitrarily nested.
         (while (or alist imstack)
-          (if alist
-              (progn
-                (setq pair (car-safe alist)
-                      alist (cdr-safe alist))
-
-                (cond ((atom pair))     ; skip anything not a cons
-
-                      ((imenu--subalist-p pair)
-                       (setq imstack   (cons alist imstack)
-                             namestack (cons (car pair) namestack)
-                             alist     (cdr pair)))
-
-                      ((number-or-marker-p (setq mark (cdr pair)))
-                       (if (>= (setq offset (- (point) mark)) 0)
-                           (if (< offset minoffset) ; find the closest item
-                               (setq minoffset offset
-                                     name (funcall
-                                           which-func-imenu-joiner-function
-                                          (reverse (cons (car pair)
-                                                         namestack)))))))))
-            (setq alist     (car imstack)
-                  namestack (cdr namestack)
-                  imstack   (cdr imstack))))))
+          (if (null alist)
+              (setq alist     (car imstack)
+                    namestack (cdr namestack)
+                    imstack   (cdr imstack))
+
+            (setq pair (car-safe alist)
+                  alist (cdr-safe alist))
+
+            (cond
+             ((atom pair))              ; Skip anything not a cons.
+
+             ((imenu--subalist-p pair)
+              (setq imstack   (cons alist imstack)
+                    namestack (cons (car pair) namestack)
+                    alist     (cdr pair)))
+
+             ((number-or-marker-p (setq mark (cdr pair)))
+              (when (and (>= (setq offset (- (point) mark)) 0)
+                         (< offset minoffset)) ; Find the closest item.
+                (setq minoffset offset
+                      name (if (null which-func-imenu-joiner-function)
+                               (car pair)
+                             (funcall
+                              which-func-imenu-joiner-function
+                              (reverse (cons (car pair) namestack))))))))))))
 
     ;; Try using add-log support.
     (when (and (null name) (boundp 'add-log-current-defun-function)