]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/tui/tui-layout.c
Update years in copyright notice for the GDB files.
[thirdparty/binutils-gdb.git] / gdb / tui / tui-layout.c
index fad4e374f57a50e9971678db879a8e9d7313eea6..ad99a25b3aa4f5fd944fac8fa7eb6a6d76309255 100644 (file)
@@ -1,7 +1,6 @@
 /* TUI layout window management.
 
-   Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software
-   Foundation, Inc.
+   Copyright (C) 1998-2013 Free Software Foundation, Inc.
 
    Contributed by Hewlett-Packard Company.
 
@@ -9,7 +8,7 @@
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    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.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "defs.h"
+#include "arch-utils.h"
 #include "command.h"
 #include "symtab.h"
 #include "frame.h"
 #include "tui/tui-win.h"
 #include "tui/tui-winsource.h"
 #include "tui/tui-disasm.h"
+#include "tui/tui-layout.h"
 
-#ifdef HAVE_NCURSES_H       
-#include <ncurses.h>
-#else
-#ifdef HAVE_CURSES_H
-#include <curses.h>
-#endif
-#endif
+#include "gdb_string.h"
+#include "gdb_curses.h"
 
 /*******************************
 ** Static Local Decls
 ********************************/
-static void showLayout (TuiLayoutType);
-static void _initGenWinInfo (TuiGenWinInfoPtr, TuiWinType, int, int, int, int);
-static void _initAndMakeWin (Opaque *, TuiWinType, int, int, int, int, int);
-static void _showSourceOrDisassemAndCommand (TuiLayoutType);
-static void _makeSourceOrDisassemWindow (TuiWinInfoPtr *, TuiWinType, int, int);
-static void _makeCommandWindow (TuiWinInfoPtr *, int, int);
-static void _makeSourceWindow (TuiWinInfoPtr *, int, int);
-static void _makeDisassemWindow (TuiWinInfoPtr *, int, int);
-static void _makeDataWindow (TuiWinInfoPtr *, int, int);
-static void _showSourceCommand (void);
-static void _showDisassemCommand (void);
-static void _showSourceDisassemCommand (void);
-static void _showData (TuiLayoutType);
-static TuiLayoutType _nextLayout (void);
-static TuiLayoutType _prevLayout (void);
-static void _tuiLayout_command (char *, int);
-static void _tuiToggleLayout_command (char *, int);
-static void _tuiToggleSplitLayout_command (char *, int);
-static CORE_ADDR _extractDisplayStartAddr (void);
-static void _tuiHandleXDBLayout (TuiLayoutDefPtr);
+static void show_layout (enum tui_layout_type);
+static void init_gen_win_info (struct tui_gen_win_info *, 
+                              enum tui_win_type, 
+                              int, int, int, int);
+static void *init_and_make_win (void *, enum tui_win_type, 
+                               int, int, int, int, int);
+static void show_source_or_disasm_and_command (enum tui_layout_type);
+static void make_source_or_disasm_window (struct tui_win_info **, 
+                                         enum tui_win_type, 
+                                         int, int);
+static void make_command_window (struct tui_win_info **, int, int);
+static void make_source_window (struct tui_win_info **, int, int);
+static void make_disasm_window (struct tui_win_info **, int, int);
+static void make_data_window (struct tui_win_info **, int, int);
+static void show_source_command (void);
+static void show_disasm_command (void);
+static void show_source_disasm_command (void);
+static void show_data (enum tui_layout_type);
+static enum tui_layout_type next_layout (void);
+static enum tui_layout_type prev_layout (void);
+static void tui_layout_command (char *, int);
+static void tui_toggle_layout_command (char *, int);
+static void tui_toggle_split_layout_command (char *, int);
+static void extract_display_start_addr (struct gdbarch **, CORE_ADDR *);
+static void tui_handle_xdb_layout (struct tui_layout_def *);
 
 
 /***************************************
@@ -80,45 +79,44 @@ static void _tuiHandleXDBLayout (TuiLayoutDefPtr);
 
 /* Show the screen layout defined.  */
 static void
