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: Simon Marchi <simon dot marchi at ericsson dot com>
- To: Pedro Alves <palves at redhat dot com>, <gdb-patches at sourceware dot org>
- Date: Fri, 5 Dec 2014 16:49:49 -0500
- 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> <5480A49F dot 1010904 at redhat dot com>
On 2014-12-04 01:14 PM, Pedro Alves wrote:
> 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"
Done.
>> 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.
Is this something that I need to update, or insight is not maintained anymore?
>> --- 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.
Done.
>> 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"?
How about we just don't call it *_arg?
I don't see the point in having both a prompt and a prompt_arg. If we needed to use both at the same time, of course, but it's not the case.
> The 'local_prompt' variable could move to the "annotation_level > 1"
> block too, for clarity.
Yes, for sure.
Thanks,
Simon