+}
+
+static struct output_driver *
+html_create (struct file_handle *fh, enum settings_output_devices device_type,
+ struct string_map *o)
+{
+ struct output_driver *d;
+ struct html_driver *html;
+
+ html = xzalloc (sizeof *html);
+ d = &html->driver;
+ output_driver_init (&html->driver, &html_driver_class, fh_get_file_name (fh),
+ device_type);
+ html->bare = parse_boolean (opt (d, o, "bare", "false"));
+ html->css = parse_boolean (opt (d, o, "css", "true"));
+ html->borders = parse_boolean (opt (d, o, "borders", "true"));
+
+ html->handle = fh;
+ html->chart_file_name = parse_chart_file_name (opt (d, o, "charts",
+ fh_get_file_name (fh)));
+ 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->handle, "w");
+ if (html->file == NULL)
+ {
+ msg_error (errno, _("error opening output file `%s'"), fh_get_file_name (html->handle));
+ goto error;
+ }
+
+ if (!html->bare)
+ put_header (html);