-showLayout (TuiLayoutType layout)
+show_layout (enum tui_layout_type layout)
 {
-  TuiLayoutType curLayout = currentLayout ();
+  enum tui_layout_type cur_layout = tui_current_layout ();
 
-  if (layout != curLayout)
+  if (layout != cur_layout)
     {
-      /*
-         ** Since the new layout may cause changes in window size, we
-         ** should free the content and reallocate on next display of
-         ** source/asm
-       */
-      freeAllSourceWinsContent ();
-      clearSourceWindows ();
-      if (layout == SRC_DATA_COMMAND || layout == DISASSEM_DATA_COMMAND)
+      /* Since the new layout may cause changes in window size, we
+         should free the content and reallocate on next display of
+         source/asm.  */
+      tui_free_all_source_wins_content ();
+      tui_clear_source_windows ();
+      if (layout == SRC_DATA_COMMAND 
+         || layout == DISASSEM_DATA_COMMAND)
        {
-         _showData (layout);
-         refreshAll (winList);
+         show_data (layout);
+         tui_refresh_all (tui_win_list);
        }
       else
        {
-         /* First make the current layout be invisible */
-         m_allBeInvisible ();
-         m_beInvisible (locatorWinInfoPtr ());
+         /* First make the current layout be invisible */
+         tui_make_all_invisible ();
+         tui_make_invisible (tui_locator_win_info_ptr ());
 
          switch (layout)
            {
-             /* Now show the new layout */
+             /* Now show the new layout */
            case SRC_COMMAND:
-             _showSourceCommand ();
-             addToSourceWindows (srcWin);
+             show_source_command ();
+             tui_add_to_source_windows (TUI_SRC_WIN);
              break;
            case DISASSEM_COMMAND:
-             _showDisassemCommand ();
-             addToSourceWindows (disassemWin);
+             show_disasm_command ();
+             tui_add_to_source_windows (TUI_DISASM_WIN);
              break;
            case SRC_DISASSEM_COMMAND:
-             _showSourceDisassemCommand ();
-             addToSourceWindows (srcWin);
-             addToSourceWindows (disassemWin);
+             show_source_disasm_command ();
+             tui_add_to_source_windows (TUI_SRC_WIN);
+             tui_add_to_source_windows (TUI_DISASM_WIN);
              break;
            default:
              break;
@@ -132,130 +130,133 @@ showLayout (TuiLayoutType layout)
    SRC_DISASSEM_COMMAND, SRC_DATA_COMMAND, or DISASSEM_DATA_COMMAND.
    If the layout is SRC_DATA_COMMAND, DISASSEM_DATA_COMMAND, or
    UNDEFINED_LAYOUT, then the data window is populated according to
-   regsDisplayType.  */
+   regs_display_type.  */
 enum tui_status
-tui_set_layout (enum tui_layout_type layoutType,
-               enum tui_register_display_type regsDisplayType)
+tui_set_layout (enum tui_layout_type layout_type,
+               enum tui_register_display_type regs_display_type)
 {
-  TuiStatus status = TUI_SUCCESS;
+  enum tui_status status = TUI_SUCCESS;
 
-  if (layoutType != UNDEFINED_LAYOUT || regsDisplayType != TUI_UNDEFINED_REGS)
+  if (layout_type != UNDEFINED_LAYOUT 
+      || regs_display_type != TUI_UNDEFINED_REGS)
     {
-      TuiLayoutType curLayout = currentLayout (), newLayout = UNDEFINED_LAYOUT;
-      int regsPopulate = FALSE;
-      CORE_ADDR addr = _extractDisplayStartAddr ();
-      TuiWinInfoPtr newWinWithFocus = (TuiWinInfoPtr) NULL, winWithFocus = tuiWinWithFocus ();
-      TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
-
-
-      if (layoutType == UNDEFINED_LAYOUT &&
-         regsDisplayType != TUI_UNDEFINED_REGS)
+      enum tui_layout_type cur_layout = tui_current_layout (),
+       new_layout = UNDEFINED_LAYOUT;
+      int regs_populate = FALSE;
+      struct gdbarch *gdbarch;
+      CORE_ADDR addr;
+      struct tui_win_info *win_with_focus = tui_win_with_focus ();
+      struct tui_layout_def *layout_def = tui_layout_def ();
+
+      extract_display_start_addr (&gdbarch, &addr);
+
+      if (layout_type == UNDEFINED_LAYOUT
+         && regs_display_type != TUI_UNDEFINED_REGS)
        {
-         if (curLayout == SRC_DISASSEM_COMMAND)
-           newLayout = DISASSEM_DATA_COMMAND;
-         else if (curLayout == SRC_COMMAND || curLayout == SRC_DATA_COMMAND)
-           newLayout = SRC_DATA_COMMAND;
-         else if (curLayout == DISASSEM_COMMAND ||
-                  curLayout == DISASSEM_DATA_COMMAND)
-           newLayout = DISASSEM_DATA_COMMAND;
+         if (cur_layout == SRC_DISASSEM_COMMAND)
+           new_layout = DISASSEM_DATA_COMMAND;
+         else if (cur_layout == SRC_COMMAND 
+                  || cur_layout == SRC_DATA_COMMAND)
+           new_layout = SRC_DATA_COMMAND;
+         else if (cur_layout == DISASSEM_COMMAND 
+                  || cur_layout == DISASSEM_DATA_COMMAND)
+           new_layout = DISASSEM_DATA_COMMAND;
        }
       else
-       newLayout = layoutType;
+       new_layout = layout_type;
 
-      regsPopulate = (newLayout == SRC_DATA_COMMAND ||
-                     newLayout == DISASSEM_DATA_COMMAND ||
-                     regsDisplayType != TUI_UNDEFINED_REGS);
-      if (newLayout != curLayout || regsDisplayType != TUI_UNDEFINED_REGS)
+      regs_populate = (new_layout == SRC_DATA_COMMAND 
+                      || new_layout == DISASSEM_DATA_COMMAND 
+                      || regs_display_type != TUI_UNDEFINED_REGS);
+      if (new_layout != cur_layout
+         || regs_display_type != TUI_UNDEFINED_REGS)
        {
-         if (newLayout != curLayout)
+         if (new_layout != cur_layout)
            {
-             showLayout (newLayout);
-             /*
-                ** Now determine where focus should be
-              */
-             if (winWithFocus != cmdWin)
+             show_layout (new_layout);
+
+             /* Now determine where focus should be.  */
+             if (win_with_focus != TUI_CMD_WIN)
                {
-                 switch (newLayout)
+                 switch (new_layout)
                    {
                    case SRC_COMMAND:
-                     tuiSetWinFocusTo (srcWin);
-                     layoutDef->displayMode = SRC_WIN;
-                     layoutDef->split = FALSE;
+                     tui_set_win_focus_to (TUI_SRC_WIN);
+                     layout_def->display_mode = SRC_WIN;
+                     layout_def->split = FALSE;
                      break;
                    case DISASSEM_COMMAND:
-                     /* the previous layout was not showing
-                        ** code. this can happen if there is no
-                        ** source available:
-                        ** 1. if the source file is in another dir OR
-                        ** 2. if target was compiled without -g
-                        ** We still want to show the assembly though!
-                      */
-                     addr = tui_get_begin_asm_address ();
-                     tuiSetWinFocusTo (disassemWin);
-                     layoutDef->displayMode = DISASSEM_WIN;
-                     layoutDef->split = FALSE;
+                     /* The previous layout was not showing code.
+                        This can happen if there is no source
+                        available:
+
+                        1. if the source file is in another dir OR
+                        2. if target was compiled without -g
+                        We still want to show the assembly though!  */
+
+                     tui_get_begin_asm_address (&gdbarch, &addr);
+                     tui_set_win_focus_to (TUI_DISASM_WIN);
+                     layout_def->display_mode = DISASSEM_WIN;
+                     layout_def->split = FALSE;
                      break;
                    case SRC_DISASSEM_COMMAND:
-                     /* the previous layout was not showing
-                        ** code. this can happen if there is no
-                        ** source available:
-                        ** 1. if the source file is in another dir OR
-                        ** 2. if target was compiled without -g
-                        ** We still want to show the assembly though!
-                      */
-                     addr = tui_get_begin_asm_address ();
-                     if (winWithFocus == srcWin)
-                       tuiSetWinFocusTo (srcWin);
+                     /* The previous layout was not showing code.
+                        This can happen if there is no source
+                        available:
+
+                        1. if the source file is in another dir OR
+                        2. if target was compiled without -g
+                        We still want to show the assembly though!  */
+
+                     tui_get_begin_asm_address (&gdbarch, &addr);
+                     if (win_with_focus == TUI_SRC_WIN)
+                       tui_set_win_focus_to (TUI_SRC_WIN);
                      else
-                       tuiSetWinFocusTo (disassemWin);
-                     layoutDef->split = TRUE;
+                       tui_set_win_focus_to (TUI_DISASM_WIN);
+                     layout_def->split = TRUE;
                      break;
                    case SRC_DATA_COMMAND:
-                     if (winWithFocus != dataWin)
-                       tuiSetWinFocusTo (srcWin);
+                     if (win_with_focus != TUI_DATA_WIN)
+                       tui_set_win_focus_to (TUI_SRC_WIN);
                      else
-                       tuiSetWinFocusTo (dataWin);
-                     layoutDef->displayMode = SRC_WIN;
-                     layoutDef->split = FALSE;
+                       tui_set_win_focus_to (TUI_DATA_WIN);
+                     layout_def->display_mode = SRC_WIN;
+                     layout_def->split = FALSE;
                      break;
                    case DISASSEM_DATA_COMMAND:
-                     /* the previous layout was not showing
-                        ** code. this can happen if there is no
-                        ** source available:
-                        ** 1. if the source file is in another dir OR
-                        ** 2. if target was compiled without -g
-                        ** We still want to show the assembly though!
-                      */
-                     addr = tui_get_begin_asm_address ();
-                     if (winWithFocus != dataWin)
-                       tuiSetWinFocusTo (disassemWin);
+                     /* The previous layout was not showing code.
+                        This can happen if there is no source
+                        available:
+
+                        1. if the source file is in another dir OR
+                        2. if target was compiled without -g
+                        We still want to show the assembly though!  */
+
+                     tui_get_begin_asm_address (&gdbarch, &addr);
+                     if (win_with_focus != TUI_DATA_WIN)
+                       tui_set_win_focus_to (TUI_DISASM_WIN);
                      else
-                       tuiSetWinFocusTo (dataWin);
-                     layoutDef->displayMode = DISASSEM_WIN;
-                     layoutDef->split = FALSE;
+                       tui_set_win_focus_to (TUI_DATA_WIN);
+                     layout_def->display_mode = DISASSEM_WIN;
+                     layout_def->split = FALSE;
                      break;
                    default:
                      break;
                    }
                }
-             if (newWinWithFocus != (TuiWinInfoPtr) NULL)
-               tuiSetWinFocusTo (newWinWithFocus);
              /*
-                ** Now update the window content
+              * Now update the window content.
               */
-             if (!regsPopulate &&
-                 (newLayout == SRC_DATA_COMMAND ||
-                  newLayout == DISASSEM_DATA_COMMAND))
-               tuiDisplayAllData ();
+             if (!regs_populate 
+                 && (new_layout == SRC_DATA_COMMAND 
+                     || new_layout == DISASSEM_DATA_COMMAND))
+               tui_display_all_data ();
 
-             tui_update_source_windows_with_addr (addr);
+             tui_update_source_windows_with_addr (gdbarch, addr);
            }
-         if (regsPopulate)
+         if (regs_populate)
            {
-             layoutDef->regsDisplayType =
-               (regsDisplayType == TUI_UNDEFINED_REGS ?
-                TUI_GENERAL_REGS : regsDisplayType);
-             tui_show_registers (layoutDef->regsDisplayType);
+              tui_show_registers (TUI_DATA_WIN->detail.data_display_info.current_group);
            }
        }
     }
@@ -271,83 +272,79 @@ tui_set_layout (enum tui_layout_type layoutType,
 void
 tui_add_win_to_layout (enum tui_win_type type)
 {
-  TuiLayoutType curLayout = currentLayout ();
+  enum tui_layout_type cur_layout = tui_current_layout ();
 
   switch (type)
     {
     case SRC_WIN:
-      if (curLayout != SRC_COMMAND &&
-         curLayout != SRC_DISASSEM_COMMAND &&
-         curLayout != SRC_DATA_COMMAND)
+      if (cur_layout != SRC_COMMAND
+         && cur_layout != SRC_DISASSEM_COMMAND
+         && cur_layout != SRC_DATA_COMMAND)
        {
-         clearSourceWindowsDetail ();
-         if (curLayout == DISASSEM_DATA_COMMAND)
-           showLayout (SRC_DATA_COMMAND);
+         tui_clear_source_windows_detail ();
+         if (cur_layout == DISASSEM_DATA_COMMAND)
+           show_layout (SRC_DATA_COMMAND);
          else
-           showLayout (SRC_COMMAND);
+           show_layout (SRC_COMMAND);
        }
       break;
     case DISASSEM_WIN:
-      if (curLayout != DISASSEM_COMMAND &&
-         curLayout != SRC_DISASSEM_COMMAND &&
-         curLayout != DISASSEM_DATA_COMMAND)
+      if (cur_layout != DISASSEM_COMMAND
+         && cur_layout != SRC_DISASSEM_COMMAND
+         && cur_layout != DISASSEM_DATA_COMMAND)
        {
-         clearSourceWindowsDetail ();
-         if (curLayout == SRC_DATA_COMMAND)
-           showLayout (DISASSEM_DATA_COMMAND);
+         tui_clear_source_windows_detail ();
+         if (cur_layout == SRC_DATA_COMMAND)
+           show_layout (DISASSEM_DATA_COMMAND);
          else
-           showLayout (DISASSEM_COMMAND);
+           show_layout (DISASSEM_COMMAND);
        }
       break;
     case DATA_WIN:
-      if (curLayout != SRC_DATA_COMMAND &&
-         curLayout != DISASSEM_DATA_COMMAND)
+      if (cur_layout != SRC_DATA_COMMAND
+         && cur_layout != DISASSEM_DATA_COMMAND)
        {
-         if (curLayout == DISASSEM_COMMAND)
-           showLayout (DISASSEM_DATA_COMMAND);
+         if (cur_layout == DISASSEM_COMMAND)
+           show_layout (DISASSEM_DATA_COMMAND);
          else
-           showLayout (SRC_DATA_COMMAND);
+           show_layout (SRC_DATA_COMMAND);
        }
       break;
     default:
       break;
     }
-
-  return;
-}                              /* tuiAddWinToLayout */
+}
 
 
-/*
-   ** tuiDefaultWinHeight().
-   **        Answer the height of a window.  If it hasn't been created yet,
-   **        answer what the height of a window would be based upon its
-   **        type and the layout.
- */
+/* Answer the height of a window.  If it hasn't been created yet,
+   answer what the height of a window would be based upon its type and
+   the layout.  */
 int
-tuiDefaultWinHeight (TuiWinType type, TuiLayoutType layout)
+tui_default_win_height (enum tui_win_type type, 
+                       enum tui_layout_type layout)
 {
   int h;
 
-  if (winList[type] != (TuiWinInfoPtr) NULL)
-    h = winList[type]->generic.height;
+  if (tui_win_list[type] != (struct tui_win_info *) NULL)
+    h = tui_win_list[type]->generic.height;
   else
     {
       switch (layout)
        {
        case SRC_COMMAND:
        case DISASSEM_COMMAND:
-         if (m_winPtrIsNull (cmdWin))
-           h = termHeight () / 2;
+         if (TUI_CMD_WIN == NULL)
+           h = tui_term_height () / 2;
          else
-           h = termHeight () - cmdWin->generic.height;
+           h = tui_term_height () - TUI_CMD_WIN->generic.height;
          break;
        case SRC_DISASSEM_COMMAND:
        case SRC_DATA_COMMAND:
        case DISASSEM_DATA_COMMAND:
-         if (m_winPtrIsNull (cmdWin))
-           h = termHeight () / 3;
+         if (TUI_CMD_WIN == NULL)
+           h = tui_term_height () / 3;
          else
-           h = (termHeight () - cmdWin->generic.height) / 2;
+           h = (tui_term_height () - TUI_CMD_WIN->generic.height) / 2;
          break;
        default:
          h = 0;
@@ -356,7 +353,7 @@ tuiDefaultWinHeight (TuiWinType type, TuiLayoutType layout)
     }
 
   return h;
-}                              /* tuiDefaultWinHeight */
+}
 
 
 /* Answer the height of a window.  If it hasn't been created yet,
@@ -368,27 +365,28 @@ tui_default_win_viewport_height (enum tui_win_type type,
 {
   int h;
 
-  h = tuiDefaultWinHeight (type, layout);
+  h = tui_default_win_height (type, layout);
 
-  if (winList[type] == cmdWin)
+  if (tui_win_list[type] == TUI_CMD_WIN)
     h -= 1;
   else
     h -= 2;
 
   return h;
-}                              /* tuiDefaultWinViewportHeight */
+}
 
 
-/*
-   ** _initialize_tuiLayout().
-   **        Function to initialize gdb commands, for tui window layout
-   **        manipulation.
- */
+/* Function to initialize gdb commands, for tui window layout
+   manipulation.  */
+
+/* Provide a prototype to silence -Wmissing-prototypes.  */
+extern initialize_file_ftype _initialize_tui_layout;
+
 void
-_initialize_tuiLayout (void)
+_initialize_tui_layout (void)
 {
-  add_com ("layout", class_tui, _tuiLayout_command,
-           "Change the layout of windows.\n\
+  add_com ("layout", class_tui, tui_layout_command, _("\
+Change the layout of windows.\n\
 Usage: layout prev | next | <layout_name> \n\
 Layout names are:\n\
    src   : Displays source and command windows.\n\
@@ -399,14 +397,14 @@ Layout names are:\n\
            register window is displayed. If the\n\
            source/assembly/command (split) is displayed, \n\
            the register window is displayed with \n\
-           the window that has current logical focus.\n");
+           the window that has current logical focus.\n"));
   if (xdb_commands)
     {
-      add_com ("td", class_tui, _tuiToggleLayout_command,
-               "Toggle between Source/Command and Disassembly/Command layouts.\n");
-      add_com ("ts", class_tui, _tuiToggleSplitLayout_command,
-               "Toggle between Source/Command or Disassembly/Command and \n\
-Source/Disassembly/Command layouts.\n");
+      add_com ("td", class_tui, tui_toggle_layout_command, _("\
+Toggle between Source/Command and Disassembly/Command layouts.\n"));
+      add_com ("ts", class_tui, tui_toggle_split_layout_command, _("\
+Toggle between Source/Command or Disassembly/Command and \n\
+Source/Disassembly/Command layouts.\n"));
     }
 }
 
@@ -416,106 +414,104 @@ Source/Disassembly/Command layouts.\n");
 **************************/
 
 
-/*
-   ** _tuiSetLayoutTo()
-   **    Function to set the layout to SRC, ASM, SPLIT, NEXT, PREV, DATA, REGS,
-   **        $REGS, $GREGS, $FREGS, $SREGS.
- */
-TuiStatus
-tui_set_layout_for_display_command (const char *layoutName)
+/* Function to set the layout to SRC, ASM, SPLIT, NEXT, PREV, DATA,
+   REGS, $REGS, $GREGS, $FREGS, $SREGS.  */
+enum tui_status
+tui_set_layout_for_display_command (const char *layout_name)
 {
-  TuiStatus status = TUI_SUCCESS;
+  enum tui_status status = TUI_SUCCESS;
 
-  if (layoutName != (char *) NULL)
+  if (layout_name != (char *) NULL)
     {
-      register int i;
-      register char *bufPtr;
-      TuiLayoutType newLayout = UNDEFINED_LAYOUT;
-      TuiRegisterDisplayType dpyType = TUI_UNDEFINED_REGS;
-      TuiLayoutType curLayout = currentLayout ();
-
-      bufPtr = (char *) xstrdup (layoutName);
-      for (i = 0; (i < strlen (layoutName)); i++)
-       bufPtr[i] = toupper (bufPtr[i]);
-
-      /* First check for ambiguous input */
-      if (strlen (bufPtr) <= 1 && (*bufPtr == 'S' || *bufPtr == '$'))
+      int i;
+      char *buf_ptr;
+      enum tui_layout_type new_layout = UNDEFINED_LAYOUT;
+      enum tui_register_display_type dpy_type = TUI_UNDEFINED_REGS;
+      enum tui_layout_type cur_layout = tui_current_layout ();
+
+      buf_ptr = (char *) xstrdup (layout_name);
+      for (i = 0; (i < strlen (layout_name)); i++)
+       buf_ptr[i] = toupper (buf_ptr[i]);
+
+      /* First check for ambiguous input.  */
+      if (strlen (buf_ptr) <= 1 
+         && (*buf_ptr == 'S' || *buf_ptr == '$'))
        {
-         warning ("Ambiguous command input.\n");
+         warning (_("Ambiguous command input."));
          status = TUI_FAILURE;
        }
       else
        {
-         if (subset_compare (bufPtr, "SRC"))
-           newLayout = SRC_COMMAND;
-         else if (subset_compare (bufPtr, "ASM"))
-           newLayout = DISASSEM_COMMAND;
-         else if (subset_compare (bufPtr, "SPLIT"))
-           newLayout = SRC_DISASSEM_COMMAND;
-         else if (subset_compare (bufPtr, "REGS") ||
-                  subset_compare (bufPtr, TUI_GENERAL_SPECIAL_REGS_NAME) ||
-                  subset_compare (bufPtr, TUI_GENERAL_REGS_NAME) ||
-                  subset_compare (bufPtr, TUI_FLOAT_REGS_NAME) ||
-                  subset_compare (bufPtr, TUI_SPECIAL_REGS_NAME))
+         if (subset_compare (buf_ptr, "SRC"))
+           new_layout = SRC_COMMAND;
+         else if (subset_compare (buf_ptr, "ASM"))
+           new_layout = DISASSEM_COMMAND;
+         else if (subset_compare (buf_ptr, "SPLIT"))
+           new_layout = SRC_DISASSEM_COMMAND;
+         else if (subset_compare (buf_ptr, "REGS") 
+                  || subset_compare (buf_ptr, TUI_GENERAL_SPECIAL_REGS_NAME)
+                  || subset_compare (buf_ptr, TUI_GENERAL_REGS_NAME)
+                  || subset_compare (buf_ptr, TUI_FLOAT_REGS_NAME)
+                  || subset_compare (buf_ptr, TUI_SPECIAL_REGS_NAME))
            {
-             if (curLayout == SRC_COMMAND || curLayout == SRC_DATA_COMMAND)
-               newLayout = SRC_DATA_COMMAND;
+             if (cur_layout == SRC_COMMAND 
+                 || cur_layout == SRC_DATA_COMMAND)
+               new_layout = SRC_DATA_COMMAND;
              else
-               newLayout = DISASSEM_DATA_COMMAND;
-
-/* could ifdef out the following code. when compile with -z, there are null 
-   pointer references that cause a core dump if 'layout regs' is the first 
-   layout command issued by the user. HP has asked us to hook up this code 
-   - edie epstein
- */
-             if (subset_compare (bufPtr, TUI_FLOAT_REGS_NAME))
+               new_layout = DISASSEM_DATA_COMMAND;
+
+             /* Could ifdef out the following code. when compile with
+                -z, there are null pointer references that cause a
+                core dump if 'layout regs' is the first layout
+                command issued by the user. HP has asked us to hook
               up this code.  - edie epstein  */
+             if (subset_compare (buf_ptr, TUI_FLOAT_REGS_NAME))
                {
-                 if (dataWin->detail.dataDisplayInfo.regsDisplayType !=
-                     TUI_SFLOAT_REGS &&
-                     dataWin->detail.dataDisplayInfo.regsDisplayType !=
-                     TUI_DFLOAT_REGS)
-                   dpyType = TUI_SFLOAT_REGS;
+                 if (TUI_DATA_WIN->detail.data_display_info.regs_display_type
+                     != TUI_SFLOAT_REGS
+                     && TUI_DATA_WIN->detail.data_display_info.regs_display_type
+                     != TUI_DFLOAT_REGS)
+                   dpy_type = TUI_SFLOAT_REGS;
                  else
-                   dpyType =
-                     dataWin->detail.dataDisplayInfo.regsDisplayType;
+                   dpy_type =
+                     TUI_DATA_WIN->detail.data_display_info.regs_display_type;
                }
-             else if (subset_compare (bufPtr,
+             else if (subset_compare (buf_ptr,
                                      TUI_GENERAL_SPECIAL_REGS_NAME))
-               dpyType = TUI_GENERAL_AND_SPECIAL_REGS;
-             else if (subset_compare (bufPtr, TUI_GENERAL_REGS_NAME))
-               dpyType = TUI_GENERAL_REGS;
-             else if (subset_compare (bufPtr, TUI_SPECIAL_REGS_NAME))
-               dpyType = TUI_SPECIAL_REGS;
-             else if (dataWin)
+               dpy_type = TUI_GENERAL_AND_SPECIAL_REGS;
+             else if (subset_compare (buf_ptr, TUI_GENERAL_REGS_NAME))
+               dpy_type = TUI_GENERAL_REGS;
+             else if (subset_compare (buf_ptr, TUI_SPECIAL_REGS_NAME))
+               dpy_type = TUI_SPECIAL_REGS;
+             else if (TUI_DATA_WIN)
                {
-                 if (dataWin->detail.dataDisplayInfo.regsDisplayType !=
-                     TUI_UNDEFINED_REGS)
-                   dpyType =
-                     dataWin->detail.dataDisplayInfo.regsDisplayType;
+                 if (TUI_DATA_WIN->detail.data_display_info.regs_display_type
+                     != TUI_UNDEFINED_REGS)
+                   dpy_type
+                     = TUI_DATA_WIN->detail.data_display_info.regs_display_type;
                  else
-                   dpyType = TUI_GENERAL_REGS;
+                   dpy_type = TUI_GENERAL_REGS;
                }
 
-/* end of potential ifdef 
- */
+             /* End of potential ifdef.
             */
 
-/* if ifdefed out code above, then assume that the user wishes to display the 
-   general purpose registers 
- */
+             /* If ifdefed out code above, then assume that the user
+                wishes to display the general purpose registers .
            */
 
-/*              dpyType = TUI_GENERAL_REGS; 
- */
+             /* dpy_type = TUI_GENERAL_REGS; */
            }
-         else if (subset_compare (bufPtr, "NEXT"))
-           newLayout = _nextLayout ();
-         else if (subset_compare (bufPtr, "PREV"))
-           newLayout = _prevLayout ();
+         else if (subset_compare (buf_ptr, "NEXT"))
+           new_layout = next_layout ();
+         else if (subset_compare (buf_ptr, "PREV"))
+           new_layout = prev_layout ();
          else
            status = TUI_FAILURE;
-         xfree (bufPtr);
 
-         tui_set_layout (newLayout, dpyType);
+         tui_set_layout (new_layout, dpy_type);
        }
+      xfree (buf_ptr);
     }
   else
     status = TUI_FAILURE;
@@ -524,617 +520,570 @@ tui_set_layout_for_display_command (const char *layoutName)
 }
 
 
-static CORE_ADDR
-_extractDisplayStartAddr (void)
+static void
+extract_display_start_addr (struct gdbarch **gdbarch_p, CORE_ADDR *addr_p)
 {
-  TuiLayoutType curLayout = currentLayout ();
+  enum tui_layout_type cur_layout = tui_current_layout ();
+  struct gdbarch *gdbarch = get_current_arch ();
   CORE_ADDR addr;
   CORE_ADDR pc;
   struct symtab_and_line cursal = get_current_source_symtab_and_line ();
 
-  switch (curLayout)
+  switch (cur_layout)
     {
     case SRC_COMMAND:
     case SRC_DATA_COMMAND:
+      gdbarch = TUI_SRC_WIN->detail.source_info.gdbarch;
       find_line_pc (cursal.symtab,
-                   srcWin->detail.sourceInfo.startLineOrAddr.lineNo,
+                   TUI_SRC_WIN->detail.source_info.start_line_or_addr.u.line_no,
                    &pc);
       addr = pc;
       break;
     case DISASSEM_COMMAND:
     case SRC_DISASSEM_COMMAND:
     case DISASSEM_DATA_COMMAND:
-      addr = disassemWin->detail.sourceInfo.startLineOrAddr.addr;
+      gdbarch = TUI_DISASM_WIN->detail.source_info.gdbarch;
+      addr = TUI_DISASM_WIN->detail.source_info.start_line_or_addr.u.addr;
       break;
     default:
       addr = 0;
       break;
     }
 
-  return addr;
-}                              /* _extractDisplayStartAddr */
+  *gdbarch_p = gdbarch;
+  *addr_p = addr;
+}
 
 
 static void
-_tuiHandleXDBLayout (TuiLayoutDefPtr layoutDef)
+tui_handle_xdb_layout (struct tui_layout_def *layout_def)
 {
-  if (layoutDef->split)
+  if (layout_def->split)
     {
       tui_set_layout (SRC_DISASSEM_COMMAND, TUI_UNDEFINED_REGS);
-      tuiSetWinFocusTo (winList[layoutDef->displayMode]);
+      tui_set_win_focus_to (tui_win_list[layout_def->display_mode]);
     }
   else
     {
-      if (layoutDef->displayMode == SRC_WIN)
+      if (layout_def->display_mode == SRC_WIN)
        tui_set_layout (SRC_COMMAND, TUI_UNDEFINED_REGS);
       else
-       tui_set_layout (DISASSEM_DATA_COMMAND, layoutDef->regsDisplayType);
+       tui_set_layout (DISASSEM_DATA_COMMAND, layout_def->regs_display_type);
     }
-
-
-  return;
-}                              /* _tuiHandleXDBLayout */
+}
 
 
 static void
-_tuiToggleLayout_command (char *arg, int fromTTY)
+tui_toggle_layout_command (char *arg, int from_tty)
 {
-  TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
+  struct tui_layout_def *layout_def = tui_layout_def ();
 
   /* Make sure the curses mode is enabled.  */
   tui_enable ();
-  if (layoutDef->displayMode == SRC_WIN)
-    layoutDef->displayMode = DISASSEM_WIN;
+  if (layout_def->display_mode == SRC_WIN)
+    layout_def->display_mode = DISASSEM_WIN;
   else
-    layoutDef->displayMode = SRC_WIN;
-
-  if (!layoutDef->split)
-    _tuiHandleXDBLayout (layoutDef);
+    layout_def->display_mode = SRC_WIN;
 
+  if (!layout_def->split)
+    tui_handle_xdb_layout (layout_def);
 }
 
 
 static void
-_tuiToggleSplitLayout_command (char *arg, int fromTTY)
+tui_toggle_split_layout_command (char *arg, int from_tty)
 {
-  TuiLayoutDefPtr layoutDef = tuiLayoutDef ();
+  struct tui_layout_def *layout_def = tui_layout_def ();
 
   /* Make sure the curses mode is enabled.  */
   tui_enable ();
-  layoutDef->split = (!layoutDef->split);
-  _tuiHandleXDBLayout (layoutDef);
-
+  layout_def->split = (!layout_def->split);
+  tui_handle_xdb_layout (layout_def);
 }
 
 
 static void
-_tuiLayout_command (char *arg, int fromTTY)
+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_for_display_command (arg) != TUI_SUCCESS)
-    warning ("Invalid layout specified.\n%s", LAYOUT_USAGE);
+    warning (_("Invalid layout specified.\n%s"), LAYOUT_USAGE);
 
 }
 
-/*
-   ** _nextLayout().
-   **        Answer the previous layout to cycle to.
- */
-static TuiLayoutType
-_nextLayout (void)
+/* Answer the previous layout to cycle to.  */
+static enum tui_layout_type
+next_layout (void)
 {
-  TuiLayoutType newLayout;
+  enum tui_layout_type new_layout;
 
-  newLayout = currentLayout ();
-  if (newLayout == UNDEFINED_LAYOUT)
-    newLayout = SRC_COMMAND;
+  new_layout = tui_current_layout ();
+  if (new_layout == UNDEFINED_LAYOUT)
+    new_layout = SRC_COMMAND;
   else
     {
-      newLayout++;
-      if (newLayout == UNDEFINED_LAYOUT)
-       newLayout = SRC_COMMAND;
+      new_layout++;
+      if (new_layout == UNDEFINED_LAYOUT)
+       new_layout = SRC_COMMAND;
     }
 
-  return newLayout;
-}                              /* _nextLayout */
+  return new_layout;
+}
 
 
-/*
-   ** _prevLayout().
-   **        Answer the next layout to cycle to.
- */
-static TuiLayoutType
-_prevLayout (void)
+/* Answer the next layout to cycle to.  */
+static enum tui_layout_type
+prev_layout (void)
 {
-  TuiLayoutType newLayout;
+  enum tui_layout_type new_layout;
 
-  newLayout = currentLayout ();
-  if (newLayout == SRC_COMMAND)
-    newLayout = DISASSEM_DATA_COMMAND;
+  new_layout = tui_current_layout ();
+  if (new_layout == SRC_COMMAND)
+    new_layout = DISASSEM_DATA_COMMAND;
   else
     {
-      newLayout--;
-      if (newLayout == UNDEFINED_LAYOUT)
-       newLayout = DISASSEM_DATA_COMMAND;
+      new_layout--;
+      if (new_layout == UNDEFINED_LAYOUT)
+       new_layout = DISASSEM_DATA_COMMAND;
     }
 
-  return newLayout;
-}                              /* _prevLayout */
+  return new_layout;
+}
 
 
 
-/*
-   ** _makeCommandWindow().
- */
 static void
-_makeCommandWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+make_command_window (struct tui_win_info **win_info_ptr, 
+                    int height, int origin_y)
 {
-  _initAndMakeWin ((Opaque *) winInfoPtr,
-                  CMD_WIN,
-                  height,
-                  termWidth (),
-                  0,
-                  originY,
-                  DONT_BOX_WINDOW);
-
-  (*winInfoPtr)->canHighlight = FALSE;
-
-  return;
-}                              /* _makeCommandWindow */
+  *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)->can_highlight = FALSE;
+}
 
 
-/*
-   ** _makeSourceWindow().
+/* make_source_window().
  */
 static void
