all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: "João Távora" <joaotavora@gmail.com>
Cc: 17007@debbugs.gnu.org
Subject: bug#17007: 24.3.50; describe-key/function evaluates documentation function in the wrong	buffer
Date: Fri, 14 Mar 2014 15:34:37 +0100	[thread overview]
Message-ID: <5323137D.2020103@gmx.at> (raw)
In-Reply-To: <jjbbnx9vv87.fsf@gmail.com>

 > It's simpler if I give you an emacs -Q recipe, right? In your *scratch*
 > buffer:
 >
 >     (defun foo ())
 >     (defun foo-doc ()
 >       (format "Foo does nothing, and by the way your tab does `%s'"
 >             	     (key-binding "\t")))
 >     (put 'foo 'function-documentation '(foo-doc))
 >     (describe-function 'foo)
 >
 > This fails on the latest Emacs, i.e. the last line returned by the last
 > form is
 >
 >     "Foo does nothing, and by the way your tab does `forward-button'"
 >
 > Whereas it should report, as in Emacs 24.3
 >
 >     "Foo does nothing, and by the way your tab does `indent-for-tab-command'"

Confirmed.

 > The trace of functions is the following:
 >
 > 1 -> (describe-function foo)
 > | 2 -> (describe-function-1 foo)
 > | | 3 -> (documentation foo t)
 > | | 3 <- documentation: "Foo does nothing, and by the way your tab does `forward-button'"
 > | 2 <- describe-function-1: nil
 > 1 <- describe-function: "foo is a Lisp function.
 >
 > But that doesn't show how the macro `with-temp-buffer-window', expanded
 > from `with-help-window', eventually wraps the latter's BODY in a
 > `with-current-buffer' call, making its forms be evaluated in the newly
 > created *Help* buffer, instead of *scratch*.

Indeed.

 > One of those forms is the
 > call to `describe-function-1', which eventually calls `foo-doc'.
 >
 > As I explained in my last email (which got sent from the wrong address
 > but is here
 > http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-03/msg00411.html)
 > it was the reversion of two lines in `with-temp-buffer-window' that
 > broke it.

Not really.  The current version of `with-temp-buffer-window' and that
released with Emacs 24.3 are the same.  It changed only intermittently
and that's what you noticed.  Or can you spot a difference now?

 >  But maybe it was fixing something else that I don't understand. Can
 > you help me understand what you were achieving with the original fix
 > and the reversion?

I first reacted to a bug report by Nicolas Richard

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16816

and tried to make it behave as in the doc-string.  Unfortunately, this
broke things as subsequently remarked by Juanma in the same thread and
also broke code Thierry wrote as reported in

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16882

so I decided to restore the 24.3 behavior.  I'm still not fine with that
but it's now some time since 24.3 is out and I'm a bit reluctant to
change it back again, mostly so because I don't know how many bugs such
a change might produce and how soon they'd get detected.

And I'm still too silly to understand how this (apparently?) worked with
24.3 and why it's broken now.  Any ideas?

martin





  reply	other threads:[~2014-03-14 14:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-03-13 11:22 bug#17007: 24.3.50; describe-key/function evaluates documentation function in the wrong buffer João Távora
2014-03-13 15:57 ` Glenn Morris
2014-03-13 16:29   ` João Távora
2014-03-13 19:18     ` João Távora
2014-03-14 11:32 ` martin rudalics
2014-03-14 12:08   ` João Távora
2014-03-14 14:34     ` martin rudalics [this message]
2014-03-14 15:05       ` Nicolas Richard
2014-03-14 17:42         ` martin rudalics
2014-03-16 10:02         ` martin rudalics
2014-03-16 11:45           ` Nicolas Richard
2014-03-16 13:27           ` João Távora
2014-03-19 10:50             ` Juanma Barranquero
2014-03-16 10:01     ` martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5323137D.2020103@gmx.at \
    --to=rudalics@gmx.at \
    --cc=17007@debbugs.gnu.org \
    --cc=joaotavora@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.