emacs-orgmode
[Top][All Lists]
Advanced

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

[BUG] org-table-eval-formula mishandles semicolons in formulas [9.7-pre


From: Nick Dokos
Subject: [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: Fri, 12 Jan 2024 18:34:34 -0500


Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

     https://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org mailing list.
------------------------------------------------------------------------

`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.

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
    

Emacs  : GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, 
cairo version 1.17.8)
 of 2023-12-28
Package: Org mode version 9.7-pre (release_9.6.14-1019-g5092ec @ 
/home/nick/src/emacs/org/org-mode/lisp/)
-- 
Nick





reply via email to

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