-_makeSourceWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+make_source_window (struct tui_win_info **win_info_ptr, 
+                   int height, int origin_y)
 {
-  _makeSourceOrDisassemWindow (winInfoPtr, SRC_WIN, height, originY);
+  make_source_or_disasm_window (win_info_ptr, SRC_WIN, height, origin_y);
 
   return;
-}                              /* _makeSourceWindow */
+}                              /* make_source_window */
 
 
-/*
-   ** _makeDisassemWindow().
+/* make_disasm_window().
  */
 static void
-_makeDisassemWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+make_disasm_window (struct tui_win_info **win_info_ptr, 
+                   int height, int origin_y)
 {
-  _makeSourceOrDisassemWindow (winInfoPtr, DISASSEM_WIN, height, originY);
+  make_source_or_disasm_window (win_info_ptr, DISASSEM_WIN, height, origin_y);
 
   return;
-}                              /* _makeDisassemWindow */
+}                              /* make_disasm_window */
 
 
-/*
-   ** _makeDataWindow().
- */
 static void
-_makeDataWindow (TuiWinInfoPtr * winInfoPtr, int height, int originY)
+make_data_window (struct tui_win_info **win_info_ptr, 
+                 int height, int origin_y)
 {
-  _initAndMakeWin ((Opaque *) winInfoPtr,
-                  DATA_WIN,
-                  height,
-                  termWidth (),
-                  0,
-                  originY,
-                  BOX_WINDOW);
-
-  return;
-}                              /* _makeDataWindow */
+  *win_info_ptr = init_and_make_win (*win_info_ptr,
+                                    DATA_WIN,
+                                    height,
+                                    tui_term_width (),
+                                    0,
+                                    origin_y,
+                                    BOX_WINDOW);
+}
 
 
 
