[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#64584: 29.0.91; skeleton: cannot pass `str' as argument to some func
From: |
Stefan Monnier |
Subject: |
bug#64584: 29.0.91; skeleton: cannot pass `str' as argument to some functions |
Date: |
Mon, 11 Sep 2023 23:06:02 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
> I can do
>
> (define-skeleton test
> ""
> (read-file-name "p: ")
> (shell-quote-argument (eval str)))
Eww... please don't! This relies on an internal detail about how `str`
is implemented.
>>> AFAIU, using 'str should prevent the insertion of the value but that
>>> signals the same error.
>> Sorry, I don't know what you mean by that.
> I meant this part in skeleton-insert's docstring
>
> Quoted Lisp expressions are evaluated for their side-effects.
Ah, I see. Yes, using
'str
should basically have no effect.
>>> I tried (progn str (shell-quote-argument str))
>>> instead but the same error again.
>> Of course: any use `str` within an actual expression (as opposed to
>> using it as a skeleton element) will work reliably only if that occurs
>> after a use of `str` as a skeleton element.
> Thanks for your patience and help.
We should try and improve the docs to clarify this confusing situation.
If you have suggestions for how/where we could make changes that would
have effectively discouraged you from trying to use `str` in that way,
I'd be happy to hear them.
Stefan