2003-09-27  Andrew Cagney  <cagney@redhat.com>

	* tuiRegs.c: Rename REGISTER_RAW_SIZE to
	DEPRECATED_REGISTER_RAW_SIZE.

2003-09-13  Andrew Cagney  <cagney@redhat.com>

	* tui.h (struct ui_file): Add opaque declaration.

2003-08-04  Daniel Jacobowitz  <drow@mvista.com>

	* tui-interp.c: Include "cli-out.h".
	(tui_resume): Update tui_old_uiout's stream to gdb_stdout.

2003-07-24  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (tui_rl_other_window): New function to switch the TUI active
	window and give focus to a next window.
	(tui_initialize_readline): Bind it to c-x o.
	(tui_rl_next_keymap): Activate TUI mode when entering SingleKey mode.

2003-07-23  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (tui_enable): Call tuiRefreshAll to make sure the window
	is accurate.

2003-07-23  Stephane Carrez  <stcarrez@nerim.fr>

	* tui-interp.c (tui_resume): Enable tui when we expected it.
	(tui_suspend): Remember in which TUI mode we are.
	(_initialize_tui_interp): Use the tui interpreter even when no
	other interpreter was set and define in which TUI mode to start.

2003-06-28  Daniel Jacobowitz  <drow@mvista.com>

	* tui-out.c (tui_ui_out_impl): Add NULL for redirect member.

2003-06-22  Daniel Jacobowitz  <drow@mvista.com>

	* tui-hooks.c: Update include order.
	* 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.

2003-06-12  Andreas Schwab  <schwab@suse.de>

	* tuiSource.c (tuiVerticalSourceScroll): Use get_frame_pc.
	* tuiSourceWin.c (tuiHorizontalSourceScroll): Likewise.
	* tuiStack.c (tui_get_function_from_frame): Likewise.
	(tuiShowFrameInfo): Likewise.
	* tuiWin.c (_makeVisibleWithNewHeight): Likewise.
	* tui-hooks.c (tui_selected_frame_level_changed_hook): Likewise.
	* tuiDisassem.c (tuiVerticalDisassemScroll): Likewise.
	Include "disasm.h".

2003-05-08  Andrew Cagney  <cagney@redhat.com>

	* tuiRegs.c: Use MAX_REGISTER_SIZE instead of
	MAX_REGISTER_RAW_SIZE.

2003-05-03  Andrew Cagney  <cagney@redhat.com>

	* tuiDisassem.c (tui_disassemble): Call gdb_print_insn, instead of
	TARGET_PRINT_INSN.  Do not initialize a disassemble_info object.

2003-04-30  Andrew Cagney  <cagney@redhat.com>

	* tuiDisassem.c (tui_disassemble): Use
	"deprecated_tm_print_insn_info" instead of TARGET_PRINT_INSN_INFO,
	add comment.

2003-03-14  Andrew Cagney  <cagney@redhat.com>

	* tuiRegs.c (_tuiGetRegisterRawValue): Use frame_read_register,
	instead of get_saved_register.

2003-03-13  Stephane Carrez  <stcarrez@nerim.fr>

	* tui-out.c (tui_out_data): Fix typedef.

2003-03-08  Andrew Cagney  <cagney@redhat.com>

	* tui-out.c: Update copyright.
	(tui_out_data): Define typedef.  Use instead of ui_out_data.

2003-02-14  Andrew Cagney  <ac131313@redhat.com>

	* tui.c (tui_enable, tui_disable): Don't modify tui_version.
	(tui_is_window_visible, tui_get_command_dimension): Test
	tui_active instead of tui_version.
	* tuiData.h (tui_version): Delete declaration.
	* tui-hooks.c (tui_init_hook, tui_event_loop): Delete function,
	moved to "tui-interp.c".
	(tui_exit, tui_command_loop): Ditto.
	(_initialize_tui): Don't initialize init_ui_hook.  Initialize
	target_new_objfile_hook.
	* tui-interp.c: New file.

