This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author ned.deily
Recipients ned.deily, ronaldoussoren, zvezdan
Date 2010-09-21.09:19:53
SpamBayes Score 5.4733995e-14
Marked as misclassified No
Message-id <1285060796.87.0.205657842054.issue9907@psf.upfronthosting.co.za>
In-reply-to
Content
The problem is due to a difference in the behavior of the rl_initialize function between the editline readline emulation and the real GNU libreadline.  Modules/readline.c setup_readline calls several rl functions to create various default bindings, including overriding TAB to "insert" rather than to "trigger completion", then calls rl_initialize allowing the users defaults from .inputrc to override.  It seems the emulated rl_initialize causes all the modified bindings to be discarded, causing TAB to revert to its default "trigger file completion".  The solution in the attached patches is to conditionally call rl_initialize at the beginning of setup_readline, rather than at the end, if the editline emulation is in use.  Patches supplied for py3k and 27 (but not 31 since the feature was never backported there even though it was to 26).  I did not supply any additional tests since I can't think of a straightforward way to simulate the condition in the test framework; suggestions welcome.
History
Date User Action Args
2010-09-21 09:19:57ned.deilysetrecipients: + ned.deily, ronaldoussoren, zvezdan
2010-09-21 09:19:56ned.deilysetmessageid: <1285060796.87.0.205657842054.issue9907@psf.upfronthosting.co.za>
2010-09-21 09:19:55ned.deilylinkissue9907 messages
2010-09-21 09:19:54ned.deilycreate