patch 9.0.1330: handling new value of an option has a long "else if" chain

Problem:    Handling new value of an option has a long "else if" chain.
Solution:   Use a function pointer. (Yegappan Lakshmanan, closes #12015)
diff --git a/src/proto/optionstr.pro b/src/proto/optionstr.pro
index d4f96be..d92a7f0 100644
--- a/src/proto/optionstr.pro
+++ b/src/proto/optionstr.pro
@@ -9,7 +9,78 @@
 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);