2002-03-15  Andrew Cagney  <ac131313@redhat.com>

	* tui-out.c (XMALLOC): Delete macro.  Update copyright.

2002-03-01  Andrew Cagney  <ac131313@redhat.com>

	* tui-hooks.c: Add FIXME to explain true/false problem.  Update
	copyright.
	* tui.c, tuiCommand.c, tuiData.c, tuiDataWin.c: Ditto.
	* tuiDisassem.c, tuiGeneralWin.c, tuiIO.c, tuiLayout.c: Ditto.
	* tuiRegs.c, tuiSource.c, tuiSourceWin.c, tuiStack.c: Ditto.
	* tuiWin.c: Ditto.

	2002-02-08  Daniel Jacobowitz  <drow@mvista.com>
	* tui-hooks.c: Include <curses.h> before "bfd.h".
	* tui.c: Likewise.
	* tuiCommand.c: Likewise.
	* tuiData.c: Likewise.
	* tuiDataWin.c: Likewise.
	* tuiDisassem.c: Likewise.
	* tuiGeneralWin.c: Likewise.
	* tuiIO.c: Likewise.
	* tuiLayout.c: Likewise.
	* tuiRegs.c: Likewise.
	* tuiSource.c: Likewise.
	* tuiSourceWin.c: Likewise.
	* tuiStack.c: Likewise.
	* tuiWin.c: Likewise.

2002-02-01  Andrew Cagney  <ac131313@redhat.com>

	* tuiWin.c (_initialize_tuiWin): Replace NO_FUNCTION with NULL.

2001-10-20  Andrew Cagney  <ac131313@redhat.com>

	* tuiDisassem.c: Include "value.h".
	* tuiSourceWin.c: Ditto.

2001-09-28  Tom Tromey  <tromey@redhat.com>

	* tuiLayout.h (tui_set_layout): Don't declare.
	* tui.h (tui_vAddWinToLayout): Don't declare.
	(tui_vSetLayoutTo): Likewise.
	(tui_set_layout): Declare.

2001-08-02  Eli Zaretskii  <eliz@is.elta.co.il>

	* tuiSourceWin.c: Use disp_del instead of del.

	* tuiSource.c: Use disp_del instead of del.

	* tuiDisassem.c: Use disp_del instead of del.

2001-07-31  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tui.c (tui_enable): Remove call to terminal_save_ours().
	(tui_disable): Likewise.

2001-07-28  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c (_initialize_tuiWin): Use specific tui prefix for
	set/show configuration variables.
	(show_tui_cmd): New function.
	(set_tui_cmd): New function.

2001-07-24  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tui-hooks.c: New file, gdb hooks for tui.
	* tui-out.c: New file, image copied from cli-out.c.
	(tui_field_int): Identify "line" fields and keep track of them.
	(tui_field_string): Likewise for "file".
	(tui_out_new): Use flags = 0 to avoid printing the sources.

2001-07-23  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiIO.c (tui_cont_sig): Update cursor position on the screen to
	leave it in the command window.
	(tui_redisplay_readline): Save cursor position to restore the
	cursor after we go back from background.
	* tuiData.h (TuiCommandInfo): Add start_line member.

2001-07-23  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiStack.c (tuiUpdateLocatorFilename): Use const char*.
	* tuiStack.h (tuiUpdateLocatorFilename): Update prototype.
	* tuiWin.c (_initialize_tuiWin): Don't cast table of enum in calls
	to add_set_enum_cmd.
	* tui.c (tui_show_source): New function.
	(tuiGetLowDisassemblyAddress): Use CORE_ADDR for newLow.
	(tui_switch_mode): Prep or deprep readline terminal;
	make sure the \n we return does not redo the last command.
	* tui.h (tui_show_source): Declare.
	(tui_out_new, tui_install_hooks, tui_remove_hooks): Likewise.
	(tui_active, tui_initialize_io, tui_initialize_readline): Likewise.

