MCPcopy Create free account
hub / github.com/ProgerXP/Notepad2e / RelaunchMultiInst

Function RelaunchMultiInst

src/Notepad2.c:6061–6102  ·  view source on GitHub ↗

============================================================================= RelaunchMultiInst()

Source from the content-addressed store, hash-verified

6059//
6060//
6061BOOL RelaunchMultiInst()
6062{
6063 if ( flagMultiFileArg == 2 && cFileList > 1 ) {
6064 WCHAR *pwch;
6065 int i = 0;
6066 STARTUPINFO si;
6067 PROCESS_INFORMATION pi;
6068 LPWSTR lpCmdLineNew = StrDup ( GetCommandLine() );
6069 LPWSTR lp1 = LocalAlloc ( LPTR, sizeof ( WCHAR ) * ( lstrlen ( lpCmdLineNew ) + 1 ) );
6070 LPWSTR lp2 = LocalAlloc ( LPTR, sizeof ( WCHAR ) * ( lstrlen ( lpCmdLineNew ) + 1 ) );
6071 StrTab2Space ( lpCmdLineNew );
6072 lstrcpy ( lpCmdLineNew + cchiFileList, L"" );
6073 pwch = CharPrev ( lpCmdLineNew, StrEnd ( lpCmdLineNew ) );
6074 while ( *pwch == L' ' || *pwch == L'-' || *pwch == L'+' ) {
6075 *pwch = L' ';
6076 pwch = CharPrev ( lpCmdLineNew, pwch );
6077 if ( i++ > 1 ) {
6078 cchiFileList--;
6079 }
6080 }
6081 for ( i = 0; i < cFileList; i++ ) {
6082 lstrcpy ( lpCmdLineNew + cchiFileList, L" /n - " );
6083 lstrcat ( lpCmdLineNew, lpFileList[i] );
6084 LocalFree ( lpFileList[i] );
6085 ZeroMemory ( &si, sizeof ( STARTUPINFO ) );
6086 si.cb = sizeof ( STARTUPINFO );
6087 ZeroMemory ( &pi, sizeof ( PROCESS_INFORMATION ) );
6088 CreateProcess ( NULL, lpCmdLineNew, NULL, NULL, FALSE, 0, NULL, g_wchWorkingDirectory, &si, &pi );
6089 }
6090 LocalFree ( lpCmdLineNew );
6091 LocalFree ( lp1 );
6092 LocalFree ( lp2 );
6093 GlobalFree ( lpFileArg );
6094 return TRUE;
6095 } else {
6096 int i;
6097 for ( i = 0; i < cFileList; i++ ) {
6098 LocalFree ( lpFileList[i] );
6099 }
6100 return FALSE;
6101 }
6102}
6103//=============================================================================
6104//
6105// RelaunchElevated()

Callers 1

WinMainFunction · 0.85

Calls 1

StrTab2SpaceFunction · 0.85

Tested by

no test coverage detected