2003-02-12  Andrew Cagney  <ac131313@redhat.com>

	* tuiIO.c (tui_prep_terminal): Add one notused parameter.
	* tui.c (tui_rl_switch_mode): Add two notused parameters.
	(tui_rl_change_windows, tui_rl_next_keymap): Ditto.
	(tui_rl_delete_other_windows): Ditto.
	(tui_rl_change_windows, tui_rl_delete_other_windows): Update
	calls.

2002-12-08  Elena Zannoni  <ezannoni@redhat.com>

       Import of readline 4.3.
       Fix PR gdb/675
       * tuiWin.c: Include readline/readline.h.
       (tui_update_gdb_sizes): Use accessor function rl_get_screen_size.
       (tuiResizeAll): Ditto.

2002-12-06  Elena Zannoni  <ezannoni@redhat.com>

	* tuiStack.c (tuiShowFrameInfo): Fix typo.

2002-11-29  Andrew Cagney  <ac131313@redhat.com>

	* tui/tui-hooks.c: Update to use deprecated_selected_frame.
	* tui/tui.c, tui/tuiDisassem.c, tui/tuiRegs.c: Ditto.
	* tui/tuiSource.c, tui/tuiSourceWin.c, tui/tuiWin.c: Ditto.

2002-11-28  Andrew Cagney  <ac131313@redhat.com>

	* tuiStack.c (tuiShowFrameInfo): Use find_frame_sal instead of
	find_pc_line.

2002-11-23  Andrew Cagney  <ac131313@redhat.com>

	* tuiStack.c (tuiShowFrameInfo): Use get_frame_type instead of
	deprecated_frame_in_dummy.  Fix coding style.

2002-11-21  Stephane Carrez  <stcarrez@nerim.fr>

	* tui-hooks.c (tui_init_hook): Don't enable the TUI if a specific
	interpreter is installed.

2002-11-18  Andrew Cagney  <ac131313@redhat.com>

	* tuiStack.c (tuiShowFrameInfo): Use get_frame_type instead of
	signal_handler_caller.
	
2002-11-10  Andrew Cagney  <ac131313@redhat.com>

	* tuiStack.c (tuiShowFrameInfo): Replace frame_in_dummy with
	deprecated_frame_in_dummy.

2002-10-26  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiIO.c (tui_prep_terminal): Save the prompt registered in readline.
	(tui_redisplay_readline): Use the last saved prompt.
	(tui_rl_saved_prompt): New.

2002-10-25  Stephane Carrez  <stcarrez@nerim.fr>

	Fix PR gdb/787
	* tuiWin.c (ACS_LRCORNER, ACS_LLCORNER, ACS_ULCORNER, ACS_URCORNER,
	ACS_HLINE, ACS_VLINE): Define if they don't exist.

2002-10-25  Stephane Carrez  <stcarrez@nerim.fr>

	Fix PR gdb/478
	* tuiIO.c (tui_initialize_io): Use setvbuf since this is portable.

2002-10-02  Elena Zannoni  <ezannoni@redhat.com>

	* tui-hooks.c (selected_frame_level_changed_hook): Use the one
	exported from frame.h.

2002-09-29  Elena Zannoni  <ezannoni@redhat.com>

	* tui.c (tui_show_source): Don't access current_source_symtab, use
	accessor function instead.  Include source.h and symtab.h
	* tuiDisassem.c (tuiShowDisassemAndUpdateSource,
	tuiVerticalDisassemScroll): Use accessor functions for current
	source line and symtab.  Include source.h.
	* tuiLayout.c (_extractDisplayStartAddr): Use accessor functions
	for current source line and symtab.  Include source.h.
	* tuiWin.c (_makeVisibleWithNewHeight): Ditto.
	* tuiSourceWin.c (tuiUpdateSourceWindowAsIs,
	tuiHorizontalSourceScroll): Ditto.
	* tuiSource.c (tuiVerticalSourceScroll): Ditto.

2002-09-13  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (tui_rl_switch_mode): Remove unecessary TUI switch printfs.
	(tui_initialize_readline): Allow to use space to leave SingleKey
	to enter one gdb command.
	(tui_enable): Restore the TUI keymap when we are back to TUI.
	(tui_disable): Restore normal keymap when leaving TUI.
	* tuiIO.c (tui_redisplay_readline): Restore the SingleKey mode
	when the buffer becomes empty and we are in tui_one_command_mode.

