diff options
author | Bram Moolenaar <Bram@vim.org> | 2019-03-27 21:59:45 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2019-03-27 21:59:45 +0100 |
commit | 760285dd4f20d25e8ae3166996981b8dddba366a (patch) | |
tree | 6bc56f14a106b12210b75f02a7a6c96bfcb69438 /src/gui_w32.c | |
parent | 90d0cf69aab7c1d6f5212d47ca1a5fe1a213bbc8 (diff) | |
download | vim-git-760285dd4f20d25e8ae3166996981b8dddba366a.tar.gz |
patch 8.1.1060: MS-Windows: get_cmd_args() is no longer neededv8.1.1060
Problem: MS-Windows: get_cmd_args() is no longer needed, get_cmd_argsW() is
always used.
Solution: Remove get_cmd_args(). (Ken Takata, closes #4171)
Diffstat (limited to 'src/gui_w32.c')
-rw-r--r-- | src/gui_w32.c | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c index e8336b56f..c584d8c78 100644 --- a/src/gui_w32.c +++ b/src/gui_w32.c @@ -3882,151 +3882,6 @@ _OnScroll( } -/* - * Get command line arguments. - * Use "prog" as the name of the program and "cmdline" as the arguments. - * Copy the arguments to allocated memory. - * Return the number of arguments (including program name). - * Return pointers to the arguments in "argvp". Memory is allocated with - * malloc(), use free() instead of vim_free(). - * Return pointer to buffer in "tofree". - * Returns zero when out of memory. - */ - int -get_cmd_args(char *prog, char *cmdline, char ***argvp, char **tofree) -{ - int i; - char *p; - char *progp; - char *pnew = NULL; - char *newcmdline; - int inquote; - int argc; - char **argv = NULL; - int round; - - *tofree = NULL; - - /* Try using the Unicode version first, it takes care of conversion when - * 'encoding' is changed. */ - argc = get_cmd_argsW(&argv); - if (argc != 0) - goto done; - - /* Handle the program name. Remove the ".exe" extension, and find the 1st - * non-space. */ - p = strrchr(prog, '.'); - if (p != NULL) - *p = NUL; - for (progp = prog; *progp == ' '; ++progp) - ; - - /* The command line is copied to allocated memory, so that we can change - * it. Add the size of the string, the separating NUL and a terminating - * NUL. */ - newcmdline = malloc(STRLEN(cmdline) + STRLEN(progp) + 2); - if (newcmdline == NULL) - return 0; - - /* - * First round: count the number of arguments ("pnew" == NULL). - * Second round: produce the arguments. - */ - for (round = 1; round <= 2; ++round) - { - /* First argument is the program name. */ - if (pnew != NULL) - { - argv[0] = pnew; - strcpy(pnew, progp); - pnew += strlen(pnew); - *pnew++ = NUL; - } - - /* - * Isolate each argument and put it in argv[]. - */ - p = cmdline; - argc = 1; - while (*p != NUL) - { - inquote = FALSE; - if (pnew != NULL) - argv[argc] = pnew; - ++argc; - while (*p != NUL && (inquote || (*p != ' ' && *p != '\t'))) - { - /* Backslashes are only special when followed by a double - * quote. */ - i = (int)strspn(p, "\\"); - if (p[i] == '"') - { - /* Halve the number of backslashes. */ - if (i > 1 && pnew != NULL) - { - vim_memset(pnew, '\\', i / 2); - pnew += i / 2; - } - - /* Even nr of backslashes toggles quoting, uneven copies - * the double quote. */ - if ((i & 1) == 0) - inquote = !inquote; - else if (pnew != NULL) - *pnew++ = '"'; - p += i + 1; - } - else if (i > 0) - { - /* Copy span of backslashes unmodified. */ - if (pnew != NULL) - { - vim_memset(pnew, '\\', i); - pnew += i; - } - p += i; - } - else - { - if (pnew != NULL) - *pnew++ = *p; - /* Can't use mb_* functions, because 'encoding' is not - * initialized yet here. */ - if (IsDBCSLeadByte(*p)) - { - ++p; - if (pnew != NULL) - *pnew++ = *p; - } - ++p; - } - } - - if (pnew != NULL) - *pnew++ = NUL; - while (*p == ' ' || *p == '\t') - ++p; /* advance until a non-space */ - } - - if (round == 1) - { - argv = (char **)malloc((argc + 1) * sizeof(char *)); - if (argv == NULL ) - { - free(newcmdline); - return 0; /* malloc error */ - } - pnew = newcmdline; - *tofree = newcmdline; - } - } - -done: - argv[argc] = NULL; /* NULL-terminated list */ - *argvp = argv; - return argc; -} - #ifdef FEAT_XPM_W32 # include "xpm_w32.h" #endif |