This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: RFA: fix CLI/9591 (pagination and --batch)


>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:

Eli> What I had in mind is adding a note like this:
Eli>     @item set confirm off
Eli>     Disables confirmation requests.  Note that running @value{GDBN}
Eli>     with the @option{--batch} option (@pxref{Mode Options, --batch})
Eli>     also automatically disables confirmation requests.
Eli> and similarly for pagination.

Ok, how about this?

Tom

2010-03-08  Tom Tromey  <tromey@redhat.com>

	PR cli/9591:
	* NEWS: Update.
	* utils.c: Include main.h.
	(fputs_maybe_filtered): Don't paginate if `batch_flag'.
	(defaulted_query): Use default answer if `batch_flag'.
	* main.h (batch_flag): Declare.
	* main.c (batch_flag): New global.
	(captured_main): Remove 'batch'.  Update.

2010-03-08  Tom Tromey  <tromey@redhat.com>

	PR cli/9591:
	* gdb.texinfo (Mode Options): Mention lack of pagination and
	confirmation with --batch.
	(Screen Size): Mention --batch.
	(Messages/Warnings): Likewise.

Index: NEWS
===================================================================
RCS file: /cvs/src/src/gdb/NEWS,v
retrieving revision 1.361
diff -u -r1.361 NEWS
--- NEWS	5 Mar 2010 20:18:11 -0000	1.361
+++ NEWS	8 Mar 2010 18:47:15 -0000
@@ -3,6 +3,8 @@
 
 *** Changes since GDB 7.1
 
+* The --batch flag now disables pagination and queries.
+
 * X86 general purpose registers
 
   GDB now supports reading/writing byte, word and double-word x86
Index: main.c
===================================================================
RCS file: /cvs/src/src/gdb/main.c,v
retrieving revision 1.80
diff -u -r1.80 main.c
--- main.c	20 Jan 2010 14:23:07 -0000	1.80
+++ main.c	8 Mar 2010 18:47:15 -0000
@@ -76,6 +76,9 @@
 struct ui_file *gdb_stdtarg;
 struct ui_file *gdb_stdtargerr;
 
+/* True if --batch or --batch-silent was seen.  */
+int batch_flag = 0;
+
 /* Support for the --batch-silent option.  */
 int batch_silent = 0;
 
@@ -247,7 +250,6 @@
   int argc = context->argc;
   char **argv = context->argv;
   static int quiet = 0;
-  static int batch = 0;
   static int set_args = 0;
 
   /* Pointers to various arguments from command line.  */
@@ -386,7 +388,7 @@
       {"nx", no_argument, &inhibit_gdbinit, 1},
       {"n", no_argument, &inhibit_gdbinit, 1},
       {"batch-silent", no_argument, 0, 'B'},
-      {"batch", no_argument, &batch, 1},
+      {"batch", no_argument, &batch_flag, 1},
       {"epoch", no_argument, &epoch_interface, 1},
 
     /* This is a synonym for "--annotate=1".  --annotate is now preferred,
@@ -537,7 +539,7 @@
 	      }
 	    break;
 	  case 'B':
-	    batch = batch_silent = 1;
+	    batch_flag = batch_silent = 1;
 	    gdb_stdout = ui_file_new();
 	    break;
 #ifdef GDBTK
@@ -631,7 +633,7 @@
 	use_windows = 0;
       }
 
-    if (batch)
+    if (batch_flag)
       quiet = 1;
   }
 
@@ -803,15 +805,15 @@
       /* The exec file and the symbol-file are the same.  If we can't
          open it, better only print one error message.
          catch_command_errors returns non-zero on success! */
-      if (catch_command_errors (exec_file_attach, execarg, !batch, RETURN_MASK_ALL))
-	catch_command_errors (symbol_file_add_main, symarg, !batch, RETURN_MASK_ALL);
+      if (catch_command_errors (exec_file_attach, execarg, !batch_flag, RETURN_MASK_ALL))
+	catch_command_errors (symbol_file_add_main, symarg, !batch_flag, RETURN_MASK_ALL);
     }
   else
     {
       if (execarg != NULL)
-	catch_command_errors (exec_file_attach, execarg, !batch, RETURN_MASK_ALL);
+	catch_command_errors (exec_file_attach, execarg, !batch_flag, RETURN_MASK_ALL);
       if (symarg != NULL)
-	catch_command_errors (symbol_file_add_main, symarg, !batch, RETURN_MASK_ALL);
+	catch_command_errors (symbol_file_add_main, symarg, !batch_flag, RETURN_MASK_ALL);
     }
 
   if (corearg && pidarg)
@@ -820,10 +822,10 @@
 
   if (corearg != NULL)
     catch_command_errors (core_file_command, corearg,
-			  !batch, RETURN_MASK_ALL);
+			  !batch_flag, RETURN_MASK_ALL);
   else if (pidarg != NULL)
     catch_command_errors (attach_command, pidarg,
-			  !batch, RETURN_MASK_ALL);
+			  !batch_flag, RETURN_MASK_ALL);
   else if (pid_or_core_arg)
     {
       /* The user specified 'gdb program pid' or gdb program core'.
@@ -833,13 +835,13 @@
       if (isdigit (pid_or_core_arg[0]))
 	{
 	  if (catch_command_errors (attach_command, pid_or_core_arg,
-				    !batch, RETURN_MASK_ALL) == 0)
+				    !batch_flag, RETURN_MASK_ALL) == 0)
 	    catch_command_errors (core_file_command, pid_or_core_arg,
-				  !batch, RETURN_MASK_ALL);
+				  !batch_flag, RETURN_MASK_ALL);
 	}
       else /* Can't be a pid, better be a corefile.  */
 	catch_command_errors (core_file_command, pid_or_core_arg,
-			      !batch, RETURN_MASK_ALL);
+			      !batch_flag, RETURN_MASK_ALL);
     }
 
   if (ttyarg != NULL)
@@ -859,17 +861,17 @@
     {
       if (cmdarg[i].type == CMDARG_FILE)
         catch_command_errors (source_script, cmdarg[i].string,
-			      !batch, RETURN_MASK_ALL);
+			      !batch_flag, RETURN_MASK_ALL);
       else  /* cmdarg[i].type == CMDARG_COMMAND */
         catch_command_errors (execute_command, cmdarg[i].string,
-			      !batch, RETURN_MASK_ALL);
+			      !batch_flag, RETURN_MASK_ALL);
     }
   xfree (cmdarg);
 
   /* Read in the old history after all the command files have been read. */
   init_history ();
 
-  if (batch)
+  if (batch_flag)
     {
       /* We have hit the end of the batch file.  */
       quit_force (NULL, 0);
Index: main.h
===================================================================
RCS file: /cvs/src/src/gdb/main.h,v
retrieving revision 1.10
diff -u -r1.10 main.h
--- main.h	1 Jan 2010 07:31:37 -0000	1.10
+++ main.h	8 Mar 2010 18:47:15 -0000
@@ -34,5 +34,6 @@
 extern int return_child_result;
 extern int return_child_result_value;
 extern int batch_silent;
+extern int batch_flag;
 
 #endif
Index: utils.c
===================================================================
RCS file: /cvs/src/src/gdb/utils.c,v
retrieving revision 1.227
diff -u -r1.227 utils.c
--- utils.c	5 Mar 2010 20:18:14 -0000	1.227
+++ utils.c	8 Mar 2010 18:47:16 -0000
@@ -58,6 +58,7 @@
 #include "gdb_obstack.h"
 #include "gdbcore.h"
 #include "top.h"
+#include "main.h"
 
 #include "inferior.h"		/* for signed_pointer_to_address */
 
@@ -1496,7 +1497,7 @@
      question we're asking, and then answer the default automatically.  This
      way, important error messages don't get lost when talking to GDB
      over a pipe.  */
-  if (! input_from_terminal_p ())
+  if (batch_flag || ! input_from_terminal_p ())
     {
       wrap_here ("");
       vfprintf_filtered (gdb_stdout, ctlstr, args);
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.678
diff -u -r1.678 gdb.texinfo
--- doc/gdb.texinfo	5 Mar 2010 20:18:16 -0000	1.678
+++ doc/gdb.texinfo	8 Mar 2010 18:47:19 -0000
@@ -1028,7 +1028,9 @@
 command files specified with @samp{-x} (and all commands from
 initialization files, if not inhibited with @samp{-n}).  Exit with
 nonzero status if an error occurs in executing the @value{GDBN} commands
-in the command files.
+in the command files.  Batch mode also disables pagination;
+@pxref{Screen Size} and acts as if @kbd{set confirm off} were in
+effect (@pxref{Messages/Warnings}).
 
 Batch mode may be useful for running @value{GDBN} as a filter, for
 example to download and run a program on another computer; in order to
@@ -18494,7 +18496,9 @@
 @itemx set pagination off
 @kindex set pagination
 Turn the output pagination on or off; the default is on.  Turning
-pagination off is the alternative to @code{set height 0}.
+pagination off is the alternative to @code{set height 0}.  Note that
+running @value{GDBN} with the @option{--batch} option (@pxref{Mode
+Options, -batch}) also automatically disables pagination.
 
 @item show pagination
 @kindex show pagination
@@ -18717,7 +18721,9 @@
 @cindex confirmation
 @cindex stupid questions
 @item set confirm off
-Disables confirmation requests.
+Disables confirmation requests.  Note that running @value{GDBN} with
+the @option{--batch} option (@pxref{Mode Options, -batch}) also
+automatically disables confirmation requests.
 
 @item set confirm on
 Enables confirmation requests (the default).


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]