gvim-wrapper/gvim-wrapper.cc

24 lines
675 B
C++

#include <unistd.h>
#include <string.h>
#include <string>
using namespace std;
int main(int argc, char *argv[])
{
string program_name = argv[0];
size_t pos = program_name.find_last_of("/\\");
string script_path =
(pos != string::npos)
? program_name.substr(0, pos) + "/gvim-wrapper.py"
: "gvim-wrapper.py";
char **new_argv = new char *[argc + 2];
memcpy(&new_argv[2], &argv[1], argc * sizeof(new_argv[0]));
new_argv[0] = (char *)"pythonw.exe";
new_argv[1] = (char *)script_path.c_str();
new_argv[argc + 1] = NULL;
argv[0] = (char *)"gvim-wrapper.py";
execvp("pythonw.exe", new_argv);
return -1;
}