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::
$if Python
set editing-mode vi
$endif
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) * |
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) * |
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) * |
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) * |
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) * |
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) * |
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) * |
Date: 2018-05-17 07:33 |
Thanks for the patch and PR, Zvezdan! Merged for 3.7.0 and 3.8.0.
|
|
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 -> closed versions:
+ Python 3.8, - Python 2.7, Python 3.5, Python 3.6 messages:
+ msg316895
resolution: fixed stage: patch review -> resolved |
2018-05-17 07:27:35 | ned.deily | set | messages:
+ msg316894 |
2018-05-17 06:45:25 | miss-islington | set | pull_requests:
+ pull_request6599 |
2018-05-17 06:45:12 | ned.deily | set | messages:
+ msg316885 |
2018-05-16 18:14:36 | python-dev | set | pull_requests:
+ pull_request6583 |
2016-10-05 09:39:23 | berker.peksag | set | nosy:
+ berker.peksag
versions:
+ Python 3.6, Python 3.7, - Python 3.4 |
2014-06-04 00:31:30 | zvezdan | set | messages:
+ msg219735 |
2014-06-02 09:36:40 | ned.deily | set | stage: commit review -> patch review messages:
+ msg219561 versions:
+ Python 3.5, - Python 3.3 |
2013-07-15 12:38:35 | ronaldoussoren | set | messages:
+ msg193093 versions:
+ Python 3.4, - Python 3.2 |
2012-01-12 16:04:48 | eric.araujo | set | messages:
+ msg151133 |
2012-01-09 17:39:03 | zvezdan | set | messages:
+ msg150957 |
2012-01-09 16:09:09 | eric.araujo | set | nosy:
+ eric.araujo, r.david.murray messages:
+ msg150945
keywords:
+ needs review stage: 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 | |