[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))