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.

classification
Title: Export readline forced_update_display
Type: enhancement Stage: needs patch
Components: Extension Modules Versions: Python 3.6
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: dexteradeus, martin.panter, zer0
Priority: normal Keywords: patch

Created on 2014-12-16 19:29 by dexteradeus, last changed 2022-04-11 14:58 by admin.

Files
File name Uploaded Description Edit
readline_redisplay_force.patch dexteradeus, 2014-12-16 19:29
test-rdline.py zer0, 2015-02-17 19:57 readline test example
readline_add_forced_update_display.patch zer0, 2015-02-17 20:01 Another way to fix the problem (patch) review
Messages (4)
msg232757 - (view) Author: Chris Hand (dexteradeus) * Date: 2014-12-16 19:29
The current implementation of readline implements the redisplay function, but not the forced version. This patch maintains the current behavior as the default, but also allows a bool to be passed which, if True, calls rl_forced_update_display instead.
msg236147 - (view) Author: Olivier Matz (zer0) Date: 2015-02-17 19:57
Hi,

I'm also interrested in this feature. Indeed, exporting rl_forced_update_display() is the only way I've found to make readline.set_completion_display_matches_hook() working properly. Without forcing the redisplay, the prompt is not displayed. This seems to be the proper function to call, because that's the one called at the end of display_matches() in libreadline code, which is the default function for displaying matches.

The attached file is a simple example code derived from http://pymotw.com/2/readline/ that shows that the patch is working.
msg236148 - (view) Author: Olivier Matz (zer0) Date: 2015-02-17 20:01
By the way, I have my own implementation of the patch that did before checking the issue tracker. Instead of adding an argument to readline.redisplay(), it adds a new function readline.forced_update_display().

I attach the patch for reference, I don't know what is the preferred way to add this feature.
msg247847 - (view) Author: Martin Panter (martin.panter) * (Python committer) Date: 2015-08-02 01:23
There are actually a few other patches open adding wrappers for rl_forced_update_display():

* Issue 1175004: From 2005, other APIs as well
* Issue 24727: Includes documentation

As well as the documentation, I think it would be good to add a test case for new functionality if possible.
History
Date User Action Args
2022-04-11 14:58:11adminsetgithub: 67256
2015-08-02 01:30:30martin.panterlinkissue24727 dependencies
2015-08-02 01:26:19martin.panterlinkissue1175004 dependencies
2015-08-02 01:23:39martin.pantersetversions: + Python 3.6, - Python 3.4
nosy: + martin.panter

messages: + msg247847

stage: needs patch
2015-02-17 20:01:48zer0setfiles: + readline_add_forced_update_display.patch

messages: + msg236148
2015-02-17 19:57:41zer0setfiles: + test-rdline.py
nosy: + zer0
messages: + msg236147

2014-12-16 19:29:14dexteradeuscreate