-/*
-   **    _showSourceCommand().
-   **        Show the Source/Command layout
- */
+/* Show the Source/Command layout.  */
 static void
-_showSourceCommand (void)
+show_source_command (void)
 {
-  _showSourceOrDisassemAndCommand (SRC_COMMAND);
-
-  return;
-}                              /* _showSourceCommand */
+  show_source_or_disasm_and_command (SRC_COMMAND);
+}
 
 
-/*
-   **    _showDisassemCommand().
-   **        Show the Dissassem/Command layout
- */
+/* Show the Dissassem/Command layout.  */
 static void
-_showDisassemCommand (void)
+show_disasm_command (void)
 {
-  _showSourceOrDisassemAndCommand (DISASSEM_COMMAND);
-
-  return;
-}                              /* _showDisassemCommand */
+  show_source_or_disasm_and_command (DISASSEM_COMMAND);
+}
 
 
-/*
-   **    _showSourceDisassemCommand().
-   **        Show the Source/Disassem/Command layout
- */
+/* Show the Source/Disassem/Command layout.  */
 static void
-_showSourceDisassemCommand (void)
+show_source_disasm_command (void)
 {
-  if (currentLayout () != SRC_DISASSEM_COMMAND)
+  if (tui_current_layout () != SRC_DISASSEM_COMMAND)
     {
-      int cmdHeight, srcHeight, asmHeight;
+      int cmd_height, src_height, asm_height;
 
-      if (m_winPtrNotNull (cmdWin))
-       cmdHeight = cmdWin->generic.height;
+      if (TUI_CMD_WIN != NULL)
+       cmd_height = TUI_CMD_WIN->generic.height;
       else
-       cmdHeight = termHeight () / 3;
+       cmd_height = tui_term_height () / 3;
 
-      srcHeight = (termHeight () - cmdHeight) / 2;
-      asmHeight = termHeight () - (srcHeight + cmdHeight);
+      src_height = (tui_term_height () - cmd_height) / 2;
+      asm_height = tui_term_height () - (src_height + cmd_height);
 
-      if (m_winPtrIsNull (srcWin))
-       _makeSourceWindow (&srcWin, srcHeight, 0);
+      if (TUI_SRC_WIN == NULL)
+       make_source_window (&TUI_SRC_WIN, src_height, 0);
       else
        {
-         _initGenWinInfo (&srcWin->generic,
-                          srcWin->generic.type,
-                          srcHeight,
-                          srcWin->generic.width,
-                          srcWin->detail.sourceInfo.executionInfo->width,
-                          0);
-         srcWin->canHighlight = TRUE;
-         _initGenWinInfo (srcWin->detail.sourceInfo.executionInfo,
-                          EXEC_INFO_WIN,
-                          srcHeight,
-                          3,
-                          0,
-                          0);
-         m_beVisible (srcWin);
-         m_beVisible (srcWin->detail.sourceInfo.executionInfo);
-         srcWin->detail.sourceInfo.hasLocator = FALSE;;
+         init_gen_win_info (&TUI_SRC_WIN->generic,
+                            TUI_SRC_WIN->generic.type,
+                            src_height,
+                            TUI_SRC_WIN->generic.width,
+                            TUI_SRC_WIN->detail.source_info.execution_info->width,
+                            0);
+         TUI_SRC_WIN->can_highlight = TRUE;
+         init_gen_win_info (TUI_SRC_WIN->detail.source_info.execution_info,
+                            EXEC_INFO_WIN,
+                            src_height,
+                            3,
+                            0,
+                            0);
+         tui_make_visible (&TUI_SRC_WIN->generic);
+         tui_make_visible (TUI_SRC_WIN->detail.source_info.execution_info);
+         TUI_SRC_WIN->detail.source_info.has_locator = FALSE;;
        }
-      if (m_winPtrNotNull (srcWin))
+      if (TUI_SRC_WIN != NULL)
        {
-         TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+         struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
 
-         tui_show_source_content (srcWin);
-         if (m_winPtrIsNull (disassemWin))
+         tui_show_source_content (TUI_SRC_WIN);
+         if (TUI_DISASM_WIN == NULL)
            {
-             _makeDisassemWindow (&disassemWin, asmHeight, srcHeight - 1);
-             _initAndMakeWin ((Opaque *) & locator,
-                              LOCATOR_WIN,
-                              2 /* 1 */ ,
-                              termWidth (),
-                              0,
-                              (srcHeight + asmHeight) - 1,
-                              DONT_BOX_WINDOW);
+             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);
            }
          else
            {
-             _initGenWinInfo (locator,
-                              LOCATOR_WIN,
-                              2 /* 1 */ ,
-                              termWidth (),
-                              0,
-                              (srcHeight + asmHeight) - 1);
-             disassemWin->detail.sourceInfo.hasLocator = TRUE;
-             _initGenWinInfo (
-                               &disassemWin->generic,
-                               disassemWin->generic.type,
-                               asmHeight,
-                               disassemWin->generic.width,
-                       disassemWin->detail.sourceInfo.executionInfo->width,
-                               srcHeight - 1);
-             _initGenWinInfo (disassemWin->detail.sourceInfo.executionInfo,
-                              EXEC_INFO_WIN,
-                              asmHeight,
-                              3,
-                              0,
-                              srcHeight - 1);
-             disassemWin->canHighlight = TRUE;
-             m_beVisible (disassemWin);
-             m_beVisible (disassemWin->detail.sourceInfo.executionInfo);
+             init_gen_win_info (locator,
+                                LOCATOR_WIN,
+                                2 /* 1 */ ,
+                                tui_term_width (),
+                                0,
+                                (src_height + asm_height) - 1);
+             TUI_DISASM_WIN->detail.source_info.has_locator = TRUE;
+             init_gen_win_info (&TUI_DISASM_WIN->generic,
+                                TUI_DISASM_WIN->generic.type,
+                                asm_height,
+                                TUI_DISASM_WIN->generic.width,
+                                TUI_DISASM_WIN->detail.source_info.execution_info->width,
+                                src_height - 1);
+             init_gen_win_info (TUI_DISASM_WIN->detail.source_info.execution_info,
+                                EXEC_INFO_WIN,
+                                asm_height,
+                                3,
+                                0,
+                                src_height - 1);
+             TUI_DISASM_WIN->can_highlight = TRUE;
+             tui_make_visible (&TUI_DISASM_WIN->generic);
+             tui_make_visible (TUI_DISASM_WIN->detail.source_info.execution_info);
            }
-         if (m_winPtrNotNull (disassemWin))
+         if (TUI_DISASM_WIN != NULL)
            {
-             srcWin->detail.sourceInfo.hasLocator = FALSE;
-             disassemWin->detail.sourceInfo.hasLocator = TRUE;
-             m_beVisible (locator);
+             TUI_SRC_WIN->detail.source_info.has_locator = FALSE;
+             TUI_DISASM_WIN->detail.source_info.has_locator = TRUE;
+             tui_make_visible (locator);
              tui_show_locator_content ();
-             tui_show_source_content (disassemWin);
+             tui_show_source_content (TUI_DISASM_WIN);
 
-             if (m_winPtrIsNull (cmdWin))
-               _makeCommandWindow (&cmdWin,
-                                   cmdHeight,
-                                   termHeight () - cmdHeight);
+             if (TUI_CMD_WIN == NULL)
+               make_command_window (&TUI_CMD_WIN,
+                                    cmd_height,
+                                    tui_term_height () - cmd_height);
              else
                {
-                 _initGenWinInfo (&cmdWin->generic,
-                                  cmdWin->generic.type,
-                                  cmdWin->generic.height,
-                                  cmdWin->generic.width,
-                                  0,
-                                  cmdWin->generic.origin.y);
-                 cmdWin->canHighlight = FALSE;
-                 m_beVisible (cmdWin);
+                 init_gen_win_info (&TUI_CMD_WIN->generic,
+                                    TUI_CMD_WIN->generic.type,
+                                    TUI_CMD_WIN->generic.height,
+                                    TUI_CMD_WIN->generic.width,
+                                    0,
+                                    TUI_CMD_WIN->generic.origin.y);
+                 TUI_CMD_WIN->can_highlight = FALSE;
+                 tui_make_visible (&TUI_CMD_WIN->generic);
                }
-             if (m_winPtrNotNull (cmdWin))
-               tuiRefreshWin (&cmdWin->generic);
+             if (TUI_CMD_WIN != NULL)
+               tui_refresh_win (&TUI_CMD_WIN->generic);
            }
        }
-      setCurrentLayoutTo (SRC_DISASSEM_COMMAND);
+      tui_set_current_layout_to (SRC_DISASSEM_COMMAND);
     }
