X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fterminal%2Fterminal-reader.c;h=3225678e8707b28a0dba95064d93fae4abf6b6f0;hb=af8622f11c920a03269ad489617d86bfd568b287;hp=071e435eca6f572809331c84d2cd2fe493c1b8c5;hpb=db2d3bd93b133e061510b023a7ade539ab0aad25;p=pspp diff --git a/src/ui/terminal/terminal-reader.c b/src/ui/terminal/terminal-reader.c index 071e435eca..3225678e87 100644 --- a/src/ui/terminal/terminal-reader.c +++ b/src/ui/terminal/terminal-reader.c @@ -22,6 +22,7 @@ #include #include +#include "libpspp/str.h" #if HAVE_READLINE #include @@ -188,14 +189,12 @@ static struct lex_reader_class terminal_reader_class = struct lex_reader * terminal_reader_create (void) { - struct terminal_reader *r; - if (!n_terminal_readers++) readline_init (); - r = xzalloc (sizeof *r); + struct terminal_reader *r = XZALLOC (struct terminal_reader); r->reader.class = &terminal_reader_class; - r->reader.syntax = LEX_SYNTAX_INTERACTIVE; + r->reader.syntax = SEG_MODE_INTERACTIVE; r->reader.error = LEX_ERROR_TERMINAL; r->reader.file_name = NULL; r->s = ss_empty (); @@ -228,6 +227,9 @@ readline_prompt (enum prompt_style style) case PROMPT_DO_REPEAT: return "DO REPEAT> "; + + case PROMPT_DEFINE: + return "DEFINE> "; } NOT_REACHED (); @@ -408,7 +410,7 @@ command_generator (const char *text, int state) if (state == 0) cmd = NULL; name = cmd_complete (text, &cmd); - return name ? xstrdup (name) : NULL; + return xstrdup_if_nonnull (name); } #else /* !HAVE_READLINE */