summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.223
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.223')
-rw-r--r--source/ap/vim/patches/7.3.223387
1 files changed, 387 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.223 b/source/ap/vim/patches/7.3.223
new file mode 100644
index 000000000..e151c5b74
--- /dev/null
+++ b/source/ap/vim/patches/7.3.223
@@ -0,0 +1,387 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.223
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.223
+Problem: MingW cross compilation doesn't work with tiny features.
+Solution: Move acp_to_enc(), enc_to_utf16() and utf16_to_enc() outside of
+ "#ifdef CLIPBOARD". Fix typo in makefile.
+Files: src/Make_ming.mak, src/os_mswin.c
+
+
+*** ../mercurial/vim73/src/Make_ming.mak 2010-12-30 14:50:46.000000000 +0100
+--- src/Make_ming.mak 2011-06-19 01:20:16.000000000 +0200
+***************
+*** 87,93 ****
+
+ # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
+ # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
+! # uncomment the following, but I can't build a static versión with them, ?-(|
+ #GETTEXT=c:/gettext-0.10.37-20010430
+ #STATIC_GETTEXT=USE_STATIC_GETTEXT
+ #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
+--- 87,93 ----
+
+ # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext
+ # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/
+! # uncomment the following, but I can't build a static version with them, ?-(|
+ #GETTEXT=c:/gettext-0.10.37-20010430
+ #STATIC_GETTEXT=USE_STATIC_GETTEXT
+ #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT
+*** ../mercurial/vim73/src/os_mswin.c 2011-06-19 01:14:23.000000000 +0200
+--- src/os_mswin.c 2011-06-19 01:25:23.000000000 +0200
+***************
+*** 1105,1236 ****
+ return ret;
+ }
+
+- #if defined(FEAT_MBYTE) || defined(PROTO)
+- /*
+- * Note: the following two functions are only guaranteed to work when using
+- * valid MS-Windows codepages or when iconv() is available.
+- */
+-
+- /*
+- * Convert "str" from 'encoding' to UTF-16.
+- * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
+- * Output is returned as an allocated string. "*lenp" is set to the length of
+- * the result. A trailing NUL is always added.
+- * Returns NULL when out of memory.
+- */
+- short_u *
+- enc_to_utf16(char_u *str, int *lenp)
+- {
+- vimconv_T conv;
+- WCHAR *ret;
+- char_u *allocbuf = NULL;
+- int len_loc;
+- int length;
+-
+- if (lenp == NULL)
+- {
+- len_loc = (int)STRLEN(str) + 1;
+- lenp = &len_loc;
+- }
+-
+- if (enc_codepage > 0)
+- {
+- /* We can do any CP### -> UTF-16 in one pass, and we can do it
+- * without iconv() (convert_* may need iconv). */
+- MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
+- }
+- else
+- {
+- /* Use "latin1" by default, we might be called before we have p_enc
+- * set up. Convert to utf-8 first, works better with iconv(). Does
+- * nothing if 'encoding' is "utf-8". */
+- conv.vc_type = CONV_NONE;
+- if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
+- (char_u *)"utf-8") == FAIL)
+- return NULL;
+- if (conv.vc_type != CONV_NONE)
+- {
+- str = allocbuf = string_convert(&conv, str, lenp);
+- if (str == NULL)
+- return NULL;
+- }
+- convert_setup(&conv, NULL, NULL);
+-
+- length = utf8_to_utf16(str, *lenp, NULL, NULL);
+- ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
+- if (ret != NULL)
+- {
+- utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
+- ret[length] = 0;
+- }
+-
+- vim_free(allocbuf);
+- }
+-
+- *lenp = length;
+- return (short_u *)ret;
+- }
+-
+- /*
+- * Convert an UTF-16 string to 'encoding'.
+- * Input in "str" with length (counted in wide characters) "*lenp". When
+- * "lenp" is NULL, use wcslen().
+- * Output is returned as an allocated string. If "*lenp" is not NULL it is
+- * set to the length of the result.
+- * Returns NULL when out of memory.
+- */
+- char_u *
+- utf16_to_enc(short_u *str, int *lenp)
+- {
+- vimconv_T conv;
+- char_u *utf8_str = NULL, *enc_str = NULL;
+- int len_loc;
+-
+- if (lenp == NULL)
+- {
+- len_loc = (int)wcslen(str) + 1;
+- lenp = &len_loc;
+- }
+-
+- if (enc_codepage > 0)
+- {
+- /* We can do any UTF-16 -> CP### in one pass. */
+- int length;
+-
+- WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
+- (LPSTR *)&enc_str, &length, 0, 0);
+- *lenp = length;
+- return enc_str;
+- }
+-
+- /* Avoid allocating zero bytes, it generates an error message. */
+- utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
+- if (utf8_str != NULL)
+- {
+- *lenp = utf16_to_utf8(str, *lenp, utf8_str);
+-
+- /* We might be called before we have p_enc set up. */
+- conv.vc_type = CONV_NONE;
+- convert_setup(&conv, (char_u *)"utf-8",
+- p_enc? p_enc: (char_u *)"latin1");
+- if (conv.vc_type == CONV_NONE)
+- {
+- /* p_enc is utf-8, so we're done. */
+- enc_str = utf8_str;
+- }
+- else
+- {
+- enc_str = string_convert(&conv, utf8_str, lenp);
+- vim_free(utf8_str);
+- }
+-
+- convert_setup(&conv, NULL, NULL);
+- }
+-
+- return enc_str;
+- }
+- #endif /* FEAT_MBYTE */
+-
+ /*
+ * Wait for another process to Close the Clipboard.
+ * Returns TRUE for success.
+--- 1105,1110 ----
+***************
+*** 1436,1467 ****
+ #endif
+ }
+
+- #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
+- /*
+- * Convert from the active codepage to 'encoding'.
+- * Input is "str[str_size]".
+- * The result is in allocated memory: "out[outlen]". With terminating NUL.
+- */
+- void
+- acp_to_enc(str, str_size, out, outlen)
+- char_u *str;
+- int str_size;
+- char_u **out;
+- int *outlen;
+-
+- {
+- LPWSTR widestr;
+-
+- MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
+- if (widestr != NULL)
+- {
+- ++*outlen; /* Include the 0 after the string */
+- *out = utf16_to_enc((short_u *)widestr, outlen);
+- vim_free(widestr);
+- }
+- }
+- #endif
+-
+ /*
+ * Send the current selection to the clipboard.
+ */
+--- 1310,1315 ----
+***************
+*** 1626,1631 ****
+--- 1474,1631 ----
+
+ #endif /* FEAT_CLIPBOARD */
+
++ #if defined(FEAT_MBYTE) || defined(PROTO)
++ /*
++ * Note: the following two functions are only guaranteed to work when using
++ * valid MS-Windows codepages or when iconv() is available.
++ */
++
++ /*
++ * Convert "str" from 'encoding' to UTF-16.
++ * Input in "str" with length "*lenp". When "lenp" is NULL, use strlen().
++ * Output is returned as an allocated string. "*lenp" is set to the length of
++ * the result. A trailing NUL is always added.
++ * Returns NULL when out of memory.
++ */
++ short_u *
++ enc_to_utf16(char_u *str, int *lenp)
++ {
++ vimconv_T conv;
++ WCHAR *ret;
++ char_u *allocbuf = NULL;
++ int len_loc;
++ int length;
++
++ if (lenp == NULL)
++ {
++ len_loc = (int)STRLEN(str) + 1;
++ lenp = &len_loc;
++ }
++
++ if (enc_codepage > 0)
++ {
++ /* We can do any CP### -> UTF-16 in one pass, and we can do it
++ * without iconv() (convert_* may need iconv). */
++ MultiByteToWideChar_alloc(enc_codepage, 0, str, *lenp, &ret, &length);
++ }
++ else
++ {
++ /* Use "latin1" by default, we might be called before we have p_enc
++ * set up. Convert to utf-8 first, works better with iconv(). Does
++ * nothing if 'encoding' is "utf-8". */
++ conv.vc_type = CONV_NONE;
++ if (convert_setup(&conv, p_enc ? p_enc : (char_u *)"latin1",
++ (char_u *)"utf-8") == FAIL)
++ return NULL;
++ if (conv.vc_type != CONV_NONE)
++ {
++ str = allocbuf = string_convert(&conv, str, lenp);
++ if (str == NULL)
++ return NULL;
++ }
++ convert_setup(&conv, NULL, NULL);
++
++ length = utf8_to_utf16(str, *lenp, NULL, NULL);
++ ret = (WCHAR *)alloc((unsigned)((length + 1) * sizeof(WCHAR)));
++ if (ret != NULL)
++ {
++ utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);
++ ret[length] = 0;
++ }
++
++ vim_free(allocbuf);
++ }
++
++ *lenp = length;
++ return (short_u *)ret;
++ }
++
++ /*
++ * Convert an UTF-16 string to 'encoding'.
++ * Input in "str" with length (counted in wide characters) "*lenp". When
++ * "lenp" is NULL, use wcslen().
++ * Output is returned as an allocated string. If "*lenp" is not NULL it is
++ * set to the length of the result.
++ * Returns NULL when out of memory.
++ */
++ char_u *
++ utf16_to_enc(short_u *str, int *lenp)
++ {
++ vimconv_T conv;
++ char_u *utf8_str = NULL, *enc_str = NULL;
++ int len_loc;
++
++ if (lenp == NULL)
++ {
++ len_loc = (int)wcslen(str) + 1;
++ lenp = &len_loc;
++ }
++
++ if (enc_codepage > 0)
++ {
++ /* We can do any UTF-16 -> CP### in one pass. */
++ int length;
++
++ WideCharToMultiByte_alloc(enc_codepage, 0, str, *lenp,
++ (LPSTR *)&enc_str, &length, 0, 0);
++ *lenp = length;
++ return enc_str;
++ }
++
++ /* Avoid allocating zero bytes, it generates an error message. */
++ utf8_str = alloc(utf16_to_utf8(str, *lenp == 0 ? 1 : *lenp, NULL));
++ if (utf8_str != NULL)
++ {
++ *lenp = utf16_to_utf8(str, *lenp, utf8_str);
++
++ /* We might be called before we have p_enc set up. */
++ conv.vc_type = CONV_NONE;
++ convert_setup(&conv, (char_u *)"utf-8",
++ p_enc? p_enc: (char_u *)"latin1");
++ if (conv.vc_type == CONV_NONE)
++ {
++ /* p_enc is utf-8, so we're done. */
++ enc_str = utf8_str;
++ }
++ else
++ {
++ enc_str = string_convert(&conv, utf8_str, lenp);
++ vim_free(utf8_str);
++ }
++
++ convert_setup(&conv, NULL, NULL);
++ }
++
++ return enc_str;
++ }
++ #endif /* FEAT_MBYTE */
++
++ #if (defined(FEAT_MBYTE) && defined(WIN3264)) || defined(PROTO)
++ /*
++ * Convert from the active codepage to 'encoding'.
++ * Input is "str[str_size]".
++ * The result is in allocated memory: "out[outlen]". With terminating NUL.
++ */
++ void
++ acp_to_enc(str, str_size, out, outlen)
++ char_u *str;
++ int str_size;
++ char_u **out;
++ int *outlen;
++
++ {
++ LPWSTR widestr;
++
++ MultiByteToWideChar_alloc(GetACP(), 0, str, str_size, &widestr, outlen);
++ if (widestr != NULL)
++ {
++ ++*outlen; /* Include the 0 after the string */
++ *out = utf16_to_enc((short_u *)widestr, outlen);
++ vim_free(widestr);
++ }
++ }
++ #endif
++
+
+ /*
+ * Debugging helper: expose the MCH_WRITE_DUMP stuff to other modules
+*** ../vim-7.3.222/src/version.c 2011-06-19 01:27:29.000000000 +0200
+--- src/version.c 2011-06-19 01:28:41.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 223,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+191. You rate eating establishments not by the quality of the food,
+ but by the availability of electrical outlets for your PowerBook.
+
+ /// 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 ///