odt: Restore writing creator metadata.
[pspp-builds.git] / src / output / odt.c
index 66e986be71270d5beb5d1f4240915c5148d5d373..99f5e60d6ec7cb8fdb45265f424b16a37f18d133 100644 (file)
@@ -21,6 +21,9 @@
 #include <errno.h>
 #include <libgen.h>
 #include <libxml/xmlwriter.h>
+#ifdef HAVE_PWD_H
+#include <pwd.h>
+#endif
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <time.h>
@@ -268,6 +271,22 @@ write_meta_data (struct odt_driver *odt)
     xmlTextWriterEndElement (w);
   }
 
+#ifdef HAVE_PWD_H
+  {
+    struct passwd *pw = getpwuid (getuid ());
+    if (pw != NULL)
+      {
+        xmlTextWriterStartElement (w, _xml ("meta:initial-creator"));
+        xmlTextWriterWriteString (w, _xml (strtok (pw->pw_gecos, ",")));
+        xmlTextWriterEndElement (w);
+
+        xmlTextWriterStartElement (w, _xml ("dc:creator"));
+        xmlTextWriterWriteString (w, _xml (strtok (pw->pw_gecos, ",")));
+        xmlTextWriterEndElement (w);
+      }
+  }
+#endif
+
   xmlTextWriterEndElement (w);
   xmlTextWriterEndElement (w);
   xmlTextWriterEndDocument (w);