/* PSPP - computes sample statistics.
Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
- Written by Ben Pfaff <blp@gnu.org>.
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
/* A list of driver classes. */
struct outp_driver_class_list
{
- struct outp_class *class;
+ const struct outp_class *class;
struct outp_driver_class_list *next;
};
-struct outp_driver_class_list *outp_class_list;
-struct outp_driver *outp_driver_list;
+static struct outp_driver_class_list *outp_class_list;
+static struct outp_driver *outp_driver_list;
char *outp_title;
char *outp_subtitle;
/* Add a class to the class list. */
static void
-add_class (struct outp_class *class)
+add_class (const struct outp_class *class)
{
struct outp_driver_class_list *new_list = xmalloc (sizeof *new_list);
{
extern struct outp_class ascii_class;
extern struct outp_class postscript_class;
- extern struct outp_class html_class;
char def[] = "default";
init_fn = fn_search_path (fn_getenv_default ("STAT_OUTPUT_INIT_FILE",
"devices"),
fn_getenv_default ("STAT_OUTPUT_INIT_PATH",
- config_path),
- NULL);
-
+ config_path));
+
ds_init_empty (&line);
if (init_fn == NULL)
code and stores subcategory in *SUBCAT on success. Returns -1
on failure. */
int
-outp_match_keyword (const char *s, struct outp_option *tab, int *subcat)
+outp_match_keyword (const char *s, const struct outp_option *tab, int *subcat)
{
for (; tab->keyword != NULL; tab++)
if (!strcmp (s, tab->keyword))
/* Stores the dimensions in 1/72000" units of paper identified by
SIZE, which is of form `HORZ x VERT' or `HORZ by VERT' where each
- of HORZ and VERT are dimensions, into *H and *V. Return nonzero on
+ of HORZ and VERT are dimensions, into *H and *V. Return true on
success. */
-static int
+static bool
internal_get_paper_size (char *size, int *h, int *v)
{
char *tail;
size++;
*h = outp_evaluate_dimension (size, &tail);
if (tail == NULL)
- return 0;
+ return false;
while (isspace ((unsigned char) *tail))
tail++;
if (*tail == 'x')
else
{
error (0, 0, _("`x' expected in paper size `%s'"), size);
- return 0;
+ return false;
}
*v = outp_evaluate_dimension (tail, &tail);
if (tail == NULL)
if (*tail)
{
error (0, 0, _("trailing garbage `%s' on paper size `%s'"), tail, size);
- return 0;
+ return false;
}
- return 1;
+ return true;
}
/* Stores the dimensions, in 1/72000" units, of paper identified by
SIZE into *H and *V. SIZE may be a pair of dimensions of form `H x
V', or it may be a case-insensitive paper identifier, which is
- looked up in the `papersize' configuration file. Returns nonzero
+ looked up in the `papersize' configuration file. Returns true
on success. May modify SIZE. */
/* Don't read further unless you've got a strong stomach. */
-int
+bool
outp_get_paper_size (char *size, int *h, int *v)
{
struct paper_size
int line_number = 0;
bool free_it = false;
- int result = 0;
+ bool result = false;
char *ep;
while (isspace ((unsigned char) *size))
pprsz_fn = fn_search_path (fn_getenv_default ("STAT_OUTPUT_PAPERSIZE_FILE",
"papersize"),
fn_getenv_default ("STAT_OUTPUT_INIT_PATH",
- config_path),
- NULL);
-
+ config_path));
+
ds_init_empty (&line);
if (pprsz_fn == NULL)
struct outp_driver *
outp_drivers (struct outp_driver *d)
{
-#if DEBUGGING
- struct outp_driver *orig_d = d;
-#endif
-
for (;;)
{
if (d == NULL)