diff --git a/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/002_readline63.patch b/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/002_readline63.patch new file mode 100644 index 00000000..ed296265 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/002_readline63.patch @@ -0,0 +1,70 @@ +diff -r -u ../Python-3.3.3.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-3.3.3.orig/Modules/readline.c 2013-11-17 16:23:01.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:22:10.219305878 +0900 +@@ -231,8 +231,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -774,14 +773,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -819,7 +826,7 @@ + (r != Py_None && PyLong_AsLong(r) == -1 && PyErr_Occurred())) { + goto error; + } +- Py_XDECREF(r); r=NULL; ++ Py_CLEAR(r); + + if (0) { + error: +@@ -877,7 +884,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER + rl_completion_append_character ='\0'; +@@ -936,12 +943,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + completer_word_break_characters = + rl_completer_word_break_characters = diff --git a/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/002_readline63.patch b/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/002_readline63.patch new file mode 100644 index 00000000..ed296265 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/002_readline63.patch @@ -0,0 +1,70 @@ +diff -r -u ../Python-3.3.3.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-3.3.3.orig/Modules/readline.c 2013-11-17 16:23:01.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:22:10.219305878 +0900 +@@ -231,8 +231,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -774,14 +773,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -819,7 +826,7 @@ + (r != Py_None && PyLong_AsLong(r) == -1 && PyErr_Occurred())) { + goto error; + } +- Py_XDECREF(r); r=NULL; ++ Py_CLEAR(r); + + if (0) { + error: +@@ -877,7 +884,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER + rl_completion_append_character ='\0'; +@@ -936,12 +943,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + completer_word_break_characters = + rl_completer_word_break_characters = diff --git a/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/002_readline63.patch b/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/002_readline63.patch new file mode 100644 index 00000000..ed296265 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/002_readline63.patch @@ -0,0 +1,70 @@ +diff -r -u ../Python-3.3.3.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-3.3.3.orig/Modules/readline.c 2013-11-17 16:23:01.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:22:10.219305878 +0900 +@@ -231,8 +231,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -774,14 +773,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -819,7 +826,7 @@ + (r != Py_None && PyLong_AsLong(r) == -1 && PyErr_Occurred())) { + goto error; + } +- Py_XDECREF(r); r=NULL; ++ Py_CLEAR(r); + + if (0) { + error: +@@ -877,7 +884,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER + rl_completion_append_character ='\0'; +@@ -936,12 +943,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + completer_word_break_characters = + rl_completer_word_break_characters =