#include <stdint.h>
#include <stdlib.h>
-#include "data/file-name.h"
#include "data/settings.h"
#include "language/command.h"
#include "language/lexer/lexer.h"
"it\nunder certain conditions; type \"show copying.\" to see the "
"conditions.\nThere is ABSOLUTELY NO WARRANTY for PSPP; type \"show "
"warranty.\" for details.\n", stdout);
- puts (stat_version);
- journal_enable ();
+ puts (announced_version);
+ journal_init ();
}
static struct terminal_reader *
return UP_CAST (r, struct terminal_reader, reader);
}
+
/* Older libreadline versions do not provide rl_outstream.
However, it is almost always going to be the same as stdout. */
#if ! HAVE_RL_OUTSTREAM
# define rl_outstream stdout
#endif
+
+#if HAVE_READLINE
/* Similarly, rl_echo_signal_char is fairly recent.
We provide our own crude version if it is not present. */
#if ! HAVE_RL_ECHO_SIGNAL_CHAR
static void
rl_echo_signal_char (int sig)
{
+#if HAVE_TERMIOS_H
struct termios t;
if (0 == tcgetattr (0, &t))
{
cc_t c = t.c_cc[VINTR];
-
+
if (c >= 0 && c <= 'Z' - 'A')
fprintf (rl_outstream, "^%c", 'A' + c - 1);
else
fprintf (rl_outstream, "%c", c);
}
else
+#endif
fprintf (rl_outstream, "^C");
fflush (rl_outstream);
-}
+}
+#endif
#endif
static int pfd[2];
static bool sigint_received ;
-static void
-handler (int sig)
-{
- rl_end = 0;
-
- write (pfd[1], "x", 1);
- rl_echo_signal_char (sig);
-}
-
-/*
+/*
A function similar to getc from stdio.
However this one may be interrupted by SIGINT.
If that happens it will return EOF and the global variable
#if HAVE_READLINE
+static void
+handler (int sig)
+{
+ rl_end = 0;
+
+ write (pfd[1], "x", 1);
+ rl_echo_signal_char (sig);
+}
+
+
static void
readline_init (void)
{
free (history_file);
}
-/* Prompt the user for a line of input and return it in LINE.
+/* Prompt the user for a line of input and return it in LINE.
Returns true if the LINE should be considered valid, false otherwise.
*/
static bool
fflush (stdout);
ds_init_empty (&string);
ds_read_line (&string, stdin, SIZE_MAX);
-
+
*line = string.ss;
-
+
return false;
}
#endif /* !HAVE_READLINE */