From f5c862330fac2ba1765ffc36193919ceb5ab0eee Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 19 Jan 2013 17:17:44 +0000 Subject: [PATCH] Adjust comments around split_into_argv() to clarify that it's not *Windows's* command-line splitting rules we're mimicking here; it's VC7's, and they're not the same as VC10's. git-svn-id: svn://svn.tartarus.org/sgt/putty@9748 cda61777-01e9-0310-a592-d414129be87e --- windows/winutils.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/windows/winutils.c b/windows/winutils.c index 2e0183d3..f68405bc 100644 --- a/windows/winutils.c +++ b/windows/winutils.c @@ -170,12 +170,12 @@ char *GetDlgItemText_alloc(HWND hwnd, int id) } /* - * Split a complete command line into argc/argv, attempting to do - * it exactly the same way Windows itself would do it (so that - * console utilities, which receive argc and argv from Windows, - * will have their command lines processed in the same way as GUI - * utilities which get a whole command line and must break it - * themselves). + * Split a complete command line into argc/argv, attempting to do it + * exactly the same way the Visual Studio C library would do it (so + * that our console utilities, which receive argc and argv already + * broken apart by the C library, will have their command lines + * processed in the same way as the GUI utilities which get a whole + * command line and must call this function). * * Does not modify the input command line. * @@ -196,7 +196,17 @@ void split_into_argv(char *cmdline, int *argc, char ***argv, int outputargc; /* - * At first glance the rules appeared to be: + * These argument-breaking rules apply to Visual Studio 7, which + * is currently the compiler expected to be used for PuTTY. Visual + * Studio 10 has different rules, lacking the curious mod 3 + * behaviour of consecutive quotes described below; I presume they + * fixed a bug. As and when we migrate to a newer compiler, we'll + * have to adjust this to match; however, for the moment we + * faithfully imitate in our GUI utilities what our CLI utilities + * can't be prevented from doing. + * + * When I investigated this, at first glance the rules appeared to + * be: * * - Single quotes are not special characters. * -- 2.11.0