2002-09-13  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiIO.c (tui_setup_io): rl_already_prompted must be cleared
	when leaving TUI mode so that gdb prompt is displayed.

2002-09-13  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiStack.c (tui_make_status_line): Make sure the local buffer
	is large enough to hold the complete line.

2002-09-10  Stephane Carrez  <stcarrez@nerim.fr>

	* tui-hooks.c (tui_event_loop): New function.
	(tui_command_loop): New function to override gdb loop and make sure
	uiout is set according to TUI mode.
	(tui_command_loop): Install the specific TUI command hook.
	* tuiIO.c (tui_initialize_io): Initialize tui_old_uiout.
	(tui_uiout, tui_old_uiout): Make public.
	* tuiIO.h (tui_uiout, tui_old_uiout): Declare.

2002-09-04  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiIO.c (tui_putc): New function to print one character.
	(printable_part): New function from readline/complete.c.
	(PUTX): New macro, likewise.
	(print_filename): New function, likewise.
	(get_y_or_n): New function, likewise and adapted for TUI.
	(tui_rl_display_match_list): New function from readline/complete.c
	and writes on TUI command window.
	(tui_setup_io): Install or remove the readline hook
	rl_completion_display_matches_hook so that completion is written
	directly in TUI command window instead of in the TUI pipe.
	(tui_initialize_io): Use #ifdef TUI_USE_PIPE_FOR_READLINE for the
	TUI redirection pipe.
	(tui_getc): Likewise for call to tui_readline_output.
	(tui_readline_output): Likewise for function.
	* tui.c (tui_rl_startup_hook): Always take care of gdb prompt.

2002-09-02  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiWin.c (_newHeightOk): Fix compilation warnings.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiWin.c (_tuiAllWindowsInfo): Don't crash if the window
	is not displayed.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* tui-out.c (tui_out_new): Clear start_of_line.
	* tuiSource.c (tuiVerticalSourceScroll): Use print_source_lines
	to update the current source line.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* tui-hooks.c (tui_detach_hook): New hook to know when a process dies.
	(tui_install_hooks): Install it.
	(tui_remove_hooks): Remove it.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiData.h (FILE_PREFIX): Don't define.
	(blankStr, locationStr, breakStr): Don't declare.
	(breakLocationStr, nullStr, historyLimit, setHistoryLimitTo): Likewise.
	(displayableWinContentOf, displayableWinContentAt): Likewise.
	(winElementHeight, winByName, freeAllWindows): Likewise.

	* tuiData.c (blankStr, locationStr, breakStr): Remove.
	(breakLocationStr, nullStr, historyLimit, setHistoryLimitTo): Remove.
	(displayableWinContentOf, displayableWinContentAt): Remove.
	(winElementHeight, winByName, freeAllWindows): Remove.

2002-09-01  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiStack.c (tui_make_status_line): New function to create the
	status line.
	(tuiShowLocatorContent): Use it instead of displayableWinContentAt.
	* tuiData.h (PROC_PREFIX): Use "In:" to reduce length of prefix.
	(PC_PREFIX): Use upper case.
	(SINGLE_KEY, MIN_LINE_WIDTH, MIN_PROC_WIDTH): Define.
	(MAX_TARGET_WIDTH, MAX_PID_WIDTH): Define.

2002-08-31  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.h (tuiUpdateAllExecInfos): Don't declare.
	(tuiClearAllExecInfosContent): Likewise.
	(tuiEraseAllExecInfosContent): Ditto.
	(tuiUpdateSourceWindowsFromLocator): Ditto.
	* tuiSourceWin.c (tuiUpdateAllExecInfos): Remove.
	* tui.h (tui_vCheckDataValues): Don't declare.
	(tui_vStartNewLines, tui_vAllSetHasBreakAt): Likewise.
	(tui_vUpdateLocatorFilename, tui_vUpdateSourceWindowsWithAddr): Ditto.
	(tui_vShowFrameInfo): Ditto.

