Hello,

I noticed that rl_bind_key('\t', rl_complete) causes completion to
break even though rl_complete is already the default binding for '\t'.
As a trivial example, pressing TAB multiple times will not list all
the matches when doing

    rl_bind_key('\t', rl_complete);
    readline(">");

I think the issue is this comparison in complete.c:

    else if (rl_last_func == rl_complete && !completion_changed_buffer)

When libreadline.so.6 is loaded at startup, rl_complete in the client
refers to a dynamic library trampoline in the PLT that in turn calls
the "real" rl_complete. Within the library, rl_complete always refers
to the real function. Therefore, they do not compare equal.

x86_64/Ubuntu 14.10/GCC 4.9.1

/Ulf

_______________________________________________
Bug-readline mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-readline

Reply via email to