DEFINE
[pspp] / src / ui / terminal / terminal-reader.c
index 071e435eca6f572809331c84d2cd2fe493c1b8c5..e418ec7e086375f0eb8d6606754595fdc3a23a1c 100644 (file)
@@ -22,6 +22,7 @@
 #include <stdbool.h>
 #include <stdio.h>
 
+#include "libpspp/str.h"
 
 #if HAVE_READLINE
 #include <readline/readline.h>
@@ -195,7 +196,7 @@ terminal_reader_create (void)
 
   r = xzalloc (sizeof *r);
   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 +229,9 @@ readline_prompt (enum prompt_style style)
 
     case PROMPT_DO_REPEAT:
       return "DO REPEAT> ";
+
+    case PROMPT_DEFINE:
+      return "DEFINE> ";
     }
 
   NOT_REACHED ();
@@ -408,7 +412,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 */