branch: externals/org
commit bd5665e017eef03107afe73a8fa05c3748f639ee
Author: Ihor Radchenko <yanta...@posteo.net>
Commit: Ihor Radchenko <yanta...@posteo.net>

    org-table-make-reference: Address compiler warning
    
    * lisp/org-table.el (org-table-make-reference): Drop branch of `if'
    unused during runtime.  This preserves _interactive_ behavior.
    * testing/lisp/test-org-table.el 
(test-org-table/org-table-make-reference/mode-string-none):
    (test-org-table/org-table-make-reference/mode-string-N): Fix tests to
    check for the existing _interactive_ behavior.  When running make
    test (eq "" "") happens to return t and tests were passing previously
    by accident despite actual behavior during user session being
    different. Fix the tests to avoid breaking changes in the user
    experience.
    
    Link: 
https://list.orgmode.org/orgmode/20230827214320.46754-1-salu...@me.com/
---
 lisp/org-table.el              | 18 +++++++++---------
 testing/lisp/test-org-table.el |  4 ++--
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/lisp/org-table.el b/lisp/org-table.el
index 0c2dc27ed6..a1bd140fb0 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -2887,15 +2887,15 @@ list, `literal' is for the format specifier L."
       (if lispp
          (if (eq lispp 'literal)
              elements
-           (if (and (eq elements "") (not keep-empty))
-                ;; FIXME: This branch of `if' is never used because
-                ;; strings are never `eq' here.  But changing to
-                ;; `equal' breaks tests.
-                ;; See
-                ;; 
https://list.orgmode.org/orgmode/20230827214320.46754-1-salu...@me.com/
-               ""
-             (prin1-to-string
-              (if numbers (string-to-number elements) elements))))
+            ;; Ignore KEEP-EMPTY here.
+            ;; When ELEMENTS="" and NUMBERS=t, (string-to-number "")
+            ;; returns 0 - consistent with (0) for Calc branch.
+            ;; When ELEMENTS="" and NUMBERS=nil, `prin1-to-string' will
+            ;; return "\"\"" - historical behavior that also does not
+            ;; leave missing arguments in formulas like (string< $1 $2)
+            ;; when $2 cell is empty.
+            (prin1-to-string
+            (if numbers (string-to-number elements) elements)))
        (if (string-match "\\S-" elements)
            (progn
              (when numbers (setq elements (number-to-string
diff --git a/testing/lisp/test-org-table.el b/testing/lisp/test-org-table.el
index bfe5c32849..df63a65fc8 100644
--- a/testing/lisp/test-org-table.el
+++ b/testing/lisp/test-org-table.el
@@ -938,7 +938,7 @@ See also URL 
`https://orgmode.org/worg/org-tutorials/org-lookups.html'."
   ;; For Lisp formula
   (should (equal "\"0\"" (org-table-make-reference "0" nil nil t)))
   (should (equal "\"z\"" (org-table-make-reference "z" nil nil t)))
-  (should (equal "" (org-table-make-reference "" nil nil t)))
+  (should (equal "\"\"" (org-table-make-reference "" nil nil t)))
   (should (equal "\"0\" \"1\"" (org-table-make-reference '("0" "1") nil nil 
t)))
   (should (equal "\"z\" \"1\"" (org-table-make-reference '("z" "1") nil nil 
t)))
   (should (equal "\"1\"" (org-table-make-reference '("" "1") nil nil t)))
@@ -965,7 +965,7 @@ See also URL 
`https://orgmode.org/worg/org-tutorials/org-lookups.html'."
   ;; For Lisp formula
   (should (equal "0" (org-table-make-reference "0" nil t t)))
   (should (equal "0" (org-table-make-reference "z" nil t t)))
-  (should (equal "" (org-table-make-reference "" nil t t)))
+  (should (equal "0" (org-table-make-reference "" nil t t)))
   (should (equal "0 1" (org-table-make-reference '("0" "1") nil t t)))
   (should (equal "0 1" (org-table-make-reference '("z" "1") nil t t)))
   (should (equal "1" (org-table-make-reference '("" "1") nil t t)))

Reply via email to