diff -r 481845507d3d -r 35f118ae3838 cmd.rst --- a/cmd.rst Wed Mar 24 15:51:36 2010 +0200 +++ b/cmd.rst Wed Mar 24 21:01:03 2010 +0200 @@ -1,5 +1,32 @@ -*- outline -*- +* Quoting. + + * Arguments are delimited by white space, which is either a space or a tab. + * A string surrounded by double quotation marks is interpreted as a single + argument. + * A double quotation mark preceded by a backslash, \", is interpreted as a + literal double quotation mark. + * Backslashes are interpreted literally, unless they immediately precede a + double quotation mark. + * If an even number of backslashes is followed by a double quotation mark, + then one backslash (\) is placed in the argv array for every pair of + backslashes (\\), and the double quotation mark (") is interpreted as a + string delimiter. + * If an odd number of backslashes is followed by a double quotation mark, + then one backslash (\) is placed in the argv array for every pair of + backslashes (\\) and the double quotation mark is interpreted as an escape + sequence by the remaining backslash, causing a literal double quotation + mark (") to be placed in argv. + * In double quote mark need surround such chars: + & < > [ ] { } ^ = ; ! ' + , ` ~ + Also all this char can be escaped by ^ char. + * Long line can be truncated by ^ char, in this case trailing white spaces + not allowed. + + http://msdn.microsoft.com/en-us/library/ms880421.aspx + Parsing C Command-Line Arguments + * Variables. Variable name start with letter and underscore, next chars can be letter,