summaryrefslogtreecommitdiffstats
path: root/src/gui_w32.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-03-27 21:59:45 +0100
committerBram Moolenaar <Bram@vim.org>2019-03-27 21:59:45 +0100
commit760285dd4f20d25e8ae3166996981b8dddba366a (patch)
tree6bc56f14a106b12210b75f02a7a6c96bfcb69438 /src/gui_w32.c
parent90d0cf69aab7c1d6f5212d47ca1a5fe1a213bbc8 (diff)
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.c145
1 files changed, 0 insertions, 145 deletions
diff --git a/src/gui_w32.c b/src/gui_w32.c
index e8336b56f6..c584d8c78b 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