2001-07-22  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiIO.c (tui_initialize_io): Install tui_cont_sig signal handler
	if SIGCONT is defined.
	(tui_cont_sig): New function when SIGCONT is defined.
	(tui_setup_io): Save tty setting to restore by SIGCONT.
	
2001-07-22  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tui.h (tui_show_assembly): Declare.
	(tui_is_window_visible): Declare.
	* tui.c (tui_show_assembly): New function.
	(tui_is_window_visible): New function.
	(tui_get_command_dimension): New function.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c (tuiRefreshAll): Use clearok to force a refresh.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tui-file.c (tui_file_fputs): Use tui_puts.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiStack.c (tuiSetLocatorInfo): Cleanup.
	* tuiStack.h (tuiGetLocatorFilename): Declare.
	* tuiRegs.h (tuiFirstRegElementNoInLine): Declare.
	* tuiData.h (addToSourceWindows): Declare.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tui.c (tui_change_windows): New function.
	(tui_delete_other_windows): New function.
	(tui_initialize_readline): Bind them to C-X 1 and C-X 2.
	(tui_enable): Enable the keypad; call tui_update_variables.
	(strcat_to_buf_with_fmt): Remove.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

        * tui.h: Remove old declarations, add the new ones.
        * tui.c (tui_switch_mode): New function.
        (tui_initialize_readline): New function.
        (tui_enable): New function.
        (tui_disable): New function.
        (tuiGetLowDisassemblyAddress): Use CORE_ADDR, cleanup.
        (tui_vSelectSourceSymtab): Remove.
        (tuiInitWindows): Remove.
        (_initialize_tui): Remove.
        (_tuiReset): Keep but put arround #if 0.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

        * tuiIO.h: Remove old declarations and add the new ones.
        * tuiIO.c: New management for curses and gdb terminal interactions.
        (tui_tputs): Remove.
        (tuiTermSetup, tuiTermUnsetup): Remove, must use normal curses ops.
        (tuiBufferGetc, tui_vStartNewLines, _updateCommandInfo): Remove.
        (tui_owns_terminal): Remove.
        (tui_redisplay_readline): New function.
        (tui_puts): New function.
        (tui_prep_terminal): New function.
        (tui_deprep_terminal): New function.
        (tui_getc): Rename of tuiGetc, simplify and fix.
        (tui_setup_io): New function.
        (tui_initialize_io): New function.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiRegs.c (tuiDisplayRegistersFrom): Call touchwin.
	(_tuiRegisterFormat): Reduce size of format result.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiGeneralWin.c (boxWin): Use the tui configuration variables.
	* tuiWin.h: Declare the new variables.
	* tuiWin.c (_initialize_tuiWin): Create TUI configuration variables.
	(tui_update_variables): New function.
	(translate): New function.
	(tui_border_kind_enums, tui_border_mode_enums): New tables.
	(tui_border_mode_translate): New table.
	(tui_border_kind_translate_*): New tables.
	(tui_active_border_mode): New variables.
	(tui_border_*): New variables.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c (_parseScrollingArgs): Fix uninitialized variable.
	(_makeVisibleWithNewHeight): Use TuiLineOrAddress type.

	* tuiStack.c (tuiShowFrameInfo): Use TuiLineOrAddress type.
	(tui_vUpdateLocatorFilename): Remove.
	* tuiStack.h: Update prototypes.

	* tuiSourceWin.c (tuiAddrIsDisplayed): New function.
	(tuiLineIsDisplayed): Split for address and line.
	(tuiUpdateSourceWindow): Use TuiLineOrAddress type.
	(tuiUpdateSourceWindowAsIs): Likewise.
	(tuiUpdateSourceWindowsWithAddr): Likewise.
	(tuiUpdateSourceWindowsWithLine): Likewise.
	(tuiHorizontalSourceScroll): Likewise.
	(tuiSetIsExecPointAt): Likewise.
	(tuiUpdateOnEnd): Likewise.
	* tuiSourceWin.h: Update prototypes.

	* tuiSource.c (tuiVerticalSourceScroll): Use TuiLineOrAddress type.
	(tuiShowSource): Likewise.
	(tuiVerticalSourceScroll): Likewise.
	* tuiSource.h (tuiShowSource): Update prototype.

	* tuiDisassem.c (tuiSetDisassemContent): Use CORE_ADDR for address.
	(tuiShowDisassem): Use TuiLineOrAddress type.
	(tuiShowDisassemAndUpdateSource): Likewise.
	(tuiVerticalDisassemScroll): Likewise.
	(tuiShowDisassemAsIs): Remove.
	* tuiDisassem.h (tuiSetDisassemContent): Update prototype.

	* tuiData.c (initWinInfo): Use CORE_ADDR for address.
	(clearWinDetail): Likewise.
	(displayableWinContentOf): Fix address conversion.
	(tuiNextWin): Fix crash when the window is not yet created.
	(partialWinByName): Likewise.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiSourceWin.h: Remove unused declarations.
	* tuiSourceWin.c (tui_vUpdateSourceWindowsWithAddr): Remove.
	(tui_vUpdateSourceWindowsWithLine): Remove.
	(tui_vAllSetHasBreakAt): Remove.

	* tuiLayout.h (tui_set_layout): Declare.
	(tui_vSetLayoutTo): Remove.
	(tui_vAddWinToLayout): Remove.
	* tuiLayout.c (_tuiLayout_command): Call tui_enable() to force TUI.
	(_tuiToggleLayout_command): Remove.
	(_tuiToggleSplitLayout_command): Remove.
	(_tuiLayout_command): Remove.
	(tui_vSetLayoutTo): Remove.
	(tui_vAddWinToLayout): Remove.

	* tuiDataWin.h (tui_vCheckDataValues): Remove.
	* tuiDataWin.c (tui_vCheckDataValues): Remove.

