Thu May 21 13:14:25 1998 John Metzler <jmetzler@cygnus.com>
[deliverable/binutils-gdb.git] / gdb / gdbtk.c
index e62e908d8f68efc00b8ecb6d04b8662f53dc59f2..6027cdbec362bd3a06f9ebc8399554d41a4edba3 100644 (file)
@@ -98,7 +98,7 @@ static void gdbtk_flush PARAMS ((FILE *));
 static void gdbtk_fputs PARAMS ((const char *, FILE *));
 static int gdbtk_query PARAMS ((const char *, va_list));
 static void gdbtk_warning PARAMS ((const char *, va_list));
-static void gdbtk_ignorable_warning PARAMS ((const char *, va_list));
+static void gdbtk_ignorable_warning PARAMS ((const char *));
 static char *gdbtk_readline PARAMS ((char *));
 static void gdbtk_init PARAMS ((char *));
 static void tk_command_loop PARAMS ((void));
@@ -142,6 +142,10 @@ static int gdb_trace_status PARAMS ((ClientData, Tcl_Interp *, int, char *argv[]
 static int gdb_target_has_execution_command PARAMS ((ClientData, Tcl_Interp *, int, char *argv[]));
 static int gdb_load_info PARAMS ((ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]));
 void TclDebug PARAMS ((const char *fmt, ...));
+static int gdb_get_locals_command PARAMS ((ClientData, Tcl_Interp *, int, Tcl_Obj *CONST
+                                 objv[]));
+static int gdb_get_args_command PARAMS ((ClientData, Tcl_Interp *, int, Tcl_Obj *CONST
+                                 objv[]));
 static int gdb_get_vars_command PARAMS ((ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]));
 static int gdb_get_function_command PARAMS ((ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]));
 static int gdb_get_line_command PARAMS ((ClientData, Tcl_Interp *, int, Tcl_Obj *CONST objv[]));
@@ -325,14 +329,13 @@ gdbtk_warning (warning, args)
 }
 
 static void
-gdbtk_ignorable_warning (warning, args)
+gdbtk_ignorable_warning (warning)
      const char *warning;
-     va_list args;
 {
   char buf[200], *merge[2];
   char *command;
 
-  vsprintf (buf, warning, args);
+  sprintf (buf, warning);
   merge[0] = "gdbtk_tcl_ignorable_warning";
   merge[1] = buf;
   command = Tcl_Merge (2, merge);
@@ -2261,9 +2264,9 @@ gdbtk_init ( argv0 )
                      gdb_trace_status,
                      NULL, NULL);
   Tcl_CreateObjCommand (interp, "gdb_load_info", call_obj_wrapper, gdb_load_info, NULL);
-  Tcl_CreateObjCommand (interp, "gdb_get_locals", call_obj_wrapper, gdb_get_vars_command, 
+  Tcl_CreateObjCommand (interp, "gdb_get_locals", call_obj_wrapper, gdb_get_locals_command, 
                          NULL);
-  Tcl_CreateObjCommand (interp, "gdb_get_args", call_obj_wrapper, gdb_get_vars_command,
+  Tcl_CreateObjCommand (interp, "gdb_get_args", call_obj_wrapper, gdb_get_args_command,
                          NULL);
   Tcl_CreateObjCommand (interp, "gdb_get_function", call_obj_wrapper, gdb_get_function_command,
                          NULL);
@@ -2539,7 +2542,7 @@ gdbtk_load_hash (section, num)
  */
 
 static int
-gdb_get_locals (clientData, interp, objc, objv)
+gdb_get_locals_command (clientData, interp, objc, objv)
      ClientData clientData;
      Tcl_Interp *interp;
      int objc;
@@ -2551,7 +2554,7 @@ gdb_get_locals (clientData, interp, objc, objv)
 }
 
 static int
-gdb_get_args (clientData, interp, objc, objv)
+gdb_get_args_command (clientData, interp, objc, objv)
      ClientData clientData;
      Tcl_Interp *interp;
      int objc;
@@ -3256,7 +3259,7 @@ gdb_loadfile (clientData, interp, objc, objv)
       mtime = bfd_get_mtime(exec_bfd);
  
   if (mtime && mtime < st.st_mtime)
-     gdbtk_ignorable_warning("Source file is more recent than executable.\n", (va_list)0);
+     gdbtk_ignorable_warning("Source file is more recent than executable.\n");
 
 
   /* Source linenumbers don't appear to be in order, and a sort is */
@@ -3452,4 +3455,31 @@ _initialize_gdbtk ()
 
       init_ui_hook = gdbtk_init;
     }
+#ifdef __CYGWIN32__
+  else
+    {
+      DWORD ft = GetFileType (GetStdHandle (STD_INPUT_HANDLE));
+      void cygwin32_attach_handle_to_fd (char *, int, HANDLE, int, int);
+
+      switch (ft)
+       {
+         case FILE_TYPE_DISK:
+         case FILE_TYPE_CHAR:
+         case FILE_TYPE_PIPE:
+           break;
+         default:
+           AllocConsole();
+           cygwin32_attach_handle_to_fd ("/dev/conin", 0,
+                                         GetStdHandle (STD_INPUT_HANDLE),
+                                         1, GENERIC_READ);
+           cygwin32_attach_handle_to_fd ("/dev/conout", 1,
+                                         GetStdHandle (STD_OUTPUT_HANDLE),
+                                         0, GENERIC_WRITE);
+           cygwin32_attach_handle_to_fd ("/dev/conout", 2,
+                                         GetStdHandle (STD_ERROR_HANDLE),
+                                         0, GENERIC_WRITE);
+           break;
+       }
+    }
+#endif
 }
This page took 0.024896 seconds and 4 git commands to generate.