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.