xref: /netbsd-src/external/gpl3/gdb.old/dist/gdb/tui/tui-command.c (revision 8b657b0747480f8989760d71343d6dd33f8d4cf9)
1 /* Specific command window processing.
2 
3    Copyright (C) 1998-2023 Free Software Foundation, Inc.
4 
5    Contributed by Hewlett-Packard Company.
6 
7    This file is part of GDB.
8 
9    This program is free software; you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation; either version 3 of the License, or
12    (at your option) any later version.
13 
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18 
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
21 
22 #include "defs.h"
23 #include "tui/tui.h"
24 #include "tui/tui-data.h"
25 #include "tui/tui-win.h"
26 #include "tui/tui-io.h"
27 #include "tui/tui-command.h"
28 #include "tui/tui-wingeneral.h"
29 
30 #include "gdb_curses.h"
31 
32 /* See tui-command.h.  */
33 
34 void
35 tui_cmd_window::resize (int height_, int width_, int origin_x, int origin_y)
36 {
37   width = width_;
38   height = height_;
39   x = origin_x;
40   y = origin_y;
41 
42   if (handle == nullptr)
43     make_window ();
44   else
45     {
46       /* Another reason we don't call the base class method here is
47 	 that for the command window in particular, we want to avoid
48 	 destroying the underlying handle.  We don't currently track
49 	 the contents of this window, and so have no way to re-render
50 	 it.  However we can at least move it and keep the old size if
51 	 wresize isn't available.  */
52 #ifdef HAVE_WRESIZE
53       wresize (handle.get (), height, width);
54 #endif
55       mvwin (handle.get (), y, x);
56       wmove (handle.get (), 0, 0);
57     }
58 }
59 
60 /* See tui-command.h.  */
61 
62 void
63 tui_refresh_cmd_win (void)
64 {
65   WINDOW *w = TUI_CMD_WIN->handle.get ();
66 
67   tui_wrefresh (w);
68 
69   /* FIXME: It's not clear why this is here.
70      It was present in the original tui_puts code and is kept in order to
71      not introduce some subtle breakage.  */
72   fflush (stdout);
73 }
74