Issue 13631: readline fails to parse some forms of .editrc under editline (libedit) emulation on Mac OS X (original) (raw)

Issue13631

Created on 2011-12-19 04:05 by zvezdan, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
readline-2.7.patch zvezdan,2011-12-19 04:05 readline.c patch for python-2.7 review
readline-3.2.patch zvezdan,2011-12-19 04:07 readline.c patch for python-3.2 review
Pull Requests
URL Status Linked Edit
PR 6915 merged python-dev,2018-05-16 18:14
PR 6928 merged miss-islington,2018-05-17 06:45
Messages (10)
msg149813 - (view) Author: Zvezdan Petkovic (zvezdan) * Date: 2011-12-19 04:05
Problem ======= The changes in r87356 for py3k and r87358 for python-2.7 described in issue 9907 have broken parsing of the initialization file .editrc under editline emulation of readline on Mac OS X. Background ========== Both readline and editline allow settings customized per program. For example, .inputrc file for readline:: ifPythonsetediting−modeviif Python set editing-mode vi ifPythonseteditingmodeviendif will be applied only to Python processes. Similarly, .editrc file for editline:: python:bind -v python:bind ^I rl_complete will be applied only to Python processes on Mac OS X. This works fine on python-2.6. It's broken on 2.7 and 3.2 and later because the change in issue 9907 moved the rl_initialize() call towards the beginning of the setup function. Solution ======== The rl_readline_name variable must be set to "python" **before** the call to rl_initialize(). Attached are patches for 2.7 and 3.2.
msg150945 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-01-09 16:09
Thanks for the analysis and patch. Have you tested that your patch does not break the readline module when linking against GNU readline? If not, I can do it.
msg150957 - (view) Author: Zvezdan Petkovic (zvezdan) * Date: 2012-01-09 17:39
I did not test against a readline build.
msg151133 - (view) Author: Éric Araujo (eric.araujo) * (Python committer) Date: 2012-01-12 16:04
I applied your patch and built the readline module against libreadline and imported it successfully. (I did not try the special parsing feature, but I don’t think it’s needed.)
msg193093 - (view) Author: Ronald Oussoren (ronaldoussoren) * (Python committer) Date: 2013-07-15 12:38
I can confirm the problem and that the patch fixes the issue. I'll try to commit a fix later this week.
msg219561 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2014-06-02 09:36
It appears that Apple's update to editline in OS X 10.9 Mavericks has also broken this patch; with refreshing, it still works with the system editline in 10.8. So, like the fix for Issue18458, we need to make sure that the fix works with either version of a dynamically loaded libedit. Zvezdan, it would be good if you would be willing to sign the Python contributor agreement for your patch: https://www.python.org/psf/contrib/contrib-form/
msg219735 - (view) Author: Zvezdan Petkovic (zvezdan) * Date: 2014-06-04 00:31
Ned, I just signed the contributor agreement form.
msg316885 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-05-17 06:45
New changeset c2f082e9d164acfa8f96de9526f0f47ae92c426a by Ned Deily (Zvezdan Petkovic) in branch 'master': bpo-13631: Fix the order of initialization for readline libedit on macOS. (GH-6915) https://github.com/python/cpython/commit/c2f082e9d164acfa8f96de9526f0f47ae92c426a
msg316894 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-05-17 07:27
New changeset d504108a88bd14a560dec875df682f4e581490e5 by Ned Deily (Miss Islington (bot)) in branch '3.7': bpo-13631: Fix the order of initialization for readline libedit on macOS. (GH-6915) (GH-6928) https://github.com/python/cpython/commit/d504108a88bd14a560dec875df682f4e581490e5
msg316895 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2018-05-17 07:33
Thanks for the patch and PR, Zvezdan! Merged for 3.7.0 and 3.8.0.
History
Date User Action Args
2022-04-11 14:57:24 admin set github: 57840
2018-05-17 07:33:38 ned.deily set status: open -> closedversions: + Python 3.8, - Python 2.7, Python 3.5, Python 3.6messages: + resolution: fixedstage: patch review -> resolved
2018-05-17 07:27:35 ned.deily set messages: +
2018-05-17 06:45:25 miss-islington set pull_requests: + <pull%5Frequest6599>
2018-05-17 06:45:12 ned.deily set messages: +
2018-05-16 18:14:36 python-dev set pull_requests: + <pull%5Frequest6583>
2016-10-05 09:39:23 berker.peksag set nosy: + berker.peksagversions: + Python 3.6, Python 3.7, - Python 3.4
2014-06-04 00:31:30 zvezdan set messages: +
2014-06-02 09:36:40 ned.deily set stage: commit review -> patch reviewmessages: + versions: + Python 3.5, - Python 3.3
2013-07-15 12:38:35 ronaldoussoren set messages: + versions: + Python 3.4, - Python 3.2
2012-01-12 16:04:48 eric.araujo set messages: +
2012-01-09 17:39:03 zvezdan set messages: +
2012-01-09 16:09:09 eric.araujo set nosy: + eric.araujo, r.david.murraymessages: + keywords: + needs reviewstage: commit review
2011-12-19 08:07:34 ned.deily set nosy: + ned.deily
2011-12-19 04:07:23 zvezdan set files: + readline-3.2.patch
2011-12-19 04:05:36 zvezdan create