/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2007 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
static int disabled_devices;
static void destroy_driver (struct outp_driver *);
-static void configure_driver_line (struct substring);
static void configure_driver (const struct substring, const struct substring,
const struct substring, const struct substring);
outp_configure_vec = n;
}
-/* Checks that outp_configure_vec is empty, bitches & clears it if it
- isn't. */
+/* Checks that outp_configure_vec is empty, complains and clears
+ it if it isn't. */
static void
check_configure_vec (void)
{
struct outp_names *n = search_names (cp, ep);
if (n)
{
- configure_driver_line (ds_ss (&line));
+ outp_configure_driver_line (ds_ss (&line));
delete_name (n);
}
}
outp_done (void)
{
struct outp_driver_class_list *n = outp_class_list ;
+ outp_configure_clear ();
destroy_list (&outp_driver_list);
while (n)
case '7':
out = c - '0';
while (ss_first (*s) >= '0' && ss_first (*s) <= '7')
- out = c * 8 + (ss_get_char (s) - '0');
+ out = out * 8 + (ss_get_char (s) - '0');
break;
case 'x':
case 'X':
d->class = c->class;
d->name = ss_xstrdup (driver_name);
d->page_open = false;
- d->device = OUTP_DEV_NONE;
+ d->device = device;
d->cp_x = d->cp_y = 0;
d->ext = NULL;
d->prc = NULL;
DRIVERNAME:CLASSNAME:DEVICETYPE:OPTIONS
Adds a driver to outp_driver_list pursuant to the specification
provided. */
-static void
-configure_driver_line (struct substring line_)
+void
+outp_configure_driver_line (struct substring line_)
{
struct string line = DS_EMPTY_INITIALIZER;
struct substring tokens[4];
return d;
}
-/* Enables (if ENABLE is nonzero) or disables (if ENABLE is zero) the
+/* Enables (if ENABLE is true) or disables (if ENABLE is false) the
device(s) given in mask DEVICE. */
void
-outp_enable_device (int enable, int device)
+outp_enable_device (bool enable, int device)
{
if (enable)
disabled_devices &= ~device;
outp_open_page (d);
}
+/* Flushes output to screen devices, so that the user can see
+ output that doesn't fill up an entire page. */
+void
+outp_flush (struct outp_driver *d)
+{
+ if (d->device & OUTP_DEV_SCREEN && d->class->flush != NULL)
+ {
+ outp_close_page (d);
+ d->class->flush (d);
+ }
+}
+
/* Returns the width of string S, in device units, when output on
device D. */
int