Typo fix.
[deliverable/binutils-gdb.git] / gdb / mi / mi-cmd-file.c
index eb1d67a6a8d552099f15007a6b1e6f06d973a88d..01f44a6ccd7ed7aa7651ac5e77ad7eca104b2dec 100644 (file)
@@ -1,5 +1,5 @@
 /* MI Command Set - breakpoint and watchpoint commands.
-   Copyright 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
@@ -16,8 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
 
 #include "defs.h"
 #include "mi-cmds.h"
@@ -25,6 +25,7 @@
 #include "ui-out.h"
 #include "symtab.h"
 #include "source.h"
+#include "objfiles.h"
 
 /* Return to the client the absolute path and line number of the 
    current file being executed. */
@@ -37,9 +38,8 @@ mi_cmd_file_list_exec_source_file(char *command, char **argv, int argc)
   char *optarg;
   
   if ( !mi_valid_noargs("mi_cmd_file_list_exec_source_file", argc, argv) )
-    error ("mi_cmd_file_list_exec_source_file: Usage: No args");
+    error (_("mi_cmd_file_list_exec_source_file: Usage: No args"));
 
-  
   /* Set the default file and line, also get them */
   set_default_source_symtab_and_line();
   st = get_current_source_symtab_and_line();
@@ -48,20 +48,71 @@ mi_cmd_file_list_exec_source_file(char *command, char **argv, int argc)
      Apparently, filename does not need to be tested for NULL.
      The documentation in symtab.h suggests it will always be correct */
   if (!st.symtab)
-    error ("mi_cmd_file_list_exec_source_file: No symtab");
+    error (_("mi_cmd_file_list_exec_source_file: No symtab"));
 
   /* Extract the fullname if it is not known yet */
-  if (st.symtab->fullname == NULL)
-    symtab_to_filename (st.symtab);
-
-  /* We may not be able to open the file (not available). */
-  if (st.symtab->fullname == NULL)
-    error ("mi_cmd_file_list_exec_source_file: File not found");
+  symtab_to_fullname (st.symtab);
 
   /* Print to the user the line, filename and fullname */
   ui_out_field_int (uiout, "line", st.line);
   ui_out_field_string (uiout, "file", st.symtab->filename);
+
+  /* We may not be able to open the file (not available). */
+  if (st.symtab->fullname)
   ui_out_field_string (uiout, "fullname", st.symtab->fullname);
 
   return MI_CMD_DONE;
 }
+
+enum mi_cmd_result
+mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc)
+{
+  struct symtab *s;
+  struct partial_symtab *ps;
+  struct objfile *objfile;
+
+  if (!mi_valid_noargs ("mi_cmd_file_list_exec_source_files", argc, argv))
+    error (_("mi_cmd_file_list_exec_source_files: Usage: No args"));
+
+  /* Print the table header */
+  ui_out_begin (uiout, ui_out_type_list, "files");
+
+  /* Look at all of the symtabs */
+  ALL_SYMTABS (objfile, s)
+  {
+    ui_out_begin (uiout, ui_out_type_tuple, NULL);
+
+    ui_out_field_string (uiout, "file", s->filename);
+
+    /* Extract the fullname if it is not known yet */
+    symtab_to_fullname (s);
+
+    if (s->fullname)
+      ui_out_field_string (uiout, "fullname", s->fullname);
+
+    ui_out_end (uiout, ui_out_type_tuple);
+  }
+
+  /* Look at all of the psymtabs */
+  ALL_PSYMTABS (objfile, ps)
+  {
+    if (!ps->readin)
+      {
+       ui_out_begin (uiout, ui_out_type_tuple, NULL);
+
+       ui_out_field_string (uiout, "file", ps->filename);
+
+       /* Extract the fullname if it is not known yet */
+       psymtab_to_fullname (ps);
+
+       if (ps->fullname)
+         ui_out_field_string (uiout, "fullname", ps->fullname);
+
+       ui_out_end (uiout, ui_out_type_tuple);
+      }
+  }
+
+  ui_out_end (uiout, ui_out_type_list);
+
+  return MI_CMD_DONE;
+}
This page took 0.025884 seconds and 4 git commands to generate.