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

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

[debbugs-tracker] bug#11477: closed (23.1; which-func-cleanup-function s


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#11477: closed (23.1; which-func-cleanup-function should be local)
Date: Tue, 15 May 2012 15:47:01 +0000

Your message dated Tue, 15 May 2012 11:46:22 -0400
with message-id <address@hidden>
and subject line Re: bug#11477: 23.1; which-func-cleanup-function should be 
local
has caused the debbugs.gnu.org bug report #11477,
regarding 23.1; which-func-cleanup-function should be local
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
11477: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11477
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- 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 address@hidden 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.



--- End Message ---
--- Begin Message --- Subject: Re: bug#11477: 23.1; which-func-cleanup-function should be local Date: Tue, 15 May 2012 11:46:22 -0400 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux)
> 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.

locality does not have to be a global property of a variable.
If you only want your cleanup function to be used in a particular
mode/buffer, then set it with (set (make-local-variable '<var>) <val>)
(now available as `setq-local') rather than with `setq'.


        Stefan


--- End Message ---

reply via email to

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