From: Mario L. <ml...@ho...> - 2001-11-26 09:25:16
|
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/ |