[vim] - patchlevel 223

Karsten Hopp karsten at fedoraproject.org
Mon Jul 11 14:19:57 UTC 2011


commit 26431aa59afeb092fa148d01a19254539f1e7297
Author: Karsten Hopp <karsten at redhat.com>
Date:   Mon Jul 11 16:20:26 2011 +0200

    - patchlevel 223

 7.3.223 |  387 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 387 insertions(+), 0 deletions(-)
---
diff --git a/7.3.223 b/7.3.223
new file mode 100644
index 0000000..e151c5b
--- /dev/null
+++ b/7.3.223
@@ -0,0 +1,387 @@
+To: vim_dev at googlegroups.com
+Subject: Patch 7.3.223
+Fcc: outbox
+From: Bram Moolenaar <Bram at 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 at 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    ///


More information about the scm-commits mailing list