summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.1060
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.1060')
-rw-r--r--data/vim/patches/8.1.1060286
1 files changed, 286 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.1060 b/data/vim/patches/8.1.1060
new file mode 100644
index 000000000..aaee41cbd
--- /dev/null
+++ b/data/vim/patches/8.1.1060
@@ -0,0 +1,286 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.1060
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.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)
+Files: src/gui_w32.c, src/os_w32exe.c
+
+
+*** ../vim-8.1.1059/src/gui_w32.c 2019-03-21 20:50:08.868741864 +0100
+--- src/gui_w32.c 2019-03-27 21:56:47.457072295 +0100
+***************
+*** 3882,4032 ****
+ }
+
+
+- /*
+- * 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
+--- 3882,3887 ----
+*** ../vim-8.1.1059/src/os_w32exe.c 2019-02-17 17:44:36.219875473 +0100
+--- src/os_w32exe.c 2019-03-27 21:56:47.457072295 +0100
+***************
+*** 10,16 ****
+ /*
+ * Windows GUI: main program (EXE) entry point:
+ *
+! * Ron Aaron <ronaharon@yahoo.com> wrote this and the DLL support code.
+ */
+ #include "vim.h"
+
+--- 10,16 ----
+ /*
+ * Windows GUI: main program (EXE) entry point:
+ *
+! * Ron Aaron <ronaharon@yahoo.com> wrote this and the DLL support code.
+ */
+ #include "vim.h"
+
+***************
+*** 42,77 ****
+ WinMain(
+ HINSTANCE hInstance UNUSED,
+ HINSTANCE hPrevInst UNUSED,
+! LPSTR lpszCmdLine,
+ int nCmdShow UNUSED)
+ {
+ int argc = 0;
+! char **argv;
+! char *tofree;
+! char prog[256];
+ #ifdef VIMDLL
+ char *p;
+ HANDLE hLib;
+- #endif
+
+ /* Ron: added full path name so that the $VIM variable will get set to our
+ * startup path (so the .vimrc file can be found w/o a VIM env. var.) */
+ GetModuleFileName(NULL, prog, 255);
+
+! argc = get_cmd_args(prog, (char *)lpszCmdLine, &argv, &tofree);
+! if (argc == 0)
+! {
+! MessageBox(0, "Could not allocate memory for command line.",
+! "VIM Error", 0);
+! return 0;
+! }
+!
+! #ifdef DYNAMIC_GETTEXT
+ /* Initialize gettext library */
+ dyn_libintl_init();
+! #endif
+
+- #ifdef VIMDLL
+ // LoadLibrary - get name of dll to load in here:
+ p = strrchr(prog, '\\');
+ if (p != NULL)
+--- 42,66 ----
+ WinMain(
+ HINSTANCE hInstance UNUSED,
+ HINSTANCE hPrevInst UNUSED,
+! LPSTR lpszCmdLine UNUSED,
+ int nCmdShow UNUSED)
+ {
+ int argc = 0;
+! char **argv = NULL;
+ #ifdef VIMDLL
++ char prog[256];
+ char *p;
+ HANDLE hLib;
+
+ /* Ron: added full path name so that the $VIM variable will get set to our
+ * startup path (so the .vimrc file can be found w/o a VIM env. var.) */
+ GetModuleFileName(NULL, prog, 255);
+
+! # ifdef DYNAMIC_GETTEXT
+ /* Initialize gettext library */
+ dyn_libintl_init();
+! # endif
+
+ // LoadLibrary - get name of dll to load in here:
+ p = strrchr(prog, '\\');
+ if (p != NULL)
+***************
+*** 127,135 ****
+ FreeLibrary(hLib);
+ errout:
+ #endif
+- free(argv);
+- if (tofree != NULL)
+- free(tofree);
+ free_cmd_argsW();
+
+ return 0;
+--- 116,121 ----
+*** ../vim-8.1.1059/src/version.c 2019-03-27 21:49:10.761396675 +0100
+--- src/version.c 2019-03-27 21:58:01.508417951 +0100
+***************
+*** 777,778 ****
+--- 777,780 ----
+ { /* Add new patch number below this line */
++ /**/
++ 1060,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+133. You communicate with people on other continents more than you
+ do with your own neighbors.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///