comparison src/eval.c @ 17085:620e9011b685 v8.1.1542

patch 8.1.1542: an OptionSet autocommand does not get enough info commit https://github.com/vim/vim/commit/d7c968794710f338d491072171df48f96612cf72 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 15 17:12:48 2019 +0200 patch 8.1.1542: an OptionSet autocommand does not get enough info Problem: An OptionSet autocommand does not get enough info. Solution: Add v:option_command, v:option_oldlocal and v:option_oldglobal. (Latrice Wilgus, closes #4118)
author Bram Moolenaar <Bram@vim.org>
date Sat, 15 Jun 2019 17:15:05 +0200
parents 00ffed9bbb65
children ebe9aab81898
comparison
equal deleted inserted replaced
17084:06dcb09b3b07 17085:620e9011b685
170 {VV_NAME("windowid", VAR_NUMBER), VV_RO}, 170 {VV_NAME("windowid", VAR_NUMBER), VV_RO},
171 {VV_NAME("progpath", VAR_STRING), VV_RO}, 171 {VV_NAME("progpath", VAR_STRING), VV_RO},
172 {VV_NAME("completed_item", VAR_DICT), VV_RO}, 172 {VV_NAME("completed_item", VAR_DICT), VV_RO},
173 {VV_NAME("option_new", VAR_STRING), VV_RO}, 173 {VV_NAME("option_new", VAR_STRING), VV_RO},
174 {VV_NAME("option_old", VAR_STRING), VV_RO}, 174 {VV_NAME("option_old", VAR_STRING), VV_RO},
175 {VV_NAME("option_oldlocal", VAR_STRING), VV_RO},
176 {VV_NAME("option_oldglobal", VAR_STRING), VV_RO},
177 {VV_NAME("option_command", VAR_STRING), VV_RO},
175 {VV_NAME("option_type", VAR_STRING), VV_RO}, 178 {VV_NAME("option_type", VAR_STRING), VV_RO},
176 {VV_NAME("errors", VAR_LIST), 0}, 179 {VV_NAME("errors", VAR_LIST), 0},
177 {VV_NAME("false", VAR_SPECIAL), VV_RO}, 180 {VV_NAME("false", VAR_SPECIAL), VV_RO},
178 {VV_NAME("true", VAR_SPECIAL), VV_RO}, 181 {VV_NAME("true", VAR_SPECIAL), VV_RO},
179 {VV_NAME("null", VAR_SPECIAL), VV_RO}, 182 {VV_NAME("null", VAR_SPECIAL), VV_RO},
335 func_init(); 338 func_init();
336 339
337 for (i = 0; i < VV_LEN; ++i) 340 for (i = 0; i < VV_LEN; ++i)
338 { 341 {
339 p = &vimvars[i]; 342 p = &vimvars[i];
340 if (STRLEN(p->vv_name) > 16) 343 if (STRLEN(p->vv_name) > DICTITEM16_KEY_LEN)
341 { 344 {
342 iemsg("INTERNAL: name too long, increase size of dictitem16_T"); 345 iemsg("INTERNAL: name too long, increase size of dictitem16_T");
343 getout(1); 346 getout(1);
344 } 347 }
345 STRCPY(p->vv_di.di_key, p->vv_name); 348 STRCPY(p->vv_di.di_key, p->vv_name);
9498 } 9501 }
9499 } 9502 }
9500 } 9503 }
9501 9504
9502 /* 9505 /*
9503 * Reset v:option_new, v:option_old and v:option_type. 9506 * reset v:option_new, v:option_old, v:option_oldlocal, v:option_oldglobal,
9507 * v:option_type, and v:option_command.
9504 */ 9508 */
9505 void 9509 void
9506 reset_v_option_vars(void) 9510 reset_v_option_vars(void)
9507 { 9511 {
9508 set_vim_var_string(VV_OPTION_NEW, NULL, -1); 9512 set_vim_var_string(VV_OPTION_NEW, NULL, -1);
9509 set_vim_var_string(VV_OPTION_OLD, NULL, -1); 9513 set_vim_var_string(VV_OPTION_OLD, NULL, -1);
9514 set_vim_var_string(VV_OPTION_OLDLOCAL, NULL, -1);
9515 set_vim_var_string(VV_OPTION_OLDGLOBAL, NULL, -1);
9510 set_vim_var_string(VV_OPTION_TYPE, NULL, -1); 9516 set_vim_var_string(VV_OPTION_TYPE, NULL, -1);
9517 set_vim_var_string(VV_OPTION_COMMAND, NULL, -1);
9511 } 9518 }
9512 9519
9513 /* 9520 /*
9514 * Prepare "gap" for an assert error and add the sourcing position. 9521 * Prepare "gap" for an assert error and add the sourcing position.
9515 */ 9522 */