diff --git a/lisp/org-element.el b/lisp/org-element.el index 9d91c71fa..ccecec342 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -2382,7 +2382,9 @@ Assume point is at the beginning of the fixed-width area." (defun org-element-fixed-width-interpreter (fixed-width _) "Interpret FIXED-WIDTH element as Org syntax." (let ((value (org-element-property :value fixed-width))) - (and value (replace-regexp-in-string "^" ": " value)))) + (and value + (if (string-empty-p value) ":\n" + (replace-regexp-in-string "^" ": " value))))) ;;;; Horizontal Rule diff --git a/lisp/ox.el b/lisp/ox.el index 495d27395..86dce8f7c 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -3040,7 +3040,7 @@ Return code as a string." ;; This way, we will be able to retrieve its export ;; options when calling ;; `org-export--get-subtree-options'. - (backward-char) + (when (bolp) (backward-char)) (narrow-to-region (point) (point-max)))) ;; Initialize communication channel with original buffer ;; attributes, unavailable in its copy. diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 2d67cc871..43f1d860f 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -3099,7 +3099,7 @@ CLOCK: [2012-01-01 sun. 00:01]--[2012-01-01 sun. 00:02] => 0:01")))) (should (equal (org-element-fixed-width-interpreter '(fixed-width (:value "")) nil) - "")) + ":\n")) ;; Handle nil value. (should-not (org-element-fixed-width-interpreter diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el index cdb549df4..99f5c0f0f 100644 --- a/testing/lisp/test-ox.el +++ b/testing/lisp/test-ox.el @@ -1113,6 +1113,16 @@ Text" (org-export-as (org-test-default-backend) 'subtree nil nil '(:with-planning t :with-properties t))))) + (should + (equal "" + (org-test-with-temp-text " +* H +:PROPERTIES: +:A: 1 +:END: +* H2" + (org-export-as (org-test-default-backend) + 'subtree)))) ;; Visible. (should (equal "* H1\n"