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.