summaryrefslogtreecommitdiffstats
path: root/Modules/readline.c
Commit message (Collapse)AuthorAgeFilesLines
* bpo-20181: Convert the readline module to the Argument Clinic (#14326)Zackery Spytz2020-07-121-247/+336
|
* bpo-39943: Add the const qualifier to pointers on non-mutable PyBytes data. ↵Serhiy Storchaka2020-04-121-2/+2
| | | | (GH-19472)
* bpo-39968: Fix a typo error in get_readline_state() (GH-19028)Hai Shi2020-03-161-1/+1
|
* bpo-39968: Convert extension modules' macros of get_module_state() to inline ↵Hai Shi2020-03-161-4/+9
| | | | functions (GH-19017)
* bpo-38634: Allow non-apple build to cope with libedit (GH-16986)serge-sans-paille2019-12-041-19/+4
| | | | | | | | | | | The readline module now detects if Python is linked to libedit at runtime on all platforms. Previously, the check was only done on macOS. If Python is used as a library by a binary linking to libedit, the linker resolves the rl_initialize symbol required by the readline module against libedit instead of libreadline, which leads to a segfault. Take advantage of the existing supporting code to have readline module being compatible with both situations.
* bpo-38631: Avoid Py_FatalError() in readline (GH-16998)Victor Stinner2019-10-301-6/+11
| | | | readline now calls PyErr_NoMemory() rather than Py_FatalError() on memory allocation failure, when importing the module.
* bpo-37194: Add a new public PyObject_CallNoArgs() function (GH-13890)Victor Stinner2019-06-171-1/+1
| | | | | | | | | | | | | | | Add a new public PyObject_CallNoArgs() function to the C API: call a callable Python object without any arguments. It is the most efficient way to call a callback without any argument. On x86-64, for example, PyObject_CallFunctionObjArgs(func, NULL) allocates 960 bytes on the stack per call, whereas PyObject_CallNoArgs(func) only allocates 624 bytes per call. It is excluded from stable ABI 3.8. Replace private _PyObject_CallNoArg() with public PyObject_CallNoArgs() in C extensions: _asyncio, _datetime, _elementtree, _pickle, _tkinter and readline.
* bpo-35441: Remove dead and buggy code related to PyList_SetItem(). (GH-11033)Zackery Spytz2018-12-081-2/+1
| | | | | | | | | | In _localemodule.c and selectmodule.c, remove dead code that would cause double decrefs if run. In addition, replace PyList_SetItem() with PyList_SET_ITEM() in cases where a new list is populated and there is no possibility of an error. In addition, check if the list changed size in the loop in array_array_fromlist().
* Fix compiler warning in call_readline() (GH-10820)Victor Stinner2018-11-301-3/+3
| | | | | | | | | | | | | | Replace strncpy() with memcpy() in call_readline() to fix the following warning, the NUL byte is written manually just after: Modules/readline.c: In function ‘call_readline’: Modules/readline.c:1303:9: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] strncpy(p, q, n); ^~~~~~~~~~~~~~~~ Modules/readline.c:1279:9: note: length computed here n = strlen(p); ^~~~~~~~~
* bpo-13631: Fix the order of initialization for readline libedit on macOS. ↵Zvezdan Petkovic2018-05-171-1/+3
| | | | | | (GH-6915) The editline emulation needs to be initialized *after* the name is defined. This fixes the long open issue.
* bpo-29240: Fix locale encodings in UTF-8 Mode (#5170)Victor Stinner2018-01-151-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Modify locale.localeconv(), time.tzname, os.strerror() and other functions to ignore the UTF-8 Mode: always use the current locale encoding. Changes: * Add _Py_DecodeLocaleEx() and _Py_EncodeLocaleEx(). On decoding or encoding error, they return the position of the error and an error message which are used to raise Unicode errors in PyUnicode_DecodeLocale() and PyUnicode_EncodeLocale(). * Replace _Py_DecodeCurrentLocale() with _Py_DecodeLocaleEx(). * PyUnicode_DecodeLocale() now uses _Py_DecodeLocaleEx() for all cases, especially for the strict error handler. * Add _Py_DecodeUTF8Ex(): return more information on decoding error and supports the strict error handler. * Rename _Py_EncodeUTF8_surrogateescape() to _Py_EncodeUTF8Ex(). * Replace _Py_EncodeCurrentLocale() with _Py_EncodeLocaleEx(). * Ignore the UTF-8 mode to encode/decode localeconv(), strerror() and time zone name. * Remove PyUnicode_DecodeLocale(), PyUnicode_DecodeLocaleAndSize() and PyUnicode_EncodeLocale() now ignore the UTF-8 mode: always use the "current" locale. * Remove _PyUnicode_DecodeCurrentLocale(), _PyUnicode_DecodeCurrentLocaleAndSize() and _PyUnicode_EncodeCurrentLocale().
* bpo-29240: Ignore UTF-8 Mode in time module (#5148)Victor Stinner2018-01-111-2/+1
| | | | | | time.strftime() must use the current LC_CTYPE encoding, not UTF-8 if the UTF-8 mode is enabled. Add _PyUnicode_DecodeCurrentLocale() function.
* bpo-29240: readline now ignores the UTF-8 Mode (#5145)Victor Stinner2018-01-101-2/+3
| | | | | | | | | | | | Add new fuctions ignoring the UTF-8 mode: * _Py_DecodeCurrentLocale() * _Py_EncodeCurrentLocale() * _PyUnicode_DecodeCurrentLocaleAndSize() * _PyUnicode_EncodeCurrentLocale() Modify the readline module to use these functions. Re-enable test_readline.test_nonascii().
* Fix CID-1414686: PyInit_readline() handles errors (#4647)Victor Stinner2017-11-301-4/+18
| | | | | | | | | | | | Handle PyModule_AddIntConstant() and PyModule_AddStringConstant() failures. Add also constants before calling setup_readline(), since setup_readline() registers callbacks which uses a reference to the module, whereas the module is destroyed if adding constants fails. Fix Coverity warning: CID 1414686: Unchecked return value (CHECKED_RETURN) 2. check_return: Calling PyModule_AddStringConstant without checking return value (as is done elsewhere 45 out of 55 times).
* bpo-28180: Fix the implementation of PEP 538 on Android (GH-4334)xdegaye2017-11-121-1/+1
|
* bpo-31370: Remove support for threads-less builds (#3385)Antoine Pitrou2017-09-071-24/+0
| | | | | | * Remove Setup.config * Always define WITH_THREAD for compatibility.
* bpo-30946: Remove obsolete fallback code in readline module (#2738)Antoine Pitrou2017-07-181-46/+1
| | | | | | | | | | * Remove obsolete fallback code in readline module * Add NEWS * Remove obsolete include * Fix macro on Windows
* bpo-29854: test_readline logs versions (#2619)Victor Stinner2017-07-071-0/+1
| | | | | * test_readline logs the versions of libreadline when run in verbose mode * Add also readline._READLINE_LIBRARY_VERSION
* bpo-29854: Fix segfault in call_readline() (GH-728)Nir Soffer2017-07-071-4/+6
| | | | | | | | | | | | | If history-length is set in .inputrc, and the history file is double the history size (or more), history_get(N) returns NULL, and python segfaults. Fix that by checking for NULL return value. It seems that the root cause is incorrect handling of bigger history in readline, but Python should not segfault even if readline returns unexpected value. This issue affects only GNU readline. When using libedit emulation system history size option does not work.
* bpo-30022: Get rid of using EnvironmentError and IOError (except test… (#1051)Serhiy Storchaka2017-04-161-4/+4
|
* Replace PyObject_CallFunction() with fastcallVictor Stinner2016-12-011-1/+1
| | | | | | | | | | | | | | | | | Replace PyObject_CallFunction(func, "O", arg) and PyObject_CallFunction(func, "O", arg, NULL) with _PyObject_CallArg1(func, arg) Replace PyObject_CallFunction(func, NULL) with _PyObject_CallNoArg(func) _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack.
* merge 3.5Benjamin Peterson2016-09-061-1/+1
|\
| * explicitly cast away constness to silence compiler warningBenjamin Peterson2016-09-061-1/+1
| |
* | Issue #19884: Merge Readline updates from 3.5Martin Panter2016-08-271-12/+15
|\ \ | |/
| * Issue #19884: Avoid spurious output on OS X with Gnu ReadlineMartin Panter2016-08-271-12/+15
| | | | | | | | | | Also adjust the test condition, because enable-meta-key was only added in 6.1, not 6.0.
* | Issue #16182: Merge readline locale fix from 3.5Martin Panter2016-06-141-38/+94
|\ \ | |/
| * Issue #16182: Fix readline begidx, endidx, and use locale encodingMartin Panter2016-06-141-38/+94
| | | | | | | | Based on patch by Serhiy Storchaka.
* | Issue #27171: Merge typo fixes from 3.5Martin Panter2016-06-021-1/+1
|\ \ | |/
| * Issue #27171: Fix typos in documentation, comments, and test function namesMartin Panter2016-06-021-1/+1
| |
* | Issue #26870: Add readline.set_auto_history(), originally by Tyler CromptonMartin Panter2016-05-151-1/+20
| |
* | Issue #22570: Renamed Py_SETREF to Py_XSETREF.Serhiy Storchaka2016-04-061-1/+1
|\ \ | |/
* | Issue #6953: Merge readline doc from 3.5Martin Panter2016-04-051-16/+16
|\ \ | |/
| * Issue #6953: Rearrange and expand Readline module documentationMartin Panter2016-04-051-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Group functions into six new subsections * Document the underlying Readline function or variable accessed * get_history_length() returns the history file limit * clear_history() is conditionally compiled in * Clarify zero and one bases for history item indexes * parse_and_bind() uses its argument directly as an init line * Change "command line" to "line buffer" for consistency * read_init_file() also executes the file * read_history_file() replaces the previous history * write_history_file() overwrites any existing file * Differentiate history file lines from history list items, which could be multi-line * Add more information about completion, also addressing Issue #10796 * libedit (Editline) may be used on any platform; detection is OS X specific
* | Issue #23735: Merge sighandler_t fix from 3.5Martin Panter2016-04-031-1/+1
|\ \ | |/
| * Issue #23735: Avoid sighandler_t Gnu-ismMartin Panter2016-04-031-1/+1
| |
* | Issue #23735: Merge Readline resize handling from 3.5Martin Panter2016-04-031-0/+31
|\ \ | |/
| * Issue #23735: Add SIGWINCH handler for Readline 6.3+ support, by Eric PriceMartin Panter2016-04-031-0/+31
| |
* | Issue #24266: Merge readline Ctrl+C handling from 3.5Martin Panter2016-03-221-0/+3
|\ \ | |/
| * Issue #24266: Cancel history search mode with Ctrl+C in Readline 7Martin Panter2016-03-221-0/+3
| |
* | Issue #15699: Merge readline fixup from 3.5Martin Panter2016-03-221-16/+3
|\ \ | |/
| * Issue #15699: Reunite comment with variableMartin Panter2016-03-221-16/+3
| |
* | Issue #20440: Cleaning up the code by using Py_SETREF.Serhiy Storchaka2016-01-051-3/+1
| |
* | Issue #25523: Merge a-to-an corrections from 3.5Martin Panter2015-11-021-1/+1
|\ \ | |/
| * Issue #25523: Merge "a" to "an" fixes from 3.4 into 3.5Martin Panter2015-11-021-1/+1
| |\
| | * Issue #25523: Correct "a" article to "an" articleMartin Panter2015-11-021-1/+1
| | | | | | | | | | | | | | | | | | This changes the main documentation, doc strings, source code comments, and a couple error messages in the test suite. In some cases the word was removed or edited some other way to fix the grammar.
* | | Issue #25203: Failed readline.set_completer_delims() no longer left theSerhiy Storchaka2015-09-271-4/+5
|\ \ \ | |/ / | | | | | | module in inconsistent state.
| * | Issue #25203: Failed readline.set_completer_delims() no longer left theSerhiy Storchaka2015-09-271-4/+5
| |\ \ | | |/ | | | | | | module in inconsistent state.
| | * Issue #25203: Failed readline.set_completer_delims() no longer left theSerhiy Storchaka2015-09-271-4/+5
| | | | | | | | | | | | module in inconsistent state.
* | | Issue #15989: Fixed some scarcely probable integer overflows.Serhiy Storchaka2015-09-061-1/+1
|/ / | | | | | | It is very unlikely that they can occur in real code for now.
* | merge 3.4 (#24058)Benjamin Peterson2015-04-261-2/+0
|\ \ | |/