#endif
static const char *progname = "cdecl99";
-static bool interactive = true;
+static bool batch_mode;
void print_error(const char *fmt, ...)
{
va_list(ap);
- if (!interactive)
+ if (batch_mode)
fprintf(stderr, "%s: ", progname);
fprintf(stderr, "%s", _("error: "));
printf(_("Report bugs to <%s>.\n"), PACKAGE_BUGREPORT);
}
-static int repl_cmdline(unsigned count, char **commands)
-{
- int ret = 0;
- unsigned i;
-
- for (i = 0; i < count; i++) {
- int rc = run_command(commands[i], false);
- if (rc < 0)
- ret = -1;
- else if (rc > 0)
- break;
- }
-
- return ret;
-}
-
static int do_getline(char **linebuf, size_t *n)
{
ssize_t rc;
return 1;
}
-static int do_readline(char **linebuf, size_t *n, int interactive)
+static int do_readline(char **linebuf, size_t *n, int batch)
{
#if !HAVE_READLINE
- if (interactive) {
+ if (!batch) {
fputs("> ", stdout);
fflush(stdout);
}
return do_getline(linebuf, n);
#else
- if (!interactive)
+ if (batch)
return do_getline(linebuf, n);
free(*linebuf);
#endif
}
-static int repl(int interactive)
+static int repl(int batch)
{
char *line = NULL;
int ret = 0;
size_t n;
- while (do_readline(&line, &n, interactive)) {
- int rc = run_command(line, interactive);
+ while (do_readline(&line, &n, batch)) {
+ int rc = run_command(line, batch);
if (rc > 0)
break;
else if (rc < 0)
- ret = -!interactive;
+ ret = -batch;
}
free(line);
return ret;
}
+static int repl_cmdline(unsigned count, char **commands)
+{
+ int ret = 0;
+ unsigned i;
+
+ for (i = 0; i < count; i++) {
+ int rc = run_command(commands[i], true);
+ if (rc < 0)
+ ret = -1;
+ else if (rc > 0)
+ break;
+ }
+
+ return ret;
+}
+
/* Initialize gettext */
static void init_i18n(void)
{
quiet = 1;
break;
case 'b':
- interactive = false;
+ batch_mode = true;
break;
case 'i':
- interactive = true;
+ batch_mode = false;
break;
case 'f':
filename = optarg;
/* --filename and --execute imply --batch. */
if (filename || execute)
- interactive = false;
+ batch_mode = true;
/* --batch implies --quiet */
- if (interactive && !quiet)
+ if (!batch_mode && !quiet)
print_version();
/* --execute supersedes --filename */
if (execute)
rc = repl_cmdline(execute, argv);
else
- rc = repl(interactive);
+ rc = repl(batch_mode);
if (rc != 0)
return EXIT_FAILURE;