Class-ify ui_out
[deliverable/binutils-gdb.git] / gdb / mi / mi-cmd-file.c
index 0150ca07d4b7e1e82bb8eb7a64cbd52f1cc2fe01..cf1faa5d88633bc45e2301e34591d7fbead0c14f 100644 (file)
@@ -1,6 +1,5 @@
-/* MI Command Set - breakpoint and watchpoint commands.
-   Copyright (C) 2000, 2001, 2002, 2007, 2008, 2009, 2010, 2011
-   Free Software Foundation, Inc.
+/* MI Command Set - file commands.
+   Copyright (C) 2000-2016 Free Software Foundation, Inc.
    Contributed by Cygnus Solutions (a Red Hat company).
 
    This file is part of GDB.
 #include "psymtab.h"
 
 /* Return to the client the absolute path and line number of the 
-   current file being executed. */
+   current file being executed.  */
 
 void
 mi_cmd_file_list_exec_source_file (char *command, char **argv, int argc)
 {
   struct symtab_and_line st;
+  struct ui_out *uiout = current_uiout;
   
   if (!mi_valid_noargs ("-file-list-exec-source-file", argc, argv))
     error (_("-file-list-exec-source-file: Usage: No args"));
 
-  /* Set the default file and line, also get them */
+  /* Set the default file and line, also get them */
   set_default_source_symtab_and_line ();
   st = get_current_source_symtab_and_line ();
 
-  /* We should always get a symtab. 
-     Apparently, filename does not need to be tested for NULL.
-     The documentation in symtab.h suggests it will always be correct */
+  /* We should always get a symtab.  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 (_("-file-list-exec-source-file: No symtab"));
 
-  /* Extract the fullname if it is not known yet */
-  symtab_to_fullname (st.symtab);
+  /* Print to the user the line, filename and fullname.  */
+  uiout->field_int ("line", st.line);
+  uiout->field_string ("file", symtab_to_filename_for_display (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);
+  uiout->field_string ("fullname", symtab_to_fullname (st.symtab));
 
-  /* We may not be able to open the file (not available). */
-  if (st.symtab->fullname)
-  ui_out_field_string (uiout, "fullname", st.symtab->fullname);
-
-  ui_out_field_int (uiout, "macro-info", st.symtab->macro_table ? 1 : 0);
+  uiout->field_int ("macro-info",
+                   COMPUNIT_MACRO_TABLE (SYMTAB_COMPUNIT (st.symtab)) != NULL);
 }
 
 /* A callback for map_partial_symbol_filenames.  */
+
 static void
 print_partial_file_name (const char *filename, const char *fullname,
                         void *ignore)
 {
-  ui_out_begin (uiout, ui_out_type_tuple, NULL);
+  struct ui_out *uiout = current_uiout;
+
+  uiout->begin (ui_out_type_tuple, NULL);
 
-  ui_out_field_string (uiout, "file", filename);
+  uiout->field_string ("file", filename);
 
   if (fullname)
-    ui_out_field_string (uiout, "fullname", fullname);
+    uiout->field_string ("fullname", fullname);
 
-  ui_out_end (uiout, ui_out_type_tuple);
+  uiout->end (ui_out_type_tuple);
 }
 
 void
 mi_cmd_file_list_exec_source_files (char *command, char **argv, int argc)
 {
+  struct ui_out *uiout = current_uiout;
+  struct compunit_symtab *cu;
   struct symtab *s;
   struct objfile *objfile;
 
   if (!mi_valid_noargs ("-file-list-exec-source-files", argc, argv))
     error (_("-file-list-exec-source-files: Usage: No args"));
 
-  /* Print the table header */
-  ui_out_begin (uiout, ui_out_type_list, "files");
+  /* Print the table header */
+  uiout->begin (ui_out_type_list, "files");
 
-  /* Look at all of the symtabs */
-  ALL_SYMTABS (objfile, s)
+  /* Look at all of the file symtabs.  */
+  ALL_FILETABS (objfile, cu, 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);
+    uiout->begin (ui_out_type_tuple, NULL);
 
-    if (s->fullname)
-      ui_out_field_string (uiout, "fullname", s->fullname);
+    uiout->field_string ("file", symtab_to_filename_for_display (s));
+    uiout->field_string ("fullname", symtab_to_fullname (s));
 
-    ui_out_end (uiout, ui_out_type_tuple);
+    uiout->end (ui_out_type_tuple);
   }
 
-  map_partial_symbol_filenames (print_partial_file_name, NULL);
+  map_symbol_filenames (print_partial_file_name, NULL,
+                       1 /*need_fullname*/);
 
-  ui_out_end (uiout, ui_out_type_list);
+  uiout->end (ui_out_type_list);
 }
This page took 0.02648 seconds and 4 git commands to generate.