2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c (tuiStrDup): Remove, replaced by xstrdup.
	(_parseScrollingArgs): Use xstrdup.
	(_tuiScrollForward_command): Call tui_enable() to force TUI mode.
	(_tuiScrollBackward_command): Likewise.
	(_tuiScrollLeft_command): Likewise.
	(_tuiScrollRight_command): Likewise.
	(_tuiSetFocus): Likewise.
	(_tuiSetFocus_command): Likewise.
	(_tuiRefreshAll_command): Likewise.
	(_tuiSetTabWidth_command): Likewise.
	(_tuiSetWinHeight): Likewise.
	(_tuiSetWinHeight_command): Likewise.
	(_tuiXDBsetWinHeight): Likewise.
	(_tui_vSetFocus): Remove.
	(_tui_vSetWinHeight): Remove.
	(_tui_vXDBsetWinHeight): Remove.

2001-07-21  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiCommand.h: Remove unused declarations.
	* tuiCommand.c (tuiDispatchCtrlChar): Fix escape sequences.
	(tuiIncrCommandCharCountBy): Remove.
	(tuiDecrCommandCharCountBy): Remove.
	(tuiSetCommandCharCountTo): Remove.
	(tuiClearCommandCharCount): Remove.

2001-07-20  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c (_initialize_tuiWin): Always define the tui commands;
	create the tui class help.
	* tuiLayout.c (_initialize_tuiLayout): Always define the tui commands.
	* tuiRegs.c (_initialize_tuiRegs): Likewise.
	* tuiStack.c (_initialize_tuiStack): Likewise.

2001-07-19  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiDisassem.c (tuiVerticalDisassemScroll): Use CORE_ADDR.
	(tuiVerticalDisassemScroll): Likewise.
	(tuiShowDisassemAndUpdateSource): Check for null symtab to
	prevent a crash.

