wrap arguments in quotation marks in case they contain spaces

This commit is contained in:
Josh Holtrop 2012-02-21 13:07:56 -05:00
parent b62fc84127
commit 10fc925eb9

View File

@ -1,18 +1,20 @@
#include <stdio.h> #include <stdio.h>
#include <unistd.h> #include <unistd.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
const char **new_argv = malloc(sizeof(char *) * (argc + 2)); char **new_argv = malloc(sizeof(char *) * (argc + 2));
int i = 0; int i = 0;
new_argv[i++] = "gvim"; new_argv[i++] = "gvim";
new_argv[i++] = "--remote-tab-silent"; new_argv[i++] = "--remote-tab-silent";
for (int n = 1; n < argc; n++) for (int n = 1; n < argc; n++, i++)
{ {
new_argv[i++] = argv[n]; new_argv[i] = malloc(strlen(argv[n]) + 3);
sprintf(new_argv[i], "\"%s\"", argv[n]);
} }
new_argv[i++] = NULL; new_argv[i++] = NULL;
execv("C:\\apps\\Vim\\vim73\\gvim.exe", new_argv); execv("C:\\apps\\Vim\\vim73\\gvim.exe", (const char * const *) new_argv);
return -1; return -1;
} }