Mercurial > vim
diff src/if_mzsch.c @ 26441:65ab0b035dd8 v8.2.3751
patch 8.2.3751: cannot assign a lambda to an option that takes a function
Commit: https://github.com/vim/vim/commit/6409553b6e3b4de4e1d72b8ee5445595214581ff
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Mon Dec 6 11:03:55 2021 +0000
patch 8.2.3751: cannot assign a lambda to an option that takes a function
Problem: Cannot assign a lambda to an option that takes a function.
Solution: Automatically convert the lambda to a string. (Yegappan
Lakshmanan, closes #9286)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Mon, 06 Dec 2021 12:15:04 +0100 |
parents | 038eb6d9003a |
children | 06a137af96f8 |
line wrap: on
line diff
--- a/src/if_mzsch.c +++ b/src/if_mzsch.c @@ -1715,7 +1715,7 @@ get_option(void *data, int argc, Scheme_ getoption_T rc; Scheme_Object *rval = NULL; Scheme_Object *name = NULL; - int opt_flags = 0; + int scope = 0; buf_T *save_curb = curbuf; win_T *save_curw = curwin; @@ -1736,11 +1736,11 @@ get_option(void *data, int argc, Scheme_ } if (argv[1] == M_global) - opt_flags = OPT_GLOBAL; + scope = OPT_GLOBAL; else if (SCHEME_VIMBUFFERP(argv[1])) { curbuf = get_valid_buffer(argv[1]); - opt_flags = OPT_LOCAL; + scope = OPT_LOCAL; } else if (SCHEME_VIMWINDOWP(argv[1])) { @@ -1748,14 +1748,14 @@ get_option(void *data, int argc, Scheme_ curwin = win; curbuf = win->w_buffer; - opt_flags = OPT_LOCAL; + scope = OPT_LOCAL; } else scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); } rc = get_option_value(BYTE_STRING_VALUE(name), &value, (char_u **)&strval, - opt_flags); + NULL, scope); curbuf = save_curb; curwin = save_curw; @@ -1793,7 +1793,7 @@ get_option(void *data, int argc, Scheme_ set_option(void *data, int argc, Scheme_Object **argv) { char_u *command = NULL; - int opt_flags = 0; + int scope = 0; buf_T *save_curb = curbuf; win_T *save_curw = curwin; Vim_Prim *prim = (Vim_Prim *)data; @@ -1814,18 +1814,18 @@ set_option(void *data, int argc, Scheme_ } if (argv[1] == M_global) - opt_flags = OPT_GLOBAL; + scope = OPT_GLOBAL; else if (SCHEME_VIMBUFFERP(argv[1])) { curbuf = get_valid_buffer(argv[1]); - opt_flags = OPT_LOCAL; + scope = OPT_LOCAL; } else if (SCHEME_VIMWINDOWP(argv[1])) { win_T *win = get_valid_window(argv[1]); curwin = win; curbuf = win->w_buffer; - opt_flags = OPT_LOCAL; + scope = OPT_LOCAL; } else scheme_wrong_type(prim->name, "vim-buffer/window", 1, argc, argv); @@ -1834,7 +1834,7 @@ set_option(void *data, int argc, Scheme_ // do_set can modify cmd, make copy command = vim_strsave(BYTE_STRING_VALUE(cmd)); MZ_GC_UNREG(); - do_set(command, opt_flags); + do_set(command, scope); vim_free(command); update_screen(NOT_VALID); curbuf = save_curb;