+2014-12-15 Simon Marchi <simon.marchi@ericsson.com>
+
+ * 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_arg to called
+ functions instead of local_prompt, overwriting prompt_arg if necessary.
+ * 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.
+
2014-12-15 Simon Marchi <simon.marchi@ericsson.com>
* python/lib/gdb/prompt.py (_prompt_pwd): Use os.getcwd() instead of
typedef void initialize_file_ftype (void);
-extern char *gdb_readline (char *);
+extern char *gdb_readline (const char *);
-extern char *gdb_readline_wrapper (char *);
+extern char *gdb_readline_wrapper (const char *);
-extern char *command_line_input (char *, int, char *);
+extern char *command_line_input (const char *, int, char *);
extern void print_prompt (void);
extern void (*deprecated_interactive_hook) (void);
extern void (*deprecated_readline_begin_hook) (char *, ...)
ATTRIBUTE_FPTR_PRINTF_1;
-extern char *(*deprecated_readline_hook) (char *);
+extern char *(*deprecated_readline_hook) (const char *);
extern void (*deprecated_readline_end_hook) (void);
extern void (*deprecated_register_changed_hook) (int regno);
extern void (*deprecated_context_hook) (int);
window and it can close it. */
void (*deprecated_readline_begin_hook) (char *, ...);
-char *(*deprecated_readline_hook) (char *);
+char *(*deprecated_readline_hook) (const char *);
void (*deprecated_readline_end_hook) (void);
/* Called as appropriate to notify the interface that we have attached
A NULL return means end of file. */
char *
-gdb_readline (char *prompt_arg)
+gdb_readline (const char *prompt_arg)
{
int c;
char *result;
}
char *
-gdb_readline_wrapper (char *prompt)
+gdb_readline_wrapper (const char *prompt)
{
struct cleanup *back_to;
struct gdb_readline_wrapper_cleanup *cleanup;
simple input as the user has requested. */
char *
-command_line_input (char *prompt_arg, int repeat, char *annotation_suffix)
+command_line_input (const char *prompt_arg, int repeat, char *annotation_suffix)
{
static char *linebuffer = 0;
static unsigned linelength = 0;
+ const char *prompt = prompt_arg;
char *p;
char *p1;
char *rl;
- char *local_prompt = prompt_arg;
char *nline;
char got_eof = 0;
if (annotation_level > 1 && instream == stdin)
{
- local_prompt = alloca ((prompt_arg == NULL ? 0 : strlen (prompt_arg))
+ char *local_prompt;
+
+ local_prompt = alloca ((prompt == NULL ? 0 : strlen (prompt))
+ strlen (annotation_suffix) + 40);
- if (prompt_arg == NULL)
+ if (prompt == NULL)
local_prompt[0] = '\0';
else
- strcpy (local_prompt, prompt_arg);
+ strcpy (local_prompt, prompt);
strcat (local_prompt, "\n\032\032");
strcat (local_prompt, annotation_suffix);
strcat (local_prompt, "\n");
+
+ prompt = local_prompt;
}
if (linebuffer == 0)
/* Don't use fancy stuff if not talking to stdin. */
if (deprecated_readline_hook && input_from_terminal_p ())
{
- rl = (*deprecated_readline_hook) (local_prompt);
+ rl = (*deprecated_readline_hook) (prompt);
}
else if (command_editing_p && input_from_terminal_p ())
{
- rl = gdb_readline_wrapper (local_prompt);
+ rl = gdb_readline_wrapper (prompt);
}
else
{
- rl = gdb_readline (local_prompt);
+ rl = gdb_readline (prompt);
}
if (annotation_level > 1 && instream == stdin)
break;
p--; /* Put on top of '\'. */
- local_prompt = (char *) 0;
+ prompt = NULL;
}
#ifdef STOP_SIGNAL
if (expanded < 0)
{
xfree (history_value);
- return command_line_input (prompt_arg, repeat,
+ return command_line_input (prompt, repeat,
annotation_suffix);
}
if (strlen (history_value) > linelength)