2001-07-18  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiIO.c (_tuiHandleResizeDuringIO): Call tuiRefreshAll.
	(tuiRead, tui_vread): Remove.
	
	* tui.c (va_catch_errors, tuiDo, tuiDoAndReturnToTop): Remove.
	(vcatch_errors, _tui_vDo): Remove.
	* tui.h (tuiDo, tuiDoAndReturnToTop): Remove.

	* tuiLayout.c (tuiSetLayout): Remove vcatch_errors.
	(tui_set_layout): Rename of _tuiSetLayoutTo, public.
	(_tuiToggleLayout_command): Merge with _tui_vToggleLayout_command.
	(_tuiToggleSplitLayout_command): Merge with _tui_vToggleSplitLayout_command.
	(_tuiLayout_command): Call tui_set_layout.

	* tuiRegs.c (_tuiScrollRegsBackward_command): Call tui_scroll.
	(_tuiScrollRegsForward_command): Likewise.
	(_tuiShowFloat_command): Call _tui_vShowRegisters_commandSupport.
	(_tuiShowGeneral_command): Likewise.
	(_tuiShowSpecial_command): Likewise.
	(_tuiToggleFloatRegs_command): Call tuiToggleFloatRegs.
	* tuiWin.c (tui_scroll): Rename of tui_vScroll, update parameters.
	(_tuiScrollForward_command): Call tui_scroll.
	(_tuiScrollBackward_command): Likewise.
	(_tuiScrollLeft_command): Likewise.
	(_tuiScrollRight_command): Likewise.
	(_tuiSetFocus_command): Call _tuiSetFocus.
	(_tuiRefreshAll_command): Call tuiRefreshAll.
	(_tuiSetWinHeight_command): Call _tuiSetWinHeight.
	(_tuiXDBsetWinHeight_command): Call _tuiXDBsetWinHeight.
	* tuiWin.h (tui_scroll): Rename of tui_vScroll, update parameters.

2001-07-18  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiData.h (TuiLocatorElement): Use CORE_ADDR for address member.
	(TuiLineOrAddress): Likewise.
	* tuiDisassem.c (tuiGetBeginAsmAddress): Use CORE_ADDR to specify
	an address.
	(tuiSetDisassemContent): Likewise.
	(tuiShowDisassem, tuiShowDisassemAndUpdateSource): Likewise.
	* tuiLayout.c (_extractDisplayStartAddr): Likewise.
	(tuiSetLayout): Likewise.
	* tuiSourceWin.c (tuiDisplayMainFunction): Likewise.
	(tuiUpdateSourceWindowsWithAddr): Likewise.
	(tuiUpdateSourceWindowsWithLine): Likewise.
	(tuiSetHasBreakAt): Likewise.
	* tuiStack.c (tuiSetLocatorInfo): Likewise.
	(tuiSwitchFilename): Likewise.
	(tuiUpdateLocatorInfoFromFrame): Likewise.
	(tuiSetLocatorContent): Likewise.
	(tuiShowFrameInfo): Likewise.	
	* tuiDisassem.h: Update prototypes to use CORE_ADDR.
	* tuiSourceWin.h: Likewise.
	* tuiStack.h: Likewise.

2001-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c: Add missing includes.
	(_makeVisibleWithNewHeight): Fix call to find_line_pc.
	* tuiLayout.c: Add missing includes.
	(_initAndMakeWin): Don't put curses in echo mode.
	(_extractDisplayStartAddr): Fix calls to find_line_pc.
	(_tuiLayout_command): Missing ',' in warning call.
	* tuiSourceWin.c (tuiUpdateSourceWindowsWithLine): Fix calls to
	find_line_pc.
	(tuiSetHasBreakAt): Check for null source file.

2001-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c (_tuiSetFocus): Replace subsetCompare with subset_compare.
	* tuiLayout.c (_tuiSetLayoutTo): Likewise.
	* tui.c (_tui_vToggle_command): Likewise.

2001-07-17  Elena Zannoni  <ezannoni@redhat.com>

	* tui-file.c: Add include of tuiIO.h, for tuiPuts_unfiltered.

2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiRegs.c (tuiDisplayRegistersFrom): Set scrollok to FALSE in
	each register window.
	(tuiCheckRegisterValues): Use REGISTER_RAW_SIZE to obtain the size
	of the register to check.
	(_tuiRegValueHasChanged): Likewise.
	(_tuiRegisterName): Use REGISTER_NAME.
	(tui_restore_gdbout): New function.
	(_tuiRegisterFormat): Use do_registers_info with gdb_stdout redirected
	to a string.
	(START_SPECIAL_REGS): Define.
	(_tuiGetRegisterRawValue): Use get_saved_register.
	(_tuiDisplayRegister): Fix clearing of register window.

