From 5efd7311e88ca001361136d03fa14e632bd2cac3 Mon Sep 17 00:00:00 2001 From: Nicolas Goaziou Date: Fri, 26 Apr 2013 10:38:05 +0200 Subject: [PATCH] org-element: Fix interpretation of empty fixed-width elements * lisp/org-element.el (org-element-fixed-width-interpreter): Fix interpretation of fixed-width elements with a nil or empty string value. * testing/lisp/test-org-element.el: Add tests. --- lisp/org-element.el | 7 +++++-- testing/lisp/test-org-element.el | 20 +++++++++++++++++++- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/lisp/org-element.el b/lisp/org-element.el index 73d0b46c9..cf5fe63fa 100644 --- a/lisp/org-element.el +++ b/lisp/org-element.el @@ -1834,8 +1834,11 @@ Assume point is at the beginning of the fixed-width area." (defun org-element-fixed-width-interpreter (fixed-width contents) "Interpret FIXED-WIDTH element as Org syntax. CONTENTS is nil." - (replace-regexp-in-string - "^" ": " (substring (org-element-property :value fixed-width) 0 -1))) + (let ((value (org-element-property :value fixed-width))) + (and value + (replace-regexp-in-string + "^" ": " + (if (string-match "\n\\'" value) (substring value 0 -1) value))))) ;;;; Horizontal Rule diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el index 7c8b08288..81493fbc1 100644 --- a/testing/lisp/test-org-element.el +++ b/testing/lisp/test-org-element.el @@ -2185,7 +2185,25 @@ CLOCK: [2012-01-01 sun. 00:01]--[2012-01-01 sun. 00:02] => 0:01")) (should (equal (org-test-parse-and-interpret ": Test") ": Test\n")) ;; Preserve indentation. (should (equal (org-test-parse-and-interpret ": 2 blanks\n: 1 blank") - ": 2 blanks\n: 1 blank\n"))) + ": 2 blanks\n: 1 blank\n")) + ;; Remove last newline character + (should + (equal (org-element-fixed-width-interpreter + '(fixed-width (:value "Test\n")) nil) + ": Test")) + (should + (equal (org-element-fixed-width-interpreter + '(fixed-width (:value "Test")) nil) + ": Test")) + ;; Handle empty string. + (should + (equal (org-element-fixed-width-interpreter + '(fixed-width (:value "")) nil) + "")) + ;; Handle nil value. + (should-not + (org-element-fixed-width-interpreter + '(fixed-width (:value nil)) nil))) (ert-deftest test-org-element/horizontal-rule-interpreter () "Test horizontal rule interpreter." -- 2.11.4.GIT