Improve Command Parsing?

Richard Kimberly Heck rikiheck at lyx.org
Sat Oct 10 21:12:22 UTC 2020


On 10/10/20 11:57 AM, Jean-Marc Lasgouttes wrote:
> Le 10 octobre 2020 16:11:07 GMT+02:00, Richard Kimberly Heck <rikiheck at lyx.org> a écrit :
>> On 10/9/20 2:22 PM, Richard Kimberly Heck wrote:
>>> On 10/9/20 12:12 PM, Kornel Benko wrote:
>>>> Am Fri, 9 Oct 2020 11:34:57 -0400
>>>> schrieb Richard Kimberly Heck <rikiheck at lyx.org>:
>>>>
>>>>> On 10/9/20 6:42 AM, Kornel Benko wrote:
>>>>>> Am Fri,  9 Oct 2020 03:34:36 +0200 (CEST)
>>>>>> schrieb Richard Kimberly Heck <rikiheck at lyx.org>:
>>>>>>  
>>>>>>> commit 6b86a5a395175bd3a015856698d4dddae662b162
>>>>>>> Author: Richard Kimberly Heck <rikiheck at lyx.org>
>>>>>>> Date:   Thu Oct 8 22:02:06 2020 -0400
>>>>>>>
>>>>>>>     Bind new template dialog to template shortcut (bug 11996).
>>>>>>>     
>>>>>>>     From Daniel.
>>>>>>> ---
>>>>>>>  lib/bind/aqua.bind |    2 +-
>>>>>>>  lib/bind/cua.bind  |    2 +-
>>>>>>>  lib/bind/mac.bind  |   10 +++++-----
>>>>>>>  3 files changed, 7 insertions(+), 7 deletions(-)
>>>>>>>
>>>>>>> diff --git a/lib/bind/aqua.bind b/lib/bind/aqua.bind
>>>>>>> index bea8b47..477c59d 100644  
>>>>>> ...
>>>>>>  
>>>>>>> +\bind "M-~S-f t"		"dialog-show lyxfiles templates"  
>>>>>> This seems to be a very fragile. I erroneously tested with
>>>>>> 	"dialog-show  lyxfiles templates"
>>>>>> (didn't see the extra space) and could not find the reason why
>>>>>> the bind didn't work.
>>>>>> There should be better parsing IMHO.  
>>>>> Agreed! I think there's a problem with not trimming strings in
>>>>> LyXAction::lookupFunc. I can have a look later, but it ought to be
>> easy
>>>>> to add something here.
>>>>>
>>>>> Riki
>>>>>
>>>>>
>>>> I have tried to look into it, but failed.
>>>> To reproduce:
>>>>
>>>> Open command window (M-x) and type 'dialog-show  lyxfiles templates'
>> (with 2 spaces
>>>> before 'lyxfiles')
>>> OK, I'll have a look later.
>> The attached fixes this problem by collapsing whitespace after the
>> command. It is fine so long as we can assume that whitespace after the
>> command is meaningless. Is that safe?
>>
>> Riki
> We should consider having a proper syntax one day...
>
> I think it is safe. Check maybe things like self-insert that may want to insert a string starting with a space.

Hmm, probably not safe, actually. Something like "self-insert  a" would,
as things are, insert " a"; with my patch, it just inserts "a". Probably
unicode-insert has the same problem. That's probably not a big deal in
the command buffer, but LyXAction::lookupFunc is called from a lot of
places.

The obvious thing to do is to require the argument to be quoted if it
whitespace is to be preserved. Doing that in lookupFunc could cause
problems, though, again since it is called from so many places. What if
I just did that in the command buffer stuff?

Riki




More information about the lyx-devel mailing list