bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#2357: imenu-add-menubar-index fails in Objective-C mode


From: Juanma Barranquero
Subject: bug#2357: imenu-add-menubar-index fails in Objective-C mode
Date: Tue, 17 Feb 2009 13:22:21 +0100

Package: emacs,cc-mode

[This part is a bugfix]

emacs -Q --visit nsfns.m --f imenu-add-menubar-index

 => Error in menu-bar-update-hook: (invalid-function imenu-progress-message)

The reason is that progmodes/cc-menus.el does

  (cc-bytecomp-defun imenu-progress-message)

to avoid loading imenu.el, and then uses `imenu-progress-message' in
Objective-C specific code (cc-imenu-objc-function). But it is a macro,
so it fails.

I think the best way to fix it is just removing the cc-bytecomp-defun
and all calls to imenu-progress-message from cc-menus.el. That macro
has been defined as a no-op since 2004-10-27 and I don't think it is
worth jumping around hoops just to make cc-menus.el successfully
define something that goes unused.

[This part is not a bugfix, so not needed now]

Additionally, there are useless calls to `imenu-progress-message' in
imenu.el, erc/erc-imenu.el and net/smtp-mode.el. For the latter two,
removing the macro calls would also remove the need to require imenu.

    Juanma



2009-02-17  Juanma Barranquero  <lekktu@gmail.com>

        * progmodes/cc-menus.el (imenu-progress-message):
        Remove (bogus and useless) cc-bytecomp-defun.
        (cc-imenu-objc-function): Don't call `imenu-progress-message'.
        Don't let-bind unused variable `stupid'.


Index: lisp/progmodes/cc-menus.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/progmodes/cc-menus.el,v
retrieving revision 1.42
diff -u -2 -r1.42 cc-menus.el
--- lisp/progmodes/cc-menus.el  17 Feb 2009 10:59:14 -0000      1.42
+++ lisp/progmodes/cc-menus.el  17 Feb 2009 11:51:30 -0000
@@ -48,5 +48,4 @@
 (cc-bytecomp-defvar imenu-generic-expression)
 (cc-bytecomp-defvar imenu-create-index-function)
-(cc-bytecomp-defun imenu-progress-message)

 
@@ -317,5 +316,4 @@
        (classcount 0)
        toplist
-       stupid
        str
        str2
@@ -331,8 +329,6 @@
           'buffer-substring)))
     (goto-char (point-max))
-    (imenu-progress-message stupid 0)
     ;;
     (while (re-search-backward cc-imenu-objc-generic-expression nil t)
-      (imenu-progress-message stupid)
       (setq langnum (if (match-beginning OBJC)
                        OBJC
@@ -386,5 +382,4 @@
              methodlist nil))))
     ;;
-    (imenu-progress-message stupid 100)
     (if (eq (car toplist) nil)
        (setq toplist (cdr toplist)))






reply via email to

[Prev in Thread] Current Thread [Next in Thread]