-
-  return;
-}                              /* _showSourceDisassemCommand */
+}
 
 
-/*
-   **    _showData().
-   **        Show the Source/Data/Command or the Dissassembly/Data/Command layout
- */
+/* Show the Source/Data/Command or the Dissassembly/Data/Command
+   layout.  */
 static void
-_showData (TuiLayoutType newLayout)
+show_data (enum tui_layout_type new_layout)
 {
-  int totalHeight = (termHeight () - cmdWin->generic.height);
-  int srcHeight, dataHeight;
-  TuiWinType winType;
-  TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
-
-
-  dataHeight = totalHeight / 2;
-  srcHeight = totalHeight - dataHeight;
-  m_allBeInvisible ();
-  m_beInvisible (locator);
-  _makeDataWindow (&dataWin, dataHeight, 0);
-  dataWin->canHighlight = TRUE;
-  if (newLayout == SRC_DATA_COMMAND)
-    winType = SRC_WIN;
+  int total_height = (tui_term_height () - TUI_CMD_WIN->generic.height);
+  int src_height, data_height;
+  enum tui_win_type win_type;
+  struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
+
+
+  data_height = total_height / 2;
+  src_height = total_height - data_height;
+  tui_make_all_invisible ();
+  tui_make_invisible (locator);
+  make_data_window (&TUI_DATA_WIN, data_height, 0);
+  TUI_DATA_WIN->can_highlight = TRUE;
+  if (new_layout == SRC_DATA_COMMAND)
+    win_type = SRC_WIN;
   else
-    winType = DISASSEM_WIN;
-  if (m_winPtrIsNull (winList[winType]))
+    win_type = DISASSEM_WIN;
+  if (tui_win_list[win_type] == NULL)
     {
-      if (winType == SRC_WIN)
-       _makeSourceWindow (&winList[winType], srcHeight, dataHeight - 1);
+      if (win_type == SRC_WIN)
+       make_source_window (&tui_win_list[win_type], src_height, data_height - 1);
       else
-       _makeDisassemWindow (&winList[winType], srcHeight, dataHeight - 1);
-      _initAndMakeWin ((Opaque *) & locator,
-                      LOCATOR_WIN,
-                      2 /* 1 */ ,
-                      termWidth (),
-                      0,
-                      totalHeight - 1,
-                      DONT_BOX_WINDOW);
+       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);
     }
   else
     {
-      _initGenWinInfo (&winList[winType]->generic,
-                      winList[winType]->generic.type,
-                      srcHeight,
-                      winList[winType]->generic.width,
-                  winList[winType]->detail.sourceInfo.executionInfo->width,
-                      dataHeight - 1);
-      _initGenWinInfo (winList[winType]->detail.sourceInfo.executionInfo,
-                      EXEC_INFO_WIN,
-                      srcHeight,
-                      3,
-                      0,
-                      dataHeight - 1);
-      m_beVisible (winList[winType]);
-      m_beVisible (winList[winType]->detail.sourceInfo.executionInfo);
-      _initGenWinInfo (locator,
-                      LOCATOR_WIN,
-                      2 /* 1 */ ,
-                      termWidth (),
-                      0,
-                      totalHeight - 1);
+      init_gen_win_info (&tui_win_list[win_type]->generic,
+                        tui_win_list[win_type]->generic.type,
+                        src_height,
+                        tui_win_list[win_type]->generic.width,
+                        tui_win_list[win_type]->detail.source_info.execution_info->width,
+                        data_height - 1);
+      init_gen_win_info (tui_win_list[win_type]->detail.source_info.execution_info,
+                        EXEC_INFO_WIN,
+                        src_height,
+                        3,
+                        0,
+                        data_height - 1);
+      tui_make_visible (&tui_win_list[win_type]->generic);
+      tui_make_visible (tui_win_list[win_type]->detail.source_info.execution_info);
+      init_gen_win_info (locator,
+                        LOCATOR_WIN,
+                        2 /* 1 */ ,
+                        tui_term_width (),
+                        0,
+                        total_height - 1);
     }