2001-07-17  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tui-file.h (fputs_unfiltered_hook): Remove.
	* tui-file.c (tui_file_flush): Remove fputs_unfiltered_hook.
	(tui_file_fputs): Likewise; simplify

2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiStack.c: Add missing includes.
	(tuiShowFrameInfo): Don't crash when there is no symbol table 
	associated with the pc.
	* tuiSource.c (_hasBreak): Check for null source file.
	* tuiWin.c (tuiRefreshAll): Check for null winList[type].
	(_tuiSetFocus): Check for null dataWin.
	* tuiGeneralWin.c (refreshAll): Check for null list[type].

2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiDisassem.c (tuiSetDisassemContent): Use tm_print_insn_info
	to disassemble in the curses window.
	
2001-07-16  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tui.h: Cleanup to avoid inclusion of curses includes.
	(TuiGenWinInfo, TuiGenWinInfoPtr): Move from here.
	* tuiData.h: To here; include curses includes here.
	(setTermHeightTo): Rename of setTermHeight to follow reality.
	(setTermWidthTo): Likewise with setTermWidth.

2001-07-14  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c, tui.c, tuiCommand.c: Use ansi prototype.
	tuiIO.c, tuiData.c: Likewise.
	tuiDataWin.c, tuiDisassem.c: Likewise.
	tuiGeneralWin.c, tuiLayout.c: Likewise.
	tuiRegs.c, tuiSource.c: Likewise.
	tuiSouceWin.c, tuiStack.c: Likewise.

2001-07-14  Stephane Carrez  <Stephane.Carrez@worldnet.fr>

	* tuiWin.c, tuiWin.h, tui.c, tui.h, tuiCommand.c: Add FSF copyright.
	tuiCommand.h, tuiIO.c, tuiIO.h, tuiData.h, tuiData.c: Likewise.
	tuiDataWin.c, tuiDataWin.h, tuiDisassem.c, tuiDisassem.h: Likewise.
	tuiGeneralWin.c, tuiGeneralWin.h, tuiLayout.c, tuiLayout.h: Likewise.
	tuiRegs.c, tuiRegs.h, tuiSource.c, tuiSource.h: Likewise.
	tuiSouceWin.c, tuiSourceWin.h, tuiStack.c, tuiStack.h: Likewise.

2001-03-08  Andrew Cagney  <ac131313@redhat.com>

	* tuiRegs.c: Use NUM_REGS, not ARCH_NUM_REGS.

2001-03-06  Kevin Buettner  <kevinb@redhat.com>

	* tui-file.h: Update/correct copyright notice.

Wed Feb  7 19:54:27 2001  Andrew Cagney  <cagney@redhat.com>

	* tui-file.c: Add __FILE__ and __LINE__ parameter to calls to
 	internal_error.

2000-12-14  Kevin Buettner  <kevinb@redhat.com>

	* tui-file.c, tui.c, tuiData.c, tuiLayout.c: Replace occurrences
	of free() with xfree().

2000-06-22  Kevin Buettner  <kevinb@redhat.com>

	* tuiSourceWin.h: Eliminate use of PARAMS from this file.

2000-06-20  Kevin Buettner  <kevinb@redhat.com>

	* tuiLayout.c: Eliminate use of PARAMS from this file.

2000-06-17  Kevin Buettner  <kevinb@redhat.com>

	* tuiIO.c: Eliminate use of PARAMS from this file.

Thu May 25 14:46:20 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* tui-file.c: Include "tui.h", "tuiData.h", "tuiIO.h" and
 	"tuiCommand.h".
	(tui_file_fputs): Pass ``file'' and not ``stream'' to
 	tui_file_adjust_strbuf.