2002-08-31  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (tui_commands): Table of single key commands.
	(tui_rl_command_key): New function to execute gdb command.
	(tui_rl_command_mode): New function to temporarily leave SingleKey.
	(tui_rl_next_keymap): New function to enter/leave the SingleKey mode.
	(tui_rl_startup_hook): New function to avoid prompt display by
	readline functions.
	(tui_set_key_mode): New function to set the key mode and install
	the readline keymap.
	(tui_initialize_readline): Create TUI SingleKey readline map.
	(tui_enable): Install rl_startup_hook.
	(tui_disable): Remove it.
	* tui.h (enum tui_key_mode): Declare.
	(tui_set_key_mode, tui_current_key_mode): Declare.
	* tuiIO.c (tui_redisplay_readline): Don't display the prompt in
	SingleKey mode.
	* tuiIO.h (tui_redisplay_readline): Declare.

2002-08-31  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.c (tuiSetIsExecPointAt): Redraw the previous and
	current line.

2002-08-31  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSource.c (tuiSetSourceContent): Remove old breakpoint code.
	(_hasBreak): Remove.
	(tuiShowSource): Fix comment indentation.
	(tuiSourceIsDisplayed): Likewise.
	(tuiVerticalSourceScroll): Likewise.

2002-08-30  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.h (tui_update_all_breakpoint_info): Declare.
	(tui_update_breakpoint_info): Declare.
	(tuiSetHasBreakAt, tuiAllSetHasBreakAt): Remove.

	* tuiSourceWin.c (tuiUpdateSourceWindowAsIs): Update breakpoint
	information using tui_update_breakpoint_info.
	(tui_update_all_breakpoint_info): New function to refresh all
	execution windows.
	(tui_update_breakpoint_info): New function to recompute the status
	of exec info window from breakpoints.
	(tuiSetHasBreakAt, tuiAllSetHasBreakAt): Remove.
	(tuiSetExecInfoContent): Use the exec info flags computed by
	tui_update_breakpoint_info to display a short status about breakpoints.

	* tuiData.h (TuiExecInfoContent): New for exec info string.
	(TuiWhichElement): Use it.
	(TUI_BP_ENABLED, TUI_BP_DISABLED, TUI_BP_HIT): New defines.
	(TUI_BP_CONDITIONAL, TUI_BP_HARDWARE): New defines.
	(TUI_BP_HIT_POS, TUI_BP_BREAK_POS, TUI_EXEC_POS): Likewise.
	(TUI_EXECINFO_SIZE): Likewise.
	* tuiData.c (initContentElement): Clear exec info string.

	* tui-hooks.c (get_breakpoint): Remove.
	(tui_event_create_breakpoint): Call tui_update_all_breakpoint_info.
	(tui_event_delete_breakpoint): Likewise.
	(tui_event_modify_breakpoint): Likewise.

2002-08-29  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (tuiGetLowDisassemblyAddress): Moved from here.
	* tuiDisassem.c (tuiGetLowDisassemblyAddress): To here, and use
	tui_find_disassembly_address to find the starting address of
	disassemble window.

2002-08-28  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiDisassem.c (tui_disassemble): New function to disassemble
	several lines in a buffer.
	(tui_find_disassembly_address): New function to search backward
	or forward a disassembly line.
	(tuiSetDisassemContent): Use tui_disassemble to obtain the real
	content and format it in the window.
	(tuiShowDisassemAndUpdateSource): Remove unused locals.
	(tuiVerticalDisassemScroll): Use tui_find_disassembly_address to
	obtain the address to disassemble for the scrolling.
	* tuiDisassem.h (tuiGetBeginAsmAddress): Update.
	* tuiSourceWin.c (tuiUpdateSourceWindowAsIs): Don't pass symtab.

2002-08-28  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiIO.c (CTRL_CHAR): Redefine and use readline 4.3 definition.

