Mercurial > vim
comparison src/option.c @ 11063:e71d3bdf3bc3 v8.0.0420
patch 8.0.0420: text garbled when the system encoding differs from 'encoding'
commit https://github.com/vim/vim/commit/2c7292dc5bbf155fe2192d417363b8c085759cad
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Mar 5 17:43:31 2017 +0100
patch 8.0.0420: text garbled when the system encoding differs from 'encoding'
Problem: When running :make the output may be in the system encoding,
different from 'encoding'.
Solution: Add the 'makeencoding' option. (Ken Takata)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sun, 05 Mar 2017 17:45:05 +0100 |
parents | 0cfcbb7046b6 |
children | d2178a6cc9f3 |
comparison
equal
deleted
inserted
replaced
11062:1218c5353e2b | 11063:e71d3bdf3bc3 |
---|---|
137 #define PV_KP OPT_BOTH(OPT_BUF(BV_KP)) | 137 #define PV_KP OPT_BOTH(OPT_BUF(BV_KP)) |
138 #ifdef FEAT_LISP | 138 #ifdef FEAT_LISP |
139 # define PV_LISP OPT_BUF(BV_LISP) | 139 # define PV_LISP OPT_BUF(BV_LISP) |
140 # define PV_LW OPT_BOTH(OPT_BUF(BV_LW)) | 140 # define PV_LW OPT_BOTH(OPT_BUF(BV_LW)) |
141 #endif | 141 #endif |
142 #ifdef FEAT_MBYTE | |
143 # define PV_MENC OPT_BOTH(OPT_BUF(BV_MENC)) | |
144 #endif | |
142 #define PV_MA OPT_BUF(BV_MA) | 145 #define PV_MA OPT_BUF(BV_MA) |
143 #define PV_ML OPT_BUF(BV_ML) | 146 #define PV_ML OPT_BUF(BV_ML) |
144 #define PV_MOD OPT_BUF(BV_MOD) | 147 #define PV_MOD OPT_BUF(BV_MOD) |
145 #define PV_MPS OPT_BUF(BV_MPS) | 148 #define PV_MPS OPT_BUF(BV_MPS) |
146 #define PV_NF OPT_BUF(BV_NF) | 149 #define PV_NF OPT_BUF(BV_NF) |
1896 (char_u *)&p_mef, PV_NONE, | 1899 (char_u *)&p_mef, PV_NONE, |
1897 {(char_u *)"", (char_u *)0L} | 1900 {(char_u *)"", (char_u *)0L} |
1898 #else | 1901 #else |
1899 (char_u *)NULL, PV_NONE, | 1902 (char_u *)NULL, PV_NONE, |
1900 {(char_u *)NULL, (char_u *)0L} | 1903 {(char_u *)NULL, (char_u *)0L} |
1904 #endif | |
1905 SCRIPTID_INIT}, | |
1906 {"makeencoding","menc", P_STRING|P_VI_DEF, | |
1907 #ifdef FEAT_MBYTE | |
1908 (char_u *)&p_menc, PV_MENC, | |
1909 {(char_u *)"", (char_u *)0L} | |
1910 #else | |
1911 (char_u *)NULL, PV_NONE, | |
1912 {(char_u *)0L, (char_u *)0L} | |
1901 #endif | 1913 #endif |
1902 SCRIPTID_INIT}, | 1914 SCRIPTID_INIT}, |
1903 {"makeprg", "mp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, | 1915 {"makeprg", "mp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, |
1904 #ifdef FEAT_QUICKFIX | 1916 #ifdef FEAT_QUICKFIX |
1905 (char_u *)&p_mp, PV_MP, | 1917 (char_u *)&p_mp, PV_MP, |
5684 #endif | 5696 #endif |
5685 #ifdef FEAT_LISP | 5697 #ifdef FEAT_LISP |
5686 check_string_option(&buf->b_p_lw); | 5698 check_string_option(&buf->b_p_lw); |
5687 #endif | 5699 #endif |
5688 check_string_option(&buf->b_p_bkc); | 5700 check_string_option(&buf->b_p_bkc); |
5701 #ifdef FEAT_MBYTE | |
5702 check_string_option(&buf->b_p_menc); | |
5703 #endif | |
5689 } | 5704 } |
5690 | 5705 |
5691 /* | 5706 /* |
5692 * Free the string allocated for an option. | 5707 * Free the string allocated for an option. |
5693 * Checks for the string being empty_option. This may happen if we're out of | 5708 * Checks for the string being empty_option. This may happen if we're out of |
6287 errmsg = e_invarg; | 6302 errmsg = e_invarg; |
6288 } | 6303 } |
6289 #endif | 6304 #endif |
6290 | 6305 |
6291 #ifdef FEAT_MBYTE | 6306 #ifdef FEAT_MBYTE |
6292 /* 'encoding' and 'fileencoding' */ | 6307 /* 'encoding', 'fileencoding', 'termencoding' and 'makeencoding' */ |
6293 else if (varp == &p_enc || gvarp == &p_fenc || varp == &p_tenc) | 6308 else if (varp == &p_enc || gvarp == &p_fenc || varp == &p_tenc |
6309 || gvarp == &p_menc) | |
6294 { | 6310 { |
6295 if (gvarp == &p_fenc) | 6311 if (gvarp == &p_fenc) |
6296 { | 6312 { |
6297 if (!curbuf->b_p_ma && opt_flags != OPT_GLOBAL) | 6313 if (!curbuf->b_p_ma && opt_flags != OPT_GLOBAL) |
6298 errmsg = e_modifiable; | 6314 errmsg = e_modifiable; |
10423 #ifdef FEAT_LISP | 10439 #ifdef FEAT_LISP |
10424 case PV_LW: | 10440 case PV_LW: |
10425 clear_string_option(&buf->b_p_lw); | 10441 clear_string_option(&buf->b_p_lw); |
10426 break; | 10442 break; |
10427 #endif | 10443 #endif |
10444 #ifdef FEAT_MBYTE | |
10445 case PV_MENC: | |
10446 clear_string_option(&buf->b_p_menc); | |
10447 break; | |
10448 #endif | |
10428 } | 10449 } |
10429 } | 10450 } |
10430 | 10451 |
10431 /* | 10452 /* |
10432 * Get pointer to option variable, depending on local or global scope. | 10453 * Get pointer to option variable, depending on local or global scope. |
10476 case PV_UL: return (char_u *)&(curbuf->b_p_ul); | 10497 case PV_UL: return (char_u *)&(curbuf->b_p_ul); |
10477 #ifdef FEAT_LISP | 10498 #ifdef FEAT_LISP |
10478 case PV_LW: return (char_u *)&(curbuf->b_p_lw); | 10499 case PV_LW: return (char_u *)&(curbuf->b_p_lw); |
10479 #endif | 10500 #endif |
10480 case PV_BKC: return (char_u *)&(curbuf->b_p_bkc); | 10501 case PV_BKC: return (char_u *)&(curbuf->b_p_bkc); |
10502 #ifdef FEAT_MBYTE | |
10503 case PV_MENC: return (char_u *)&(curbuf->b_p_menc); | |
10504 #endif | |
10481 } | 10505 } |
10482 return NULL; /* "cannot happen" */ | 10506 return NULL; /* "cannot happen" */ |
10483 } | 10507 } |
10484 return get_varp(p); | 10508 return get_varp(p); |
10485 } | 10509 } |
10550 case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL | 10574 case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL |
10551 ? (char_u *)&(curbuf->b_p_ul) : p->var; | 10575 ? (char_u *)&(curbuf->b_p_ul) : p->var; |
10552 #ifdef FEAT_LISP | 10576 #ifdef FEAT_LISP |
10553 case PV_LW: return *curbuf->b_p_lw != NUL | 10577 case PV_LW: return *curbuf->b_p_lw != NUL |
10554 ? (char_u *)&(curbuf->b_p_lw) : p->var; | 10578 ? (char_u *)&(curbuf->b_p_lw) : p->var; |
10579 #endif | |
10580 #ifdef FEAT_MBYTE | |
10581 case PV_MENC: return *curbuf->b_p_menc != NUL | |
10582 ? (char_u *)&(curbuf->b_p_menc) : p->var; | |
10555 #endif | 10583 #endif |
10556 | 10584 |
10557 #ifdef FEAT_ARABIC | 10585 #ifdef FEAT_ARABIC |
10558 case PV_ARAB: return (char_u *)&(curwin->w_p_arab); | 10586 case PV_ARAB: return (char_u *)&(curwin->w_p_arab); |
10559 #endif | 10587 #endif |
11151 #ifdef FEAT_PERSISTENT_UNDO | 11179 #ifdef FEAT_PERSISTENT_UNDO |
11152 buf->b_p_udf = p_udf; | 11180 buf->b_p_udf = p_udf; |
11153 #endif | 11181 #endif |
11154 #ifdef FEAT_LISP | 11182 #ifdef FEAT_LISP |
11155 buf->b_p_lw = empty_option; | 11183 buf->b_p_lw = empty_option; |
11184 #endif | |
11185 #ifdef FEAT_MBYTE | |
11186 buf->b_p_menc = empty_option; | |
11156 #endif | 11187 #endif |
11157 | 11188 |
11158 /* | 11189 /* |
11159 * Don't copy the options set by ex_help(), use the saved values, | 11190 * Don't copy the options set by ex_help(), use the saved values, |
11160 * when going from a help buffer to a non-help buffer. | 11191 * when going from a help buffer to a non-help buffer. |