emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Vladimir Panteleev <thecybershadow@gmail.com>
To: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Cc: emacs-orgmode@gnu.org, Vladimir Panteleev <git@thecybershadow.net>
Subject: Re: [PATCH 1/3] ob-table: Fix org-sbe's handling of quotes in arguments
Date: Wed, 14 Mar 2018 16:23:58 +0000	[thread overview]
Message-ID: <d1d7f4fc-1ec9-a517-58e1-c1f7e5189d9f@gmail.com> (raw)
In-Reply-To: <87fu52ln2g.fsf@nicolasgoaziou.fr>

On 2018-03-14 15:00, Nicolas Goaziou wrote:
> Vladimir Panteleev <thecybershadow@gmail.com> writes:
>> I wrote about this in the cover letter too. $"foo" and $ "foo" are
>> both the same thing.
> 
> Just to make it clear: I read the cover letter. My confusion doesn't
> come from the fact I may not have read it.

In that case, I need to apologize for not making it sufficiently clear, 
as we're reiterating the same points without making much progress.

> I disagree. You are testing an implementation detail here: the fact that
> "$" is not necessarily a prefix. According to the docstring, it should
> be, so the test should use that, too. What if we rewrite `org-sbe' at
> some point?

I'm sorry if I didn't explain it properly in my previous messages. I'll 
try again.

The fact that $"foo" and $ "foo" mean the same thing is not an 
implementation detail of org-sbe. It is a consequence of Emacs Lisp grammar.

Try evaluating '($"foo") and '($ "foo") in M-:. You will get the same 
result, because after tokenization, their representation is identical. 
The whitespace between $ and "foo" is completely insignificant.

In fact, if you try to evaluate $"foo" by itself, you will get "Trailing 
garbage following expression", because, as I mentioned before, $ and 
"foo" are two distinct tokens.

There is absolutely nothing that anyone could change in org-sbe that 
would make $ "foo" mean something other than $"foo".

So, whether the test case has a space between $ and "a\"b\"c" is as 
relevant as whether it has comments, or uses tabs instead of spaces for 
indentation.

I hope this explanation can put this issue to rest.

> The same goes for the next string. $"foo", or in your case, $"a\"b\"c"
> means nothing in `org-sbe' context. A reference should follow the dollar
> character, per `org-sbe' docstring. I suggest to make an equivalent test
> with, e.g., $"@1$1", where @1$1 refers to a field containing "a\"b\"c"
> or some such.

As I've mentioned, table references are resolved before org-sbe is 
invoked. By the time org-sbe begins executing, all table references will 
have already been replaced by string literals. Using a table reference 
confounds the matter because it is testing more than just org-sbe.

org-sbe's docstring is misleading: $ is not a way to quote just table 
references, but any string literals in general. Had it been otherwise 
(i.e. $-prefixing being part of the table reference syntax), there would 
be no way to pass a string literal (which isn't an interpolated table 
cell value) to the indicated function. The doc string should probably be 
improved in this regard.

Adding a test which uses a table reference instead of a string literal 
won't hurt, but it would be testing several layers at once, and, 
assuming cell value interpolation into emacs lisp table formulas is 
already tested somewhere else, superfluous.

-- 
Best regards,
  Vladimir

  reply	other threads:[~2018-03-14 16:24 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-07 22:58 [PATCH 0/3] org-sbe fixes Vladimir Panteleev
2018-03-07 22:58 ` [PATCH 1/3] ob-table: Fix org-sbe's handling of quotes in arguments Vladimir Panteleev
2018-03-12 23:15   ` Nicolas Goaziou
2018-03-13 19:16     ` Vladimir Panteleev
2018-03-14 13:49       ` Nicolas Goaziou
2018-03-14 14:03         ` Vladimir Panteleev
2018-03-14 15:00           ` Nicolas Goaziou
2018-03-14 16:23             ` Vladimir Panteleev [this message]
2018-03-18 22:24               ` Nicolas Goaziou
2018-03-18 22:43                 ` Vladimir Panteleev
2018-03-18 23:30                   ` Nicolas Goaziou
2018-03-19  0:23                     ` [PATCH v2 0/3] org-sbe fixes Vladimir Panteleev
2018-03-19  0:23                       ` [PATCH v2 1/3] ob-table: Fix org-sbe's handling of quotes in cell values Vladimir Panteleev
2018-03-19  0:23                       ` [PATCH v2 2/3] ob-table: Fix org-sbe's handling of list arguments Vladimir Panteleev
2018-03-19  0:23                       ` [PATCH v2 3/3] ob-table: Mention passing ranges as lists in org-sbe's documentation Vladimir Panteleev
2018-03-19 23:07                       ` [PATCH v2 0/3] org-sbe fixes Nicolas Goaziou
2018-03-25 18:24                         ` Alan Schmitt
2018-03-25 20:26                           ` Nicolas Goaziou
2018-03-25 20:40                             ` Vladimir Panteleev
2018-03-25 21:06                               ` Nicolas Goaziou
2018-03-25 22:08                                 ` Vladimir Panteleev
2018-03-26 20:16                                   ` Nicolas Goaziou
2018-03-26 21:33                                     ` Vladimir Panteleev
2018-03-26 21:42                                       ` Nicolas Goaziou
2018-03-26 21:53                                         ` Vladimir Panteleev
2018-03-27  6:21                                           ` Nicolas Goaziou
2018-03-26  8:12                                 ` Alan Schmitt
2018-03-26 21:40                                   ` Nicolas Goaziou
2018-03-27  1:01                                     ` Bastien
2018-03-07 22:58 ` [PATCH 2/3] ob-table: Fix org-sbe's handling of list arguments Vladimir Panteleev
2018-03-07 22:58 ` [PATCH 3/3] ob-table: Mention passing ranges as lists in org-sbe's documentation Vladimir Panteleev

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d1d7f4fc-1ec9-a517-58e1-c1f7e5189d9f@gmail.com \
    --to=thecybershadow@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=git@thecybershadow.net \
    --cc=mail@nicolasgoaziou.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).