diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-05-02-09-43-45.gh-issue-149237.-dY_PV.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-02-09-43-45.gh-issue-149237.-dY_PV.rst new file mode 100644 index 00000000000000..1d2bb3274f40e6 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-05-02-09-43-45.gh-issue-149237.-dY_PV.rst @@ -0,0 +1 @@ +Fix `input` assuming the last character being a '\n' and removing it diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 35b30a243318cc..feb6a9ea1c7ff6 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -2586,7 +2586,8 @@ builtin_input_impl(PyObject *module, PyObject *prompt) result = NULL; } else { - len--; /* strip trailing '\n' */ + if (s[len-1] == '\n') + len--; /* strip trailing '\n' */ if (len != 0 && s[len-1] == '\r') len--; /* strip trailing '\r' */ result = PyUnicode_Decode(s, len, stdin_encoding_str,