diff src/ex_cmds2.c @ 823:9ab23f1e137f v7.0c12

updated for version 7.0c12
author vimboss
date Fri, 07 Apr 2006 21:40:07 +0000
parents 23f82b5d2814
children 8bebcabccc2c
line wrap: on
line diff
--- a/src/ex_cmds2.c
+++ b/src/ex_cmds2.c
@@ -1488,7 +1488,7 @@ check_changed_any(hidden)
 	 * may cause a redraw.  But wait_return() is a no-op when vgetc()
 	 * is busy (Quit used from window menu), then make sure we don't
 	 * cause a scroll up. */
-	if (vgetc_busy)
+	if (vgetc_busy > 0)
 	{
 	    msg_row = cmdline_row;
 	    msg_col = 0;
@@ -3696,20 +3696,20 @@ get_locale_val(what)
      * redefined and it doesn't use the arguments. */
     loc = setlocale(what, NULL);
 
-# if defined(__BORLANDC__)
+# ifdef WIN32
     if (loc != NULL)
     {
 	char_u	*p;
 
-	/* Borland returns something like "LC_CTYPE=<name>\n"
-	 * Let's try to fix that bug here... */
+	/* setocale() returns something like "LC_COLLATE=<name>;LC_..." when
+	 * one of the values (e.g., LC_CTYPE) differs. */
 	p = vim_strchr(loc, '=');
 	if (p != NULL)
 	{
 	    loc = ++p;
 	    while (*p != NUL)	/* remove trailing newline */
 	    {
-		if (*p < ' ')
+		if (*p < ' ' || *p == ';')
 		{
 		    *p = NUL;
 		    break;
@@ -3778,8 +3778,10 @@ get_mess_lang()
     p = (char_u *)get_locale_val(LC_MESSAGES);
 #  else
     /* This is necessary for Win32, where LC_MESSAGES is not defined and $LANG
-     * may be set to the LCID number. */
-    p = (char_u *)get_locale_val(LC_ALL);
+     * may be set to the LCID number.  LC_COLLATE is the best guess, LC_TIME
+     * and LC_MONETARY may be set differently for a Japanese working in the
+     * US. */
+    p = (char_u *)get_locale_val(LC_COLLATE);
 #  endif
 # else
     p = mch_getenv((char_u *)"LC_ALL");