X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=inline;f=src%2Foutput%2Fhtml.c;h=9e7f567a27274866efda6d67fddef2ca74082d3c;hb=3380cd42c3831b98b71709a0c1fcb175e3e4a5d9;hp=5aec959c740a16a69888d9f5da76ad2d56778528;hpb=d2428259504892b661532ea3d8a4cac0a3a4e8e9;p=pspp diff --git a/src/output/html.c b/src/output/html.c index 5aec959c74..9e7f567a27 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, 2010 Free Software Foundation, Inc. + Copyright (C) 1997-9, 2000, 2009, 2010, 2011, 2012, 2013, 2014 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 @@ -39,7 +39,6 @@ #include "output/table-item.h" #include "output/text-item.h" -#include "error.h" #include "xalloc.h" #include "gettext.h" @@ -48,7 +47,10 @@ struct html_driver { struct output_driver driver; - +#ifdef HAVE_CAIRO + struct xr_color fg; + struct xr_color bg; +#endif char *file_name; char *chart_file_name; @@ -56,15 +58,16 @@ struct html_driver FILE *file; size_t chart_cnt; - bool in_syntax; + bool css; + bool borders; }; static const struct output_driver_class html_driver_class; -static void html_output_table (struct html_driver *, struct table_item *); +static void html_output_table (struct html_driver *, const struct table_item *); static void escape_string (FILE *file, const char *text, size_t length, - const char *space); + const char *space, const char *newline); static void print_title_tag (FILE *file, const char *name, const char *content); @@ -93,17 +96,22 @@ html_create (const char *file_name, enum settings_output_devices device_type, d = &html->driver; output_driver_init (&html->driver, &html_driver_class, file_name, device_type); + html->css = parse_boolean (opt (d, o, "css", "true")); + html->borders = parse_boolean (opt (d, o, "borders", "true")); 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; - +#ifdef HAVE_CAIRO + parse_color (d, o, "background-color", "#FFFFFFFFFFFF", &html->bg); + parse_color (d, o, "foreground-color", "#000000000000", &html->fg); +#endif html->file = fn_open (html->file_name, "w"); if (html->file == NULL) { - error (0, errno, _("error opening output file `%s'"), html->file_name); + msg_error (errno, _("error opening output file `%s'"), html->file_name); goto error; } @@ -113,62 +121,66 @@ html_create (const char *file_name, enum settings_output_devices device_type, fputs ("
\n", html->file); print_title_tag (html->file, "TITLE", _("PSPP Output")); fprintf (html->file, "\n", version); - fputs ("\n", - html->file); fputs ("\n", html->file); - fputs ("\n", - html->file); + + if ( html->css) + { + fputs ("\n", + html->file); + fputs ("\n", + html->file); + } fputs ("\n", html->file); fputs ("file); fputs (" LINK=\"#1f00ff\" ALINK=\"#ff0000\" VLINK=\"#9900dd\">\n", html->file); @@ -188,7 +200,7 @@ print_title_tag (FILE *file, const char *name, const char *content) if (content != NULL) { fprintf (file, "<%s>", name); - escape_string (file, content, strlen (content), " "); + escape_string (file, content, strlen (content), " ", " - "); fprintf (file, "%s>\n", name); } } @@ -200,11 +212,6 @@ html_destroy (struct output_driver *driver) if (html->file != NULL) { - if (html->in_syntax) - { - fprintf (html->file, "\n"); - html->in_syntax = false; - } fprintf (html->file, "\n" "