From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jambunathan K Subject: [PATCH] org-odt: Include mimetype in the exported odt file Date: Wed, 27 Jul 2011 02:54:12 +0530 Message-ID: <81aac0burn.fsf@gmail.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([140.186.70.92]:41406) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qlp77-00036D-Pf for emacs-orgmode@gnu.org; Tue, 26 Jul 2011 17:24:30 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Qlp76-000861-Ki for emacs-orgmode@gnu.org; Tue, 26 Jul 2011 17:24:29 -0400 Received: from mail-pz0-f49.google.com ([209.85.210.49]:60951) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Qlp76-00085x-Fh for emacs-orgmode@gnu.org; Tue, 26 Jul 2011 17:24:28 -0400 Received: by pzk33 with SMTP id 33so1221843pzk.8 for ; Tue, 26 Jul 2011 14:24:27 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=0001-org-odt-Include-mimetype-in-the-exported-odt-file.patch Content-Description: 0001-org-odt-Include-mimetype-in-the-exported-odt-file.patch >From 3530d2b3bd5b903e9b568a6412573faa79862d36 Mon Sep 17 00:00:00 2001 From: Jambunathan K Date: Wed, 27 Jul 2011 02:50:48 +0530 Subject: [PATCH] org-odt: Include mimetype in the exported odt file * contrib/lisp/org-odt.el (org-export-odt-save-list): Add the file "mimetype". (org-odt-init-outfile): Write contents of "mimetype". (org-odt-save-as-outfile): Include "mimetype" file in the exported file. (org-export-odt-mimetype-lines): Removed. This change knocks of an error while validating against http://tools.services.openoffice.org/odfvalidator/. --- contrib/lisp/org-odt.el | 32 ++++++++++++++++---------------- 1 files changed, 16 insertions(+), 16 deletions(-) diff --git a/contrib/lisp/org-odt.el b/contrib/lisp/org-odt.el index b7e5a70..bab7590 100644 --- a/contrib/lisp/org-odt.el +++ b/contrib/lisp/org-odt.el @@ -1091,7 +1091,7 @@ MAY-INLINE-P allows inlining it as an image." ;; xml files generated on-the-fly (defconst org-export-odt-save-list - '("META-INF/manifest.xml" "content.xml" "meta.xml" "styles.xml")) + '("mimetype" "META-INF/manifest.xml" "content.xml" "meta.xml" "styles.xml")) ;; xml files that are copied (defconst org-export-odt-nosave-list '()) @@ -1262,6 +1262,10 @@ MAY-INLINE-P allows inlining it as an image." (save-excursion (insert (mapconcat 'identity (cdr org-export-odt-meta-lines) "\n")))) + ;; mimetype + (with-current-buffer (find-file-noselect mimetype-file t) + (insert "application/vnd.oasis.opendocument.text")) + ;; styles file ;; (copy-file org-export-odt-styles-file styles-file t) @@ -1273,9 +1277,6 @@ MAY-INLINE-P allows inlining it as an image." (append org-export-odt-save-list org-export-odt-nosave-list))) content-file)) -(defconst org-export-odt-mimetype-lines - '("application/vnd.oasis.opendocument.text")) - (defconst org-odt-manifest-file-entry-tag "") @@ -1319,23 +1320,22 @@ MAY-INLINE-P allows inlining it as an image." (let* ((target-name (file-name-nondirectory target)) (target-dir (file-name-directory target)) - (cmd (format "zip -rmTq %s %s" target-name "."))) + (cmds `(("zip" "-mX0" ,target-name "mimetype") + ("zip" "-rmTq" ,target-name ".")))) (when (file-exists-p target) ;; FIXME: If the file is locked this throws a cryptic error (delete-file target)) (let ((coding-system-for-write 'no-conversion) exitcode) - (message "Creating odt file using \"%s\"" cmd) - (setq exitcode - (apply 'call-process - "zip" - nil - nil - nil - (append (list "-rmTq") (list target-name ".")))) - - (or (zerop exitcode) - (error "Unable to create odt file (%S)" exitcode))) + (message "Creating odt file...") + (mapc + (lambda (cmd) + (message "Running %s" (mapconcat 'identity cmd " ")) + (setq exitcode + (apply 'call-process (car cmd) nil nil nil (cdr cmd))) + (or (zerop exitcode) + (error "Unable to create odt file (%S)" exitcode))) + cmds)) ;; move the file from outdir to target-dir (rename-file target-name target-dir) -- 1.7.2.3 --=-=-= Content-Type: text/plain -- --=-=-=--