summaryrefslogtreecommitdiffstats
path: root/src/proto
diff options
context:
space:
mode:
authorYegappan Lakshmanan <yegappan@yahoo.com>2023-02-20 12:16:39 +0000
committerBram Moolenaar <Bram@vim.org>2023-02-20 12:16:39 +0000
commitaf93691b53f38784efce0b93fe7644c44a7e382e (patch)
tree74e8f31e222aed907e80c4dc5b0bded5f7400537 /src/proto
parent997b8a015cd39141866e953651d55c705275cbd6 (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.pro2
-rw-r--r--src/proto/ex_getln.pro2
-rw-r--r--src/proto/gui_xim.pro4
-rw-r--r--src/proto/hardcopy.pro4
-rw-r--r--src/proto/if_mzsch.pro2
-rw-r--r--src/proto/insexpand.pro6
-rw-r--r--src/proto/map.pro2
-rw-r--r--src/proto/ops.pro2
-rw-r--r--src/proto/option.pro65
-rw-r--r--src/proto/optionstr.pro73
-rw-r--r--src/proto/quickfix.pro2
-rw-r--r--src/proto/spell.pro2
-rw-r--r--src/proto/tag.pro2
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);