Sfoglia il codice sorgente

improved doc for Sys.command and sys.io.Process regarding to passing arguments

Andy Li 9 anni fa
parent
commit
f81a9f14f8
3 ha cambiato i file con 12 aggiunte e 11 eliminazioni
  1. 2 1
      extra/CHANGES.txt
  2. 5 5
      std/Sys.hx
  3. 5 5
      std/sys/io/Process.hx

+ 2 - 1
extra/CHANGES.txt

@@ -1,4 +1,4 @@
-2015-??-??: 3.3.0
+2016-??-??: 3.3.0
 
 	New features:
 
@@ -35,6 +35,7 @@
 	Standard Library:
 
 	all : added Lambda.flatten and Lambda.flatMap (#3553)
+	sys : proper quoting/escaping (can be opt-out) for Sys.command and sys.io.Process (#3603)
 
 	Macro features and changes:
 

+ 5 - 5
std/Sys.hx

@@ -86,12 +86,12 @@ extern class Sys {
 		Run the given command. The command output will be printed on the same output as the current process.
 		The current process will block until the command terminates and it will return the command result (0 if there was no error).
 
-		When `args` is not `null`, it will be used as the command arguments,
-		with shell meta-characters automatically escaped and quoted if needed.
+		Command arguments can be passed in two ways: 1. using `args`, 2. appending to `cmd` and leaving `args` as `null`.
+
+		 1. When using `args` to pass command arguments, each argument will be automatically quoted, and shell meta-characters will be escaped if needed.
 		`cmd` should be an executable name that can be located in the `PATH` environment variable, or a path to an executable.
-		
-		When `args` is not given or is `null`, no automatic escaping/quoting is performed.
-		`cmd` should include the command together with its arguments, formatted exactly as it would be when typed at the command line.
+
+		 2. When `args` is not given or is `null`, command arguments can be appended to `cmd`. No automatic quoting/escaping will be performed. `cmd` should be formatted exactly as it would be when typed at the command line.
 		It can run executables, as well as shell commands that are not executables (e.g. on Windows: `dir`, `cd`, `echo` etc).
 
 		Read the `sys.io.Process` api for a more complete way to start background processes.

+ 5 - 5
std/sys/io/Process.hx

@@ -30,12 +30,12 @@ extern class Process {
 	/**
 		Construct a `Process` object, which run the given command immediately.
 
-		When `args` is not `null`, it will be used as the command arguments,
-		with shell meta-characters automatically escaped and quoted if needed.
+		Command arguments can be passed in two ways: 1. using `args`, 2. appending to `cmd` and leaving `args` as `null`.
+
+		 1. When using `args` to pass command arguments, each argument will be automatically quoted, and shell meta-characters will be escaped if needed.
 		`cmd` should be an executable name that can be located in the `PATH` environment variable, or a path to an executable.
-		
-		When `args` is not given or is `null`, no automatic escaping/quoting is performed.
-		`cmd` should include the command together with its arguments, formatted exactly as it would be when typed at the command line.
+
+		 2. When `args` is not given or is `null`, command arguments can be appended to `cmd`. No automatic quoting/escaping will be performed. `cmd` should be formatted exactly as it would be when typed at the command line.
 		It can run executables, as well as shell commands that are not executables (e.g. on Windows: `dir`, `cd`, `echo` etc).
 
 		`close()` should be called when the `Process` is no longer used.