Fix build with Python 3.4 (PR python/16784)
authorSimon Marchi <simon.marchi@ericsson.com>
Mon, 15 Dec 2014 16:38:03 +0000 (11:38 -0500)
committerSimon Marchi <simon.marchi@ericsson.com>
Mon, 15 Dec 2014 16:40:00 +0000 (11:40 -0500)
commit38bcc89d48a20af944fe0d51eff3980f7dc8a88e
tree7375d3dd9a01fad783811546cd0e17b234751ad9
parent89ed8ea187a460bc746a41f08fa8ee986716743b
Fix build with Python 3.4 (PR python/16784)

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 went from

PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, char *);

to

PyAPI_DATA(char) *(*PyOS_ReadlineFunctionPointer)(FILE *, FILE *, const char *);

The parameter that changed is the prompt text.

This commits adjust gdb accordingly by making the prompt_arg parameter
const, as well as the fallouts of that. I needed to rework how
annotations are added to the prompt, since the it is now const. If
annotations are enabled, it will make a copy of the prompt overwrite the
prompt variable that is used throughout the function. Otherwise, no copy
is done and the original prompt_arg value is passed.

I changed the signature of deprecated_readline_hook. I would've changed any
user of it, but it seems like nothing is using it,

Built-tested with python 2.7.x, 3.3.y and 3.4.z.

gdb/ChangeLog:

* defs.h (gdb_readline): Constify argument.
(gdb_readline_wrapper): Same.
(command_line_input): Same.
(deprecated_readline_hook): Same.
* top.c (deprecated_readline_hook): Same.
(gdb_readline): Same.
(gdb_readline_wrapper): Same.
(command_line_input): Constify argument. Pass prompt to
called functions instead of local_prompt, overwriting prompt
if using annotations.
* event-top.h (display_gdb_prompt): Constify argument.
* event-top.c (display_gdb_prompt): Same.
* python/py-gdb-readline.c (gdbpy_readline_wrapper): Constify
argument if building with Python 3.4 and up.

Signed-off-by: Simon Marchi <simon.marchi@ericsson.com>
gdb/ChangeLog
gdb/defs.h
gdb/event-top.c
gdb/event-top.h
gdb/python/py-gdb-readline.c
gdb/top.c
This page took 0.029171 seconds and 4 git commands to generate.