Upgrade GDB from 7.4.1 to 7.6.1 on the vendor branch
[dragonfly.git] / contrib / gdb-7 / gdb / tui / tui-stack.c
index 8722058..7adf896 100644 (file)
@@ -1,6 +1,6 @@
 /* TUI display locator.
 
-   Copyright (C) 1998-2004, 2006-2012 Free Software Foundation, Inc.
+   Copyright (C) 1998-2013 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -29,6 +29,7 @@
 #include "top.h"
 #include "gdb-demangle.h"
 #include "gdb_string.h"
+#include "source.h"
 #include "tui/tui.h"
 #include "tui/tui-data.h"
 #include "tui/tui-stack.h"
    Returns a pointer to a static area holding the result.  */
 static char *tui_get_function_from_frame (struct frame_info *fi);
 
-/* Set the filename portion of the locator.  */
-static void tui_set_locator_filename (const char *filename);
+/* Set the full_name portion of the locator.  */
+static void tui_set_locator_fullname (const char *fullname);
 
 /* Update the locator, with the provided arguments.  */
 static void tui_set_locator_info (struct gdbarch *gdbarch,
-                                 const char *filename,
+                                 const char *fullname,
                                  const char *procname,
                                   int lineno, CORE_ADDR addr);
 
@@ -94,7 +95,7 @@ tui_make_status_line (struct tui_locator_element *loc)
 
   /* Translate line number and obtain its size.  */
   if (loc->line_no > 0)
-    sprintf (line_buf, "%d", loc->line_no);
+    xsnprintf (line_buf, sizeof (line_buf), "%d", loc->line_no);
   else
     strcpy (line_buf, "??");
   line_width = strlen (line_buf);
@@ -228,6 +229,7 @@ tui_get_function_from_frame (struct frame_info *fi)
   if (*p == '<')
     p++;
   strncpy (name, p, sizeof (name) - 1);
+  name[sizeof (name) - 1] = 0;
   p = strchr (name, '(');
   if (!p)
     p = strchr (name, '>');
@@ -275,27 +277,27 @@ tui_show_locator_content (void)
 
 /* Set the filename portion of the locator.  */
 static void
-tui_set_locator_filename (const char *filename)
+tui_set_locator_fullname (const char *fullname)
 {
   struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
   struct tui_locator_element *element;
 
   if (locator->content[0] == NULL)
     {
-      tui_set_locator_info (NULL, filename, NULL, 0, 0);
+      tui_set_locator_info (NULL, fullname, NULL, 0, 0);
       return;
     }
 
   element = &((struct tui_win_element *)
              locator->content[0])->which_element.locator;
-  element->file_name[0] = 0;
-  strcat_to_buf (element->file_name, MAX_LOCATOR_ELEMENT_LEN, filename);
+  element->full_name[0] = 0;
+  strcat_to_buf (element->full_name, MAX_LOCATOR_ELEMENT_LEN, fullname);
 }
 
 /* Update the locator, with the provided arguments.  */
 static void
 tui_set_locator_info (struct gdbarch *gdbarch,
-                     const char *filename,
+                     const char *fullname,
                      const char *procname, 
                      int lineno,
                       CORE_ADDR addr)
@@ -317,14 +319,14 @@ tui_set_locator_info (struct gdbarch *gdbarch,
   element->line_no = lineno;
   element->addr = addr;
   element->gdbarch = gdbarch;
-  tui_set_locator_filename (filename);
+  tui_set_locator_fullname (fullname);
 }
 
-/* Update only the filename portion of the locator.  */
+/* Update only the full_name portion of the locator.  */
 void
-tui_update_locator_filename (const char *filename)
+tui_update_locator_fullname (const char *fullname)
 {
-  tui_set_locator_filename (filename);
+  tui_set_locator_fullname (fullname);
   tui_show_locator_content ();
 }
 
@@ -347,11 +349,12 @@ tui_show_frame_info (struct frame_info *fi)
       find_frame_sal (fi, &sal);
 
       source_already_displayed = sal.symtab != 0
-        && tui_source_is_displayed (sal.symtab->filename);
+        && tui_source_is_displayed (symtab_to_fullname (sal.symtab));
 
       if (get_frame_pc_if_available (fi, &pc))
        tui_set_locator_info (get_frame_arch (fi),
-                             sal.symtab == 0 ? "??" : sal.symtab->filename,
+                             (sal.symtab == 0
+                              ? "??" : symtab_to_fullname (sal.symtab)),
                              tui_get_function_from_frame (fi),
                              sal.line,
                              pc);
@@ -378,7 +381,8 @@ tui_show_frame_info (struct frame_info *fi)
            }
          else
            {
-             if (find_pc_partial_function (get_frame_pc (fi), (char **) NULL,
+             if (find_pc_partial_function (get_frame_pc (fi),
+                                           (const char **) NULL,
                                            &low, (CORE_ADDR) 0) == 0)
                {
                  /* There is no symbol available for current PC.  There is no