[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [BUG] org-table-eval-formula mishandles semicolons in formulas [9.7-
From: |
Ihor Radchenko |
Subject: |
Re: [BUG] org-table-eval-formula mishandles semicolons in formulas [9.7-pre (release_9.6.14-1019-g5092ec @ /home/nick/src/emacs/org/org-mode/lisp/)] |
Date: |
Sat, 13 Jan 2024 12:53:48 +0000 |
Nick Dokos <ndokos@gmail.com> writes:
> `org-table-eval-formula' interprets *any* semicolon in a formula as the
> beginning of a format specifier. So if the formula contains a literal
> semicolon that is not a format specifier
>
> #+TBLFM: $3='(concat "COMMENT ON public.layout_forms." $1 " IS " (rc-sq
> $2) ";")
>
> The problem is that `org-table-eval-formula' decides that the semicolon
> is the beginning of a format specifier very early in the function and
> splits off the "specifier" from the rest of the formula, leading to
> errors when the truncated formula is evaluated later.
Confirmed.
Important.
> ThHere is a semi-reasonable workaround in that the regexp matches the
> *last* semicolon, so we can add a semicolon at the end of the formula,
> specifying an empty format, but the formula is not truncated any longer.
> If it is decided that the code must not be changed, then maybe the
> workaround could be added to the documentation (perhaps as a footnote to
> section "Emacs Lisp forms as formulas").
>
> This was reported by user `vfclists' on Emacs SE:
>
> https://emacs.stackexchange.com/questions/80062/is-it-because-this-org-table-formula-contains-double-quotes-it-doesnt-work
We should eventually fix this bug. I do not think that we should add
workarounds into the manual.
The problem is that org-table.el code is fragile. A proper fix would
require rewriting formula parsing code to something more reliable.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>