X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fhtml.c;h=bfe0850d5f8f9bc3d53133ea52399ae8d93b7312;hb=dbd443bb33b42b00e1bb9e67e140af659a418673;hp=76e152ae151c904b247daa0ebf8e8c9e947c65c2;hpb=6b40f1315cf46ca2417c10ce08bcf62941bdd305;p=pspp diff --git a/src/output/html.c b/src/output/html.c index 76e152ae15..bfe0850d5f 100644 --- a/src/output/html.c +++ b/src/output/html.c @@ -1,5 +1,5 @@ /* PSPP - a program for statistical analysis. - Copyright (C) 1997-9, 2000 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2009 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 @@ -24,17 +24,17 @@ #include #include -#include #include #include #include #include "error.h" -#include "getline.h" #include "output.h" #include "manager.h" #include "table.h" #include +#include "xalloc.h" + #include "gettext.h" #define _(msgid) gettext (msgid) @@ -47,23 +47,25 @@ static void escape_string (FILE *file, const char *text, size_t length, const char *space); -static bool handle_option (struct outp_driver *this, +static bool handle_option (void *this, const char *key, const struct string *val); static void print_title_tag (FILE *file, const char *name, const char *content); static bool -html_open_driver (struct outp_driver *this, struct substring options) +html_open_driver (const char *name, int types, struct substring options) { + struct outp_driver *this; struct html_driver_ext *x; + this = outp_allocate_driver (&html_class, name, types); this->ext = x = xmalloc (sizeof *x); x->file_name = xstrdup ("pspp.html"); x->chart_file_name = xstrdup ("pspp-#.png"); x->file = NULL; x->chart_cnt = 0; - outp_parse_options (options, handle_option, this); + outp_parse_options (name, options, handle_option, this); x->file = fn_open (x->file_name, "w"); if (x->file == NULL) @@ -89,11 +91,12 @@ html_open_driver (struct outp_driver *this, struct substring options) print_title_tag (x->file, "H1", outp_title); print_title_tag (x->file, "H2", outp_subtitle); + outp_register_driver (this); return true; error: - free (x->chart_file_name); this->class->close_driver (this); + outp_free_driver (this); return false; } @@ -158,9 +161,9 @@ static const struct outp_option option_tab[] = }; static bool -handle_option (struct outp_driver *this, - const char *key, const struct string *val) +handle_option (void *this_, const char *key, const struct string *val) { + struct outp_driver *this = this_; struct html_driver_ext *x = this->ext; int subcat;