| 
					
				 | 
			
			
				@@ -236,7 +236,7 @@ be linked only." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (right . "OrgRight") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (title . "Heading_20_1.title") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (footnote . "Footnote") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		  (src . "OrgSourceBlock") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (src . "OrgSrcBlock") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (illustration . "Illustration") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (table . "Table") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		  (definition-term . "Text_20_body_20_bold") 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -852,15 +852,154 @@ PUB-DIR is set, use this as the publishing directory." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				((string= s "\t") (org-odt-format-tabs)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				(t (org-odt-format-spaces (length s))))) line)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-(defun org-odt-format-source-code-or-example 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defcustom org-export-odt-use-htmlfontify t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Specify whether or not source blocks need to be fontified. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Turn this option on if you want to colorize the source code 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+blocks in the exported file.  For colorization to work, you need 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+to make available an enhanced version of `htmlfontify' library." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :type 'boolean 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :group 'org-export-odt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-odt-format-source-code-or-example-plain 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (lines lang caption textareap cols rows num cont rpllbl fmt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Format source or example blocks much like fixedwidth blocks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Use this when `org-export-odt-use-htmlfontify' option is turned 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+off." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (setq lines (org-export-number-lines (org-xml-encode-plain-text-lines lines) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				       0 0 num cont rpllbl fmt)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   (lambda (line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     (org-odt-format-stylized-paragraph 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      'fixedwidth (org-odt-fill-tabs-and-spaces line))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   (org-split-string lines "[\r\n]") "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (lambda (line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (org-odt-format-stylized-paragraph 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	'fixedwidth (org-odt-fill-tabs-and-spaces line))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (org-split-string lines "[\r\n]") "\n")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defvar org-src-block-paragraph-format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "<style:style style:name=\"OrgSrcBlock\" style:family=\"paragraph\" style:parent-style-name=\"Preformatted_20_Text\"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   <style:paragraph-properties fo:background-color=\"%s\" fo:padding=\"0.049cm\" fo:border=\"0.51pt solid #000000\" style:shadow=\"none\"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <style:background-image/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   </style:paragraph-properties> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   <style:text-properties fo:color=\"%s\"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </style:style>" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Custom paragraph style for colorized source and example blocks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This style is much the same as that of \"OrgFixedWidthBlock\" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+except that the foreground and background colors are set 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+according to the default face identified by the `htmlfontify'.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-odt-hfy-face-to-css (fn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Create custom style for face FN. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When FN is the default face, use it's foreground and background 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+properties to create \"OrgSrcBlock\" paragraph style.  Otherwise 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+use it's color attribute to create a character style whose name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+is obtained from FN.  Currently all attributes of FN other than 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+color are ignored. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+The style name for a face FN is derived using the following 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+operations on the face name in that order - de-dash, CamelCase 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+and prefix with \"OrgSrc\".  For example, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`font-lock-function-name-face' is associated with 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+\"OrgSrcFontLockFunctionNameFace\"." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let* ((css-list (hfy-face-to-style fn)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (style-name ((lambda (fn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			(concat "OrgSrc" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				(mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 'capitalize (split-string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					      (hfy-face-or-def-to-name fn) "-") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				 ""))) fn)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (color-val (cdr (assoc "color" css-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (background-color-val (cdr (assoc "background" css-list))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (style (and org-export-odt-create-custom-styles-for-srcblocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		     (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      ((eq fn 'default) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (format org-src-block-paragraph-format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       background-color-val color-val)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		      (t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		       (format 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style:style style:name=\"%s\" style:family=\"text\"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <style:text-properties fo:color=\"%s\"/> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ </style:style>" style-name color-val)))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (cons style-name style))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defcustom org-export-odt-create-custom-styles-for-srcblocks t 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Whether custom styles for colorized source blocks be automatically created. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When this option is turned on, the exporter creates custom styles 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+for source blocks based on the advice of `htmlfontify'.  Creation 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+of custom styles happen as part of `org-odt-hfy-face-to-css'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When this option is turned off exporter does not create such 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+styles. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Use the latter option if you do not want the custom styles to be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+based on your current display settings.  It is necessary that the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+styles.xml already contains needed styles for colorizing to work. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This variable is effective only if 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`org-export-odt-use-htmlfontify' is turned on." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :group 'org-export-odt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  :type 'boolean) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-odt-insert-custom-styles-for-srcblocks (styles) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Save STYLES used for colorizing of source blocks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Update styles.xml with styles that were collected as part of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`org-odt-hfy-face-to-css' callbacks." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (when styles 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (with-current-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(find-file-noselect (expand-file-name "styles.xml") t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (goto-char (point-min)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (when (re-search-forward "</office:styles>" nil t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(goto-char (match-beginning 0)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	(insert "\n<!-- Org Htmlfontify Styles -->\n" styles "\n"))))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-odt-format-source-code-or-example-colored 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (lines lang caption textareap cols rows num cont rpllbl fmt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Format source or example blocks using `htmlfontify-string'. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Use this routine when `org-export-odt-use-htmlfontify' option is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+turned on." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let* ((lang-m (and lang (or (cdr (assoc lang org-src-lang-modes)) lang))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (mode (and lang-m (intern (concat (if (symbolp lang-m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					       (symbol-name lang-m) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					     lang-m) "-mode")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (org-inhibit-startup t) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (org-startup-folded nil) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (lines (with-temp-buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (insert lines) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (if (functionp mode) (funcall mode) (fundamental-mode)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (font-lock-fontify-buffer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		  (buffer-string))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (hfy-html-quote-regex "\\([<\"&> 	]\\)") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (hfy-html-quote-map '(("\"" """) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       ("<" "<") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       ("&" "&") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       (">" ">") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       (" " "<text:s/>") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			       ("	" "<text:tab/>"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (hfy-face-to-css 'org-odt-hfy-face-to-css) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (hfy-optimisations-1 (copy-seq hfy-optimisations)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (hfy-optimisations (add-to-list 'hfy-optimisations-1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					 'body-text-only)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (hfy-begin-span-handler 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (lambda (style text-block text-id text-begins-block-p) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (insert (format "<text:span text:style-name=\"%s\">" style)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	 (hfy-end-span-handler (lambda nil (insert "</text:span>")))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (lambda (line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (org-odt-format-stylized-paragraph 'src (htmlfontify-string line))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (org-split-string lines "[\r\n]") "\n"))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-odt-format-source-code-or-example (lines lang caption textareap 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						    cols rows num cont 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						    rpllbl fmt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Format source or example blocks for export. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Use `org-odt-format-source-code-or-example-plain' or 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`org-odt-format-source-code-or-example-colored' depending on the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+value of `org-export-odt-use-htmlfontify." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (funcall 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   (if (and org-export-odt-use-htmlfontify 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (or (featurep 'htmlfontify) (require 'htmlfontify))  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	    (fboundp 'htmlfontify-string)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       'org-odt-format-source-code-or-example-colored 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     'org-odt-format-source-code-or-example-plain) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   lines lang caption textareap cols rows num cont rpllbl fmt)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 (defun org-xml-encode-plain-text-lines (rtn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (mapconcat 'org-xml-encode-plain-text (org-split-string rtn "[\r\n]") "\n")) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1366,6 +1505,13 @@ visually." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (org-odt-configure-outline-numbering 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      (if org-export-with-section-numbers org-export-headline-levels 0))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ;; Write custom stlyes for source blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (org-odt-insert-custom-styles-for-srcblocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   (mapconcat 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (lambda (style) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      (format " %s\n" (cddr style))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    hfy-user-sheet-assoc "")) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let ((zipdir default-directory)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (message "Switching to directory %s" (expand-file-name zipdir)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |