refactor(option.c): add get_varp_from and get_varp_scope_from

This commit is contained in:
Lewis Russell
2023-01-18 14:24:37 +00:00
parent 00a7c40f4f
commit f90d78654a

View File

@@ -3628,83 +3628,87 @@ void unset_global_local_option(char *name, void *from)
} }
} }
/// Get pointer to option variable, depending on local or global scope. char *get_varp_scope_from(vimoption_T *p, int scope, buf_T *buf, win_T *win)
///
/// @param scope can be OPT_LOCAL, OPT_GLOBAL or a combination.
char *get_varp_scope(vimoption_T *p, int scope)
{ {
if ((scope & OPT_GLOBAL) && p->indir != PV_NONE) { if ((scope & OPT_GLOBAL) && p->indir != PV_NONE) {
if (p->var == VAR_WIN) { if (p->var == VAR_WIN) {
return GLOBAL_WO(get_varp(p)); return GLOBAL_WO(get_varp_from(p, buf, win));
} }
return (char *)p->var; return (char *)p->var;
} }
if ((scope & OPT_LOCAL) && ((int)p->indir & PV_BOTH)) { if ((scope & OPT_LOCAL) && ((int)p->indir & PV_BOTH)) {
switch ((int)p->indir) { switch ((int)p->indir) {
case PV_FP: case PV_FP:
return (char *)&(curbuf->b_p_fp); return (char *)&(buf->b_p_fp);
case PV_EFM: case PV_EFM:
return (char *)&(curbuf->b_p_efm); return (char *)&(buf->b_p_efm);
case PV_GP: case PV_GP:
return (char *)&(curbuf->b_p_gp); return (char *)&(buf->b_p_gp);
case PV_MP: case PV_MP:
return (char *)&(curbuf->b_p_mp); return (char *)&(buf->b_p_mp);
case PV_EP: case PV_EP:
return (char *)&(curbuf->b_p_ep); return (char *)&(buf->b_p_ep);
case PV_KP: case PV_KP:
return (char *)&(curbuf->b_p_kp); return (char *)&(buf->b_p_kp);
case PV_PATH: case PV_PATH:
return (char *)&(curbuf->b_p_path); return (char *)&(buf->b_p_path);
case PV_AR: case PV_AR:
return (char *)&(curbuf->b_p_ar); return (char *)&(buf->b_p_ar);
case PV_TAGS: case PV_TAGS:
return (char *)&(curbuf->b_p_tags); return (char *)&(buf->b_p_tags);
case PV_TC: case PV_TC:
return (char *)&(curbuf->b_p_tc); return (char *)&(buf->b_p_tc);
case PV_SISO: case PV_SISO:
return (char *)&(curwin->w_p_siso); return (char *)&(win->w_p_siso);
case PV_SO: case PV_SO:
return (char *)&(curwin->w_p_so); return (char *)&(win->w_p_so);
case PV_DEF: case PV_DEF:
return (char *)&(curbuf->b_p_def); return (char *)&(buf->b_p_def);
case PV_INC: case PV_INC:
return (char *)&(curbuf->b_p_inc); return (char *)&(buf->b_p_inc);
case PV_DICT: case PV_DICT:
return (char *)&(curbuf->b_p_dict); return (char *)&(buf->b_p_dict);
case PV_TSR: case PV_TSR:
return (char *)&(curbuf->b_p_tsr); return (char *)&(buf->b_p_tsr);
case PV_TSRFU: case PV_TSRFU:
return (char *)&(curbuf->b_p_tsrfu); return (char *)&(buf->b_p_tsrfu);
case PV_TFU: case PV_TFU:
return (char *)&(curbuf->b_p_tfu); return (char *)&(buf->b_p_tfu);
case PV_SBR: case PV_SBR:
return (char *)&(curwin->w_p_sbr); return (char *)&(win->w_p_sbr);
case PV_STL: case PV_STL:
return (char *)&(curwin->w_p_stl); return (char *)&(win->w_p_stl);
case PV_WBR: case PV_WBR:
return (char *)&(curwin->w_p_wbr); return (char *)&(win->w_p_wbr);
case PV_UL: case PV_UL:
return (char *)&(curbuf->b_p_ul); return (char *)&(buf->b_p_ul);
case PV_LW: case PV_LW:
return (char *)&(curbuf->b_p_lw); return (char *)&(buf->b_p_lw);
case PV_BKC: case PV_BKC:
return (char *)&(curbuf->b_p_bkc); return (char *)&(buf->b_p_bkc);
case PV_MENC: case PV_MENC:
return (char *)&(curbuf->b_p_menc); return (char *)&(buf->b_p_menc);
case PV_FCS: case PV_FCS:
return (char *)&(curwin->w_p_fcs); return (char *)&(win->w_p_fcs);
case PV_LCS: case PV_LCS:
return (char *)&(curwin->w_p_lcs); return (char *)&(win->w_p_lcs);
case PV_VE: case PV_VE:
return (char *)&(curwin->w_p_ve); return (char *)&(win->w_p_ve);
} }
return NULL; // "cannot happen" return NULL; // "cannot happen"
} }
return (char *)get_varp(p); return (char *)get_varp_from(p, buf, win);
} }
/// Get pointer to option variable. /// Get pointer to option variable, depending on local or global scope.
static char_u *get_varp(vimoption_T *p) ///
/// @param scope can be OPT_LOCAL, OPT_GLOBAL or a combination.
char *get_varp_scope(vimoption_T *p, int scope)
{
return get_varp_scope_from(p, scope, curbuf, curwin);
}
static char_u *get_varp_from(vimoption_T *p, buf_T *buf, win_T *win)
{ {
// hidden option, always return NULL // hidden option, always return NULL
if (p->var == NULL) { if (p->var == NULL) {
@@ -3717,305 +3721,311 @@ static char_u *get_varp(vimoption_T *p)
// global option with local value: use local value if it's been set // global option with local value: use local value if it's been set
case PV_EP: case PV_EP:
return *curbuf->b_p_ep != NUL return *buf->b_p_ep != NUL
? (char_u *)&curbuf->b_p_ep : p->var; ? (char_u *)&buf->b_p_ep : p->var;
case PV_KP: case PV_KP:
return *curbuf->b_p_kp != NUL return *buf->b_p_kp != NUL
? (char_u *)&curbuf->b_p_kp : p->var; ? (char_u *)&buf->b_p_kp : p->var;
case PV_PATH: case PV_PATH:
return *curbuf->b_p_path != NUL return *buf->b_p_path != NUL
? (char_u *)&(curbuf->b_p_path) : p->var; ? (char_u *)&(buf->b_p_path) : p->var;
case PV_AR: case PV_AR:
return curbuf->b_p_ar >= 0 return buf->b_p_ar >= 0
? (char_u *)&(curbuf->b_p_ar) : p->var; ? (char_u *)&(buf->b_p_ar) : p->var;
case PV_TAGS: case PV_TAGS:
return *curbuf->b_p_tags != NUL return *buf->b_p_tags != NUL
? (char_u *)&(curbuf->b_p_tags) : p->var; ? (char_u *)&(buf->b_p_tags) : p->var;
case PV_TC: case PV_TC:
return *curbuf->b_p_tc != NUL return *buf->b_p_tc != NUL
? (char_u *)&(curbuf->b_p_tc) : p->var; ? (char_u *)&(buf->b_p_tc) : p->var;
case PV_SISO: case PV_SISO:
return curwin->w_p_siso >= 0 return win->w_p_siso >= 0
? (char_u *)&(curwin->w_p_siso) : p->var; ? (char_u *)&(win->w_p_siso) : p->var;
case PV_SO: case PV_SO:
return curwin->w_p_so >= 0 return win->w_p_so >= 0
? (char_u *)&(curwin->w_p_so) : p->var; ? (char_u *)&(win->w_p_so) : p->var;
case PV_BKC: case PV_BKC:
return *curbuf->b_p_bkc != NUL return *buf->b_p_bkc != NUL
? (char_u *)&(curbuf->b_p_bkc) : p->var; ? (char_u *)&(buf->b_p_bkc) : p->var;
case PV_DEF: case PV_DEF:
return *curbuf->b_p_def != NUL return *buf->b_p_def != NUL
? (char_u *)&(curbuf->b_p_def) : p->var; ? (char_u *)&(buf->b_p_def) : p->var;
case PV_INC: case PV_INC:
return *curbuf->b_p_inc != NUL return *buf->b_p_inc != NUL
? (char_u *)&(curbuf->b_p_inc) : p->var; ? (char_u *)&(buf->b_p_inc) : p->var;
case PV_DICT: case PV_DICT:
return *curbuf->b_p_dict != NUL return *buf->b_p_dict != NUL
? (char_u *)&(curbuf->b_p_dict) : p->var; ? (char_u *)&(buf->b_p_dict) : p->var;
case PV_TSR: case PV_TSR:
return *curbuf->b_p_tsr != NUL return *buf->b_p_tsr != NUL
? (char_u *)&(curbuf->b_p_tsr) : p->var; ? (char_u *)&(buf->b_p_tsr) : p->var;
case PV_TSRFU: case PV_TSRFU:
return *curbuf->b_p_tsrfu != NUL return *buf->b_p_tsrfu != NUL
? (char_u *)&(curbuf->b_p_tsrfu) : p->var; ? (char_u *)&(buf->b_p_tsrfu) : p->var;
case PV_FP: case PV_FP:
return *curbuf->b_p_fp != NUL return *buf->b_p_fp != NUL
? (char_u *)&(curbuf->b_p_fp) : p->var; ? (char_u *)&(buf->b_p_fp) : p->var;
case PV_EFM: case PV_EFM:
return *curbuf->b_p_efm != NUL return *buf->b_p_efm != NUL
? (char_u *)&(curbuf->b_p_efm) : p->var; ? (char_u *)&(buf->b_p_efm) : p->var;
case PV_GP: case PV_GP:
return *curbuf->b_p_gp != NUL return *buf->b_p_gp != NUL
? (char_u *)&(curbuf->b_p_gp) : p->var; ? (char_u *)&(buf->b_p_gp) : p->var;
case PV_MP: case PV_MP:
return *curbuf->b_p_mp != NUL return *buf->b_p_mp != NUL
? (char_u *)&(curbuf->b_p_mp) : p->var; ? (char_u *)&(buf->b_p_mp) : p->var;
case PV_SBR: case PV_SBR:
return *curwin->w_p_sbr != NUL return *win->w_p_sbr != NUL
? (char_u *)&(curwin->w_p_sbr) : p->var; ? (char_u *)&(win->w_p_sbr) : p->var;
case PV_STL: case PV_STL:
return *curwin->w_p_stl != NUL return *win->w_p_stl != NUL
? (char_u *)&(curwin->w_p_stl) : p->var; ? (char_u *)&(win->w_p_stl) : p->var;
case PV_WBR: case PV_WBR:
return *curwin->w_p_wbr != NUL return *win->w_p_wbr != NUL
? (char_u *)&(curwin->w_p_wbr) : p->var; ? (char_u *)&(win->w_p_wbr) : p->var;
case PV_UL: case PV_UL:
return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL return buf->b_p_ul != NO_LOCAL_UNDOLEVEL
? (char_u *)&(curbuf->b_p_ul) : p->var; ? (char_u *)&(buf->b_p_ul) : p->var;
case PV_LW: case PV_LW:
return *curbuf->b_p_lw != NUL return *buf->b_p_lw != NUL
? (char_u *)&(curbuf->b_p_lw) : p->var; ? (char_u *)&(buf->b_p_lw) : p->var;
case PV_MENC: case PV_MENC:
return *curbuf->b_p_menc != NUL return *buf->b_p_menc != NUL
? (char_u *)&(curbuf->b_p_menc) : p->var; ? (char_u *)&(buf->b_p_menc) : p->var;
case PV_FCS: case PV_FCS:
return *curwin->w_p_fcs != NUL return *win->w_p_fcs != NUL
? (char_u *)&(curwin->w_p_fcs) : p->var; ? (char_u *)&(win->w_p_fcs) : p->var;
case PV_LCS: case PV_LCS:
return *curwin->w_p_lcs != NUL return *win->w_p_lcs != NUL
? (char_u *)&(curwin->w_p_lcs) : p->var; ? (char_u *)&(win->w_p_lcs) : p->var;
case PV_VE: case PV_VE:
return *curwin->w_p_ve != NUL return *win->w_p_ve != NUL
? (char_u *)&curwin->w_p_ve : p->var; ? (char_u *)&win->w_p_ve : p->var;
case PV_ARAB: case PV_ARAB:
return (char_u *)&(curwin->w_p_arab); return (char_u *)&(win->w_p_arab);
case PV_LIST: case PV_LIST:
return (char_u *)&(curwin->w_p_list); return (char_u *)&(win->w_p_list);
case PV_SPELL: case PV_SPELL:
return (char_u *)&(curwin->w_p_spell); return (char_u *)&(win->w_p_spell);
case PV_CUC: case PV_CUC:
return (char_u *)&(curwin->w_p_cuc); return (char_u *)&(win->w_p_cuc);
case PV_CUL: case PV_CUL:
return (char_u *)&(curwin->w_p_cul); return (char_u *)&(win->w_p_cul);
case PV_CULOPT: case PV_CULOPT:
return (char_u *)&(curwin->w_p_culopt); return (char_u *)&(win->w_p_culopt);
case PV_CC: case PV_CC:
return (char_u *)&(curwin->w_p_cc); return (char_u *)&(win->w_p_cc);
case PV_DIFF: case PV_DIFF:
return (char_u *)&(curwin->w_p_diff); return (char_u *)&(win->w_p_diff);
case PV_FDC: case PV_FDC:
return (char_u *)&(curwin->w_p_fdc); return (char_u *)&(win->w_p_fdc);
case PV_FEN: case PV_FEN:
return (char_u *)&(curwin->w_p_fen); return (char_u *)&(win->w_p_fen);
case PV_FDI: case PV_FDI:
return (char_u *)&(curwin->w_p_fdi); return (char_u *)&(win->w_p_fdi);
case PV_FDL: case PV_FDL:
return (char_u *)&(curwin->w_p_fdl); return (char_u *)&(win->w_p_fdl);
case PV_FDM: case PV_FDM:
return (char_u *)&(curwin->w_p_fdm); return (char_u *)&(win->w_p_fdm);
case PV_FML: case PV_FML:
return (char_u *)&(curwin->w_p_fml); return (char_u *)&(win->w_p_fml);
case PV_FDN: case PV_FDN:
return (char_u *)&(curwin->w_p_fdn); return (char_u *)&(win->w_p_fdn);
case PV_FDE: case PV_FDE:
return (char_u *)&(curwin->w_p_fde); return (char_u *)&(win->w_p_fde);
case PV_FDT: case PV_FDT:
return (char_u *)&(curwin->w_p_fdt); return (char_u *)&(win->w_p_fdt);
case PV_FMR: case PV_FMR:
return (char_u *)&(curwin->w_p_fmr); return (char_u *)&(win->w_p_fmr);
case PV_NU: case PV_NU:
return (char_u *)&(curwin->w_p_nu); return (char_u *)&(win->w_p_nu);
case PV_RNU: case PV_RNU:
return (char_u *)&(curwin->w_p_rnu); return (char_u *)&(win->w_p_rnu);
case PV_NUW: case PV_NUW:
return (char_u *)&(curwin->w_p_nuw); return (char_u *)&(win->w_p_nuw);
case PV_WFH: case PV_WFH:
return (char_u *)&(curwin->w_p_wfh); return (char_u *)&(win->w_p_wfh);
case PV_WFW: case PV_WFW:
return (char_u *)&(curwin->w_p_wfw); return (char_u *)&(win->w_p_wfw);
case PV_PVW: case PV_PVW:
return (char_u *)&(curwin->w_p_pvw); return (char_u *)&(win->w_p_pvw);
case PV_RL: case PV_RL:
return (char_u *)&(curwin->w_p_rl); return (char_u *)&(win->w_p_rl);
case PV_RLC: case PV_RLC:
return (char_u *)&(curwin->w_p_rlc); return (char_u *)&(win->w_p_rlc);
case PV_SCROLL: case PV_SCROLL:
return (char_u *)&(curwin->w_p_scr); return (char_u *)&(win->w_p_scr);
case PV_WRAP: case PV_WRAP:
return (char_u *)&(curwin->w_p_wrap); return (char_u *)&(win->w_p_wrap);
case PV_LBR: case PV_LBR:
return (char_u *)&(curwin->w_p_lbr); return (char_u *)&(win->w_p_lbr);
case PV_BRI: case PV_BRI:
return (char_u *)&(curwin->w_p_bri); return (char_u *)&(win->w_p_bri);
case PV_BRIOPT: case PV_BRIOPT:
return (char_u *)&(curwin->w_p_briopt); return (char_u *)&(win->w_p_briopt);
case PV_SCBIND: case PV_SCBIND:
return (char_u *)&(curwin->w_p_scb); return (char_u *)&(win->w_p_scb);
case PV_CRBIND: case PV_CRBIND:
return (char_u *)&(curwin->w_p_crb); return (char_u *)&(win->w_p_crb);
case PV_COCU: case PV_COCU:
return (char_u *)&(curwin->w_p_cocu); return (char_u *)&(win->w_p_cocu);
case PV_COLE: case PV_COLE:
return (char_u *)&(curwin->w_p_cole); return (char_u *)&(win->w_p_cole);
case PV_AI: case PV_AI:
return (char_u *)&(curbuf->b_p_ai); return (char_u *)&(buf->b_p_ai);
case PV_BIN: case PV_BIN:
return (char_u *)&(curbuf->b_p_bin); return (char_u *)&(buf->b_p_bin);
case PV_BOMB: case PV_BOMB:
return (char_u *)&(curbuf->b_p_bomb); return (char_u *)&(buf->b_p_bomb);
case PV_BH: case PV_BH:
return (char_u *)&(curbuf->b_p_bh); return (char_u *)&(buf->b_p_bh);
case PV_BT: case PV_BT:
return (char_u *)&(curbuf->b_p_bt); return (char_u *)&(buf->b_p_bt);
case PV_BL: case PV_BL:
return (char_u *)&(curbuf->b_p_bl); return (char_u *)&(buf->b_p_bl);
case PV_CHANNEL: case PV_CHANNEL:
return (char_u *)&(curbuf->b_p_channel); return (char_u *)&(buf->b_p_channel);
case PV_CI: case PV_CI:
return (char_u *)&(curbuf->b_p_ci); return (char_u *)&(buf->b_p_ci);
case PV_CIN: case PV_CIN:
return (char_u *)&(curbuf->b_p_cin); return (char_u *)&(buf->b_p_cin);
case PV_CINK: case PV_CINK:
return (char_u *)&(curbuf->b_p_cink); return (char_u *)&(buf->b_p_cink);
case PV_CINO: case PV_CINO:
return (char_u *)&(curbuf->b_p_cino); return (char_u *)&(buf->b_p_cino);
case PV_CINSD: case PV_CINSD:
return (char_u *)&(curbuf->b_p_cinsd); return (char_u *)&(buf->b_p_cinsd);
case PV_CINW: case PV_CINW:
return (char_u *)&(curbuf->b_p_cinw); return (char_u *)&(buf->b_p_cinw);
case PV_COM: case PV_COM:
return (char_u *)&(curbuf->b_p_com); return (char_u *)&(buf->b_p_com);
case PV_CMS: case PV_CMS:
return (char_u *)&(curbuf->b_p_cms); return (char_u *)&(buf->b_p_cms);
case PV_CPT: case PV_CPT:
return (char_u *)&(curbuf->b_p_cpt); return (char_u *)&(buf->b_p_cpt);
#ifdef BACKSLASH_IN_FILENAME #ifdef BACKSLASH_IN_FILENAME
case PV_CSL: case PV_CSL:
return (char_u *)&(curbuf->b_p_csl); return (char_u *)&(buf->b_p_csl);
#endif #endif
case PV_CFU: case PV_CFU:
return (char_u *)&(curbuf->b_p_cfu); return (char_u *)&(buf->b_p_cfu);
case PV_OFU: case PV_OFU:
return (char_u *)&(curbuf->b_p_ofu); return (char_u *)&(buf->b_p_ofu);
case PV_EOF: case PV_EOF:
return (char_u *)&(curbuf->b_p_eof); return (char_u *)&(buf->b_p_eof);
case PV_EOL: case PV_EOL:
return (char_u *)&(curbuf->b_p_eol); return (char_u *)&(buf->b_p_eol);
case PV_FIXEOL: case PV_FIXEOL:
return (char_u *)&(curbuf->b_p_fixeol); return (char_u *)&(buf->b_p_fixeol);
case PV_ET: case PV_ET:
return (char_u *)&(curbuf->b_p_et); return (char_u *)&(buf->b_p_et);
case PV_FENC: case PV_FENC:
return (char_u *)&(curbuf->b_p_fenc); return (char_u *)&(buf->b_p_fenc);
case PV_FF: case PV_FF:
return (char_u *)&(curbuf->b_p_ff); return (char_u *)&(buf->b_p_ff);
case PV_FT: case PV_FT:
return (char_u *)&(curbuf->b_p_ft); return (char_u *)&(buf->b_p_ft);
case PV_FO: case PV_FO:
return (char_u *)&(curbuf->b_p_fo); return (char_u *)&(buf->b_p_fo);
case PV_FLP: case PV_FLP:
return (char_u *)&(curbuf->b_p_flp); return (char_u *)&(buf->b_p_flp);
case PV_IMI: case PV_IMI:
return (char_u *)&(curbuf->b_p_iminsert); return (char_u *)&(buf->b_p_iminsert);
case PV_IMS: case PV_IMS:
return (char_u *)&(curbuf->b_p_imsearch); return (char_u *)&(buf->b_p_imsearch);
case PV_INF: case PV_INF:
return (char_u *)&(curbuf->b_p_inf); return (char_u *)&(buf->b_p_inf);
case PV_ISK: case PV_ISK:
return (char_u *)&(curbuf->b_p_isk); return (char_u *)&(buf->b_p_isk);
case PV_INEX: case PV_INEX:
return (char_u *)&(curbuf->b_p_inex); return (char_u *)&(buf->b_p_inex);
case PV_INDE: case PV_INDE:
return (char_u *)&(curbuf->b_p_inde); return (char_u *)&(buf->b_p_inde);
case PV_INDK: case PV_INDK:
return (char_u *)&(curbuf->b_p_indk); return (char_u *)&(buf->b_p_indk);
case PV_FEX: case PV_FEX:
return (char_u *)&(curbuf->b_p_fex); return (char_u *)&(buf->b_p_fex);
case PV_LISP: case PV_LISP:
return (char_u *)&(curbuf->b_p_lisp); return (char_u *)&(buf->b_p_lisp);
case PV_LOP: case PV_LOP:
return (char_u *)&(curbuf->b_p_lop); return (char_u *)&(buf->b_p_lop);
case PV_ML: case PV_ML:
return (char_u *)&(curbuf->b_p_ml); return (char_u *)&(buf->b_p_ml);
case PV_MPS: case PV_MPS:
return (char_u *)&(curbuf->b_p_mps); return (char_u *)&(buf->b_p_mps);
case PV_MA: case PV_MA:
return (char_u *)&(curbuf->b_p_ma); return (char_u *)&(buf->b_p_ma);
case PV_MOD: case PV_MOD:
return (char_u *)&(curbuf->b_changed); return (char_u *)&(buf->b_changed);
case PV_NF: case PV_NF:
return (char_u *)&(curbuf->b_p_nf); return (char_u *)&(buf->b_p_nf);
case PV_PI: case PV_PI:
return (char_u *)&(curbuf->b_p_pi); return (char_u *)&(buf->b_p_pi);
case PV_QE: case PV_QE:
return (char_u *)&(curbuf->b_p_qe); return (char_u *)&(buf->b_p_qe);
case PV_RO: case PV_RO:
return (char_u *)&(curbuf->b_p_ro); return (char_u *)&(buf->b_p_ro);
case PV_SCBK: case PV_SCBK:
return (char_u *)&(curbuf->b_p_scbk); return (char_u *)&(buf->b_p_scbk);
case PV_SI: case PV_SI:
return (char_u *)&(curbuf->b_p_si); return (char_u *)&(buf->b_p_si);
case PV_STS: case PV_STS:
return (char_u *)&(curbuf->b_p_sts); return (char_u *)&(buf->b_p_sts);
case PV_SUA: case PV_SUA:
return (char_u *)&(curbuf->b_p_sua); return (char_u *)&(buf->b_p_sua);
case PV_SWF: case PV_SWF:
return (char_u *)&(curbuf->b_p_swf); return (char_u *)&(buf->b_p_swf);
case PV_SMC: case PV_SMC:
return (char_u *)&(curbuf->b_p_smc); return (char_u *)&(buf->b_p_smc);
case PV_SYN: case PV_SYN:
return (char_u *)&(curbuf->b_p_syn); return (char_u *)&(buf->b_p_syn);
case PV_SPC: case PV_SPC:
return (char_u *)&(curwin->w_s->b_p_spc); return (char_u *)&(win->w_s->b_p_spc);
case PV_SPF: case PV_SPF:
return (char_u *)&(curwin->w_s->b_p_spf); return (char_u *)&(win->w_s->b_p_spf);
case PV_SPL: case PV_SPL:
return (char_u *)&(curwin->w_s->b_p_spl); return (char_u *)&(win->w_s->b_p_spl);
case PV_SPO: case PV_SPO:
return (char_u *)&(curwin->w_s->b_p_spo); return (char_u *)&(win->w_s->b_p_spo);
case PV_SW: case PV_SW:
return (char_u *)&(curbuf->b_p_sw); return (char_u *)&(buf->b_p_sw);
case PV_TFU: case PV_TFU:
return (char_u *)&(curbuf->b_p_tfu); return (char_u *)&(buf->b_p_tfu);
case PV_TS: case PV_TS:
return (char_u *)&(curbuf->b_p_ts); return (char_u *)&(buf->b_p_ts);
case PV_TW: case PV_TW:
return (char_u *)&(curbuf->b_p_tw); return (char_u *)&(buf->b_p_tw);
case PV_UDF: case PV_UDF:
return (char_u *)&(curbuf->b_p_udf); return (char_u *)&(buf->b_p_udf);
case PV_WM: case PV_WM:
return (char_u *)&(curbuf->b_p_wm); return (char_u *)&(buf->b_p_wm);
case PV_VSTS: case PV_VSTS:
return (char_u *)&(curbuf->b_p_vsts); return (char_u *)&(buf->b_p_vsts);
case PV_VTS: case PV_VTS:
return (char_u *)&(curbuf->b_p_vts); return (char_u *)&(buf->b_p_vts);
case PV_KMAP: case PV_KMAP:
return (char_u *)&(curbuf->b_p_keymap); return (char_u *)&(buf->b_p_keymap);
case PV_SCL: case PV_SCL:
return (char_u *)&(curwin->w_p_scl); return (char_u *)&(win->w_p_scl);
case PV_WINHL: case PV_WINHL:
return (char_u *)&(curwin->w_p_winhl); return (char_u *)&(win->w_p_winhl);
case PV_WINBL: case PV_WINBL:
return (char_u *)&(curwin->w_p_winbl); return (char_u *)&(win->w_p_winbl);
case PV_STC: case PV_STC:
return (char_u *)&(curwin->w_p_stc); return (char_u *)&(win->w_p_stc);
default: default:
iemsg(_("E356: get_varp ERROR")); iemsg(_("E356: get_varp ERROR"));
} }
// always return a valid pointer to avoid a crash! // always return a valid pointer to avoid a crash!
return (char_u *)&(curbuf->b_p_wm); return (char_u *)&(buf->b_p_wm);
}
/// Get pointer to option variable.
static inline char_u *get_varp(vimoption_T *p)
{
return get_varp_from(p, curbuf, curwin);
} }
/// Get the value of 'equalprg', either the buffer-local one or the global one. /// Get the value of 'equalprg', either the buffer-local one or the global one.