Thu May 25 16:58:01 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* tui.h: Include <ncurses.h> when available.
	* tui.c, tuiGeneralWin.c: Do not include <curses.h>.

Mon May 15 17:16:10 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in: Delete.

Tue Apr 18 15:32:15 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* Makefile.in (distclean, maintainer-clean, realclean,
 	mostlyclean): New targets.

Tue Feb  1 00:17:12 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* tui-file.c, tui-file.h, tuiDisassem.c, tuiIO.c, tuiIO.h,
 	tuiRegs.c: Update to reflect rename of gdb-file / GDB_FILE to
 	ui-file / ``struct ui_file''.

Mon Jan 31 18:12:43 2000  Andrew Cagney  <cagney@b1.cygnus.com>

	* tui-file.c (enum streamtype, struct tui_stream, tui_file_new,
 	tui_file_delete, tui_fileopen, tui_sfileopen, tui_file_isatty,
 	tui_file_rewind, tui_file_put, tui_file_fputs,
 	tui_file_get_strbuf, tui_file_adjust_strbuf, tui_file_flush,
 	fputs_unfiltered_hook): Move to here from ../utils.c

	* tui-file.h, tui-file.c: New files.

Mon Nov  8 17:47:37 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* tuiRegs.c (_tuiRegisterFormat), tuiDisassem.c
	(tuiSetDisassemContent): Replace gdb_file_init_astring with
 	tui_sfileopen.  Replace gdb_file_get_strbuf with
 	tui_file_get_strbuf.
	
Mon Nov  8 16:54:51 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* tuiRegs.c (_tuiRegisterFormat), tuiDisassem.c
 	(tuiSetDisassemContent): Repace gdb_file_deallocate with
 	gdb_file_delete. Replace gdb_file_init_astring with tui_sfileopen.

Fri Sep 17 19:34:38 1999  Andrew Cagney  <cagney@b1.cygnus.com>

	* tuiSource.c: Include "source.h".
 	(open_source_file, find_source_lines): Delete declarations.

1999-01-26  Jason Molenda  (jsm@bugshack.cygnus.com)

	* tui.h: Include stdarg.h instead of varargs.h if we're on an ISO Cish
	system.

