Update copyright year range in all GDB files.
[deliverable/binutils-gdb.git] / gdb / tui / tui-out.c
CommitLineData
2611b1a5 1/* Output generating routines for GDB CLI.
349c5d5f 2
42a4f53d 3 Copyright (C) 1999-2019 Free Software Foundation, Inc.
349c5d5f 4
2611b1a5
SC
5 Contributed by Cygnus Solutions.
6 Written by Fernando Nasser for Cygnus.
7
8 This file is part of GDB.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
a9762ec7 12 the Free Software Foundation; either version 3 of the License, or
2611b1a5
SC
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
a9762ec7 21 along with this program. If not, see <http://www.gnu.org/licenses/>. */
2611b1a5
SC
22
23#include "defs.h"
24#include "ui-out.h"
112e8700 25#include "tui-out.h"
2611b1a5 26#include "tui.h"
2611b1a5 27
1cc6d956 28/* Output an int field. */
2611b1a5 29
112e8700
SM
30void
31tui_ui_out::do_field_int (int fldno, int width, ui_align alignment,
32 const char *fldname, int value)
2611b1a5 33{
112e8700 34 if (suppress_output ())
2611b1a5
SC
35 return;
36
37 /* Don't print line number, keep it for later. */
112e8700 38 if (m_start_of_line == 0 && strcmp (fldname, "line") == 0)
2611b1a5 39 {
112e8700
SM
40 m_start_of_line++;
41 m_line = value;
2611b1a5
SC
42 return;
43 }
112e8700 44 m_start_of_line++;
2611b1a5 45
112e8700 46 cli_ui_out::do_field_int (fldno, width, alignment, fldname, value);
2611b1a5
SC
47}
48
0a8fce9a
PA
49/* Other cli_field_* end up here so alignment and field separators are
50 both handled by tui_field_string. */
2611b1a5 51
112e8700
SM
52void
53tui_ui_out::do_field_string (int fldno, int width, ui_align align,
cbe56571
TT
54 const char *fldname, const char *string,
55 ui_out_style_kind style)
2611b1a5 56{
112e8700 57 if (suppress_output ())
2611b1a5
SC
58 return;
59
112e8700 60 if (fldname && m_line > 0 && strcmp (fldname, "fullname") == 0)
2611b1a5 61 {
112e8700
SM
62 m_start_of_line++;
63 if (m_line > 0)
2611b1a5 64 {
112e8700 65 tui_show_source (string, m_line);
2611b1a5
SC
66 }
67 return;
68 }
69
112e8700 70 m_start_of_line++;
2611b1a5 71
cbe56571 72 cli_ui_out::do_field_string (fldno, width, align, fldname, string, style);
2611b1a5
SC
73}
74
112e8700
SM
75void
76tui_ui_out::do_field_fmt (int fldno, int width, ui_align align,
77 const char *fldname, const char *format,
78 va_list args)
2611b1a5 79{
112e8700 80 if (suppress_output ())
2611b1a5
SC
81 return;
82
112e8700 83 m_start_of_line++;
2611b1a5 84
112e8700 85 cli_ui_out::do_field_fmt (fldno, width, align, fldname, format, args);
2611b1a5
SC
86}
87
112e8700
SM
88void
89tui_ui_out::do_text (const char *string)
2611b1a5 90{
112e8700 91 if (suppress_output ())
2611b1a5 92 return;
112e8700
SM
93
94 m_start_of_line++;
95 if (m_line > 0)
2611b1a5
SC
96 {
97 if (strchr (string, '\n') != 0)
98 {
112e8700
SM
99 m_line = -1;
100 m_start_of_line = 0;
2611b1a5
SC
101 }
102 return;
103 }
104 if (strchr (string, '\n'))
112e8700 105 m_start_of_line = 0;
2611b1a5 106
112e8700 107 cli_ui_out::do_text (string);
2611b1a5
SC
108}
109
112e8700
SM
110tui_ui_out::tui_ui_out (ui_file *stream)
111: cli_ui_out (stream, 0),
112 m_line (0),
113 m_start_of_line (-1)
2611b1a5 114{
2611b1a5
SC
115}
116
112e8700
SM
117tui_ui_out *
118tui_out_new (struct ui_file *stream)
2611b1a5 119{
112e8700 120 return new tui_ui_out (stream);
2611b1a5 121}
This page took 3.614738 seconds and 4 git commands to generate.