* bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch
@ 2012-05-15 15:07 Jack Duthen
2012-05-15 15:44 ` Stefan Monnier
0 siblings, 1 reply; 6+ messages in thread
From: Jack Duthen @ 2012-05-15 15:07 UTC (permalink / raw)
To: 11476
--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@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 using "which-func" and I find it very convenient!
I tried to use a customized "which-func-cleanup-function"
and found that its doc string says:
"Function to transform a string before displaying it in the mode line.
The function is called with one argument, the string to display..."
It seems that the argument given to "which-func-cleanup-function"
can also be a list with one string.
Using this test function:
;;; -------------------
;;; To help see the bug
(defun jd-test-which-func-cleanup-function (fun-name)
(message "Type of fun-name '%s' is %s" fun-name (type-of fun-name))
(when (consp fun-name)
(message "Type of (car fun-name) '%s' is %s" (car fun-name)
(type-of (car fun-name))))
(setq jd-ielm-fun-name fun-name) ; to explore it using ielm
fun-name)
;;; (setq which-func-cleanup-function 'jd-test-which-func-cleanup-function)
;;; (setq which-func-cleanup-function ())
;;; -------------------
I got the messages (while editing the file "which-func.el"):
Type of fun-name '(which-function)' is cons
Type of (car fun-name) 'which-function' is string
So, either the doc string of "which-func-cleanup-function" is wrong,
either "which-function" should return the "car" of the value it returns.
Since the code of "which-function" is not that simple, I can't clearly
and surely tell which one is wrong and fix the bug by myself.
I noticed that the function "which-function" contains the following lines:
;; Try using add-log support.
(when (null name)
(setq name (add-log-current-defun)))
And it seems that "add-log-current-defun" returns a string.
So, maybe, "which-function" should return the "car" of "name"
when it is a list.
Can you fix it?
)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.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch
2012-05-15 15:07 bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch Jack Duthen
@ 2012-05-15 15:44 ` Stefan Monnier
2012-05-15 19:30 ` Stefan Monnier
0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2012-05-15 15:44 UTC (permalink / raw)
To: Jack Duthen; +Cc: 11476
> It seems that the argument given to "which-func-cleanup-function"
> can also be a list with one string.
That is a bug.
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch
2012-05-15 15:44 ` Stefan Monnier
@ 2012-05-15 19:30 ` Stefan Monnier
2012-05-16 8:29 ` Jack Duthen
0 siblings, 1 reply; 6+ messages in thread
From: Stefan Monnier @ 2012-05-15 19:30 UTC (permalink / raw)
To: Jack Duthen; +Cc: 11476
>> It seems that the argument given to "which-func-cleanup-function"
>> can also be a list with one string.
> That is a bug.
Can you give a recipe or at least describe a case where it happens?
Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch
2012-05-15 19:30 ` Stefan Monnier
@ 2012-05-16 8:29 ` Jack Duthen
2012-06-26 21:45 ` Glenn Morris
0 siblings, 1 reply; 6+ messages in thread
From: Jack Duthen @ 2012-05-16 8:29 UTC (permalink / raw)
To: 11476
As I explained in my first mail, it always happens with imenu and which-func.
Here is a short recipe to get it:
emacs -Q
open any emacs-lisp file and move point inside any function
M-x imenu-add-menubar-index
M-x which-func-mode
M-:
(defun jd-test-which-func-cleanup-function (fun-name)
(message "Type of fun-name '%s' is %s" fun-name (type-of fun-name))
(when (consp fun-name)
(message "Type of (car fun-name) '%s' is %s" (car fun-name)
(type-of (car fun-name))))
(setq jd-ielm-fun-name fun-name) ; to explore it using ielm
fun-name)
M-: (setq which-func-cleanup-function 'jd-test-which-func-cleanup-function)
2012/5/15 Stefan Monnier <monnier@iro.umontreal.ca>:
>>> It seems that the argument given to "which-func-cleanup-function"
>>> can also be a list with one string.
>> That is a bug.
>
> Can you give a recipe or at least describe a case where it happens?
>
>
> Stefan
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch
2012-05-16 8:29 ` Jack Duthen
@ 2012-06-26 21:45 ` Glenn Morris
2014-02-06 0:52 ` Lars Ingebrigtsen
0 siblings, 1 reply; 6+ messages in thread
From: Glenn Morris @ 2012-06-26 21:45 UTC (permalink / raw)
To: Jack Duthen; +Cc: 11476
Jack Duthen wrote:
> emacs -Q
> open any emacs-lisp file and move point inside any function
> M-x imenu-add-menubar-index
> M-x which-func-mode
> M-:
> (defun jd-test-which-func-cleanup-function (fun-name)
> (message "Type of fun-name '%s' is %s" fun-name (type-of fun-name))
> (when (consp fun-name)
> (message "Type of (car fun-name) '%s' is %s" (car fun-name)
> (type-of (car fun-name))))
> (setq jd-ielm-fun-name fun-name) ; to explore it using ielm
> fun-name)
> M-: (setq which-func-cleanup-function 'jd-test-which-func-cleanup-function)
I cannot reproduce a problem with this, in either 23.1 or current trunk.
The type remains resolutely a string, never a cons. If it were not a
string, I would think that the which-function mode line would break.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch
2012-06-26 21:45 ` Glenn Morris
@ 2014-02-06 0:52 ` Lars Ingebrigtsen
0 siblings, 0 replies; 6+ messages in thread
From: Lars Ingebrigtsen @ 2014-02-06 0:52 UTC (permalink / raw)
To: Glenn Morris; +Cc: 11476, Jack Duthen
Glenn Morris <rgm@gnu.org> writes:
> Jack Duthen wrote:
>
>> emacs -Q
>> open any emacs-lisp file and move point inside any function
>> M-x imenu-add-menubar-index
>> M-x which-func-mode
>> M-:
>> (defun jd-test-which-func-cleanup-function (fun-name)
>> (message "Type of fun-name '%s' is %s" fun-name (type-of fun-name))
>> (when (consp fun-name)
>> (message "Type of (car fun-name) '%s' is %s" (car fun-name)
>> (type-of (car fun-name))))
>> (setq jd-ielm-fun-name fun-name) ; to explore it using ielm
>> fun-name)
>> M-: (setq which-func-cleanup-function 'jd-test-which-func-cleanup-function)
>
> I cannot reproduce a problem with this, in either 23.1 or current trunk.
> The type remains resolutely a string, never a cons. If it were not a
> string, I would think that the which-function mode line would break.
More information was requested a year ago, but no further progress seems
to have been made. I'm closing this bug report now, but if this problem
still persists, please reopen it.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog http://lars.ingebrigtsen.no/
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-02-06 0:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-15 15:07 bug#11476: 23.1; which-func-cleanup-function call and documentation mismatch Jack Duthen
2012-05-15 15:44 ` Stefan Monnier
2012-05-15 19:30 ` Stefan Monnier
2012-05-16 8:29 ` Jack Duthen
2012-06-26 21:45 ` Glenn Morris
2014-02-06 0:52 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.