2002-08-26  Stephane Carrez  <stcarrez@nerim.fr>

	Fix PR gdb/393:
	* tui.c (tui_disable): Update gdb's knowledge of its terminal
	using target_terminal_save_ours.
	(tui_enable): Likewise.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (tui_rl_switch_mode): Renames tui_switch_mode.
	(tui_rl_change_windows): Renames tui_change_windows.
	(tui_rl_delete_other_windows): Renames tui_delete_other_windows.
	(tui_initialize_readline): Update.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiDisassem.c (tuiSetDisassemContent): Use breakpoint_here_p.
	(_hasBreak): Remove.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiDisassem.c (tuiGetBeginAsmAddress): Use lookup_minimal_symbol
	to find symbol address.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.c (tui_display_main): Rename from tuiDisplayMainFunction
	and use tuiGetBeginAsmAddress.
	* tuiSourceWin.h (tui_display_main): Declare.
	* tui.h (tuiDisplayMainFunction): Remove.
	* tui-hooks.c (tui_new_objfile_hook): Update.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSource.h (m_tuiShowSourceAsIs): Remove macro.
	(tuiShowSourceAsIs): Don't declare.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tui-hooks.c (tui_selected_frame_level_changed_hook): Always update
	the frame position.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiStack.c (tuiSetLocatorContent): Remove.
	(tuiUpdateLocatorInfoFromFrame): Remove.
	(tui_set_locator_info): Allocate the content buffer if necessary.
	(tui_set_locator_filename): Call tui_set_locator_info directly.
	(tuiShowFrameInfo): Likewise and use find_pc_line instead of
	find_pc_symtab.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.c (tuiDisplayMainFunction): Update to use
	tuiUpdateLocatorFilename.
	* tuiStack.c (tuiSetLocatorInfo): Make it static.
	(tuiSetLocatorContent): Likewise.
	(tuiUpdateLocatorInfoFromFrame): Likewise.
	(tuiSwitchFilename): Remove.
	(tui_set_locator_filename): New function
	(tui_set_locator_info): Rename from tuiSetLocatorInfo to GNU-ify;
	use tui_set_locator_filename to record the filename.
	(tuiUpdateLocatorFilename): Likewise.
	(tuiUpdateLocatorInfoFromFrame): Update.
	(tuiSetLocatorContent): Likewise.
	* tuiStack.h (tuiClearLocatorContent): Don't declare.
	(tuiSetLocatorInfo, tuiSetLocatorContent): Likewise.
	(tuiUpdateLocatorInfoFromFrame, tuiSwitchFilename): Likewise.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.c (tuiSetHasBreakAt): Use filename for breakpoint
	comparison; cleanup.
	* tuiSource.c (tuiSetSourceContent): Set window title and filename.
	* tuiGeneralWin.c (boxWin): Print optional title on top of window.
	* tuiData.h (TuiSourceInfo): Add filename member.
	(TuiGenWinInfo): Add title member.
	* tuiData.c (initGenericPart): Clear title.
	(freeWindow): Free title and filename; remove unused locals.
	(initWinInfo): Clear filename.
	(tuiDelWindow): Free it; remove unused locals.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiStack.h (tuiGetLocatorFilename): Don't declare.
	(tuiUpdateLocatorDisplay): Likewise.
	* tuiStack.c (tuiGetLocatorFilename): Remove.
	(tuiShowFrameInfo): Use tuiSetLocatorContent and tuiShowLocatorContent
	instead of tuiUpdateLocatorDisplay.
	(tuiUpdateLocatorDisplay): Remove.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiStack.h (tuiClearLocatorDisplay): Don't declare.
	* tuiStack.c (tuiClearLocatorDisplay): Remove.
	(tuiShowLocatorContent): Use wclrtoeol to clear end of status line.
	(tuiUpdateLocatorDisplay): Don't call tuiClearLocatorDisplay.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiStack.c (tui_get_function_from_frame): Rename from 
	_getFuncNameFromFrame; use print_address_symbolic to get symbolic
	name of address.
	(tuiUpdateLocatorInfoFromFrame): Update.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiRegs.c (tuiDisplayRegistersFrom): Remove unused locals.
	(_tuiRegisterFormat, _tuiSetSpecialRegsContent): Likewise.
	(_tuiSetGeneralAndSpecialRegsContent): Likewise.
	(_tuiSetFloatRegsContent): Likewise.
	(_tuiRegisterName): Return a const char*.
	* tuiData.h (_TuiDataElement): Use const char* for name.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.h (tuiEraseAllSourceContent): Don't declare.
	(tuiShowAllExecInfosContent): Likewise.
	* tuiSourceWin.c (tuiEraseAllSourceContent): Remove.
	(tuiShowAllExecInfosContent): Remove.
	(tuiAllocSourceBuffer): Remove unused locals.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiStack.c (tui_update_command): Rename _tuiUpdateLocation_command
	to follow other gdb's command names; use execute_command; cleanup.
	(_initialize_tuiStack): Update.

