Yakov Lerner wrote:
> On 8/9/06, Bram Moolenaar <[EMAIL PROTECTED]> wrote:
Actually, this text was written by by Yakov. I replied to that.
> > > I'm going to fix the <f-args> bug mentioned in the todo
> > > (because I got bitten by it). I made a testcase (it's below), here is the
> > > table:
> > >
> > > Testcase Current Expected
> > > --------------------------------------------------------------
> > > XX a\\ b bug: 1 arg('a\ b') Expected 2 args('a\','b') ?
> > > XX a\\ b bug: 2 args('a\ ','b') Expected 2 args('a\','b') ?
> > >
> > > Do you agree with the 'Expected' part that I propose ?
> > > It is tricky when to translate \\ into \\, and when to translate \\
> > > into \. If we do not translate '\\ ' into '\'+arg-break, then we cannot
> > > represent the argument which ends with single backslash. Do you agree
> > > with translating '\\ ' into '\'+arg break ?
> >
> > Looks OK with me. Basic idea is that "\\" is handled like a backslash,
> > and "\ " is a space that doesn't separate arguments, right? Trying to
> > write the docs that explains this may help deciding what the simple rule
> > is. But we should also try to keep it mostly backwards compatible.
> >
> > > " the testcase
> > > " XX \\ works, 2 args ('\\')
> >
> > It would be a lot simpler if the result could be '\'. But that's not
> > backwards compatible. Perhaps you can ask on the Vim maillist if
> > someone would have a problem with this change.
> >
> > > " XX a b works, 2 args ('a','b')
> > > " XX a\ b works, 1 arg ('a b')
> > > " XX a\\b 1 arg ('a\\b') Shall it be 1 arg('a\b') ?
> >
> > Making this 'a\b' is more straightforward, but again not backwards
> > compatible.
> >
> > > " XX a\\ b bug: 1 arg('a\ b') Expected 2 args('a\','b')
> > > " XX a\\ b bug: 2 args ('a\ ','b'). Expected 2 args('a\','b')
> >
> > Right. This also shows that '\\' can be passed on as '\', thus the
> > backwards compatibility problem isn't that big.
>
>
> > It would be a lot simpler if the result could be '\'. But that's not
> > backwards compatible. Perhaps you can ask on the Vim maillist if
> > someone would have a problem with this change.
>
> I have problem with this change; and that's not because of
> backward-compatibility, but
> because in my plugin (helpwords), arguments are regular expressions.
> It feels very
> awkward to duplicate every \ in regexp, because \ are very common in regexps.
> To type \\(foo\\|bar\\) ? Oh my god. That breaks my intuitition for
> typing and seeing regexps.
>
> What do you think about adding another, new form <ff-args> (?) that changes
> every \\ to \, whereas <f-args> leaves \ as \ and \\ as \\ (except
> before whitespace) ?
>
> On mailing list
> (http://marc.theaimsgroup.com/?l=vim-dev&m=115524231924245&w=2),
> two people voted for always relpacing \\ with \.
>
> But I don't like it.
>
> What do you say about having two forms <f-args> and <ff-args> (spelling?),
> one of which is backward-compatible (\\->\\) and new form is \\->\ ?
> If you agree,
> is <ff-args> spelling ok ?
I don't like adding yet another form and leaving <f-args> broken.
I don't understand your reason anyway. The idea was that only "\\" and
"\ " are special, right? Thus "a\b" remains "a\b".
command new <f-args> old <f-args>
XX ab ab ab
XX a\b a\b a\b
XX a\ b a b a b
XX a\\b a\b a\\b
XX a\\ b a\ b a\ b
XX a\\\b a\\b a\\\b
XX a\\\ b a\ b a\\ b
XX a\\\\b a\\b a\\\\b
XX a\\\\ b a\\ b a\\\\ b
--
Clothes make the man. Naked people have little or no influence on society.
-- Mark Twain (Samuel Clemens) (1835-1910)
/// Bram Moolenaar -- [EMAIL PROTECTED] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ download, build and distribute -- http://www.A-A-P.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///