This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix build with Python 3.4 (PR python/16784)
- From: Pedro Alves <palves at redhat dot com>
- To: Simon Marchi <simon dot marchi at ericsson dot com>, gdb-patches at sourceware dot org
- Date: Thu, 04 Dec 2014 18:14:55 +0000
- Subject: Re: [PATCH] Fix build with Python 3.4 (PR python/16784)
- Authentication-results: sourceware.org; auth=none
- References: <1417009634-2356-1-git-send-email-simon dot marchi at ericsson dot com>
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