|
@ -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 = |