aboutsummaryrefslogtreecommitdiff
path: root/gdb/event-top.c
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2022-12-16 12:45:40 -0700
committerTom Tromey <tom@tromey.com>2023-02-24 11:52:48 -0700
commit356628ee2a1ac34e705697967105dfbbcd7fd033 (patch)
tree67fc6b51effc2743b2514fa3767fd1eded5c1322 /gdb/event-top.c
parent71a64d8ba873b5618e357e85d6536d6fdd466aa6 (diff)
downloadfsf-binutils-gdb-356628ee2a1ac34e705697967105dfbbcd7fd033.zip
fsf-binutils-gdb-356628ee2a1ac34e705697967105dfbbcd7fd033.tar.gz
fsf-binutils-gdb-356628ee2a1ac34e705697967105dfbbcd7fd033.tar.bz2
Don't use struct buffer in event-top.c
This changes event-top.c to use std::string rather than struct buffer. This isn't completely ideal, in that it requires a copy of the string to be made.
Diffstat (limited to 'gdb/event-top.c')
-rw-r--r--gdb/event-top.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/gdb/event-top.c b/gdb/event-top.c
index 1498470..f0a3f0d 100644
--- a/gdb/event-top.c
+++ b/gdb/event-top.c
@@ -36,7 +36,6 @@
#include "gdbcmd.h" /* for dont_repeat() */
#include "annotate.h"
#include "maint.h"
-#include "gdbsupport/buffer.h"
#include "ser-event.h"
#include "gdbsupport/gdb_select.h"
#include "gdbsupport/gdb-sigmask.h"
@@ -868,12 +867,9 @@ void
gdb_readline_no_editing_callback (gdb_client_data client_data)
{
int c;
- char *result;
- struct buffer line_buffer;
+ std::string line_buffer;
struct ui *ui = current_ui;
- buffer_init (&line_buffer);
-
FILE *stream = ui->instream != nullptr ? ui->instream : ui->stdin_stream;
gdb_assert (stream != nullptr);
@@ -893,32 +889,28 @@ gdb_readline_no_editing_callback (gdb_client_data client_data)
if (c == EOF)
{
- if (line_buffer.used_size > 0)
+ if (!line_buffer.empty ())
{
/* The last line does not end with a newline. Return it, and
if we are called again fgetc will still return EOF and
we'll return NULL then. */
break;
}
- xfree (buffer_finish (&line_buffer));
ui->input_handler (NULL);
return;
}
if (c == '\n')
{
- if (line_buffer.used_size > 0
- && line_buffer.buffer[line_buffer.used_size - 1] == '\r')
- line_buffer.used_size--;
+ if (!line_buffer.empty () && line_buffer.back () == '\r')
+ line_buffer.pop_back ();
break;
}
- buffer_grow_char (&line_buffer, c);
+ line_buffer += c;
}
- buffer_grow_char (&line_buffer, '\0');
- result = buffer_finish (&line_buffer);
- ui->input_handler (gdb::unique_xmalloc_ptr<char> (result));
+ ui->input_handler (make_unique_xstrdup (line_buffer.c_str ()));
}