-  winList[winType]->detail.sourceInfo.hasLocator = TRUE;
-  m_beVisible (locator);
+  tui_win_list[win_type]->detail.source_info.has_locator = TRUE;
+  tui_make_visible (locator);
   tui_show_locator_content ();
-  addToSourceWindows (winList[winType]);
-  setCurrentLayoutTo (newLayout);
-
-  return;
-}                              /* _showData */
+  tui_add_to_source_windows (tui_win_list[win_type]);
+  tui_set_current_layout_to (new_layout);
+}
 
-/*
-   ** _initGenWinInfo().
+/* init_gen_win_info().
  */
 static void
-_initGenWinInfo (TuiGenWinInfoPtr winInfo, TuiWinType type,
-                 int height, int width, int originX, int originY)
+init_gen_win_info (struct tui_gen_win_info *win_info, 
+                  enum tui_win_type type,
+                  int height, int width, 
+                  int origin_x, int origin_y)
 {
   int h = height;
 
-  winInfo->type = type;
-  winInfo->width = width;
-  winInfo->height = h;
+  win_info->type = type;
+  win_info->width = width;
+  win_info->height = h;
   if (h > 1)
     {
-      winInfo->viewportHeight = h - 1;
-      if (winInfo->type != CMD_WIN)
-       winInfo->viewportHeight--;
+      win_info->viewport_height = h - 1;
+      if (win_info->type != CMD_WIN)
+       win_info->viewport_height--;
     }
   else
-    winInfo->viewportHeight = 1;
-  winInfo->origin.x = originX;
-  winInfo->origin.y = originY;
+    win_info->viewport_height = 1;
+  win_info->origin.x = origin_x;
+  win_info->origin.y = origin_y;
 
   return;
-}                              /* _initGenWinInfo */
+}                              /* init_gen_win_info */
 
