Updare French translation for binutils and German translation for opcodes.
[deliverable/binutils-gdb.git] / gdb / tui / tui-layout.c
index e3993ab9f11a0f1c2157c68910a6e170509e9eba..36afba44292213295cb573418a5089de5461465d 100644 (file)
@@ -409,10 +409,12 @@ tui_set_layout_by_name (const char *layout_name)
       char *buf_ptr;
       enum tui_layout_type new_layout = UNDEFINED_LAYOUT;
       enum tui_layout_type cur_layout = tui_current_layout ();
+      struct cleanup *old_chain;
 
       buf_ptr = (char *) xstrdup (layout_name);
       for (i = 0; (i < strlen (layout_name)); i++)
        buf_ptr[i] = toupper (buf_ptr[i]);
+      old_chain = make_cleanup (xfree, buf_ptr);
 
       /* First check for ambiguous input.  */
       if (strlen (buf_ptr) <= 1 && *buf_ptr == 'S')
@@ -443,9 +445,14 @@ tui_set_layout_by_name (const char *layout_name)
          else
            status = TUI_FAILURE;
 
-         tui_set_layout (new_layout);
+         if (status == TUI_SUCCESS)
+           {
+             /* Make sure the curses mode is enabled.  */
+             tui_enable ();
+             tui_set_layout (new_layout);
+           }
        }
-      xfree (buf_ptr);
+      do_cleanups (old_chain);
     }
   else
     status = TUI_FAILURE;
@@ -492,9 +499,6 @@ extract_display_start_addr (struct gdbarch **gdbarch_p, CORE_ADDR *addr_p)
 static void
 tui_layout_command (char *arg, int from_tty)
 {
-  /* Make sure the curses mode is enabled.  */
-  tui_enable ();
-
   /* Switch to the selected layout.  */
   if (tui_set_layout_by_name (arg) != TUI_SUCCESS)
     warning (_("Invalid layout specified.\n%s"), LAYOUT_USAGE);
@@ -546,13 +550,14 @@ static void
 make_command_window (struct tui_win_info **win_info_ptr, 
                     int height, int origin_y)
 {
-  *win_info_ptr = init_and_make_win (*win_info_ptr,
-                                    CMD_WIN,
-                                    height,
-                                    tui_term_width (),
-                                    0,
-                                    origin_y,
-                                    DONT_BOX_WINDOW);
+  *win_info_ptr
+    = (struct tui_win_info *) init_and_make_win (*win_info_ptr,
+                                                CMD_WIN,
+                                                height,
+                                                tui_term_width (),
+                                                0,
+                                                origin_y,
+                                                DONT_BOX_WINDOW);
 
   (*win_info_ptr)->can_highlight = FALSE;
 }
@@ -586,13 +591,14 @@ static void
 make_data_window (struct tui_win_info **win_info_ptr, 
                  int height, int origin_y)
 {
-  *win_info_ptr = init_and_make_win (*win_info_ptr,
-                                    DATA_WIN,
-                                    height,
-                                    tui_term_width (),
-                                    0,
-                                    origin_y,
-                                    BOX_WINDOW);
+  *win_info_ptr
+    = (struct tui_win_info *) init_and_make_win (*win_info_ptr,
+                                                DATA_WIN,
+                                                height,
+                                                tui_term_width (),
+                                                0,
+                                                origin_y,
+                                                BOX_WINDOW);
 }
 
 
@@ -658,13 +664,15 @@ show_source_disasm_command (void)
          if (TUI_DISASM_WIN == NULL)
            {
              make_disasm_window (&TUI_DISASM_WIN, asm_height, src_height - 1);
-             locator = init_and_make_win (locator,
-                                          LOCATOR_WIN,
-                                          2 /* 1 */ ,
-                                          tui_term_width (),
-                                          0,
-                                          (src_height + asm_height) - 1,
-                                          DONT_BOX_WINDOW);
+             locator
+               = ((struct tui_gen_win_info *)
+                  init_and_make_win (locator,
+                                     LOCATOR_WIN,
+                                     2 /* 1 */ ,
+                                     tui_term_width (),
+                                     0,
+                                     (src_height + asm_height) - 1,
+                                     DONT_BOX_WINDOW));
            }
          else
            {
@@ -750,13 +758,15 @@ show_data (enum tui_layout_type new_layout)
        make_source_window (&tui_win_list[win_type], src_height, data_height - 1);
       else
        make_disasm_window (&tui_win_list[win_type], src_height, data_height - 1);
-      locator = init_and_make_win (locator,
-                                  LOCATOR_WIN,
-                                  2 /* 1 */ ,
-                                  tui_term_width (),
-                                  0,
-                                  total_height - 1,
-                                  DONT_BOX_WINDOW);
+      locator
+       = ((struct tui_gen_win_info *)
+          init_and_make_win (locator,
+                             LOCATOR_WIN,
+                             2 /* 1 */ ,
+                             tui_term_width (),
+                             0,
+                             total_height - 1,
+                             DONT_BOX_WINDOW));
     }
   else
     {
@@ -859,29 +869,33 @@ make_source_or_disasm_window (struct tui_win_info **win_info_ptr,
                              enum tui_win_type type,
                              int height, int origin_y)
 {
-  struct tui_gen_win_info *execution_info = (struct tui_gen_win_info *) NULL;
+  struct tui_gen_win_info *execution_info = NULL;
 
   /* Create the exeuction info window.  */
   if (type == SRC_WIN)
     execution_info = tui_source_exec_info_win_ptr ();
   else
     execution_info = tui_disassem_exec_info_win_ptr ();
-  execution_info = init_and_make_win (execution_info,
-                                     EXEC_INFO_WIN,
-                                     height,
-                                     3,
-                                     0,
-                                     origin_y,
-                                     DONT_BOX_WINDOW);
+  execution_info
+    = ((struct tui_gen_win_info *)
+       init_and_make_win (execution_info,
+                         EXEC_INFO_WIN,
+                         height,
+                         3,
+                         0,
+                         origin_y,
+                         DONT_BOX_WINDOW));
 
   /* Now create the source window.  */
-  *win_info_ptr = init_and_make_win (*win_info_ptr,
-                                    type,
-                                    height,
-                                    tui_term_width () - execution_info->width,
-                                    execution_info->width,
-                                    origin_y,
-                                    BOX_WINDOW);
+  *win_info_ptr
+    = ((struct tui_win_info *)
+       init_and_make_win (*win_info_ptr,
+                         type,
+                         height,
+                         tui_term_width () - execution_info->width,
+                         execution_info->width,
+                         origin_y,
+                         BOX_WINDOW));
 
   (*win_info_ptr)->detail.source_info.execution_info = execution_info;
 }
@@ -914,13 +928,15 @@ show_source_or_disasm_and_command (enum tui_layout_type layout_type)
            make_source_window (win_info_ptr, src_height - 1, 0);
          else
            make_disasm_window (win_info_ptr, src_height - 1, 0);
-         locator = init_and_make_win (locator,
-                                      LOCATOR_WIN,
-                                      2 /* 1 */ ,
-                                      tui_term_width (),
-                                      0,
-                                      src_height - 1,
-                                      DONT_BOX_WINDOW);
+         locator
+           = ((struct tui_gen_win_info *)
+              init_and_make_win (locator,
+                                 LOCATOR_WIN,
+                                 2 /* 1 */ ,
+                                 tui_term_width (),
+                                 0,
+                                 src_height - 1,
+                                 DONT_BOX_WINDOW));
        }
       else
        {
This page took 0.026983 seconds and 4 git commands to generate.