org-table-justify-field-maybe: Do not allow newlines inside cells

* lisp/org-table.el (org-table-justify-field-maybe): Remove newlines
from cell values, when present.  Newlines will alter the table cell
structure.

Reported-by: Julien Palard <julien@palard.fr>
Link: https://orgmode.org/list/638faf1b.050a0220.2bd96.904b@mx.google.com
This commit is contained in:
Ihor Radchenko 2022-12-07 16:59:21 +03:00
parent 3176ed9052
commit 97a780f0be
No known key found for this signature in database
GPG key ID: 6470762A7DA11D8B

View file

@ -4448,6 +4448,13 @@ FIELD is a string. WIDTH is a number. ALIGN is either \"c\",
(defun org-table-justify-field-maybe (&optional new) (defun org-table-justify-field-maybe (&optional new)
"Justify the current field, text to left, number to right. "Justify the current field, text to left, number to right.
Optional argument NEW may specify text to replace the current field content." Optional argument NEW may specify text to replace the current field content."
;; FIXME: Prevent newlines inside field. They are currently not
;; supported.
(when (and (stringp new) (string-match-p "\n" new))
(message "Removing newlines from formula result: %S" new)
(setq new (replace-regexp-in-string
"\n" " "
(replace-regexp-in-string "\\(^\n+\\)\\|\\(\n+$\\)" "" new))))
(cond (cond
((and (not new) org-table-may-need-update)) ; Realignment will happen anyway ((and (not new) org-table-may-need-update)) ; Realignment will happen anyway
((org-at-table-hline-p)) ((org-at-table-hline-p))