[Top][All Lists]

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

Re: Strange error caused by post-command-hook.

From: ishikawa
Subject: Re: Strange error caused by post-command-hook.
Date: Wed, 11 Jul 2007 20:53:40 +0900
User-agent: Thunderbird (X11/20070509)

Using the suggestion, I tried to
print the value of post-command-hook.

Unfortunately, when the discussed error message is
seen, by the time 'find-file' is invoked, the
value of post-command-hook seems to have been cleared to nil, and
I don't get the print out of post-command-hook.

(I *DO* get the print ouf of post-command-hook occasionally
when I invoked find-file and so the code is correct as far
as the coding goes.)

I am now looking at keyboard.c and pondering to
modify it to print out of the value of post-command-hook using Fmessage()
when run_hook_safely() is called (and the argument is post-command-hook).

If someone has a better idea of tracking down the value in a general manner,
short of modifying the keyboard.c source file, please let me know.

I am going to insert Fmessage() anyway since it won't hurt so much...

Chiaki Ishikawa

PS: Yes, the problem happened again in about 10 minutes time of
real-world editing. I checked my local e-lisp code files and
there was only one instance of post-hook-command mentioned in my code files,
and that file is not used. So the culprit is somewhere else...
Oh, wait, I have a few more code repositories one for Japanese input and
the other for reading a popular BBS.
In any case, by printing out the value, I should be able to
get closer to the cause of the bug.


ishikawa wrote:
Dear Martin Rudalics,

Thank you for the suggestion.

I have inserted the re-defined find-file in my .emacs file.
Once the problem returns, I will report the value of
(Aha, I see that the problem may happen before find-file gets executed.
How complicated...)

Chiaki Ishikawa

martin rudalics wrote:
 > [...] once the following message begins to appear in the
 > minibuffer whenever a minibuffer interaction is attemped,
 >   Error in post-command-hook: (error Selecting deleted buffer)
 > this message seems to re-appear (almost) always in the mini-buffer.
 > This message obscures the prompt message which should have been shown
 > in the first place.  For example, if I type C-c C-f, the default
 > directory usually shown is obscured with overlapping message (above).
 > (Funny if I type C-c C-v, the error message doesn't show up.)

Do you intend the commands `find-file' and `find-alternate-file' here?
You could try to add ...

(defun find-file (filename &optional wildcards)
     (when post-command-hook
       (message "... %s" post-command-hook) (sit-for 1))
(find-file-read-args "Find file: " nil))) (let ((value (find-file-noselect filename nil nil wildcards)))
    (if (listp value)
    (mapcar 'switch-to-buffer (nreverse value))
      (switch-to-buffer value))))

... to your .emacs.  As soon as `find-file' triggers the message _and_
the error please tell us the value for `post-command-hook' printed by
the message (although your observations indicate that the error is
triggered _before_ the command gets executed).

 > Now, from reading the "C-H v" help message for 'post-command-hook', if
 > an error occurs when the hook is run from post-command-hook,
 > the hook is set to nil.  But if this is set to "nil" permanently, I
 > should not see this repetition of the same error message over and over
 > again. (Correct?)
> Does this mean that whatever is causing the incorrect hook to be installed
 > is trying to install this invalid hook again and again?


 > <<< Press Return to bury the buffer list >>>

This seems to come from `electric-buffer-list' which I don't know.
AFAICT it doesn't install a `post-command-hook' though.

reply via email to

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