-/*
-   ** _initAndMakeWin().
+/* init_and_make_win().
  */
-static void
-_initAndMakeWin (Opaque * winInfoPtr, TuiWinType winType,
-                 int height, int width, int originX, int originY, int boxIt)
+static void *
+init_and_make_win (void *opaque_win_info, 
+                  enum tui_win_type win_type,
+                  int height, int width, 
+                  int origin_x, int origin_y,
+                  int box_it)
 {
-  Opaque opaqueWinInfo = *winInfoPtr;
-  TuiGenWinInfoPtr generic;
+  struct tui_gen_win_info *generic;
 
-  if (opaqueWinInfo == (Opaque) NULL)
+  if (opaque_win_info == NULL)
     {
-      if (m_winIsAuxillary (winType))
-       opaqueWinInfo = (Opaque) allocGenericWinInfo ();
+      if (tui_win_is_auxillary (win_type))
+       opaque_win_info = (void *) tui_alloc_generic_win_info ();
       else
-       opaqueWinInfo = (Opaque) allocWinInfo (winType);
+       opaque_win_info = (void *) tui_alloc_win_info (win_type);
     }
-  if (m_winIsAuxillary (winType))
-    generic = (TuiGenWinInfoPtr) opaqueWinInfo;
+  if (tui_win_is_auxillary (win_type))
+    generic = (struct tui_gen_win_info *) opaque_win_info;
   else
-    generic = &((TuiWinInfoPtr) opaqueWinInfo)->generic;
+    generic = &((struct tui_win_info *) opaque_win_info)->generic;
 
-  if (opaqueWinInfo != (Opaque) NULL)
+  if (opaque_win_info != NULL)
     {
-      _initGenWinInfo (generic, winType, height, width, originX, originY);
-      if (!m_winIsAuxillary (winType))
+      init_gen_win_info (generic, win_type, height, width, origin_x, origin_y);
+      if (!tui_win_is_auxillary (win_type))
        {
          if (generic->type == CMD_WIN)
-           ((TuiWinInfoPtr) opaqueWinInfo)->canHighlight = FALSE;
+           ((struct tui_win_info *) opaque_win_info)->can_highlight = FALSE;
          else
-           ((TuiWinInfoPtr) opaqueWinInfo)->canHighlight = TRUE;
+           ((struct tui_win_info *) opaque_win_info)->can_highlight = TRUE;
        }
-      makeWindow (generic, boxIt);
+      tui_make_window (generic, box_it);
     }
-  *winInfoPtr = opaqueWinInfo;
+  return opaque_win_info;
 }
 
 
