X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fhtml.c;h=8b062134cde99c0a7f8abf0a02809708fa113dea;hb=173d1687aea88e0e5e1b1d8615ed68ebefb15d08;hp=57d77a7667c94e7e8d68cd7b9739daa9ced2f2f7;hpb=dfd1972f7bcb550a4fc3b05dbe7e71d12334b0a7;p=pspp diff --git a/src/output/html.c b/src/output/html.c index 57d77a7667..8b062134cd 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, 2009 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2009, 2010 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 @@ -23,19 +23,21 @@ #include #include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "data/file-name.h" +#include "libpspp/assertion.h" +#include "libpspp/cast.h" +#include "libpspp/compiler.h" +#include "libpspp/message.h" +#include "libpspp/version.h" +#include "output/cairo.h" +#include "output/chart-item.h" +#include "output/driver-provider.h" +#include "output/message-item.h" +#include "output/options.h" +#include "output/output-item-provider.h" +#include "output/table-provider.h" +#include "output/table-item.h" +#include "output/text-item.h" #include "error.h" #include "xalloc.h" @@ -50,13 +52,14 @@ struct html_driver char *file_name; char *chart_file_name; + char *command_name; FILE *file; size_t chart_cnt; bool in_syntax; }; -const struct output_driver_class html_class; +static const struct output_driver_class html_driver_class; static void html_output_table (struct html_driver *, struct table_item *); static void escape_string (FILE *file, @@ -68,7 +71,7 @@ static void print_title_tag (FILE *file, const char *name, static struct html_driver * html_driver_cast (struct output_driver *driver) { - assert (driver->class == &html_class); + assert (driver->class == &html_driver_class); return UP_CAST (driver, struct html_driver, driver); } @@ -80,7 +83,7 @@ opt (struct output_driver *d, struct string_map *options, const char *key, } static struct output_driver * -html_create (const char *name, enum output_device_type device_type, +html_create (const char *file_name, enum settings_output_devices device_type, struct string_map *o) { struct output_driver *d; @@ -88,17 +91,19 @@ html_create (const char *name, enum output_device_type device_type, html = xzalloc (sizeof *html); d = &html->driver; - output_driver_init (&html->driver, &html_class, name, device_type); - html->file_name = parse_string (opt (d, o, "output-file", "pspp.html")); - html->chart_file_name = parse_chart_file_name (opt (d, o, "chart-files", - "pspp-#.png")); + output_driver_init (&html->driver, &html_driver_class, file_name, + device_type); + + html->file_name = xstrdup (file_name); + html->chart_file_name = parse_chart_file_name (opt (d, o, "charts", + file_name)); html->file = NULL; html->chart_cnt = 1; html->file = fn_open (html->file_name, "w"); if (html->file == NULL) { - error (0, errno, _("opening HTML output file: %s"), html->file_name); + error (0, errno, _("error opening output file `%s'"), html->file_name); goto error; } @@ -107,11 +112,11 @@ html_create (const char *name, enum output_device_type device_type, fputs ("\n", html->file); fputs ("\n", html->file); print_title_tag (html->file, "TITLE", _("PSPP Output")); - fprintf (html->file, "\n", version); + fprintf (html->file, "\n", version); fputs ("\n", html->file); fputs ("\n", html->file); + "CONTENT=\"text/html; charset=utf-8\">\n", html->file); fputs ("