2004-02-23 Jeff Johnston <jjohnstn@redhat.com>
* defs.h (nquery, yquery): New prototypes. * breakpoint.c (break_command_1): Use new nquery interface. * utils.c (defaulted_query, nquery, yquery): New functions.
This commit is contained in:
parent
8ee9a8b2e7
commit
cbdeadcaa3
4 changed files with 150 additions and 1 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
2004-02-23 Jeff Johnston <jjohnstn@redhat.com>
|
||||||
|
|
||||||
|
* defs.h (nquery, yquery): New prototypes.
|
||||||
|
* breakpoint.c (break_command_1): Use new nquery interface.
|
||||||
|
* utils.c (defaulted_query, nquery, yquery): New functions.
|
||||||
|
|
||||||
2004-02-23 Andrew Cagney <cagney@redhat.com>
|
2004-02-23 Andrew Cagney <cagney@redhat.com>
|
||||||
|
|
||||||
* hppa-tdep.c (hppa_frame_align): New function.
|
* hppa-tdep.c (hppa_frame_align): New function.
|
||||||
|
@ -303,6 +309,7 @@
|
||||||
* sh-tdep.c (sh_analyze_prologue): Eliminate useless test of
|
* sh-tdep.c (sh_analyze_prologue): Eliminate useless test of
|
||||||
cache->uses_fp prior to setting it.
|
cache->uses_fp prior to setting it.
|
||||||
|
|
||||||
|
>>>>>>> 1.5450
|
||||||
2004-02-19 Fred Fish <fnf@redhat.com>
|
2004-02-19 Fred Fish <fnf@redhat.com>
|
||||||
|
|
||||||
Fix for PR breakpoint/1558.
|
Fix for PR breakpoint/1558.
|
||||||
|
@ -319,6 +326,7 @@
|
||||||
type being greater than sizeof of host's LONGEST. Always use
|
type being greater than sizeof of host's LONGEST. Always use
|
||||||
unpack_long() unless format 'f' chosen.
|
unpack_long() unless format 'f' chosen.
|
||||||
|
|
||||||
|
>>>>>>> 1.5419
|
||||||
2004-02-19 Joel Brobecker <brobecker@gnat.com>
|
2004-02-19 Joel Brobecker <brobecker@gnat.com>
|
||||||
|
|
||||||
Committed by Elena Zannoni <ezannoni@redhat.com>
|
Committed by Elena Zannoni <ezannoni@redhat.com>
|
||||||
|
|
|
@ -5103,7 +5103,7 @@ break_command_1 (char *arg, int flag, int from_tty, struct breakpoint *pending_b
|
||||||
|
|
||||||
error_output_message (NULL, err_msg);
|
error_output_message (NULL, err_msg);
|
||||||
xfree (err_msg);
|
xfree (err_msg);
|
||||||
if (!query ("Make breakpoint pending on future shared library load? "))
|
if (!nquery ("Make breakpoint pending on future shared library load? "))
|
||||||
return rc;
|
return rc;
|
||||||
copy_arg = xstrdup (addr_start);
|
copy_arg = xstrdup (addr_start);
|
||||||
addr_string = ©_arg;
|
addr_string = ©_arg;
|
||||||
|
|
|
@ -405,6 +405,8 @@ extern void null_cleanup (void *);
|
||||||
extern int myread (int, char *, int);
|
extern int myread (int, char *, int);
|
||||||
|
|
||||||
extern int query (const char *, ...) ATTR_FORMAT (printf, 1, 2);
|
extern int query (const char *, ...) ATTR_FORMAT (printf, 1, 2);
|
||||||
|
extern int nquery (const char *, ...) ATTR_FORMAT (printf, 1, 2);
|
||||||
|
extern int yquery (const char *, ...) ATTR_FORMAT (printf, 1, 2);
|
||||||
|
|
||||||
extern void init_page_info (void);
|
extern void init_page_info (void);
|
||||||
|
|
||||||
|
|
139
gdb/utils.c
139
gdb/utils.c
|
@ -1335,6 +1335,145 @@ query (const char *ctlstr, ...)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* This function supports the nquery() and yquery() functions.
|
||||||
|
Ask user a y-or-n question and return 0 if answer is no, 1 if
|
||||||
|
answer is yes, or default the answer to the specified default.
|
||||||
|
DEFCHAR is either 'y' or 'n' and refers to the default answer.
|
||||||
|
CTLSTR is the control string and should end in "? ". It should
|
||||||
|
not say how to answer, because we do that.
|
||||||
|
ARGS are the arguments passed along with the CTLSTR argument to
|
||||||
|
printf. */
|
||||||
|
|
||||||
|
static int
|
||||||
|
defaulted_query (const char *ctlstr, const char defchar, va_list args)
|
||||||
|
{
|
||||||
|
int answer;
|
||||||
|
int ans2;
|
||||||
|
int retval;
|
||||||
|
int def_value;
|
||||||
|
char def_answer, not_def_answer;
|
||||||
|
char *y_string, *n_string;
|
||||||
|
|
||||||
|
/* Set up according to which answer is the default. */
|
||||||
|
if (defchar == 'y')
|
||||||
|
{
|
||||||
|
def_value = 1;
|
||||||
|
def_answer = 'Y';
|
||||||
|
not_def_answer = 'N';
|
||||||
|
y_string = "[y]";
|
||||||
|
n_string = "n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
def_value = 0;
|
||||||
|
def_answer = 'N';
|
||||||
|
not_def_answer = 'Y';
|
||||||
|
y_string = "y";
|
||||||
|
n_string = "[n]";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (query_hook)
|
||||||
|
{
|
||||||
|
return query_hook (ctlstr, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Automatically answer default value if input is not from a terminal. */
|
||||||
|
if (!input_from_terminal_p ())
|
||||||
|
return def_value;
|
||||||
|
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
wrap_here (""); /* Flush any buffered output */
|
||||||
|
gdb_flush (gdb_stdout);
|
||||||
|
|
||||||
|
if (annotation_level > 1)
|
||||||
|
printf_filtered ("\n\032\032pre-%cquery\n", defchar);
|
||||||
|
|
||||||
|
vfprintf_filtered (gdb_stdout, ctlstr, args);
|
||||||
|
printf_filtered ("(%s or %s) ", y_string, n_string);
|
||||||
|
|
||||||
|
if (annotation_level > 1)
|
||||||
|
printf_filtered ("\n\032\032%cquery\n", defchar);
|
||||||
|
|
||||||
|
wrap_here ("");
|
||||||
|
gdb_flush (gdb_stdout);
|
||||||
|
|
||||||
|
answer = fgetc (stdin);
|
||||||
|
clearerr (stdin); /* in case of C-d */
|
||||||
|
if (answer == EOF) /* C-d */
|
||||||
|
{
|
||||||
|
retval = def_value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/* Eat rest of input line, to EOF or newline */
|
||||||
|
if (answer != '\n')
|
||||||
|
do
|
||||||
|
{
|
||||||
|
ans2 = fgetc (stdin);
|
||||||
|
clearerr (stdin);
|
||||||
|
}
|
||||||
|
while (ans2 != EOF && ans2 != '\n' && ans2 != '\r');
|
||||||
|
|
||||||
|
if (answer >= 'a')
|
||||||
|
answer -= 040;
|
||||||
|
/* Check answer. For the non-default, the user must specify
|
||||||
|
the non-default explicitly. */
|
||||||
|
if (answer == not_def_answer)
|
||||||
|
{
|
||||||
|
retval = !def_value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/* Otherwise, for the default, the user may either specify
|
||||||
|
the required input or have it default by entering nothing. */
|
||||||
|
if (answer == def_answer || answer == '\n' ||
|
||||||
|
answer == '\r' || answer == EOF)
|
||||||
|
{
|
||||||
|
retval = def_value;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/* Invalid entries are not defaulted and require another selection. */
|
||||||
|
printf_filtered ("Please answer %s or %s.\n",
|
||||||
|
y_string, n_string);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (annotation_level > 1)
|
||||||
|
printf_filtered ("\n\032\032post-%cquery\n", defchar);
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Ask user a y-or-n question and return 0 if answer is no, 1 if
|
||||||
|
answer is yes, or 0 if answer is defaulted.
|
||||||
|
Takes three args which are given to printf to print the question.
|
||||||
|
The first, a control string, should end in "? ".
|
||||||
|
It should not say how to answer, because we do that. */
|
||||||
|
|
||||||
|
int
|
||||||
|
nquery (const char *ctlstr, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start (args, ctlstr);
|
||||||
|
return defaulted_query (ctlstr, 'n', args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Ask user a y-or-n question and return 0 if answer is no, 1 if
|
||||||
|
answer is yes, or 1 if answer is defaulted.
|
||||||
|
Takes three args which are given to printf to print the question.
|
||||||
|
The first, a control string, should end in "? ".
|
||||||
|
It should not say how to answer, because we do that. */
|
||||||
|
|
||||||
|
int
|
||||||
|
yquery (const char *ctlstr, ...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
|
||||||
|
va_start (args, ctlstr);
|
||||||
|
return defaulted_query (ctlstr, 'y', args);
|
||||||
|
va_end (args);
|
||||||
|
}
|
||||||
|
|
||||||
/* Print an error message saying that we couldn't make sense of a
|
/* Print an error message saying that we couldn't make sense of a
|
||||||
\^mumble sequence in a string or character constant. START and END
|
\^mumble sequence in a string or character constant. START and END
|
||||||
indicate a substring of some larger string that contains the
|
indicate a substring of some larger string that contains the
|
||||||
|
|
Loading…
Add table
Reference in a new issue