Truncate long TUI window titles
[deliverable/binutils-gdb.git] / gdb / tui / tui-disasm.c
index 621832ff92a614896975aba163b20c4ba6ae8b75..1d019ca60c106ad8d4c31bb1c11f54ce05ac28c8 100644 (file)
@@ -162,11 +162,12 @@ tui_find_disassembly_address (struct gdbarch *gdbarch, CORE_ADDR pc, int from)
 
 /* Function to set the disassembly window's content.  */
 enum tui_status
-tui_set_disassem_content (tui_source_window_base *win_info,
-                         struct gdbarch *gdbarch, CORE_ADDR pc)
+tui_disasm_window::set_contents (struct gdbarch *arch,
+                                struct symtab *s,
+                                struct tui_line_or_address line_or_addr)
 {
   int i;
-  int offset = win_info->horizontal_offset;
+  int offset = horizontal_offset;
   int max_lines, line_width;
   CORE_ADDR cur_pc;
   struct tui_locator_window *locator = tui_locator_win_info_ptr ();
@@ -176,17 +177,19 @@ tui_set_disassem_content (tui_source_window_base *win_info,
   int addr_size, insn_size;
   char *line;
   
+  gdb_assert (line_or_addr.loa == LOA_ADDRESS);
+  CORE_ADDR pc = line_or_addr.u.addr;
   if (pc == 0)
     return TUI_FAILURE;
 
-  win_info->gdbarch = gdbarch;
-  win_info->start_line_or_addr.loa = LOA_ADDRESS;
-  win_info->start_line_or_addr.u.addr = pc;
+  gdbarch = arch;
+  start_line_or_addr.loa = LOA_ADDRESS;
+  start_line_or_addr.u.addr = pc;
   cur_pc = locator->addr;
 
   /* Window size, excluding highlight box.  */
-  max_lines = win_info->height - 2;
-  line_width = win_info->width - 2;
+  max_lines = height - 2;
+  line_width = width - TUI_EXECINFO_SIZE - 2;
 
   /* Get temporary table that will hold all strings (addr & insn).  */
   asm_lines = XALLOCAVEC (struct tui_asm_line, max_lines);
@@ -216,12 +219,12 @@ tui_set_disassem_content (tui_source_window_base *win_info,
   line = (char*) alloca (insn_pos + insn_size + 1);
 
   /* Now construct each line.  */
-  win_info->content.resize (max_lines);
+  content.resize (max_lines);
   for (i = 0; i < max_lines; i++)
     {
       int cur_len;
 
-      tui_source_element *src = &win_info->content[i];
+      tui_source_element *src = &content[i];
       strcpy (line, asm_lines[i].addr_string);
       cur_len = strlen (line);
       memset (line + cur_len, ' ', insn_pos - cur_len);
@@ -257,7 +260,7 @@ tui_show_disassem (struct gdbarch *gdbarch, CORE_ADDR start_addr)
 
   val.loa = LOA_ADDRESS;
   val.u.addr = start_addr;
-  tui_update_source_window (TUI_DISASM_WIN, gdbarch, s, val);
+  TUI_DISASM_WIN->update_source_window (gdbarch, s, val);
 
   /* If the focus was in the src win, put it in the asm win, if the
      source view isn't split.  */
@@ -285,7 +288,7 @@ tui_show_disassem_and_update_source (struct gdbarch *gdbarch,
       sal = find_pc_line (start_addr, 0);
       val.loa = LOA_LINE;
       val.u.line_no = sal.line;
-      tui_update_source_window (TUI_SRC_WIN, gdbarch, sal.symtab, val);
+      TUI_SRC_WIN->update_source_window (gdbarch, sal.symtab, val);
       if (sal.symtab)
        {
          set_current_source_symtab_and_line (sal);
@@ -367,8 +370,7 @@ tui_disasm_window::do_scroll_vertical (int num_to_scroll)
 
       val.loa = LOA_ADDRESS;
       val.u.addr = tui_find_disassembly_address (gdbarch, pc, num_to_scroll);
-      tui_update_source_window_as_is (this, gdbarch,
-                                     NULL, val);
+      update_source_window_as_is (gdbarch, NULL, val);
     }
 }
 
@@ -419,8 +421,7 @@ tui_disasm_window::maybe_update (struct frame_info *fi, symtab_and_line sal,
   a.loa = LOA_ADDRESS;
   a.u.addr = low;
   if (!addr_is_displayed (addr))
-    tui_update_source_window (this, get_frame_arch (fi),
-                             sal.symtab, a);
+    update_source_window (get_frame_arch (fi), sal.symtab, a);
   else
     {
       a.u.addr = addr;
This page took 0.043696 seconds and 4 git commands to generate.