cmd.rst
changeset 358 35f118ae3838
parent 356 9592e984ea6d
child 410 46d2180b4dc5
--- 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,