When investigating the issue I reported earlier today, my classmates and I discovered that under Windows chuck --shell writes its temporary file to c:\. This will most likely fail if the user doesn't have admin rights. This is apparently because the tmpnam function under Windows only returns a file name whereas under OS X it returns a file name that includes a complete path to the system's temporary directory. I used the information from this article (http://msdn.microsoft.com/en-us/library/windows/desktop/aa363875(v=vs.85).as...) to create a temporary file name that includes a path to an appropriate directory. Here is the diff for chuck_shell.cpp: 606a607,623
#if defined __PLATFORM_WIN32__ char * tmp_filepath = NULL; TCHAR tempFileName[MAX_PATH]; TCHAR tempPathBuffer[MAX_PATH]; DWORD dwRetVal = 0; UINT uRetVal = 0; dwRetVal = GetTempPath(MAX_PATH, tempPathBuffer); if (dwRetVal > 0 && dwRetVal < MAX_PATH) { uRetVal = GetTempFileName(tempPathBuffer, TEXT("ChucK"), 0, tempFileName); if (uRetVal != 0) { //Successfully created temp file name. Point tmp_filepath at it. tmp_filepath = tempFileName; } } #else 607a625,626 #endif
-Steve