emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/org 3502ce2dbb 2/2: ox-odt: Fix newlines replaced by sp


From: ELPA Syncer
Subject: [elpa] externals/org 3502ce2dbb 2/2: ox-odt: Fix newlines replaced by spaces in Han script
Date: Fri, 21 Oct 2022 01:57:59 -0400 (EDT)

branch: externals/org
commit 3502ce2dbb29b70cdbb978d144322d48cb00f26d
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@posteo.net>

    ox-odt: Fix newlines replaced by spaces in Han script
    
    * lisp/ox-odt.el (org-odt-plain-text): Use `fill-region' to unfill the
    paragraphs with newlines accounting for scripts without spaces between
    words.
    
    Reported-by: James Harkins <jamshark70@zoho.com>
    Link: https://orgmode.org/list/sbhnlv$4t1$1@ciao.gmane.io
---
 lisp/ox-odt.el | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/lisp/ox-odt.el b/lisp/ox-odt.el
index 4ff6676401..e171a90ab9 100644
--- a/lisp/ox-odt.el
+++ b/lisp/ox-odt.el
@@ -2909,9 +2909,20 @@ contextual information."
        (setq output
              (replace-regexp-in-string (car pair) (cdr pair) output t nil))))
     ;; Handle break preservation if required.
-    (when (plist-get info :preserve-breaks)
-      (setq output (replace-regexp-in-string
-                   "\\(\\\\\\\\\\)?[ \t]*\n" "<text:line-break/>" output t)))
+    (if (plist-get info :preserve-breaks)
+        (setq output (replace-regexp-in-string
+                     "\\(\\\\\\\\\\)?[ \t]*\n" "<text:line-break/>" output t))
+      ;; OpenDocument schema recognizes newlines as spaces, which may
+      ;; not be desired in scripts that do not separate words with
+      ;; spaces (for example, Han script).  `fill-region' is able to
+      ;; handle such situations.
+      (setq output
+            (with-temp-buffer
+              (insert output)
+              ;; Unfill.
+              (let ((fill-column (point-max)))
+                (fill-region (point-min) (point-max)))
+              (buffer-string))))
     ;; Return value.
     output))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]