emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* [PATCH] Fix a possibly problematic string comparison
@ 2023-08-27 21:43 Rudolf Adamkovič
  2023-08-28  8:45 ` Ihor Radchenko
  0 siblings, 1 reply; 5+ messages in thread
From: Rudolf Adamkovič @ 2023-08-27 21:43 UTC (permalink / raw)
  To: emacs-orgmode; +Cc: Rudolf Adamkovič

* lisp/org-table.el (org-table-make-reference): Replace 'eq' with
'string-empty-p' to resolve "Warning: 'eq' called with literal string
that may never match" issued on every 'make' invocation.
---
 lisp/org-table.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/org-table.el b/lisp/org-table.el
index f5a433c7d..b82749469 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -2864,7 +2864,7 @@ list, `literal' is for the format specifier L."
       (if lispp
 	  (if (eq lispp 'literal)
 	      elements
-	    (if (and (eq elements "") (not keep-empty))
+	    (if (and (string-empty-p elements) (not keep-empty))
 		""
 	      (prin1-to-string
 	       (if numbers (string-to-number elements) elements))))
-- 
2.41.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] Fix a possibly problematic string comparison
  2023-08-27 21:43 [PATCH] Fix a possibly problematic string comparison Rudolf Adamkovič
@ 2023-08-28  8:45 ` Ihor Radchenko
  2023-08-29  0:02   ` Rudolf Adamkovič
  0 siblings, 1 reply; 5+ messages in thread
From: Ihor Radchenko @ 2023-08-28  8:45 UTC (permalink / raw)
  To: Rudolf Adamkovič; +Cc: emacs-orgmode

Rudolf Adamkovič <salutis@me.com> writes:

> * lisp/org-table.el (org-table-make-reference): Replace 'eq' with
> 'string-empty-p' to resolve "Warning: 'eq' called with literal string
> that may never match" issued on every 'make' invocation.
>
> -	    (if (and (eq elements "") (not keep-empty))
> +	    (if (and (string-empty-p elements) (not keep-empty))

This is not as trivial. Applying this patch will break tests.
One needs to carefully examine the org-table logic to fix this
particular warning.

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Fix a possibly problematic string comparison
  2023-08-28  8:45 ` Ihor Radchenko
@ 2023-08-29  0:02   ` Rudolf Adamkovič
  2023-08-29  5:10     ` Ihor Radchenko
  0 siblings, 1 reply; 5+ messages in thread
From: Rudolf Adamkovič @ 2023-08-29  0:02 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode

Ihor Radchenko <yantar92@posteo.net> writes:

> This is not as trivial. Applying this patch will break tests.
> One needs to carefully examine the org-table logic to fix this
> particular warning.

Wow!  You are right.  How is that even possible?  In other words, what
value (of 'elements') can possibly be object-equal to a literal "" but
not string-equal to the same literal "" or vice versa?

Rudy
-- 
"Logic is a science of the necessary laws of thought, without which no
employment of the understanding and the reason takes place."
-- Immanuel Kant, 1785

Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Fix a possibly problematic string comparison
  2023-08-29  0:02   ` Rudolf Adamkovič
@ 2023-08-29  5:10     ` Ihor Radchenko
  2023-08-29 23:56       ` Rudolf Adamkovič
  0 siblings, 1 reply; 5+ messages in thread
From: Ihor Radchenko @ 2023-08-29  5:10 UTC (permalink / raw)
  To: Rudolf Adamkovič; +Cc: emacs-orgmode

Rudolf Adamkovič <salutis@me.com> writes:

> Ihor Radchenko <yantar92@posteo.net> writes:
>
>> This is not as trivial. Applying this patch will break tests.
>> One needs to carefully examine the org-table logic to fix this
>> particular warning.
>
> Wow!  You are right.  How is that even possible?  In other words, what
> value (of 'elements') can possibly be object-equal to a literal "" but
> not string-equal to the same literal "" or vice versa?

This is not what is happening. 

-	    (if (and (eq elements "") (not keep-empty))

(eq elements "") is always nil - the warning is right. We never enter
this branch of `if'.

+	    (if (and (string-empty-p elements) (not keep-empty))

After the patch, we do enter this branch of `if', but it breaks tests.

So, it is not just an innocent warning - it reveals a fault in logic
elsewhere in the code.

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


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Fix a possibly problematic string comparison
  2023-08-29  5:10     ` Ihor Radchenko
@ 2023-08-29 23:56       ` Rudolf Adamkovič
  0 siblings, 0 replies; 5+ messages in thread
From: Rudolf Adamkovič @ 2023-08-29 23:56 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode

Thank you for the explanation!

Given the complexity of the caller, that is
the `org-table-eval-formula' function, as
well as, the fact that I have yet to learn
about the spreadsheet functionality, I am
backing away from this bugfix.

Sorry for the noise.

Rudy
-- 
"Programming reliably -- must be an activity
of an undeniably mathematical nature […] You
see, mathematics is about thinking, and doing
mathematics is always trying to think as well
as possible."  -- Edsger W. Dijkstra, 1981

Rudolf Adamkovič <salutis@me.com> [he/him]
Studenohorská 25
84103 Bratislava
Slovakia


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-08-29 23:58 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-27 21:43 [PATCH] Fix a possibly problematic string comparison Rudolf Adamkovič
2023-08-28  8:45 ` Ihor Radchenko
2023-08-29  0:02   ` Rudolf Adamkovič
2023-08-29  5:10     ` Ihor Radchenko
2023-08-29 23:56       ` Rudolf Adamkovič

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).