forked from aniani/vim
patch 8.2.2912: MS-Windows: most users expect using Unicode
Problem: MS-Windows: most users expect using Unicode. Solution: Default 'encoding' to utf-8 on MS-Windows. (Ken Takata, closes #3907)
This commit is contained in:
parent
e71c0ebe2c
commit
f883d9027c
@ -2828,7 +2828,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|||||||
|setcellwidths()| function to change the behavior.
|
|setcellwidths()| function to change the behavior.
|
||||||
|
|
||||||
*'encoding'* *'enc'* *E543*
|
*'encoding'* *'enc'* *E543*
|
||||||
'encoding' 'enc' string (default: "latin1" or value from $LANG)
|
'encoding' 'enc' string (default for MS-Windows: "utf-8",
|
||||||
|
otherwise: value from $LANG or "latin1")
|
||||||
global
|
global
|
||||||
Sets the character encoding used inside Vim. It applies to text in
|
Sets the character encoding used inside Vim. It applies to text in
|
||||||
the buffers, registers, Strings in expressions, text stored in the
|
the buffers, registers, Strings in expressions, text stored in the
|
||||||
|
@ -4456,7 +4456,7 @@ enc_canonize(char_u *enc)
|
|||||||
// Use the default encoding as it's found by set_init_1().
|
// Use the default encoding as it's found by set_init_1().
|
||||||
r = get_encoding_default();
|
r = get_encoding_default();
|
||||||
if (r == NULL)
|
if (r == NULL)
|
||||||
r = (char_u *)"latin1";
|
r = (char_u *)ENC_DFLT;
|
||||||
return vim_strsave(r);
|
return vim_strsave(r);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,14 +430,21 @@ set_init_1(int clean_arg)
|
|||||||
# endif
|
# endif
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
|
# ifdef MSWIN
|
||||||
|
// MS-Windows has builtin support for conversion to and from Unicode, using
|
||||||
|
// "utf-8" for 'encoding' should work best for most users.
|
||||||
|
p = vim_strsave((char_u *)ENC_DFLT);
|
||||||
|
# else
|
||||||
// enc_locale() will try to find the encoding of the current locale.
|
// enc_locale() will try to find the encoding of the current locale.
|
||||||
|
// This works best for properly configured systems, old and new.
|
||||||
p = enc_locale();
|
p = enc_locale();
|
||||||
|
# endif
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
{
|
{
|
||||||
char_u *save_enc;
|
char_u *save_enc;
|
||||||
|
|
||||||
// Try setting 'encoding' and check if the value is valid.
|
// Try setting 'encoding' and check if the value is valid.
|
||||||
// If not, go back to the default "latin1".
|
// If not, go back to the default encoding.
|
||||||
save_enc = p_enc;
|
save_enc = p_enc;
|
||||||
p_enc = p;
|
p_enc = p;
|
||||||
if (STRCMP(p_enc, "gb18030") == 0)
|
if (STRCMP(p_enc, "gb18030") == 0)
|
||||||
|
@ -127,7 +127,11 @@ typedef enum {
|
|||||||
#define ENC_UCSBOM "ucs-bom" // check for BOM at start of file
|
#define ENC_UCSBOM "ucs-bom" // check for BOM at start of file
|
||||||
|
|
||||||
// default value for 'encoding'
|
// default value for 'encoding'
|
||||||
#define ENC_DFLT "latin1"
|
#ifdef MSWIN
|
||||||
|
# define ENC_DFLT "utf-8"
|
||||||
|
#else
|
||||||
|
# define ENC_DFLT "latin1"
|
||||||
|
#endif
|
||||||
|
|
||||||
// end-of-line style
|
// end-of-line style
|
||||||
#define EOL_UNKNOWN -1 // not defined yet
|
#define EOL_UNKNOWN -1 // not defined yet
|
||||||
|
@ -501,7 +501,7 @@ func Test_write_file_encoding()
|
|||||||
CheckMSWindows
|
CheckMSWindows
|
||||||
let save_encoding = &encoding
|
let save_encoding = &encoding
|
||||||
let save_fileencodings = &fileencodings
|
let save_fileencodings = &fileencodings
|
||||||
set encoding& fileencodings&
|
set encoding=latin1 fileencodings&
|
||||||
let text =<< trim END
|
let text =<< trim END
|
||||||
1 utf-8 text: ДлÑ<EFBFBD> Vim version 6.2. ПоÑ<EFBFBD>леднее изменение: 1970 Jan 01
|
1 utf-8 text: ДлÑ<EFBFBD> Vim version 6.2. ПоÑ<EFBFBD>леднее изменение: 1970 Jan 01
|
||||||
2 cp1251 text: Äëÿ Vim version 6.2. Ïîñëåäíåå èçìåíåíèå: 1970 Jan 01
|
2 cp1251 text: Äëÿ Vim version 6.2. Ïîñëåäíåå èçìåíåíèå: 1970 Jan 01
|
||||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
2912,
|
||||||
/**/
|
/**/
|
||||||
2911,
|
2911,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user