-/*
-   ** _makeSourceOrDisassemWindow().
- */
 static void
-_makeSourceOrDisassemWindow (TuiWinInfoPtr * winInfoPtr, TuiWinType type,
-                             int height, int originY)
+make_source_or_disasm_window (struct tui_win_info **win_info_ptr, 
+                             enum tui_win_type type,
+                             int height, int origin_y)
 {
-  TuiGenWinInfoPtr executionInfo = (TuiGenWinInfoPtr) NULL;
+  struct tui_gen_win_info *execution_info = (struct tui_gen_win_info *) NULL;
 
-  /*
-     ** Create the exeuction info window.
-   */
+  /* Create the exeuction info window.  */
   if (type == SRC_WIN)
-    executionInfo = sourceExecInfoWinPtr ();
+    execution_info = tui_source_exec_info_win_ptr ();
   else
-    executionInfo = disassemExecInfoWinPtr ();
-  _initAndMakeWin ((Opaque *) & executionInfo,
-                  EXEC_INFO_WIN,
-                  height,
-                  3,
-                  0,
-                  originY,
-                  DONT_BOX_WINDOW);
-  /*
-     ** Now create the source window.
-   */
-  _initAndMakeWin ((Opaque *) winInfoPtr,
-                  type,
-                  height,
-                  termWidth () - executionInfo->width,
-                  executionInfo->width,
-                  originY,
-                  BOX_WINDOW);
-
-  (*winInfoPtr)->detail.sourceInfo.executionInfo = executionInfo;
-
-  return;
-}                              /* _makeSourceOrDisassemWindow */
+    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);
+
+  /* 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)->detail.source_info.execution_info = execution_info;
+}
 
 
-/*
-   **    _showSourceOrDisassemAndCommand().
-   **        Show the Source/Command or the Disassem layout
- */
+/* Show the Source/Command or the Disassem layout.  */
 static void
-_showSourceOrDisassemAndCommand (TuiLayoutType layoutType)
+show_source_or_disasm_and_command (enum tui_layout_type layout_type)
 {
-  if (currentLayout () != layoutType)
+  if (tui_current_layout () != layout_type)
     {
-      TuiWinInfoPtr *winInfoPtr;
-      int srcHeight, cmdHeight;
-      TuiGenWinInfoPtr locator = locatorWinInfoPtr ();
+      struct tui_win_info **win_info_ptr;
+      int src_height, cmd_height;
+      struct tui_gen_win_info *locator = tui_locator_win_info_ptr ();
 
-      if (m_winPtrNotNull (cmdWin))
-       cmdHeight = cmdWin->generic.height;
+      if (TUI_CMD_WIN != NULL)
+       cmd_height = TUI_CMD_WIN->generic.height;
       else
-       cmdHeight = termHeight () / 3;
-      srcHeight = termHeight () - cmdHeight;
+       cmd_height = tui_term_height () / 3;
+      src_height = tui_term_height () - cmd_height;
 
-
-      if (layoutType == SRC_COMMAND)
-       winInfoPtr = &srcWin;
+      if (layout_type == SRC_COMMAND)
+       win_info_ptr = &TUI_SRC_WIN;
       else
-       winInfoPtr = &disassemWin;
+       win_info_ptr = &TUI_DISASM_WIN;
 
-      if (m_winPtrIsNull (*winInfoPtr))
+      if ((*win_info_ptr) == NULL)
        {
-         if (layoutType == SRC_COMMAND)
-           _makeSourceWindow (winInfoPtr, srcHeight - 1, 0);
+         if (layout_type == SRC_COMMAND)
+           make_source_window (win_info_ptr, src_height - 1, 0);
          else
-           _makeDisassemWindow (winInfoPtr, srcHeight - 1, 0);
-         _initAndMakeWin ((Opaque *) & locator,
-                          LOCATOR_WIN,
-                          2 /* 1 */ ,
-                          termWidth (),
-                          0,
-                          srcHeight - 1,
-                          DONT_BOX_WINDOW);
+           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);
        }
       else
        {
-         _initGenWinInfo (locator,
-                          LOCATOR_WIN,
-                          2 /* 1 */ ,
-                          termWidth (),
-                          0,
-                          srcHeight - 1);
-         (*winInfoPtr)->detail.sourceInfo.hasLocator = TRUE;
-         _initGenWinInfo (
-                           &(*winInfoPtr)->generic,
-                           (*winInfoPtr)->generic.type,
-                           srcHeight - 1,
-                           (*winInfoPtr)->generic.width,
-                     (*winInfoPtr)->detail.sourceInfo.executionInfo->width,
-                           0);
-         _initGenWinInfo ((*winInfoPtr)->detail.sourceInfo.executionInfo,
-                          EXEC_INFO_WIN,
-                          srcHeight - 1,
-                          3,
-                          0,
-                          0);
-         (*winInfoPtr)->canHighlight = TRUE;
-         m_beVisible (*winInfoPtr);
-         m_beVisible ((*winInfoPtr)->detail.sourceInfo.executionInfo);
+         init_gen_win_info (locator,
+                            LOCATOR_WIN,
+                            2 /* 1 */ ,
+                            tui_term_width (),
+                            0,
+                            src_height - 1);
+         (*win_info_ptr)->detail.source_info.has_locator = TRUE;
+         init_gen_win_info (&(*win_info_ptr)->generic,
+                            (*win_info_ptr)->generic.type,
+                            src_height - 1,
+                            (*win_info_ptr)->generic.width,
+                            (*win_info_ptr)->detail.source_info.execution_info->width,
+                            0);
+         init_gen_win_info ((*win_info_ptr)->detail.source_info.execution_info,
+                            EXEC_INFO_WIN,
+                            src_height - 1,
+                            3,
+                            0,
+                            0);
+         (*win_info_ptr)->can_highlight = TRUE;
+         tui_make_visible (&(*win_info_ptr)->generic);
+         tui_make_visible ((*win_info_ptr)->detail.source_info.execution_info);
        }
-      if (m_winPtrNotNull (*winInfoPtr))
+      if ((*win_info_ptr) != NULL)
        {
-         (*winInfoPtr)->detail.sourceInfo.hasLocator = TRUE;
-         m_beVisible (locator);
+         (*win_info_ptr)->detail.source_info.has_locator = TRUE;
+         tui_make_visible (locator);
          tui_show_locator_content ();
-         tui_show_source_content (*winInfoPtr);
+         tui_show_source_content (*win_info_ptr);
 
-         if (m_winPtrIsNull (cmdWin))
+         if (TUI_CMD_WIN == NULL)
            {
-             _makeCommandWindow (&cmdWin, cmdHeight, srcHeight);
-             tuiRefreshWin (&cmdWin->generic);
+             make_command_window (&TUI_CMD_WIN, cmd_height, src_height);
+             tui_refresh_win (&TUI_CMD_WIN->generic);
            }
          else
            {
-             _initGenWinInfo (&cmdWin->generic,
-                              cmdWin->generic.type,
-                              cmdWin->generic.height,
-                              cmdWin->generic.width,
-                              cmdWin->generic.origin.x,
-                              cmdWin->generic.origin.y);
-             cmdWin->canHighlight = FALSE;
-             m_beVisible (cmdWin);
+             init_gen_win_info (&TUI_CMD_WIN->generic,
+                                TUI_CMD_WIN->generic.type,
+                                TUI_CMD_WIN->generic.height,
+                                TUI_CMD_WIN->generic.width,
+                                TUI_CMD_WIN->generic.origin.x,
+                                TUI_CMD_WIN->generic.origin.y);
+             TUI_CMD_WIN->can_highlight = FALSE;
+             tui_make_visible (&TUI_CMD_WIN->generic);
            }
        }
-      setCurrentLayoutTo (layoutType);
+      tui_set_current_layout_to (layout_type);
     }
-
-  return;
-}                              /* _showSourceOrDisassemAndCommand */
+}