2002-08-25  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiWin.h (tui_update_gdb_sizes): Declare.

2002-08-24  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (strcat_to_buf): Use const char* for source item.
	(tui_enable): Update the windows if there is a selected frame.
	* tui.h (strcat_to_buf): Update prototype.
	(strcat_to_buf_with_fmt): Remove.

2002-08-24  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiWin.c (tui_update_gdb_sizes): New function to tell gdb what
	is the size of command window.
	(tuiResizeAll): Call it instead of init_page_info.
	* tui.c (tui_enable): Call it to resize to TUI command window.
	(tui_disable): Likewise for plain screen.

2002-08-24  Stephane Carrez  <stcarrez@nerim.fr>

	* tui.c (tui_enable): Use tuiSetLayout instead of showLayout and
	use tuiShowFrameInfo instead of tuiSetLocatorContent.
	* tuiLayout.h (showLayout): Remove.
	* tuiLayout.c (_showSourceOrDisassemAndCommand): Remove unused locals.
	(_showSourceDisassemCommand): Likewise.
	(showLayout): Make it static.
	(lastLayout): Remove.

2002-08-24  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.c (tui_show_source_line): New function.
	(tuiShowSourceContent): Call it and avoid clearing the window before
	redrawing it.
	(tuiClearAllSourceWinsContent): Remove.
	* tuiSourceWin.h (tuiClearAllSourceWinsContent): Don't declare.
	* tuiWin.h (tuiClearWinFocus, tuiClearWinFocusFrom): Don't declare.
	* tuiWin.c (tuiClearWinFocus, tuiClearWinFocusFrom): Remove.
	(tuiRefreshAll): Don't clear the window.
	(_makeVisibleWithNewHeight): Don't clear locator line.
	(tuiResizeAll): Remove unused locals.
	(_tuiAdjustWinHeights): Likewise.
	(_makeInvisibleAndSetNewHeight): Likewise.
	(_newHeightOk): Likewise.
	* tuiLayout.c (showLayout): Don't clear source windows.
	(tuiSetLayout): Don't clear the window.
	(_initAndMakeWin): Likewise for status line.
	* tuiGeneralWin.c (makeVisible): Don't clear or refresh the window.
	(makeWindow): Likewise.
	(tuiClearWin): Remove.
	* tuiGeneralWin.h (tuiClearWin): Don't declare.

2002-08-24  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiSourceWin.c (tuiSrcWinIsDisplayed): Remove.
	(tuiAsmWinIsDisplayed): Remove.
	(tuiShowAllSourceWinsContent): Remove.
	(tuiUpdateOnEnd): Remove.
	* tuiGeneralWin.c (scrollWinForward): Remove.
	(scrollWinBackward): Remove.
	(_winResize): Don't declare.
	* tui.h (tuiUpdateOnEnd): Don't declare.
	(vcatch_errors, va_catch_errors): Likewise.
	* tuiSourceWin.h (tuiUpdateOnEnd): Likewise.
	(tuiShowAllSourceWinsContent): Likewise.
	* tuiGeneralWin.h (scrollWinForward): Likewise.
	(scrollWinBackward): Likewise.

2002-08-24  Stephane Carrez  <stcarrez@nerim.fr>

	* tuiRegs.c (_tuiRegisterFormat): Use gdbarch_print_registers_info.

2002-08-18  Daniel Jacobowitz  <drow@mvista.com>

	Fix PR gdb/655
	* tui.c: Disable <termio.h> include.

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.
