Mercurial > vim
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 */ |