Yasuhiro Matsumoto wrote:

> Sorry, It was wrong. I updated patch
> 
> https://gist.github.com/mattn/d47e7d3bfe5ade4be86062b565a4bfca
> 
> On Wednesday, October 12, 2016 at 11:19:06 PM UTC+9, Bram Moolenaar wrote:
> > +strsave_for_argv(char_u *string)
> > 
> > I would call the argument "argv" and the escaped result "argv_escaped".
> 
> renamed strsave_for_argv to escape_arg, string to arg, escaped_string to 
> arg_escaped.
> 
> > 
> > +       has_spaces = 1;
> > 
> > Use TRUE and FALSE instead of 1 and 0.
> 
> okay, thank you.
> 
>  
> > +   if (*p == '\n')
> > +       ++length;
> > 
> > But the "\n" is not escaped, thus this is not needed.
> 
> Yes, removed.
> 
> > +    if (escaped_string == NULL)
> > +   return escaped_string;
> > 
> > Can return NULL.
> 
> this too.
> 
> > +   else
> > +   if (*p == '\\')
> > 
> > Should be one line.
> 
> ditto
> 
> > Also, there is no test for a backslash in the text.  It would also need
> > to test for two or three backslashes.  And one or two backslashes
> > followed by a double quote.
> > 
> > I would rename "p" to "s" (stands for source).
> 
> ditto
> 
> > +    /* add terminating quote and finish with a NUL */
> > +    if (has_spaces)
> > +    {
> > +   for (i = 0; i < escaping; i++)
> > +       *d++ = '\\';
> > +   *d++ = '"';
> > +    }
> > +    *d = NUL;
> > 
> > Adding backslashes before the terminating quote looks strange.  If this
> > is correct it should be covered by a test.
> 
> Yes, I was confused. Totally, fixed implementation. But terminating quote is 
> right. See test code.
> 
> > +func s:test_list_args(msg, out)
> > 
> > Use "cmd" instead of "msg".
> 
> fixed too
> 
> > +    call job_start([s:python, '-c', a:msg], {'callback': 
> > {ch,msg->execute('let s:out.=msg."\n"')}})
> > 
> > Why append the "\n"?
> 
> For the separator, but not required at least. Then removed.
> 
> > +  call s:test_list_args('print(''hello"world'')', "hello\"world\n")
> > 
> > This seems wrong.  The argument is hello"world but it results in an
> > extra backslash.
> 
> Please look carefully. "hello\"world\n"
> 
> Double quote in the quote should be escaped with backslash on Vim script as 
> you know.

Thanks, I'll look into the updated patch soon.

-- 
ARTHUR:  No, hang on!  Just answer the five questions ...
GALAHAD: Three questions ...
ARTHUR:  Three questions ...  And we shall watch ... and pray.
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- b...@moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui