#include "libpspp/temp-file.h"
#include "libpspp/version.h"
#include "libpspp/zip-writer.h"
+#include "data/file-handle-def.h"
#include "output/driver-provider.h"
#include "output/message-item.h"
#include "output/options.h"
_xml ("urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0") );
xmlTextWriterWriteAttribute (w, _xml ("office:version"), _xml ("1.1"));
-
+
xmlTextWriterStartElement (w, _xml ("office:styles"));
xmlTextWriterStartElement (w, _xml ("office:meta"));
{
xmlTextWriterStartElement (w, _xml ("meta:generator"));
- xmlTextWriterWriteString (w, _xml (stat_version));
+ xmlTextWriterWriteString (w, _xml (version));
xmlTextWriterEndElement (w);
}
}
static struct output_driver *
-odt_create (const char *file_name, enum settings_output_devices device_type,
+odt_create (struct file_handle *fh, enum settings_output_devices device_type,
struct string_map *o UNUSED)
{
struct output_driver *d;
struct odt_driver *odt;
struct zip_writer *zip;
+ const char *file_name = fh_get_file_name (fh);
zip = zip_writer_create (file_name);
if (zip == NULL)
odt = xzalloc (sizeof *odt);
d = &odt->driver;
+
output_driver_init (d, &odt_driver_class, file_name, device_type);
odt->zip = zip;
zip_writer_close (odt->zip);
}
-
+
free (odt->file_name);
free (odt->command_name);
free (odt);
/* Start table */
xmlTextWriterStartElement (odt->content_wtr, _xml("table:table"));
- xmlTextWriterWriteFormatAttribute (odt->content_wtr, _xml("table:name"),
+ xmlTextWriterWriteFormatAttribute (odt->content_wtr, _xml("table:name"),
"TABLE-%d", odt->table_num++);
/* Deal with row headers */
if ( table_ht (tab) > 0)
xmlTextWriterStartElement (odt->content_wtr, _xml("table:table-header-rows"));
-
+
/* Write all the rows */
for (r = 0 ; r < table_nr (tab); ++r)
table_cell_free (&cell);
}
-
+
xmlTextWriterEndElement (odt->content_wtr); /* row */
if ( table_ht (tab) > 0 && r == table_ht (tab) - 1)