diff --git a/Makefile b/Makefile index 29bf438..2f4a1ff 100644 --- a/Makefile +++ b/Makefile @@ -8,3 +8,4 @@ all: $(TARGET) install: $(TARGET) cp $(TARGET) $(INSTALL_DIR) + cp $(TARGET).py $(INSTALL_DIR) diff --git a/gvim-wrapper.c b/gvim-wrapper.c deleted file mode 100644 index 535b4cb..0000000 --- a/gvim-wrapper.c +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include - -int main(int argc, char *argv[]) -{ - char **new_argv = malloc(sizeof(char *) * (argc + 2)); - int i = 0; - new_argv[i++] = "gvim"; - new_argv[i++] = "--remote-tab-silent"; - for (int n = 1; n < argc; n++, i++) - { - new_argv[i] = malloc(strlen(argv[n]) + 3); - sprintf(new_argv[i], "\"%s\"", argv[n]); - } - new_argv[i++] = NULL; - execv("C:\\apps\\Vim\\vim73\\gvim.exe", (const char * const *) new_argv); - return -1; -} diff --git a/gvim-wrapper.cc b/gvim-wrapper.cc new file mode 100644 index 0000000..98c21b2 --- /dev/null +++ b/gvim-wrapper.cc @@ -0,0 +1,22 @@ +#include +#include + +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"; + const char **new_argv = new const char *[argc + 2]; + memcpy(&new_argv[2], &argv[1], argc * sizeof(new_argv[0])); + new_argv[0] = "pythonw.exe"; + new_argv[1] = script_path.c_str(); + new_argv[argc + 1] = NULL; + argv[0] = "gvim-wrapper.py"; + execvp("pythonw.exe", new_argv); + return -1; +} diff --git a/gvim-wrapper.py b/gvim-wrapper.py new file mode 100644 index 0000000..2df42f8 --- /dev/null +++ b/gvim-wrapper.py @@ -0,0 +1,10 @@ +import os +import sys + +def main(argv): + fh = open('C:\\out.txt', 'w') + fh.write('called with args: "%s"\n' % ', '.join(argv)) + fh.close() + +if __name__ == '__main__': + sys.exit(main(sys.argv))