[PATCH] Fix build with Python 3.4 (PR python/16784)
Pedro Alves
palves@redhat.com
Thu Dec 4 18:15:00 GMT 2014
On 11/26/2014 01:47 PM, Simon Marchi wrote:
> The type of the function pointer PyOS_ReadlineFunctionPointer (part of the
> Python C API), which we use, slightly changed starting with Python 3.4. The
> signature when from
"went from"
> I changed the signature of deprecated_readline_hook. I would've changed any
> user of it, but it seems like nothing is using it,
You'd probably find it in the insight/gdbtk code.
> --- a/gdb/python/py-gdb-readline.c
> +++ b/gdb/python/py-gdb-readline.c
> @@ -26,10 +26,13 @@
> cases, sys_stdin and sys_stdout are always stdin and stdout
> respectively, as far as I can tell; they are ignored and
> command_line_input is used instead. */
> -
> static char *
Don't lose the empty line.
> gdbpy_readline_wrapper (FILE *sys_stdin, FILE *sys_stdout,
> +#if PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION >= 4
> + const char *prompt)
> +#else
> char *prompt)
> +#endif
>
> @@ -938,6 +938,8 @@ command_line_input (char *prompt_arg, int repeat, char *annotation_suffix)
> strcat (local_prompt, "\n\032\032");
> strcat (local_prompt, annotation_suffix);
> strcat (local_prompt, "\n");
> +
> + prompt_arg = local_prompt;
I think it'd be even clearer if we avoided changing
the variable that is called "arg". How about we add:
const char *prompt = prompt_arg;
at the top, and then use "prompt" throughout, where
you're using "prompt_arg"?
The 'local_prompt' variable could move to the "annotation_level > 1"
block too, for clarity.
Thanks,
Pedro Alves
More information about the Gdb-patches
mailing list