diff options
| author | Cary Clark <> | 2009-03-24 21:14:25 -0700 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-24 21:14:25 -0700 |
| commit | 5ec837f49e9c57d4394ce64b853fd86269c8b340 (patch) | |
| tree | de89879b3a2cb0d713abc3c1fac766cb17706245 /WebKitTools/MIDLWrapper/MIDLWrapper.cpp | |
| parent | 02ba42cb469e2f0e26216fe434dbb912cf48d248 (diff) | |
| download | external_webkit-5ec837f49e9c57d4394ce64b853fd86269c8b340.zip external_webkit-5ec837f49e9c57d4394ce64b853fd86269c8b340.tar.gz external_webkit-5ec837f49e9c57d4394ce64b853fd86269c8b340.tar.bz2 | |
Automated import from //branches/master/...@141953,141953
Diffstat (limited to 'WebKitTools/MIDLWrapper/MIDLWrapper.cpp')
| -rw-r--r-- | WebKitTools/MIDLWrapper/MIDLWrapper.cpp | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/WebKitTools/MIDLWrapper/MIDLWrapper.cpp b/WebKitTools/MIDLWrapper/MIDLWrapper.cpp deleted file mode 100644 index 2132af8..0000000 --- a/WebKitTools/MIDLWrapper/MIDLWrapper.cpp +++ /dev/null @@ -1,86 +0,0 @@ -// MIDLWrapper.cpp : Just calls the built-in midl.exe with the given arguments. - -#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers -#include <process.h> -#include <stdio.h> -#include <string> -#include <windows.h> - -using namespace std; - -int wmain(int argc, wchar_t* argv[], wchar_t* envp[]) -{ -#ifndef NDEBUG - fwprintf(stderr, L"######### im in ur IDE, compiling ur c0des ########\n"); -#endif - - int pathIndex = -1; - for (int i = 0; envp[i]; ++i) - if (!wcsncmp(envp[i], L"PATH=", 5)) { - pathIndex = i; - break; - } - - if (pathIndex == -1) { - fwprintf(stderr, L"Couldn't find PATH environment variable!\n"); - return -1; - } - - wchar_t* vcbin = wcsstr(envp[pathIndex], L"WebKitTools\\vcbin"); - if (!vcbin) { - fwprintf(stderr, L"Couldn't find WebKitTools\\vcbin in PATH!\n"); - return -1; - } - - wchar_t saved = *vcbin; - *vcbin = 0; - - wchar_t* afterLeadingSemiColon = wcsrchr(envp[pathIndex], ';'); - if (!afterLeadingSemiColon) - afterLeadingSemiColon = envp[pathIndex] + 5; // +5 for the length of "PATH=" - else - afterLeadingSemiColon++; - - *vcbin = saved; - - size_t pathLength = wcslen(envp[pathIndex]); - - wchar_t* trailingSemiColon = wcschr(vcbin, ';'); - if (!trailingSemiColon) - trailingSemiColon = envp[pathIndex] + pathLength; - - int vcbinLength = trailingSemiColon - afterLeadingSemiColon; - - size_t newPathLength = pathLength - vcbinLength; - - wchar_t* newPath = new wchar_t[newPathLength + 1]; - - // Copy everything before the vcbin path... - wchar_t* d = newPath; - wchar_t* s = envp[pathIndex]; - while (s < afterLeadingSemiColon) - *d++ = *s++; - - // Copy everything after the vcbin path... - s = trailingSemiColon; - while (*d++ = *s++); - - envp[pathIndex] = newPath; - -#ifndef NDEBUG - fwprintf(stderr, L"New path: %s\n", envp[pathIndex]); -#endif - - wchar_t** newArgv = new wchar_t*[argc + 1]; - for (int i = 0; i < argc; ++i) { - size_t length = wcslen(argv[i]); - newArgv[i] = new wchar_t[length + 3]; - *newArgv[i] = '\"'; - wcscpy_s(newArgv[i] + 1, length + 2, argv[i]); - *(newArgv[i] + 1 + length) = '\"'; - *(newArgv[i] + 2 + length) = 0; - } - newArgv[argc] = 0; - - return _wspawnvpe(_P_WAIT, L"midl", newArgv, envp); -} |
