diff options
author | Yegappan Lakshmanan <yegappan@yahoo.com> | 2023-02-20 12:16:39 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2023-02-20 12:16:39 +0000 |
commit | af93691b53f38784efce0b93fe7644c44a7e382e (patch) | |
tree | 74e8f31e222aed907e80c4dc5b0bded5f7400537 /src/proto | |
parent | 997b8a015cd39141866e953651d55c705275cbd6 (diff) |
patch 9.0.1330: handling new value of an option has a long "else if" chainv9.0.1330
Problem: Handling new value of an option has a long "else if" chain.
Solution: Use a function pointer. (Yegappan Lakshmanan, closes #12015)
Diffstat (limited to 'src/proto')
-rw-r--r-- | src/proto/clipboard.pro | 2 | ||||
-rw-r--r-- | src/proto/ex_getln.pro | 2 | ||||
-rw-r--r-- | src/proto/gui_xim.pro | 4 | ||||
-rw-r--r-- | src/proto/hardcopy.pro | 4 | ||||
-rw-r--r-- | src/proto/if_mzsch.pro | 2 | ||||
-rw-r--r-- | src/proto/insexpand.pro | 6 | ||||
-rw-r--r-- | src/proto/map.pro | 2 | ||||
-rw-r--r-- | src/proto/ops.pro | 2 | ||||
-rw-r--r-- | src/proto/option.pro | 65 | ||||
-rw-r--r-- | src/proto/optionstr.pro | 73 | ||||
-rw-r--r-- | src/proto/quickfix.pro | 2 | ||||
-rw-r--r-- | src/proto/spell.pro | 2 | ||||
-rw-r--r-- | src/proto/tag.pro | 2 |
13 files changed, 151 insertions, 17 deletions
diff --git a/src/proto/clipboard.pro b/src/proto/clipboard.pro index 3dca35b9ad..f3e8cab979 100644 --- a/src/proto/clipboard.pro +++ b/src/proto/clipboard.pro @@ -18,7 +18,7 @@ void clip_scroll_selection(int rows); void clip_copy_modeless_selection(int both); void clip_gen_set_selection(Clipboard_T *cbd); int clip_gen_owner_exists(Clipboard_T *cbd); -char *check_clipboard_option(void); +char *did_set_clipboard(optset_T *args); void open_app_context(void); void x11_setup_atoms(Display *dpy); void x11_setup_selection(Widget w); diff --git a/src/proto/ex_getln.pro b/src/proto/ex_getln.pro index 88f0175ae4..956916dc54 100644 --- a/src/proto/ex_getln.pro +++ b/src/proto/ex_getln.pro @@ -39,7 +39,7 @@ void f_setcmdline(typval_T *argvars, typval_T *rettv); void f_setcmdpos(typval_T *argvars, typval_T *rettv); int get_cmdline_firstc(void); int get_list_range(char_u **str, int *num1, int *num2); -char *check_cedit(void); +char *did_set_cedit(optset_T *args); int is_in_cmdwin(void); char_u *script_get(exarg_T *eap, char_u *cmd); void get_user_input(typval_T *argvars, typval_T *rettv, int inputdialog, int secret); diff --git a/src/proto/gui_xim.pro b/src/proto/gui_xim.pro index 2e944aef66..bac7321de9 100644 --- a/src/proto/gui_xim.pro +++ b/src/proto/gui_xim.pro @@ -1,6 +1,6 @@ /* gui_xim.c */ -char *set_imactivatefunc_option(void); -char *set_imstatusfunc_option(void); +char *did_set_imactivatefunc(optset_T *args); +char *did_set_imstatusfunc(optset_T *args); void free_xim_stuff(void); int set_ref_in_im_funcs(int copyID); void im_set_active(int active); diff --git a/src/proto/hardcopy.pro b/src/proto/hardcopy.pro index 615f088565..8a8c73e56f 100644 --- a/src/proto/hardcopy.pro +++ b/src/proto/hardcopy.pro @@ -1,6 +1,6 @@ /* hardcopy.c */ -char *parse_printoptions(void); -char *parse_printmbfont(void); +char *parse_printoptions(optset_T *args); +char *parse_printmbfont(optset_T *args); int prt_header_height(void); int prt_use_number(void); int prt_get_unit(int idx); diff --git a/src/proto/if_mzsch.pro b/src/proto/if_mzsch.pro index bab82cef3f..00bbf3c058 100644 --- a/src/proto/if_mzsch.pro +++ b/src/proto/if_mzsch.pro @@ -1,7 +1,7 @@ /* if_mzsch.c */ int mzscheme_enabled(int verbose); void mzvim_check_threads(void); -void mzvim_reset_timer(void); +char *did_set_mzquantum(void); void mzscheme_end(void); int mzscheme_main(void); void mzscheme_buffer_free(buf_T *buf); diff --git a/src/proto/insexpand.pro b/src/proto/insexpand.pro index b10d2a8c69..51f5db0f8f 100644 --- a/src/proto/insexpand.pro +++ b/src/proto/insexpand.pro @@ -44,11 +44,11 @@ int ins_compl_bs(void); void ins_compl_addleader(int c); void ins_compl_addfrommatch(void); int ins_compl_prep(int c); -char *set_completefunc_option(void); +char *did_set_completefunc(optset_T *args); void set_buflocal_cfu_callback(buf_T *buf); -char *set_omnifunc_option(void); +char *did_set_omnifunc(optset_T *args); void set_buflocal_ofu_callback(buf_T *buf); -char *set_thesaurusfunc_option(void); +char *did_set_thesaurusfunc(optset_T *args); int set_ref_in_insexpand_funcs(int copyID); void f_complete(typval_T *argvars, typval_T *rettv); void f_complete_add(typval_T *argvars, typval_T *rettv); diff --git a/src/proto/map.pro b/src/proto/map.pro index 1ed088dc64..d696aabcd7 100644 --- a/src/proto/map.pro +++ b/src/proto/map.pro @@ -26,7 +26,7 @@ void init_mappings(void); void add_map(char_u *map, int mode, int nore); int langmap_adjust_mb(int c); void langmap_init(void); -void langmap_set(void); +char *did_set_langmap(optset_T *args); void ex_abbreviate(exarg_T *eap); void ex_map(exarg_T *eap); void ex_unmap(exarg_T *eap); diff --git a/src/proto/ops.pro b/src/proto/ops.pro index 8a25bf6261..193e89430e 100644 --- a/src/proto/ops.pro +++ b/src/proto/ops.pro @@ -17,7 +17,7 @@ void block_prep(oparg_T *oap, struct block_def *bdp, linenr_T lnum, int is_del); void op_addsub(oparg_T *oap, linenr_T Prenum1, int g_cmd); void clear_oparg(oparg_T *oap); void cursor_pos_info(dict_T *dict); -char *set_operatorfunc_option(void); +char *did_set_operatorfunc(optset_T *args); void free_operatorfunc_option(void); int set_ref_in_opfunc(int copyID); void do_pending_operator(cmdarg_T *cap, int old_col, int gui_yank); diff --git a/src/proto/option.pro b/src/proto/option.pro index b32b95ed34..a4a2b9f815 100644 --- a/src/proto/option.pro +++ b/src/proto/option.pro @@ -24,6 +24,68 @@ int valid_name(char_u *val, char *allowed); void set_option_sctx_idx(int opt_idx, int opt_flags, sctx_T script_ctx); sctx_T *get_option_sctx(char *name); void set_term_option_sctx_idx(char *name, int opt_idx); +char *did_set_compatible(optset_T *args); +char *did_set_langremap(optset_T *args); +char *did_set_langnoremap(optset_T *args); +char *did_set_undofile(optset_T *args); +char *did_set_readonly(optset_T *args); +char *did_set_mousehide(optset_T *args); +char *did_set_modifiable(optset_T *args); +char *did_set_eof_eol_fixeol_bomb(optset_T *args); +char *did_set_binary(optset_T *args); +char *did_set_buflisted(optset_T *args); +char *did_set_swapfile(optset_T *args); +char *did_set_terse(optset_T *args); +char *did_set_paste(optset_T *args); +char *did_set_insertmode(optset_T *args); +char *did_set_ignorecase(optset_T *args); +char *did_set_hlsearch(optset_T *args); +char *did_set_scrollbind(optset_T *args); +char *did_set_previewwindow(optset_T *args); +char *did_set_smoothscroll(optset_T *args); +char *did_set_textmode(optset_T *args); +char *did_set_textauto(optset_T *args); +char *did_set_lisp(optset_T *args); +char *did_set_title_icon(optset_T *args); +char *did_set_modified(optset_T *args); +char *did_set_shellslash(optset_T *args); +char *did_set_wrap(optset_T *args); +char *did_set_equalalways(optset_T *args); +char *did_set_weirdinvert(optset_T *args); +char *did_set_ballooneval(optset_T *args); +char *did_set_balloonevalterm(optset_T *args); +char *did_set_autochdir(optset_T *args); +char *did_set_diff(optset_T *args); +char *did_set_imdisable(optset_T *args); +char *did_set_spell(optset_T *args); +char *did_set_arabic(optset_T *args); +char *did_set_number_relativenumber(optset_T *args); +char *did_set_termguicolors(optset_T *args); +char *did_set_winheight_helpheight(optset_T *args); +char *did_set_winminheight(optset_T *args); +char *did_set_winwidth(optset_T *args); +char *did_set_winminwidth(optset_T *args); +char *did_set_laststatus(optset_T *args); +char *did_set_showtabline(optset_T *args); +char *did_set_linespace(optset_T *args); +char *did_set_foldlevel(optset_T *args); +char *did_set_foldminlines(optset_T *args); +char *did_set_foldnestmax(optset_T *args); +char *did_set_foldcolumn(optset_T *args); +char *did_set_shiftwidth_tabstop(optset_T *args); +char *did_set_maxcombine(optset_T *args); +char *did_set_iminsert(optset_T *args); +char *did_set_imstyle(optset_T *args); +char *did_set_window(optset_T *args); +char *did_set_imsearch(optset_T *args); +char *did_set_titlelen(optset_T *args); +char *did_set_cmdheight(optset_T *args); +char *did_set_updatecount(optset_T *args); +char *did_set_conceallevel(optset_T *args); +char *did_set_pyxversion(optset_T *args); +char *did_set_numberwidth(optset_T *args); +char *did_set_textwidth(optset_T *args); +char *did_set_undolevels(optset_T *args); void check_redraw(long_u flags); int findoption(char_u *arg); getoption_T get_option_value(char_u *name, long *numval, char_u **stringval, int *flagsp, int scope); @@ -55,6 +117,7 @@ void unset_global_local_option(char_u *name, void *from); char_u *get_option_varp_scope(int opt_idx, int scope); char_u *get_option_var(int opt_idx); char_u *get_option_fullname(int opt_idx); +opt_did_set_cb_T get_option_did_set_cb(int opt_idx); char_u *get_equalprg(void); void win_copy_options(win_T *wp_from, win_T *wp_to); void after_copy_winopt(win_T *wp); @@ -72,7 +135,7 @@ void vimrc_found(char_u *fname, char_u *envname); void change_compatible(int on); int option_was_set(char_u *name); int reset_option_was_set(char_u *name); -void fill_breakat_flags(void); +char *did_set_breakat(optset_T *args); int can_bs(int what); long get_scrolloff_value(void); long get_sidescrolloff_value(void); diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro index d4f96be40c..d92a7f0067 100644 --- a/src/proto/optionstr.pro +++ b/src/proto/optionstr.pro @@ -9,7 +9,78 @@ void set_string_option_direct(char_u *name, int opt_idx, char_u *val, int opt_fl void set_string_option_direct_in_win(win_T *wp, char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid); void set_string_option_direct_in_buf(buf_T *buf, char_u *name, int opt_idx, char_u *val, int opt_flags, int set_sid); char *set_string_option(int opt_idx, char_u *value, int opt_flags, char *errbuf); -char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char *errbuf, int opt_flags, int *value_checked); +char *did_set_backupcopy(optset_T *args); +char *did_set_backupext_or_patchmode(optset_T *args); +char *did_set_breakindentopt(optset_T *args); +char *did_set_helpfile(optset_T *args); +char *did_set_helplang(optset_T *args); +char *did_set_highlight(optset_T *args); +char *did_set_sessionoptions(optset_T *args); +char *did_set_ambiwidth(optset_T *args); +char *did_set_background(optset_T *args); +char *did_set_wildmode(optset_T *args); +char *did_set_winaltkeys(optset_T *args); +char *did_set_eventignore(optset_T *args); +char *did_set_printencoding(optset_T *args); +char *did_set_imactivatekey(optset_T *args); +char *did_set_fileformat(optset_T *args); +char *did_set_fileformats(optset_T *args); +char *did_set_cryptkey(optset_T *args); +char *did_set_cryptmethod(optset_T *args); +char *did_set_matchpairs(optset_T *args); +char *did_set_verbosefile(optset_T *args); +char *did_set_showbreak(optset_T *args); +char *did_set_guifont(optset_T *args); +char *did_set_guifontset(optset_T *args); +char *did_set_guifontwide(optset_T *args); +char *did_set_guiligatures(optset_T *args); +char *did_set_mouseshape(optset_T *args); +char *did_set_titlestring(optset_T *args); +char *did_set_iconstring(optset_T *args); +char *did_set_guioptions(optset_T *args); +char *did_set_guitablabel(optset_T *args); +char *did_set_ttymouse(optset_T *args); +char *did_set_selection(optset_T *args); +char *did_set_browsedir(optset_T *args); +char *did_set_keymodel(optset_T *args); +char *did_set_keyprotocol(optset_T *args); +char *did_set_mousemodel(optset_T *args); +char *did_set_display(optset_T *args); +char *did_set_spellfile(optset_T *args); +char *did_set_spelllang(optset_T *args); +char *did_set_spellcapcheck(optset_T *args); +char *did_set_spelloptions(optset_T *args); +char *did_set_spellsuggest(optset_T *args); +char *did_set_mkspellmem(optset_T *args); +char *did_set_buftype(optset_T *args); +char *did_set_statusline(optset_T *args); +char *did_set_tabline(optset_T *args); +char *did_set_rulerformat(optset_T *args); +char *did_set_completeopt(optset_T *args); +char *did_set_completeslash(optset_T *args); +char *did_set_signcolumn(optset_T *args); +char *did_set_toolbar(optset_T *args); +char *did_set_toolbariconsize(optset_T *args); +char *did_set_pastetoggle(optset_T *args); +char *did_set_backspace(optset_T *args); +char *did_set_tagcase(optset_T *args); +char *did_set_diffopt(optset_T *args); +char *did_set_foldmethod(optset_T *args); +char *did_set_foldmarker(optset_T *args); +char *did_set_commentstring(optset_T *args); +char *did_set_foldignore(optset_T *args); +char *did_set_virtualedit(optset_T *args); +char *did_set_cscopequickfix(optset_T *args); +char *did_set_cinoptions(optset_T *args); +char *did_set_lispoptions(optset_T *args); +char *did_set_renderoptions(optset_T *args); +char *did_set_termwinkey(optset_T *args); +char *did_set_termwinsize(optset_T *args); +char *did_set_varsofttabstop(optset_T *args); +char *did_set_vartabstop(optset_T *args); +char *did_set_previewpopup(optset_T *args); +char *did_set_completepopup(optset_T *args); +char *did_set_string_option(int opt_idx, char_u **varp, char_u *oldval, char_u *value, char *errbuf, int opt_flags, int *value_checked); int check_ff_value(char_u *p); void save_clear_shm_value(void); void restore_shm_value(void); diff --git a/src/proto/quickfix.pro b/src/proto/quickfix.pro index 3a210b0665..b708d6bd4d 100644 --- a/src/proto/quickfix.pro +++ b/src/proto/quickfix.pro @@ -15,7 +15,7 @@ void ex_cclose(exarg_T *eap); void ex_copen(exarg_T *eap); void ex_cbottom(exarg_T *eap); linenr_T qf_current_entry(win_T *wp); -char *qf_process_qftf_option(void); +char *did_set_quickfixtextfunc(optset_T *args); int grep_internal(cmdidx_T cmdidx); void ex_make(exarg_T *eap); int qf_get_size(exarg_T *eap); diff --git a/src/proto/spell.pro b/src/proto/spell.pro index 55c8482cd9..f6bad568ba 100644 --- a/src/proto/spell.pro +++ b/src/proto/spell.pro @@ -16,7 +16,7 @@ void slang_clear_sug(slang_T *lp); void count_common_word(slang_T *lp, char_u *word, int len, int count); int byte_in_str(char_u *str, int n); int init_syl_tab(slang_T *slang); -char *did_set_spelllang(win_T *wp); +char *parse_spelllang(win_T *wp); int captype(char_u *word, char_u *end); void spell_delete_wordlist(void); void spell_free_all(void); diff --git a/src/proto/tag.pro b/src/proto/tag.pro index f42e3f8ee1..6de463e92c 100644 --- a/src/proto/tag.pro +++ b/src/proto/tag.pro @@ -1,5 +1,5 @@ /* tag.c */ -char *set_tagfunc_option(void); +char *did_set_tagfunc(optset_T *args); void free_tagfunc_option(void); int set_ref_in_tagfunc(int copyID); void set_buflocal_tfu_callback(buf_T *buf); |