Gergely Nagy <alg...@bo...> writes:
> Greetings!
>
> I was experiencing problems with tab completion: sometimes, I got
> transferred to a different buffer, or some random location in the
> current buffer. A few minutes ago, I figured out how I can reliably
> reproduce this behaviour: on one channel, there were two nicks
> starting with the same letter, so f<tab>, erc pops up a completion
> window. Now, I switch to another frame, and on another channel, I do
> o<tab>. And bingo! I get back to the previous frame, where the
> completion window had disappeared.
>
> By looking at erc-completion.el, I suspect the bug may be in
> try-complete-erc-nick-restore or try-complete-erc-nick. Those two
> fiddle with "*Completions*".
>
> I'm quite confident it's try-complete-erc-nick. However, I don't have
> a fix yet..
Yow, I somehow thought that this could be a problem.
Current answer is, "Its not a bug, its a feature"
Here comes the explanation. The erc completion code
does a trick to be able to restore window configuration
when using completion. Imagine you use multiple windows
in one frame to have several channels on screen. Now, in the old code,
when you used TAB to complete, the completion window poped up and removed
one of your windows from the screen. This made TAB quite
unusable when using multiple windows, because you always had
to manually restore the windows buffer, say, C-x o C-x b ...
What the restore code does is the following:
It saves the window configuration when the *Completion* Buffer pops up, and
when you type TAB again, it restores that saved configuration,
therefore removes the *Completion* window again, and you get your old configuration.
So, for now, if you pop up a completion buffer, close
it again with TAB, and everything is fine.
But, we certainly should investigate if we can put in some
safeguards to prevent false-usage even more.
Any suggestions?
--
CYa,
Mario <ml...@de...>
Homepage(s): http://delysid.org | http://piss.at/
|