wchar_t **wargv;
wchar_t *arg;
unsigned int cmdlen;
- wchar_t *idx;
STARTUPINFOW start;
PROCESS_INFORMATION proc;
wchar_t *wcmd;
int wargc;
int timeout = 0;
+ ssize_t wrote;
HANDLE job;
if (cmdlen < 5 || wcscmp (&wargv[2][cmdlen - 4], L".exe") != 0)
{
non_const_filename = malloc (sizeof (wchar_t) * (cmdlen + 5));
- _snwprintf (non_const_filename, cmdlen + 5, L"%s.exe", wargv[2]);
+ swprintf (non_const_filename, cmdlen + 5, L"%S.exe", wargv[2]);
}
else
{
/* Check that this is the full path. If it isn't, search. */
if (non_const_filename[1] == L':')
- _snwprintf (wpath, sizeof (wpath) / sizeof (wchar_t), L"%s", non_const_filename);
+ swprintf (wpath, sizeof (wpath) / sizeof (wchar_t), L"%S", non_const_filename);
else if (!SearchPathW
(pathbuf, non_const_filename, NULL, sizeof (wpath) / sizeof (wchar_t),
wpath, NULL))
while (NULL != (arg = wargv[i++]))
cmdlen += wcslen (arg) + 4;
- wcmd = idx = malloc (sizeof (wchar_t) * (cmdlen + 1));
+ wcmd = malloc (sizeof (wchar_t) * (cmdlen + 1));
+ wrote = 0;
i = 2;
while (NULL != (arg = wargv[i++]))
{
/* This is to escape trailing slash */
wchar_t arg_lastchar = arg[wcslen (arg) - 1];
- if (idx == wcmd)
- idx += swprintf (idx, L"\"%s%s\" ", wpath,
+ if (wrote == 0)
+ {
+ wrote += swprintf (&wcmd[wrote], cmdlen + 1 - wrote, L"\"%S%S\" ", wpath,
arg_lastchar == L'\\' ? L"\\" : L"");
+ }
else
{
if (wcschr (arg, L' ') != NULL)
- idx += swprintf (idx, L"\"%s%s\"%s", arg,
+ wrote += swprintf (&wcmd[wrote], cmdlen + 1 - wrote, L"\"%S%S\"%S", arg,
arg_lastchar == L'\\' ? L"\\" : L"", i == wargc ? L"" : L" ");
else
- idx += swprintf (idx, L"%s%s%s", arg,
+ wrote += swprintf (&wcmd[wrote], cmdlen + 1 - wrote, L"%S%S%S", arg,
arg_lastchar == L'\\' ? L"\\" : L"", i == wargc ? L"" : L" ");
}
}
memset (&start, 0, sizeof (start));
start.cb = sizeof (start);
- if (!CreateProcessW (wpath, wcmd, NULL, NULL, GNUNET_YES, CREATE_SUSPENDED,
+ if (!CreateProcessW (wpath, wcmd, NULL, NULL, TRUE, CREATE_SUSPENDED,
NULL, NULL, &start, &proc))
{
- wprintf (L"Failed to get spawn process `%s' with arguments `%s': %lu\n", wpath, wcmd, GetLastError ());
+ wprintf (L"Failed to get spawn process `%S' with arguments `%S': %lu\n", wpath, wcmd, GetLastError ());
exit (6);
}