| OLD | NEW |
| 1 /* GDB hooks for TUI. | 1 /* GDB hooks for TUI. |
| 2 | 2 |
| 3 Copyright (C) 2001-2012 Free Software Foundation, Inc. | 3 Copyright (C) 2001-2012 Free Software Foundation, Inc. |
| 4 | 4 |
| 5 This file is part of GDB. | 5 This file is part of GDB. |
| 6 | 6 |
| 7 This program is free software; you can redistribute it and/or modify | 7 This program is free software; you can redistribute it and/or modify |
| 8 it under the terms of the GNU General Public License as published by | 8 it under the terms of the GNU General Public License as published by |
| 9 the Free Software Foundation; either version 3 of the License, or | 9 the Free Software Foundation; either version 3 of the License, or |
| 10 (at your option) any later version. | 10 (at your option) any later version. |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 62 if (tui_active) | 62 if (tui_active) |
| 63 tui_display_main (); | 63 tui_display_main (); |
| 64 } | 64 } |
| 65 | 65 |
| 66 static int ATTRIBUTE_PRINTF (1, 0) | 66 static int ATTRIBUTE_PRINTF (1, 0) |
| 67 tui_query_hook (const char *msg, va_list argp) | 67 tui_query_hook (const char *msg, va_list argp) |
| 68 { | 68 { |
| 69 int retval; | 69 int retval; |
| 70 int ans2; | 70 int ans2; |
| 71 int answer; | 71 int answer; |
| 72 char *question; |
| 73 struct cleanup *old_chain; |
| 74 |
| 75 /* Format the question outside of the loop, to avoid reusing |
| 76 ARGP. */ |
| 77 question = xstrvprintf (msg, argp); |
| 78 old_chain = make_cleanup (xfree, question); |
| 72 | 79 |
| 73 echo (); | 80 echo (); |
| 74 while (1) | 81 while (1) |
| 75 { | 82 { |
| 76 wrap_here (""); /* Flush any buffered output. */ | 83 wrap_here (""); /* Flush any buffered output. */ |
| 77 gdb_flush (gdb_stdout); | 84 gdb_flush (gdb_stdout); |
| 78 | 85 |
| 79 vfprintf_filtered (gdb_stdout, msg, argp); | 86 fputs_filtered (question, gdb_stdout); |
| 80 printf_filtered (_("(y or n) ")); | 87 printf_filtered (_("(y or n) ")); |
| 81 | 88 |
| 82 wrap_here (""); | 89 wrap_here (""); |
| 83 gdb_flush (gdb_stdout); | 90 gdb_flush (gdb_stdout); |
| 84 | 91 |
| 85 answer = tui_getc (stdin); | 92 answer = tui_getc (stdin); |
| 86 clearerr (stdin); /* in case of C-d */ | 93 clearerr (stdin); /* in case of C-d */ |
| 87 if (answer == EOF) /* C-d */ | 94 if (answer == EOF) /* C-d */ |
| 88 { | 95 { |
| 89 retval = 1; | 96 retval = 1; |
| (...skipping 16 matching lines...) Expand all Loading... |
| 106 break; | 113 break; |
| 107 } | 114 } |
| 108 if (answer == 'N') | 115 if (answer == 'N') |
| 109 { | 116 { |
| 110 retval = 0; | 117 retval = 0; |
| 111 break; | 118 break; |
| 112 } | 119 } |
| 113 printf_filtered (_("Please answer y or n.\n")); | 120 printf_filtered (_("Please answer y or n.\n")); |
| 114 } | 121 } |
| 115 noecho (); | 122 noecho (); |
| 123 |
| 124 do_cleanups (old_chain); |
| 116 return retval; | 125 return retval; |
| 117 } | 126 } |
| 118 | 127 |
| 119 /* Prevent recursion of deprecated_register_changed_hook(). */ | 128 /* Prevent recursion of deprecated_register_changed_hook(). */ |
| 120 static int tui_refreshing_registers = 0; | 129 static int tui_refreshing_registers = 0; |
| 121 | 130 |
| 122 static void | 131 static void |
| 123 tui_register_changed_hook (int regno) | 132 tui_register_changed_hook (int regno) |
| 124 { | 133 { |
| 125 struct frame_info *fi; | 134 struct frame_info *fi; |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 } | 304 } |
| 296 | 305 |
| 297 void _initialize_tui_hooks (void); | 306 void _initialize_tui_hooks (void); |
| 298 | 307 |
| 299 void | 308 void |
| 300 _initialize_tui_hooks (void) | 309 _initialize_tui_hooks (void) |
| 301 { | 310 { |
| 302 /* Install the permanent hooks. */ | 311 /* Install the permanent hooks. */ |
| 303 observer_attach_new_objfile (tui_new_objfile_hook); | 312 observer_attach_new_objfile (tui_new_objfile_hook); |
| 304 } | 313 } |
| OLD | NEW |