2
0
Эх сурвалжийг харах

Windows libc.system now only starts a shell if used in a console app.

Mark Sibly 9 жил өмнө
parent
commit
ab88cd74f9

+ 9 - 4
modules/libc/native/libc.cpp

@@ -24,14 +24,19 @@ int system_( const char *cmd ){
 
 #if _WIN32
 
-	bbString tmp=BB_T( "cmd /S /C\"" )+BB_T( cmd )+BB_T( "\"" );
+	bbString tmp;
+	DWORD flags=0;
+	
+	if( GetStdHandle( STD_OUTPUT_HANDLE ) ){
+		tmp=BB_T( "cmd /S /C\"" )+BB_T( cmd )+BB_T( "\"" );
+	}else{
+		flags=CREATE_NO_WINDOW;
+		tmp=cmd;
+	}
 
 	PROCESS_INFORMATION pi={0};
 	STARTUPINFOA si={sizeof(si)};
 	
-	DWORD flags=0;
-	if( !GetStdHandle( STD_OUTPUT_HANDLE ) ) flags|=CREATE_NO_WINDOW;
-	
 	if( !CreateProcessA( 0,(LPSTR)tmp.c_str(),0,0,1,flags,0,0,&si,&pi ) ) return -1;
 
 	WaitForSingleObject( pi.hProcess,INFINITE );