-/*
- ** tuiData.c
- ** This module contains functions for manipulating the data
- ** structures used by the TUI
- */
+/* TUI data manipulation routines.
+ Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+ Contributed by Hewlett-Packard Company.
+
+ This file is part of GDB.
+
+ 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
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ 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. */
#include "defs.h"
#include "tui.h"
#include "tuiData.h"
+#include "tuiGeneralWin.h"
/****************************
** GLOBAL DECLARATIONS
** Answer a whether the terminal window has been resized or not
*/
int
-#ifdef __STDC__
tuiWinResized (void)
-#else
-tuiWinResized ()
-#endif
{
return _winResized;
} /* tuiWinResized */
** Set a whether the terminal window has been resized or not
*/
void
-#ifdef __STDC__
-tuiSetWinResizedTo (
- int resized)
-#else
-tuiSetWinResizedTo (resized)
- int resized;
-#endif
+tuiSetWinResizedTo (int resized)
{
_winResized = resized;
** Answer a pointer to the current layout definition
*/
TuiLayoutDefPtr
-#ifdef __STDC__
tuiLayoutDef (void)
-#else
-tuiLayoutDef ()
-#endif
{
return &_layoutDef;
} /* tuiLayoutDef */
** Answer the window with the logical focus
*/
TuiWinInfoPtr
-#ifdef __STDC__
tuiWinWithFocus (void)
-#else
-tuiWinWithFocus ()
-#endif
{
return _winWithFocus;
} /* tuiWinWithFocus */
** Set the window that has the logical focus
*/
void
-#ifdef __STDC__
-tuiSetWinWithFocus (
- TuiWinInfoPtr winInfo)
-#else
-tuiSetWinWithFocus (winInfo)
- TuiWinInfoPtr winInfo;
-#endif
+tuiSetWinWithFocus (TuiWinInfoPtr winInfo)
{
_winWithFocus = winInfo;
** Answer the length in chars, of tabs
*/
int
-#ifdef __STDC__
tuiDefaultTabLen (void)
-#else
-tuiDefaultTabLen ()
-#endif
{
return _defaultTabLen;
} /* tuiDefaultTabLen */
** Set the length in chars, of tabs
*/
void
-#ifdef __STDC__
-tuiSetDefaultTabLen (
- int len)
-#else
-tuiSetDefaultTabLen (len)
- int len;
-#endif
+tuiSetDefaultTabLen (int len)
{
_defaultTabLen = len;
** be displayed at the same time.
*/
TuiListPtr
-#ifdef __STDC__
sourceWindows (void)
-#else
-sourceWindows ()
-#endif
{
return &_sourceWindows;
} /* currentSourceWindows */
** displayed at the same time.
*/
void
-#ifdef __STDC__
clearSourceWindows (void)
-#else
-clearSourceWindows ()
-#endif
{
_sourceWindows.list[0] = (Opaque) NULL;
_sourceWindows.list[1] = (Opaque) NULL;
** Clear the pertinant detail in the source windows.
*/
void
-#ifdef __STDC__
clearSourceWindowsDetail (void)
-#else
-clearSourceWindowsDetail ()
-#endif
{
int i;
** both can be displayed at the same time.
*/
void
-#ifdef __STDC__
-addToSourceWindows (
- TuiWinInfoPtr winInfo)
-#else
-addToSourceWindows (winInfo)
- TuiWinInfoPtr winInfo;
-#endif
+addToSourceWindows (TuiWinInfoPtr winInfo)
{
if (_sourceWindows.count < 2)
_sourceWindows.list[_sourceWindows.count++] = (Opaque) winInfo;
** Clear the pertinant detail in the windows.
*/
void
-#ifdef __STDC__
-clearWinDetail (
- TuiWinInfoPtr winInfo)
-#else
-clearWinDetail (winInfo)
- TuiWinInfoPtr winInfo;
-#endif
+clearWinDetail (TuiWinInfoPtr winInfo)
{
if (m_winPtrNotNull (winInfo))
{
{
case SRC_WIN:
case DISASSEM_WIN:
- winInfo->detail.sourceInfo.startLineOrAddr.addr = (Opaque) NULL;
+ winInfo->detail.sourceInfo.startLineOrAddr.addr = 0;
winInfo->detail.sourceInfo.horizontalOffset = 0;
break;
case CMD_WIN:
** Accessor for the blank string.
*/
char *
-#ifdef __STDC__
blankStr (void)
-#else
-blankStr ()
-#endif
{
return _tuiBlankStr;
} /* blankStr */
** Accessor for the location string.
*/
char *
-#ifdef __STDC__
locationStr (void)
-#else
-locationStr ()
-#endif
{
return _tuiLocationStr;
} /* locationStr */
** Accessor for the break string.
*/
char *
-#ifdef __STDC__
breakStr (void)
-#else
-breakStr ()
-#endif
{
return _tuiBreakStr;
} /* breakStr */
** Accessor for the breakLocation string.
*/
char *
-#ifdef __STDC__
breakLocationStr (void)
-#else
-breakLocationStr ()
-#endif
{
return _tuiBreakLocationStr;
} /* breakLocationStr */
** Accessor for the null string.
*/
char *
-#ifdef __STDC__
nullStr (void)
-#else
-nullStr ()
-#endif
{
return _tuiNullStr;
} /* nullStr */
** Accessor for the source execution info ptr.
*/
TuiGenWinInfoPtr
-#ifdef __STDC__
sourceExecInfoWinPtr (void)
-#else
-sourceExecInfoWinPtr ()
-#endif
{
return &_execInfo[0];
} /* sourceExecInfoWinPtr */
** Accessor for the disassem execution info ptr.
*/
TuiGenWinInfoPtr
-#ifdef __STDC__
disassemExecInfoWinPtr (void)
-#else
-disassemExecInfoWinPtr ()
-#endif
{
return &_execInfo[1];
} /* disassemExecInfoWinPtr */
** static locator win info struct.
*/
TuiGenWinInfoPtr
-#ifdef __STDC__
locatorWinInfoPtr (void)
-#else
-locatorWinInfoPtr ()
-#endif
{
return &_locator;
} /* locatorWinInfoPtr */
** Accessor for the history limit
*/
int
-#ifdef __STDC__
historyLimit (void)
-#else
-historyLimit ()
-#endif
{
return _historyLimit;
} /* historyLimit */
** Mutator for the history limit
*/
void
-#ifdef __STDC__
-setHistoryLimitTo (
- int h)
-#else
-setHistoryLimitTo (h)
- int h;
-#endif
+setHistoryLimitTo (int h)
{
_historyLimit = h;
** Accessor for the termHeight
*/
int
-#ifdef __STDC__
termHeight (void)
-#else
-termHeight ()
-#endif
{
return _termHeight;
} /* termHeight */
** Mutator for the term height
*/
void
-#ifdef __STDC__
-setTermHeightTo (
- int h)
-#else
-setTermHeightTo (h)
- int h;
-#endif
+setTermHeightTo (int h)
{
_termHeight = h;
** Accessor for the termWidth
*/
int
-#ifdef __STDC__
termWidth (void)
-#else
-termWidth ()
-#endif
{
return _termWidth;
} /* termWidth */
** Mutator for the termWidth
*/
void
-#ifdef __STDC__
-setTermWidthTo (
- int w)
-#else
-setTermWidthTo (w)
- int w;
-#endif
+setTermWidthTo (int w)
{
_termWidth = w;
** Accessor for the current layout
*/
TuiLayoutType
-#ifdef __STDC__
currentLayout (void)
-#else
-currentLayout ()
-#endif
{
return _currentLayout;
} /* currentLayout */
** Mutator for the current layout
*/
void
-#ifdef __STDC__
-setCurrentLayoutTo (
- TuiLayoutType newLayout)
-#else
-setCurrentLayoutTo (newLayout)
- TuiLayoutType newLayout;
-#endif
+setCurrentLayoutTo (TuiLayoutType newLayout)
{
_currentLayout = newLayout;
** Set the origin of the window
*/
void
-#ifdef __STDC__
-setGenWinOrigin (
- TuiGenWinInfoPtr winInfo,
- int x,
- int y)
-#else
-setGenWinOrigin (winInfo, x, y)
- TuiGenWinInfoPtr winInfo;
- int x;
- int y;
-#endif
+setGenWinOrigin (TuiGenWinInfoPtr winInfo, int x, int y)
{
winInfo->origin.x = x;
winInfo->origin.y = y;
** if necessary
*/
TuiWinInfoPtr
-#ifdef __STDC__
-tuiNextWin (
- TuiWinInfoPtr curWin)
-#else
-tuiNextWin (curWin)
- TuiWinInfoPtr curWin;
-#endif
+tuiNextWin (TuiWinInfoPtr curWin)
{
TuiWinType type = curWin->generic.type;
TuiWinInfoPtr nextWin = (TuiWinInfoPtr) NULL;
type = curWin->generic.type + 1;
while (type != curWin->generic.type && m_winPtrIsNull (nextWin))
{
- if (winList[type]->generic.isVisible)
+ if (winList[type] && winList[type]->generic.isVisible)
nextWin = winList[type];
else
{
** if necessary
*/
TuiWinInfoPtr
-#ifdef __STDC__
-tuiPrevWin (
- TuiWinInfoPtr curWin)
-#else
-tuiPrevWin (curWin)
- TuiWinInfoPtr curWin;
-#endif
+tuiPrevWin (TuiWinInfoPtr curWin)
{
TuiWinType type = curWin->generic.type;
TuiWinInfoPtr prev = (TuiWinInfoPtr) NULL;
** freed after use.
*/
char *
-#ifdef __STDC__
-displayableWinContentOf (
- TuiGenWinInfoPtr winInfo,
- TuiWinElementPtr elementPtr)
-#else
-displayableWinContentOf (winInfo, elementPtr)
- TuiGenWinInfoPtr winInfo;
- TuiWinElementPtr elementPtr;
-#endif
+displayableWinContentOf (TuiGenWinInfoPtr winInfo, TuiWinElementPtr elementPtr)
{
char *string = nullStr ();
else
strcpy (lineNo, "??");
if (elementPtr != (TuiWinElementPtr) NULL &&
- elementPtr->whichElement.locator.addr > (Opaque) 0)
- sprintf (pc, "0x%x",
- elementPtr->whichElement.locator.addr);
+ elementPtr->whichElement.locator.addr != 0)
+ sprintf (pc, "0x%lx",
+ (long) elementPtr->whichElement.locator.addr);
else
strcpy (pc, "??");
/*
** Answer a the content at the location indicated by index
*/
char *
-#ifdef __STDC__
-displayableWinContentAt (
- TuiGenWinInfoPtr winInfo,
- int index)
-#else
-displayableWinContentAt (winInfo, index)
- TuiGenWinInfoPtr winInfo;
- int index;
-#endif
+displayableWinContentAt (TuiGenWinInfoPtr winInfo, int index)
{
return (displayableWinContentOf (winInfo, (TuiWinElementPtr) winInfo->content[index]));
} /* winContentAt */
** Answer the height of the element in lines
*/
int
-#ifdef __STDC__
-winElementHeight (
- TuiGenWinInfoPtr winInfo,
- TuiWinElementPtr element)
-#else
-winElementHeight (winInfo, element)
- TuiGenWinInfoPtr winInfo;
- TuiWinElementPtr element;
-#endif
+winElementHeight (TuiGenWinInfoPtr winInfo, TuiWinElementPtr element)
{
int h;
** Answer the window represented by name
*/
TuiWinInfoPtr
-#ifdef __STDC__
-winByName (
- char *name)
-#else
-winByName (name)
- char *name;
-#endif
+winByName (char *name)
{
TuiWinInfoPtr winInfo = (TuiWinInfoPtr) NULL;
int i = 0;
** Answer the window represented by name
*/
TuiWinInfoPtr
-#ifdef __STDC__
-partialWinByName (
- char *name)
-#else
-partialWinByName (name)
- char *name;
-#endif
+partialWinByName (char *name)
{
TuiWinInfoPtr winInfo = (TuiWinInfoPtr) NULL;
while (i < MAX_MAJOR_WINDOWS && m_winPtrIsNull (winInfo))
{
- char *curName = winName (&winList[i]->generic);
- if (strlen (name) <= strlen (curName) &&
- strncmp (name, curName, strlen (name)) == 0)
- winInfo = winList[i];
+ if (winList[i] != 0)
+ {
+ char *curName = winName (&winList[i]->generic);
+ if (strlen (name) <= strlen (curName) &&
+ strncmp (name, curName, strlen (name)) == 0)
+ winInfo = winList[i];
+ }
i++;
}
}
** Answer the name of the window
*/
char *
-#ifdef __STDC__
-winName (
- TuiGenWinInfoPtr winInfo)
-#else
-winName (winInfo)
- TuiGenWinInfoPtr winInfo;
-#endif
+winName (TuiGenWinInfoPtr winInfo)
{
char *name = (char *) NULL;
** initializeStaticData
*/
void
-#ifdef __STDC__
initializeStaticData (void)
-#else
-initializeStaticData ()
-#endif
{
initGenericPart (sourceExecInfoWinPtr ());
initGenericPart (disassemExecInfoWinPtr ());
** allocGenericWinInfo().
*/
TuiGenWinInfoPtr
-#ifdef __STDC__
allocGenericWinInfo (void)
-#else
-allocGenericWinInfo ()
-#endif
{
TuiGenWinInfoPtr win;
** initGenericPart().
*/
void
-#ifdef __STDC__
-initGenericPart (
- TuiGenWinInfoPtr win)
-#else
-initGenericPart (win)
- TuiGenWinInfoPtr win;
-#endif
+initGenericPart (TuiGenWinInfoPtr win)
{
win->width =
win->height =
** initContentElement().
*/
void
-#ifdef __STDC__
-initContentElement (
- TuiWinElementPtr element,
- TuiWinType type)
-#else
-initContentElement (element, type)
- TuiWinElementPtr element;
- TuiWinType type;
-#endif
+initContentElement (TuiWinElementPtr element, TuiWinType type)
{
element->highlight = FALSE;
switch (type)
** initWinInfo().
*/
void
-#ifdef __STDC__
-initWinInfo (
- TuiWinInfoPtr winInfo)
-#else
-initWinInfo (winInfo)
- TuiWinInfoPtr winInfo;
-#endif
+initWinInfo (TuiWinInfoPtr winInfo)
{
initGenericPart (&winInfo->generic);
winInfo->canHighlight =
winInfo->detail.sourceInfo.executionInfo = (TuiGenWinInfoPtr) NULL;
winInfo->detail.sourceInfo.hasLocator = FALSE;
winInfo->detail.sourceInfo.horizontalOffset = 0;
- winInfo->detail.sourceInfo.startLineOrAddr.addr = (Opaque) NULL;
+ winInfo->detail.sourceInfo.startLineOrAddr.addr = 0;
break;
case DATA_WIN:
winInfo->detail.dataDisplayInfo.dataContent = (TuiWinContent) NULL;
** allocWinInfo().
*/
TuiWinInfoPtr
-#ifdef __STDC__
-allocWinInfo (
- TuiWinType type)
-#else
-allocWinInfo (type)
- TuiWinType type;
-#endif
+allocWinInfo (TuiWinType type)
{
TuiWinInfoPtr winInfo = (TuiWinInfoPtr) NULL;
** Allocates the content and elements in a block.
*/
TuiWinContent
-#ifdef __STDC__
-allocContent (
- int numElements,
- TuiWinType type)
-#else
-allocContent (numElements, type)
- int numElements;
- TuiWinType type;
-#endif
+allocContent (int numElements, TuiWinType type)
{
TuiWinContent content = (TuiWinContent) NULL;
char *elementBlockPtr = (char *) NULL;
** is returned.
*/
int
-#ifdef __STDC__
-addContentElements (
- TuiGenWinInfoPtr winInfo,
- int numElements)
-#else
-addContentElements (winInfo, numElements)
- TuiGenWinInfoPtr winInfo;
- int numElements;
-#endif
+addContentElements (TuiGenWinInfoPtr winInfo, int numElements)
{
TuiWinElementPtr elementPtr;
int i, indexStart;
** else in tact.
*/
void
-#ifdef __STDC__
-tuiDelWindow (
- TuiWinInfoPtr winInfo)
-#else
-tuiDelWindow (winInfo)
- TuiWinInfoPtr winInfo;
-#endif
+tuiDelWindow (TuiWinInfoPtr winInfo)
{
Opaque detail;
int i;
** freeWindow().
*/
void
-#ifdef __STDC__
-freeWindow (
- TuiWinInfoPtr winInfo)
-#else
-freeWindow (winInfo)
- TuiWinInfoPtr winInfo;
-#endif
+freeWindow (TuiWinInfoPtr winInfo)
{
Opaque detail;
int i;
winInfo->generic.handle = (WINDOW *) NULL;
freeWinContent (&winInfo->generic);
}
- free (winInfo);
+ xfree (winInfo);
return;
} /* freeWindow */
** freeAllSourceWinsContent().
*/
void
-#ifdef __STDC__
freeAllSourceWinsContent (void)
-#else
-freeAllSourceWinsContent ()
-#endif
{
int i;
** freeWinContent().
*/
void
-#ifdef __STDC__
-freeWinContent (
- TuiGenWinInfoPtr winInfo)
-#else
-freeWinContent (winInfo)
- TuiGenWinInfoPtr winInfo;
-#endif
+freeWinContent (TuiGenWinInfoPtr winInfo)
{
if (winInfo->content != (OpaquePtr) NULL)
{
** freeAllWindows().
*/
void
-#ifdef __STDC__
freeAllWindows (void)
-#else
-freeAllWindows ()
-#endif
{
TuiWinType type = SRC_WIN;
void
-#ifdef __STDC__
-tuiDelDataWindows (
- TuiWinContent content,
- int contentSize)
-#else
-tuiDelDataWindows (content, contentSize)
- TuiWinContent content;
- int contentSize;
-#endif
+tuiDelDataWindows (TuiWinContent content, int contentSize)
{
int i;
void
-#ifdef __STDC__
-freeDataContent (
- TuiWinContent content,
- int contentSize)
-#else
-freeDataContent (content, contentSize)
- TuiWinContent content;
- int contentSize;
-#endif
+freeDataContent (TuiWinContent content, int contentSize)
{
int i;
** freeContent().
*/
static void
-#ifdef __STDC__
-freeContent (
- TuiWinContent content,
- int contentSize,
- TuiWinType winType)
-#else
-freeContent (content, contentSize, winType)
- TuiWinContent content;
- int contentSize;
- TuiWinType winType;
-#endif
+freeContent (TuiWinContent content, int contentSize, TuiWinType winType)
{
if (content != (TuiWinContent) NULL)
{
** freeContentElements().
*/
static void
-#ifdef __STDC__
-freeContentElements (
- TuiWinContent content,
- int contentSize,
- TuiWinType type)
-#else
-freeContentElements (content, contentSize, type)
- TuiWinContent content;
- int contentSize;
- TuiWinType type;
-#endif
+freeContentElements (TuiWinContent content, int contentSize, TuiWinType type)
{
if (content != (TuiWinContent) NULL)
{