haxe/src/haxe/SysTools.cs
// Generated by Haxe 4.3.7
#pragma warning disable 109, 114, 219, 429, 168, 162
namespace haxe {
public class SysTools : global::haxe.lang.HxObject {
static SysTools() {
unchecked{
global::haxe.SysTools.winMetaCharacters = ((global::Array<int>) (new global::Array<int>(new int[]{32, 40, 41, 37, 33, 94, 34, 60, 62, 38, 124, 10, 13, 44, 59})) );
}
}
public SysTools(global::haxe.lang.EmptyObject empty) {
}
public SysTools() {
global::haxe.SysTools.__hx_ctor_haxe_SysTools(this);
}
protected static void __hx_ctor_haxe_SysTools(global::haxe.SysTools __hx_this) {
}
public static global::Array<int> winMetaCharacters;
public static string quoteUnixArg(string argument) {
if (( argument == "" )) {
return "\'\'";
}
if ( ! (new global::EReg(((string) ("[^a-zA-Z0-9_@%+=:,./-]") ), ((string) ("") )).match(argument)) ) {
return argument;
}
return global::haxe.lang.Runtime.concat(global::haxe.lang.Runtime.concat("\'", global::StringTools.replace(argument, "\'", "\'\"\'\"\'")), "\'");
}
public static string quoteWinArg(string argument, bool escapeMetaCharacters) {
unchecked {
if ( ! (new global::EReg(((string) ("^(/)?[^ \t/\\\\\"]+$") ), ((string) ("") )).match(argument)) ) {
global::StringBuf result = new global::StringBuf();
bool needquote = ( ( ( ( global::haxe.lang.StringExt.indexOf(argument, " ", default(global::haxe.lang.Null<int>)) != -1 ) || ( global::haxe.lang.StringExt.indexOf(argument, "\t", default(global::haxe.lang.Null<int>)) != -1 ) ) || ( argument == "" ) ) || ( global::haxe.lang.StringExt.indexOf(argument, "/", default(global::haxe.lang.Null<int>)) > 0 ) );
if (needquote) {
result.@add<string>(((string) ("\"") ));
}
global::StringBuf bs_buf = new global::StringBuf();
{
int _g = 0;
int _g1 = argument.Length;
while (( _g < _g1 )) {
int i = _g++;
{
global::haxe.lang.Null<int> _g2 = global::haxe.lang.StringExt.charCodeAt(argument, i);
if ( ! (_g2.hasValue) ) {
global::haxe.lang.Null<int> c = _g2;
{
if (( bs_buf.get_length() > 0 )) {
result.@add<string>(((string) (bs_buf.toString()) ));
bs_buf = new global::StringBuf();
}
result.addChar((c).@value);
}
}
else {
switch (((_g2)).@value) {
case 34:
{
string bs = bs_buf.toString();
result.@add<string>(((string) (bs) ));
result.@add<string>(((string) (bs) ));
bs_buf = new global::StringBuf();
result.@add<string>(((string) ("\\\"") ));
break;
}
case 92:
{
bs_buf.@add<string>(((string) ("\\") ));
break;
}
default:
{
global::haxe.lang.Null<int> c1 = _g2;
{
if (( bs_buf.get_length() > 0 )) {
result.@add<string>(((string) (bs_buf.toString()) ));
bs_buf = new global::StringBuf();
}
result.addChar((c1).@value);
}
break;
}
}
}
}
}
}
result.@add<string>(((string) (bs_buf.toString()) ));
if (needquote) {
result.@add<string>(((string) (bs_buf.toString()) ));
result.@add<string>(((string) ("\"") ));
}
argument = result.toString();
}
if (escapeMetaCharacters) {
global::StringBuf result1 = new global::StringBuf();
{
int _g3 = 0;
int _g4 = argument.Length;
while (( _g3 < _g4 )) {
int i1 = _g3++;
global::haxe.lang.Null<int> c2 = global::haxe.lang.StringExt.charCodeAt(argument, i1);
if (( global::haxe.SysTools.winMetaCharacters.indexOf((c2).@value, default(global::haxe.lang.Null<int>)) >= 0 )) {
result1.addChar(94);
}
result1.addChar((c2).@value);
}
}
return result1.toString();
}
else {
return argument;
}
}
}
}
}