Thu Dec 31 12:08:32 1998  David Taylor  <taylor@texas.cygnus.com>

	The following changes were made by Jim Blandy <jimb@cygnus.com>,
 	Edith Epstein <eepstein@cygnus.com>, Elena Zannoni
 	<ezannoni@cygnus.com> Stan Shebs <shebs@cygnus.com>, and David
 	Taylor <taylor@cygnus.com>, as part of the project to merge in
 	changes originally made by HP; HP did not create ChangeLog
 	entries.

	* Makefile.in: New file; we're merging HP's changes into GDB, and
 	we've moved the TUI files into a subdirectory, so we need a new
 	Makefile.

	* tui.c:
	#include <term.h>, if we have it, to get declarations for
 	the termcap functions on Solaris.
	(tgoto): Add external K&R declaration for this; Solaris doesn't
	bother to actually declare it in their header files.
	(_tuiReset): Ignore the #definition of TIOCGETC if USG is defined;
 	we'd rather use the USG mechanisms than the Berkeley mechanisms
 	(TIOCGETC is one of the Berkeley terminal control ioctls).
  	Apologies if this causes trouble later; this should all be handled
 	by autoconf...
	(strcat_to_buf, strcat_to_buf_with_fmt): New functions, moved here
 	from ../utils.h.
	(tuiFree): replace safe_free with free.
	(strcat_to_buf): new function, copied from utils.c.
	(tuiInit): Add ignored `argv0' argument, to match the type that
 	init_ui_hook expects; updated declaration.  Call the
 	initialize_tui_files function constructed above.  Initialize
 	flush_hook to NULL.
	(tuiInitWindows): Call tuiSetLocatorContent, to get the first
 	element of the locator window's content allocated.  This seems
 	wrong, because it must have been initialized somehow in HP's
 	sources, and we should do it the same way now.  But we do get
 	further before it segfaults.  [Postscript: HP didn't bother to
 	initialize it; they compile
	(va_catch_errors, vcatch_errors): Functions moved here from
 	../utils.c in HP's sources.  They're not used anywhere else.
	(xdb_style): Delete this variable, and remove all references to
 	it.  It's always true.
	(tuiInit, _tui_vDo): References removed.

	* tui.h:  Add prototypes.
	Don't #include "gendefs.h"; it's only used in the TUI.
	Integrate its contents into this file:
	#include <ansidecl.h> here.
	(Opaque, OpaqueFuncPtr): Typedefs moved to here.
	     
	* tuiCommand.c: #include "defs.h", so we get the appropriate
	definition of GDB_FILE.

	* tuiData.c
 	(freeWindow): replace safe_free with free.
	(tui_version): don't define it here; it's defined in main.c now.

	* tuiDisassem.c
	(tuiSetDisassemContent): Call strcat_address_numeric instead of
 	strcat_address.  Simplify the control structure. Use predefined
 	GDB function to print asm inst address.  Use GDB_FILE to collect
 	output into buffers.

	* tuiIO.c
	(tgoto): Add external K&R declaration for this here too.
	(tuiGetc, tuiTermSetup, tuiTermUnsetup): Same.
	(tuiPuts_unfiltered): change FILE to GDB_FILE.
	(tui_tputs): fix prototype for 3rd argument.

	* tuiIO.h (tuiPuts_unfiltered): change declaration.
     
	* tuiLayout.c 
	(_tuiSetLayoutTo): for displaying registers, hook up the HP code
	that decides which registers to display (i.e. single precision
	float, double precision float, general, special). Previously,
	only handled TUI_GENERAL_REGS. Now that the code is hooked up,
 	compiling with -z poses a problem. When the first layout command
	is 'layout regs', dataWin->detail is a NULL pointer, and gdb
	core dumps.

	* tuiLayout.c (_tuiSetLayoutTo): replace safe_free with free.

	* tuiRegs.c #include "defs.h" earlier, to avoid problems in
 	<stdarg.h>.  No idea exactly what's conflicting with what, but the
 	errors went away...
	(_tuiRegisterFormat): Change so that function creates a GDB_FILE
 	object, calls pa_do_strcat_registers_info, copies the register
 	info into a buffer, and deallocates the GDB_FILE object.  Remove
 	some code that is not executed.  Also, call to
 	pa_do_strcat_registers_info has an additional parameter,
 	precision.  This code requires some new per-target functions that
 	we don't want to merge.  Dyke it out, with #ifdef
 	TUI_EXTENDED_FORMATTERS.
	(_tuiSetSpecialRegsContent): this function was ifdefed out.
  	Hooked this up.
	(_tuiSetGeneralAndSpecialRegsContent): this function was ifdefed
 	out.  Hooked it up.
  	(IS_64BIT): Just define this to be zero; we're not merging in the
 	64-bit support.
	(tuiShowRegisters): Comment out all references to the "special"
 	regs; we don't have a distinction between the "special" and
 	"non-special" regs in most of our machine descriptions.  This code
 	is PA-specific in other ways as well, and needs to be redesigned
 	to be portable to other processors.

	* tuiWin.c: #include <string.h>, to get a declaration for
	strchr.
 
	* tui.c, tuiCommand.c, tuiData.c, tuiDataWin.c, tuiDisassem.c,
 	tuiGeneralWin.c, tuiIO.c, tuiLayout.c, tuiRegs.c, tuiSource.c,
 	tuiSourceWin.c, tuiStack.c, tuiWin.c: New files (from HP).  Changed
 	bool to int throughout.  Re-indented, GNU style.

	* tui.h, tuiCommand.h, tuiData.h, tuiDataWin.h, tuiDisassem.h,
 	tuiGeneralWin.h, tuiIO.h, tuiLayout.h, tuiRegs.h, tuiSource.h,
 	tuiSourceWin.h, tuiStack.h, tuiWin.h: new files (from HP).
  	Changed bool to int throughout.
