Package: emacs;
Reported by: Jack Duthen <duthen.mac.01 <at> gmail.com>
Date: Tue, 15 May 2012 15:10:02 UTC
Severity: normal
Found in version 23.1
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Jack Duthen <duthen.mac.01 <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 23.1; which-func-cleanup-function should be local Date: Tue, 15 May 2012 17:08:46 +0200
--text follows this line-- Please write in English if possible, because the Emacs maintainers usually do not have translators to read other languages for them. Your bug report will be posted to the bug-gnu-emacs <at> gnu.org mailing list, and to the gnu.emacs.bug news group. Please describe exactly what actions triggered the bug and the precise symptoms of the bug: Hi! I'm still using "which-func" and still find it very convenient! I'm using "sh-mode" with a customized "imenu-prev-index-position-function" and a customized "imenu-extract-index-name-function" to generate my own imenu items. So, I put into "which-func-cleanup-function" a personal function (which deals with a parameter being a string or a list of strings) to clean up the function name returned by my "imenu-extract-index-name-function". As this function relies on variables specific to this mode, I found that it did NOT work correctly when editing a file in another mode (like emacs-lisp code, for example). So, as the function name contained in the variable "which-func-cleanup-function" can be mode-dependent, I think that "which-func-cleanup-function" should be declared as buffer local. I put the following in my .emacs: ;;; ---------------- (defun jd-sh-imenu-set-which-func-cleanup-function () (unless (local-variable-p 'which-func-cleanup-function) (make-local-variable 'which-func-cleanup-function)) (setq which-func-cleanup-function 'jd-sh-imenu-which-func-cleanup-function)) (add-hook 'sh-set-shell-hook 'jd-sh-imenu-set-which-func-cleanup-function) ;;; ---------------- and it works ok. But I'm wondering whether "which-func-cleanup-function" shouldn't be declared permanently local in the file "which-func.el" itself? )jack( If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /usr/share/emacs/23.1/etc/DEBUG for instructions. In GNU Emacs 23.1.1 (i686-pc-linux-gnu, GTK+ Version 2.22.0) of 2011-03-04 on roseapple, modified by Debian Windowing system distributor `The X.Org Foundation', version 11.0.10900000 configured using `configure '--build=i686-linux-gnu' '--host=i686-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=yes' '--with-x-toolkit=gtk' '--with-toolkit-scroll-bars' 'build_alias=i686-linux-gnu' 'host_alias=i686-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS='' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: fr_FR.utf8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Emacs-Lisp Minor modes in effect: diff-auto-refine-mode: t eldoc-mode: t which-function-mode: t show-paren-mode: t recentf-mode: t desktop-save-mode: t tooltip-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: (only . t) Recent input: C-v C-u C-v C-u C-v <help-echo> <help-echo> <help-echo> <down-mouse-1> <mouse-1> C-x b <return> M-x b u r r <tab> <backspace> <tab> <return> C-x b j M-p <return> <switch-frame> <switch-frame> <switch-frame> <switch-frame> <help-echo> <help-echo> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <down-mouse-5> <mouse-5> <down-mouse-1> <mouse-1> C-s C-w C-w C-w C-w C-x o C-s C-s C-s <down-mouse-1> <mouse-1> C-s C-w C-r C-r C-r C-r C-r C-r C-r C-r C-r C-r C-r C-r C-u C-u M-v <down-mouse-4> <mouse-4> <down-mouse-4> <mouse-4> <down-mouse-4> <mouse-4> <down-mouse-1> <mouse-1> C-h f <return> <down-mouse-1> <mouse-1> <double-down-mouse-1> <double-mouse-1> M-w M-: C-y <return> <down-mouse-5> <mouse-5> <down-mouse-1> <mouse-movement> <mouse-movement> <drag-mouse-1> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-1> <mouse-1> C-x C-e <down-mouse-1> <mouse-1> C-x C-e <down-mouse-1> <mouse-1> C-x b <return> C-x b j <tab> M-p <return> <help-echo> <down-mouse-1> <mouse-1> M-d e x p l o r e M-f M-f <M-backspace> u s i n g <down-mouse-1> <mouse-1> SPC h e l p C-x C-s C-p - - - - - C-x C-s <help-echo> <down-mouse-1> <mouse-1> C-h f <return> <down-mouse-1> <mouse-1> <double-down-mouse-1> <double-mouse-1> M-w <switch-frame> C-v C-v C-v C-v C-v M-: C-y <return> C-u M-v C-u M-v M-: M-p <return> <switch-frame> C-x o <help-echo> <down-mouse-1> <mouse-2> <help-echo> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <double-down-mouse-5> <double-mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <switch-frame> <up> <up> <up> <up> <up> <right> <left> <down> <down> <down> <down> <down> <switch-frame> C-x C-g M-x M-p <return> C-x o q <down-mouse-1> <mouse-movement> <mouse-1> C-M-x <down-mouse-1> <mouse-1> C-M-b C-M-SPC M-w C-x o M-: C-y <return> M-: M-p C-e C-b C-M-b C-b C-k ( ) ) <return> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-5> <mouse-5> <down-mouse-4> <mouse-4> <down-mouse-5> <mouse-5> <help-echo> <down-mouse-1> <mouse-1> C-s C-w C-x o C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-s C-a <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <help-echo> <menu-bar> <help-menu> <send-emacs-bug-report> Recent messages: uncompressing add-log.el.gz...done Note: file is write protected jd-test-which-func-cleanup-function Mark set jd-test-which-func-cleanup-function Type of fun-name '(which-function)' is cons Type of (car fun-name) 'which-function' is string nil Mark saved where search started [2 times] /usr/bin/mail is not an executable. Setting mail-interactive to t.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.