diff options
Diffstat (limited to 'src/nvim/syntax.c')
-rw-r--r-- | src/nvim/syntax.c | 401 |
1 files changed, 156 insertions, 245 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index 20bfbc8db4..8c32e5f06a 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -959,7 +959,7 @@ static void syn_stack_free_block(synblock_T *block) if (block->b_sst_array != NULL) { for (p = block->b_sst_first; p != NULL; p = p->sst_next) clear_syn_state(p); - free(block->b_sst_array); + xfree(block->b_sst_array); block->b_sst_array = NULL; block->b_sst_len = 0; } @@ -1044,7 +1044,7 @@ static void syn_stack_alloc(void) to->sst_next = to + 1; (sstp + len - 1)->sst_next = NULL; - free(syn_block->b_sst_array); + xfree(syn_block->b_sst_array); syn_block->b_sst_array = sstp; syn_block->b_sst_len = len; } @@ -3054,7 +3054,7 @@ void syntax_clear(synblock_T *block) vim_regfree(block->b_syn_linecont_prog); block->b_syn_linecont_prog = NULL; - free(block->b_syn_linecont_pat); + xfree(block->b_syn_linecont_pat); block->b_syn_linecont_pat = NULL; block->b_syn_folditems = 0; @@ -3073,7 +3073,7 @@ void reset_synblock(win_T *wp) { if (wp->w_s != &wp->w_buffer->b_s) { syntax_clear(wp->w_s); - free(wp->w_s); + xfree(wp->w_s); wp->w_s = &wp->w_buffer->b_s; } } @@ -3097,7 +3097,7 @@ static void syntax_sync_clear(void) vim_regfree(curwin->w_s->b_syn_linecont_prog); curwin->w_s->b_syn_linecont_prog = NULL; - free(curwin->w_s->b_syn_linecont_pat); + xfree(curwin->w_s->b_syn_linecont_pat); curwin->w_s->b_syn_linecont_pat = NULL; syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */ @@ -3125,13 +3125,13 @@ static void syn_remove_pattern(synblock_T *block, int idx) */ static void syn_clear_pattern(synblock_T *block, int i) { - free(SYN_ITEMS(block)[i].sp_pattern); + xfree(SYN_ITEMS(block)[i].sp_pattern); vim_regfree(SYN_ITEMS(block)[i].sp_prog); /* Only free sp_cont_list and sp_next_list of first start pattern */ if (i == 0 || SYN_ITEMS(block)[i - 1].sp_type != SPTYPE_START) { - free(SYN_ITEMS(block)[i].sp_cont_list); - free(SYN_ITEMS(block)[i].sp_next_list); - free(SYN_ITEMS(block)[i].sp_syn.cont_in_list); + xfree(SYN_ITEMS(block)[i].sp_cont_list); + xfree(SYN_ITEMS(block)[i].sp_next_list); + xfree(SYN_ITEMS(block)[i].sp_syn.cont_in_list); } } @@ -3140,9 +3140,9 @@ static void syn_clear_pattern(synblock_T *block, int i) */ static void syn_clear_cluster(synblock_T *block, int i) { - free(SYN_CLSTR(block)[i].scl_name); - free(SYN_CLSTR(block)[i].scl_name_u); - free(SYN_CLSTR(block)[i].scl_list); + xfree(SYN_CLSTR(block)[i].scl_name); + xfree(SYN_CLSTR(block)[i].scl_name_u); + xfree(SYN_CLSTR(block)[i].scl_list); } /* @@ -3198,7 +3198,7 @@ static void syn_cmd_clear(exarg_T *eap, int syncing) */ short scl_id = id - SYNID_CLUSTER; - free(SYN_CLSTR(curwin->w_s)[scl_id].scl_list); + xfree(SYN_CLSTR(curwin->w_s)[scl_id].scl_list); SYN_CLSTR(curwin->w_s)[scl_id].scl_list = NULL; } } else { @@ -3760,9 +3760,9 @@ static void syn_clear_keyword(int id, hashtab_T *ht) hi->hi_key = KE2HIKEY(kp_next); } else kp_prev->ke_next = kp_next; - free(kp->next_list); - free(kp->k_syn.cont_in_list); - free(kp); + xfree(kp->next_list); + xfree(kp->k_syn.cont_in_list); + xfree(kp); kp = kp_next; } else { kp_prev = kp; @@ -3789,9 +3789,9 @@ static void clear_keywtab(hashtab_T *ht) --todo; for (kp = HI2KE(hi); kp != NULL; kp = kp_next) { kp_next = kp->ke_next; - free(kp->next_list); - free(kp->k_syn.cont_in_list); - free(kp); + xfree(kp->next_list); + xfree(kp->k_syn.cont_in_list); + xfree(kp); } } } @@ -4011,12 +4011,12 @@ get_syn_options ( } if (i < 0) { EMSG2(_("E394: Didn't find region item for %s"), gname); - free(gname); + xfree(gname); return NULL; } } - free(gname); + xfree(gname); arg = skipwhite(arg); } else if (flagtab[fidx].flags == HL_FOLD && foldmethodIsSyntax(curwin)) @@ -4208,9 +4208,9 @@ static void syn_cmd_keyword(exarg_T *eap, int syncing) } } - free(keyword_copy); - free(syn_opt_arg.cont_in_list); - free(syn_opt_arg.next_list); + xfree(keyword_copy); + xfree(syn_opt_arg.cont_in_list); + xfree(syn_opt_arg.next_list); } if (rest != NULL) @@ -4311,10 +4311,10 @@ syn_cmd_match ( * Something failed, free the allocated memory. */ vim_regfree(item.sp_prog); - free(item.sp_pattern); - free(syn_opt_arg.cont_list); - free(syn_opt_arg.cont_in_list); - free(syn_opt_arg.next_list); + xfree(item.sp_pattern); + xfree(syn_opt_arg.cont_list); + xfree(syn_opt_arg.cont_in_list); + xfree(syn_opt_arg.next_list); if (rest == NULL) EMSG2(_(e_invarg2), arg); @@ -4388,7 +4388,7 @@ syn_cmd_region ( key_end = rest; while (*key_end && !vim_iswhite(*key_end) && *key_end != '=') ++key_end; - free(key); + xfree(key); key = vim_strnsave_up(rest, (int)(key_end - rest)); if (STRCMP(key, "MATCHGROUP") == 0) item = ITEM_MATCHGROUP; @@ -4456,7 +4456,7 @@ syn_cmd_region ( ++pat_count; } } - free(key); + xfree(key); if (illegal || not_enough) rest = NULL; @@ -4530,17 +4530,17 @@ syn_cmd_region ( for (ppp = pat_ptrs[item]; ppp != NULL; ppp = ppp_next) { if (!success) { vim_regfree(ppp->pp_synp->sp_prog); - free(ppp->pp_synp->sp_pattern); + xfree(ppp->pp_synp->sp_pattern); } - free(ppp->pp_synp); + xfree(ppp->pp_synp); ppp_next = ppp->pp_next; - free(ppp); + xfree(ppp); } if (!success) { - free(syn_opt_arg.cont_list); - free(syn_opt_arg.cont_in_list); - free(syn_opt_arg.next_list); + xfree(syn_opt_arg.cont_list); + xfree(syn_opt_arg.cont_in_list); + xfree(syn_opt_arg.next_list); if (not_enough) EMSG2(_("E399: Not enough arguments: syntax region %s"), arg); else if (illegal || rest == NULL) @@ -4580,11 +4580,11 @@ static void syn_combine_list(short **clstr1, short **clstr2, int list_op) return; if (*clstr1 == NULL || list_op == CLUSTER_REPLACE) { if (list_op == CLUSTER_REPLACE) - free(*clstr1); + xfree(*clstr1); if (list_op == CLUSTER_REPLACE || list_op == CLUSTER_ADD) *clstr1 = *clstr2; else - free(*clstr2); + xfree(*clstr2); return; } @@ -4668,8 +4668,8 @@ static void syn_combine_list(short **clstr1, short **clstr2, int list_op) /* * Finally, put the new list in place. */ - free(*clstr1); - free(*clstr2); + xfree(*clstr1); + xfree(*clstr2); *clstr1 = clstr; } @@ -4688,7 +4688,7 @@ static int syn_scl_name2id(char_u *name) break; } } - free(name_u); + xfree(name_u); return i < 0 ? 0 : i + SYNID_CLUSTER; } @@ -4699,7 +4699,7 @@ static int syn_scl_namen2id(char_u *linep, int len) { char_u *name = vim_strnsave(linep, len); int id = syn_scl_name2id(name); - free(name); + xfree(name); return id; } @@ -4721,7 +4721,7 @@ static int syn_check_cluster(char_u *pp, int len) if (id == 0) /* doesn't exist yet */ id = syn_add_cluster(name); else - free(name); + xfree(name); return id; } @@ -4743,7 +4743,7 @@ static int syn_add_cluster(char_u *name) int len = curwin->w_s->b_syn_clusters.ga_len; if (len >= MAX_CLUSTER_ID) { EMSG((char_u *)_("E848: Too many syntax clusters")); - free(name); + xfree(name); return 0; } @@ -4945,7 +4945,7 @@ static void syn_cmd_sync(exarg_T *eap, int syncing) while (!ends_excmd(*arg_start)) { arg_end = skiptowhite(arg_start); next_arg = skipwhite(arg_end); - free(key); + xfree(key); key = vim_strnsave_up(arg_start, (int)(arg_end - arg_start)); if (STRCMP(key, "CCOMMENT") == 0) { if (!eap->skip) @@ -5013,7 +5013,7 @@ static void syn_cmd_sync(exarg_T *eap, int syncing) syn_clear_time(&curwin->w_s->b_syn_linecont_time); if (curwin->w_s->b_syn_linecont_prog == NULL) { - free(curwin->w_s->b_syn_linecont_pat); + xfree(curwin->w_s->b_syn_linecont_pat); curwin->w_s->b_syn_linecont_pat = NULL; finished = TRUE; break; @@ -5035,7 +5035,7 @@ static void syn_cmd_sync(exarg_T *eap, int syncing) } arg_start = next_arg; } - free(key); + xfree(key); if (illegal) EMSG2(_("E404: Illegal arguments: %s"), arg_start); else if (!finished) { @@ -5109,13 +5109,13 @@ get_id_list ( if (TOUPPER_ASC(**arg) != 'C') { EMSG2(_("E407: %s not allowed here"), name + 1); failed = TRUE; - free(name); + xfree(name); break; } if (count != 0) { EMSG2(_("E408: %s must be first in contains list"), name + 1); failed = TRUE; - free(name); + xfree(name); break; } if (name[1] == 'A') @@ -5142,7 +5142,7 @@ get_id_list ( regmatch.regprog = vim_regcomp(name, RE_MAGIC); if (regmatch.regprog == NULL) { failed = TRUE; - free(name); + xfree(name); break; } @@ -5156,7 +5156,7 @@ get_id_list ( * "contains=a.*b,axb". * Go back to first round */ if (count >= total_count) { - free(retval); + xfree(retval); round = 1; } else retval[count] = i + 1; @@ -5168,7 +5168,7 @@ get_id_list ( vim_regfree(regmatch.regprog); } } - free(name); + xfree(name); if (id == 0) { EMSG2(_("E409: Unknown group name: %s"), p); failed = TRUE; @@ -5178,7 +5178,7 @@ get_id_list ( if (round == 2) { /* Got more items than expected, go back to first round */ if (count >= total_count) { - free(retval); + xfree(retval); round = 1; } else retval[count] = id; @@ -5201,14 +5201,14 @@ get_id_list ( *arg = p; if (failed || retval == NULL) { - free(retval); + xfree(retval); return FAIL; } if (*list == NULL) *list = retval; else - free(retval); /* list already found, don't overwrite it */ + xfree(retval); /* list already found, don't overwrite it */ return OK; } @@ -5387,7 +5387,7 @@ void ex_syntax(exarg_T *eap) break; } } - free(subcmd_name); + xfree(subcmd_name); if (eap->skip) --emsg_skip; } @@ -5427,7 +5427,7 @@ void ex_ownsyntax(exarg_T *eap) do_unlet((char_u *)"b:current_syntax", TRUE); else { set_internal_string_var((char_u *)"b:current_syntax", old_value); - free(old_value); + xfree(old_value); } } @@ -5751,183 +5751,94 @@ static void syntime_report(void) * Highlighting stuff * **************************************/ -/* - * The default highlight groups. These are compiled-in for fast startup and - * they still work when the runtime files can't be found. - * When making changes here, also change runtime/colors/default.vim! - * The #ifdefs are needed to reduce the amount of static data. Helps to make - * the 16 bit DOS (museum) version compile. - */ -# define CENT(a, b) b -static char *(highlight_init_both[]) = -{ - CENT( - "ErrorMsg term=standout ctermbg=DarkRed ctermfg=White", - "ErrorMsg term=standout ctermbg=DarkRed ctermfg=White guibg=Red guifg=White"), - CENT("IncSearch term=reverse cterm=reverse", - "IncSearch term=reverse cterm=reverse gui=reverse"), - CENT("ModeMsg term=bold cterm=bold", - "ModeMsg term=bold cterm=bold gui=bold"), - CENT("NonText term=bold ctermfg=Blue", - "NonText term=bold ctermfg=Blue gui=bold guifg=Blue"), - CENT("StatusLine term=reverse,bold cterm=reverse,bold", - "StatusLine term=reverse,bold cterm=reverse,bold gui=reverse,bold"), - CENT("StatusLineNC term=reverse cterm=reverse", - "StatusLineNC term=reverse cterm=reverse gui=reverse"), +// The default highlight groups. These are compiled-in for fast startup and +// they still work when the runtime files can't be found. +// +// When making changes here, also change runtime/colors/default.vim! + +static char *highlight_init_both[] = +{ + "Conceal ctermbg=DarkGrey ctermfg=LightGrey guibg=DarkGrey guifg=LightGrey", + "DiffText cterm=bold ctermbg=Red gui=bold guibg=Red", + "ErrorMsg ctermbg=DarkRed ctermfg=White guibg=Red guifg=White", + "IncSearch cterm=reverse gui=reverse", + "ModeMsg cterm=bold gui=bold", + "NonText ctermfg=Blue gui=bold guifg=Blue", + "PmenuSbar ctermbg=Grey guibg=Grey", + "StatusLine cterm=reverse,bold gui=reverse,bold", + "StatusLineNC cterm=reverse gui=reverse", + "TabLineFill cterm=reverse gui=reverse", + "TabLineSel cterm=bold gui=bold", + "TermCursor cterm=reverse gui=reverse", + "VertSplit cterm=reverse gui=reverse", + "WildMenu ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black", "default link EndOfBuffer NonText", - CENT("VertSplit term=reverse cterm=reverse", - "VertSplit term=reverse cterm=reverse gui=reverse"), - CENT("DiffText term=reverse cterm=bold ctermbg=Red", - "DiffText term=reverse cterm=bold ctermbg=Red gui=bold guibg=Red"), - CENT("PmenuSbar ctermbg=Grey", - "PmenuSbar ctermbg=Grey guibg=Grey"), - CENT("TabLineSel term=bold cterm=bold", - "TabLineSel term=bold cterm=bold gui=bold"), - CENT("TabLineFill term=reverse cterm=reverse", - "TabLineFill term=reverse cterm=reverse gui=reverse"), NULL }; -static char *(highlight_init_light[]) = -{ - CENT("Directory term=bold ctermfg=DarkBlue", - "Directory term=bold ctermfg=DarkBlue guifg=Blue"), - CENT("LineNr term=underline ctermfg=Brown", - "LineNr term=underline ctermfg=Brown guifg=Brown"), - CENT("CursorLineNr term=bold ctermfg=Brown", - "CursorLineNr term=bold ctermfg=Brown gui=bold guifg=Brown"), - CENT("MoreMsg term=bold ctermfg=DarkGreen", - "MoreMsg term=bold ctermfg=DarkGreen gui=bold guifg=SeaGreen"), - CENT("Question term=standout ctermfg=DarkGreen", - "Question term=standout ctermfg=DarkGreen gui=bold guifg=SeaGreen"), - CENT("Search term=reverse ctermbg=Yellow ctermfg=NONE", - "Search term=reverse ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE"), - CENT("SpellBad term=reverse ctermbg=LightRed", - "SpellBad term=reverse ctermbg=LightRed guisp=Red gui=undercurl"), - CENT("SpellCap term=reverse ctermbg=LightBlue", - "SpellCap term=reverse ctermbg=LightBlue guisp=Blue gui=undercurl"), - CENT("SpellRare term=reverse ctermbg=LightMagenta", - "SpellRare term=reverse ctermbg=LightMagenta guisp=Magenta gui=undercurl"), - CENT("SpellLocal term=underline ctermbg=Cyan", - "SpellLocal term=underline ctermbg=Cyan guisp=DarkCyan gui=undercurl"), - CENT("PmenuThumb ctermbg=Black", - "PmenuThumb ctermbg=Black guibg=Black"), - CENT("Pmenu ctermbg=LightMagenta ctermfg=Black", - "Pmenu ctermbg=LightMagenta ctermfg=Black guibg=LightMagenta"), - CENT("PmenuSel ctermbg=LightGrey ctermfg=Black", - "PmenuSel ctermbg=LightGrey ctermfg=Black guibg=Grey"), - CENT("SpecialKey term=bold ctermfg=DarkBlue", - "SpecialKey term=bold ctermfg=DarkBlue guifg=Blue"), - CENT("Title term=bold ctermfg=DarkMagenta", - "Title term=bold ctermfg=DarkMagenta gui=bold guifg=Magenta"), - CENT("WarningMsg term=standout ctermfg=DarkRed", - "WarningMsg term=standout ctermfg=DarkRed guifg=Red"), - CENT( - "WildMenu term=standout ctermbg=Yellow ctermfg=Black", - "WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black"), - CENT( - "Folded term=standout ctermbg=Grey ctermfg=DarkBlue", - "Folded term=standout ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue"), - CENT( - "FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue", - "FoldColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue"), - CENT("SignColumn term=standout ctermbg=Grey ctermfg=DarkBlue", - "SignColumn term=standout ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue"), - CENT("Visual term=reverse", - "Visual term=reverse guibg=LightGrey"), - CENT("DiffAdd term=bold ctermbg=LightBlue", - "DiffAdd term=bold ctermbg=LightBlue guibg=LightBlue"), - CENT("DiffChange term=bold ctermbg=LightMagenta", - "DiffChange term=bold ctermbg=LightMagenta guibg=LightMagenta"), - CENT( - "DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan", - "DiffDelete term=bold ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan"), - CENT( - "TabLine term=underline cterm=underline ctermfg=black ctermbg=LightGrey", - "TabLine term=underline cterm=underline ctermfg=black ctermbg=LightGrey gui=underline guibg=LightGrey"), - CENT("CursorColumn term=reverse ctermbg=LightGrey", - "CursorColumn term=reverse ctermbg=LightGrey guibg=Grey90"), - CENT("CursorLine term=underline cterm=underline", - "CursorLine term=underline cterm=underline guibg=Grey90"), - CENT("ColorColumn term=reverse ctermbg=LightRed", - "ColorColumn term=reverse ctermbg=LightRed guibg=LightRed"), - CENT( - "Conceal ctermbg=DarkGrey ctermfg=LightGrey", - "Conceal ctermbg=DarkGrey ctermfg=LightGrey guibg=DarkGrey guifg=LightGrey"), - CENT("MatchParen term=reverse ctermbg=Cyan", - "MatchParen term=reverse ctermbg=Cyan guibg=Cyan"), +static char *highlight_init_light[] = +{ + "ColorColumn ctermbg=LightRed guibg=LightRed", + "CursorColumn ctermbg=LightGrey guibg=Grey90", + "CursorLine cterm=underline guibg=Grey90", + "CursorLineNr ctermfg=Brown gui=bold guifg=Brown", + "DiffAdd ctermbg=LightBlue guibg=LightBlue", + "DiffChange ctermbg=LightMagenta guibg=LightMagenta", + "DiffDelete ctermfg=Blue ctermbg=LightCyan gui=bold guifg=Blue guibg=LightCyan", + "Directory ctermfg=DarkBlue guifg=Blue", + "FoldColumn ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue", + "Folded ctermbg=Grey ctermfg=DarkBlue guibg=LightGrey guifg=DarkBlue", + "LineNr ctermfg=Brown guifg=Brown", + "MatchParen ctermbg=Cyan guibg=Cyan", + "MoreMsg ctermfg=DarkGreen gui=bold guifg=SeaGreen", + "Pmenu ctermbg=LightMagenta ctermfg=Black guibg=LightMagenta", + "PmenuSel ctermbg=LightGrey ctermfg=Black guibg=Grey", + "PmenuThumb ctermbg=Black guibg=Black", + "Question ctermfg=DarkGreen gui=bold guifg=SeaGreen", + "Search ctermbg=Yellow ctermfg=NONE guibg=Yellow guifg=NONE", + "SignColumn ctermbg=Grey ctermfg=DarkBlue guibg=Grey guifg=DarkBlue", + "SpecialKey ctermfg=DarkBlue guifg=Blue", + "SpellBad ctermbg=LightRed guisp=Red gui=undercurl", + "SpellCap ctermbg=LightBlue guisp=Blue gui=undercurl", + "SpellLocal ctermbg=Cyan guisp=DarkCyan gui=undercurl", + "SpellRare ctermbg=LightMagenta guisp=Magenta gui=undercurl", + "TabLine cterm=underline ctermfg=black ctermbg=LightGrey gui=underline guibg=LightGrey", + "Title ctermfg=DarkMagenta gui=bold guifg=Magenta", + "Visual guibg=LightGrey", + "WarningMsg ctermfg=DarkRed guifg=Red", NULL }; -static char *(highlight_init_dark[]) = -{ - CENT("Directory term=bold ctermfg=LightCyan", - "Directory term=bold ctermfg=LightCyan guifg=Cyan"), - CENT("LineNr term=underline ctermfg=Yellow", - "LineNr term=underline ctermfg=Yellow guifg=Yellow"), - CENT("CursorLineNr term=bold ctermfg=Yellow", - "CursorLineNr term=bold ctermfg=Yellow gui=bold guifg=Yellow"), - CENT("MoreMsg term=bold ctermfg=LightGreen", - "MoreMsg term=bold ctermfg=LightGreen gui=bold guifg=SeaGreen"), - CENT("Question term=standout ctermfg=LightGreen", - "Question term=standout ctermfg=LightGreen gui=bold guifg=Green"), - CENT( - "Search term=reverse ctermbg=Yellow ctermfg=Black", - "Search term=reverse ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black"), - CENT("SpecialKey term=bold ctermfg=LightBlue", - "SpecialKey term=bold ctermfg=LightBlue guifg=Cyan"), - CENT("SpellBad term=reverse ctermbg=Red", - "SpellBad term=reverse ctermbg=Red guisp=Red gui=undercurl"), - CENT("SpellCap term=reverse ctermbg=Blue", - "SpellCap term=reverse ctermbg=Blue guisp=Blue gui=undercurl"), - CENT("SpellRare term=reverse ctermbg=Magenta", - "SpellRare term=reverse ctermbg=Magenta guisp=Magenta gui=undercurl"), - CENT("SpellLocal term=underline ctermbg=Cyan", - "SpellLocal term=underline ctermbg=Cyan guisp=Cyan gui=undercurl"), - CENT("PmenuThumb ctermbg=White", - "PmenuThumb ctermbg=White guibg=White"), - CENT("Pmenu ctermbg=Magenta ctermfg=Black", - "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta"), - CENT("PmenuSel ctermbg=Black ctermfg=DarkGrey", - "PmenuSel ctermbg=Black ctermfg=DarkGrey guibg=DarkGrey"), - CENT("Title term=bold ctermfg=LightMagenta", - "Title term=bold ctermfg=LightMagenta gui=bold guifg=Magenta"), - CENT("WarningMsg term=standout ctermfg=LightRed", - "WarningMsg term=standout ctermfg=LightRed guifg=Red"), - CENT( - "WildMenu term=standout ctermbg=Yellow ctermfg=Black", - "WildMenu term=standout ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black"), - CENT( - "Folded term=standout ctermbg=DarkGrey ctermfg=Cyan", - "Folded term=standout ctermbg=DarkGrey ctermfg=Cyan guibg=DarkGrey guifg=Cyan"), - CENT( - "FoldColumn term=standout ctermbg=DarkGrey ctermfg=Cyan", - "FoldColumn term=standout ctermbg=DarkGrey ctermfg=Cyan guibg=Grey guifg=Cyan"), - CENT("SignColumn term=standout ctermbg=DarkGrey ctermfg=Cyan", - "SignColumn term=standout ctermbg=DarkGrey ctermfg=Cyan guibg=Grey guifg=Cyan"), - CENT("Visual term=reverse", - "Visual term=reverse guibg=DarkGrey"), - CENT("DiffAdd term=bold ctermbg=DarkBlue", - "DiffAdd term=bold ctermbg=DarkBlue guibg=DarkBlue"), - CENT("DiffChange term=bold ctermbg=DarkMagenta", - "DiffChange term=bold ctermbg=DarkMagenta guibg=DarkMagenta"), - CENT( - "DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan", - "DiffDelete term=bold ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan"), - CENT( - "TabLine term=underline cterm=underline ctermfg=white ctermbg=DarkGrey", - "TabLine term=underline cterm=underline ctermfg=white ctermbg=DarkGrey gui=underline guibg=DarkGrey"), - CENT("CursorColumn term=reverse ctermbg=DarkGrey", - "CursorColumn term=reverse ctermbg=DarkGrey guibg=Grey40"), - CENT("CursorLine term=underline cterm=underline", - "CursorLine term=underline cterm=underline guibg=Grey40"), - CENT("ColorColumn term=reverse ctermbg=DarkRed", - "ColorColumn term=reverse ctermbg=DarkRed guibg=DarkRed"), - CENT("MatchParen term=reverse ctermbg=DarkCyan", - "MatchParen term=reverse ctermbg=DarkCyan guibg=DarkCyan"), - CENT( - "Conceal ctermbg=DarkGrey ctermfg=LightGrey", - "Conceal ctermbg=DarkGrey ctermfg=LightGrey guibg=DarkGrey guifg=LightGrey"), +static char *highlight_init_dark[] = +{ + "ColorColumn ctermbg=DarkRed guibg=DarkRed", + "CursorColumn ctermbg=DarkGrey guibg=Grey40", + "CursorLine cterm=underline guibg=Grey40", + "CursorLineNr ctermfg=Yellow gui=bold guifg=Yellow", + "DiffAdd ctermbg=DarkBlue guibg=DarkBlue", + "DiffChange ctermbg=DarkMagenta guibg=DarkMagenta", + "DiffDelete ctermfg=Blue ctermbg=DarkCyan gui=bold guifg=Blue guibg=DarkCyan", + "Directory ctermfg=LightCyan guifg=Cyan", + "FoldColumn ctermbg=DarkGrey ctermfg=Cyan guibg=Grey guifg=Cyan", + "Folded ctermbg=DarkGrey ctermfg=Cyan guibg=DarkGrey guifg=Cyan", + "LineNr ctermfg=Yellow guifg=Yellow", + "MatchParen ctermbg=DarkCyan guibg=DarkCyan", + "MoreMsg ctermfg=LightGreen gui=bold guifg=SeaGreen", + "Pmenu ctermbg=Magenta ctermfg=Black guibg=Magenta", + "PmenuSel ctermbg=Black ctermfg=DarkGrey guibg=DarkGrey", + "PmenuThumb ctermbg=White guibg=White", + "Question ctermfg=LightGreen gui=bold guifg=Green", + "Search ctermbg=Yellow ctermfg=Black guibg=Yellow guifg=Black", + "SignColumn ctermbg=DarkGrey ctermfg=Cyan guibg=Grey guifg=Cyan", + "SpecialKey ctermfg=LightBlue guifg=Cyan", + "SpellBad ctermbg=Red guisp=Red gui=undercurl", + "SpellCap ctermbg=Blue guisp=Blue gui=undercurl", + "SpellLocal ctermbg=Cyan guisp=Cyan gui=undercurl", + "SpellRare ctermbg=Magenta guisp=Magenta gui=undercurl", + "TabLine cterm=underline ctermfg=white ctermbg=DarkGrey gui=underline guibg=DarkGrey", + "Title ctermfg=LightMagenta gui=bold guifg=Magenta", + "Visual guibg=DarkGrey", + "WarningMsg ctermfg=LightRed guifg=Red", NULL }; @@ -5951,7 +5862,7 @@ init_highlight ( // p invalid, so copy it. char_u *copy_p = vim_strsave(p); bool okay = load_colors(copy_p); - free(copy_p); + xfree(copy_p); if (okay) { return; } @@ -6032,7 +5943,7 @@ int load_colors(char_u *name) buf = xmalloc(STRLEN(name) + 12); sprintf((char *)buf, "colors/%s.vim", name); retval = source_runtime(buf, FALSE); - free(buf); + xfree(buf); apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, FALSE, curbuf); recursive = FALSE; @@ -6234,7 +6145,7 @@ do_highlight ( */ while (*linep && !vim_iswhite(*linep) && *linep != '=') ++linep; - free(key); + xfree(key); key = vim_strnsave_up(key_start, (int)(linep - key_start)); linep = skipwhite(linep); @@ -6278,7 +6189,7 @@ do_highlight ( error = TRUE; break; } - free(arg); + xfree(arg); arg = vim_strnsave(arg_start, (int)(linep - arg_start)); if (*linep == '\'') @@ -6483,7 +6394,7 @@ do_highlight ( if (!init) HL_TABLE()[idx].sg_set |= SG_GUI; - free(HL_TABLE()[idx].sg_rgb_fg_name); + xfree(HL_TABLE()[idx].sg_rgb_fg_name); if (STRCMP(arg, "NONE")) { HL_TABLE()[idx].sg_rgb_fg_name = (uint8_t *)xstrdup((char *)arg); HL_TABLE()[idx].sg_rgb_fg = name_to_color(arg); @@ -6501,7 +6412,7 @@ do_highlight ( if (!init) HL_TABLE()[idx].sg_set |= SG_GUI; - free(HL_TABLE()[idx].sg_rgb_bg_name); + xfree(HL_TABLE()[idx].sg_rgb_bg_name); if (STRCMP(arg, "NONE") != 0) { HL_TABLE()[idx].sg_rgb_bg_name = (uint8_t *)xstrdup((char *)arg); HL_TABLE()[idx].sg_rgb_bg = name_to_color(arg); @@ -6551,8 +6462,8 @@ do_highlight ( HL_TABLE()[idx].sg_scriptID = current_SID; redraw_all_later(NOT_VALID); } - free(key); - free(arg); + xfree(key); + xfree(arg); /* Only call highlight_changed() once, after sourcing a syntax file */ need_highlight_changed = TRUE; @@ -6563,8 +6474,8 @@ void free_highlight(void) { for (int i = 0; i < highlight_ga.ga_len; ++i) { highlight_clear(i); - free(HL_TABLE()[i].sg_name); - free(HL_TABLE()[i].sg_name_u); + xfree(HL_TABLE()[i].sg_name); + xfree(HL_TABLE()[i].sg_name_u); } ga_clear(&highlight_ga); } @@ -6611,9 +6522,9 @@ static void highlight_clear(int idx) HL_TABLE()[idx].sg_gui = 0; HL_TABLE()[idx].sg_rgb_fg = -1; HL_TABLE()[idx].sg_rgb_bg = -1; - free(HL_TABLE()[idx].sg_rgb_fg_name); + xfree(HL_TABLE()[idx].sg_rgb_fg_name); HL_TABLE()[idx].sg_rgb_fg_name = NULL; - free(HL_TABLE()[idx].sg_rgb_bg_name); + xfree(HL_TABLE()[idx].sg_rgb_bg_name); HL_TABLE()[idx].sg_rgb_bg_name = NULL; /* Clear the script ID only when there is no link, since that is not * cleared. */ @@ -7048,7 +6959,7 @@ int syn_namen2id(char_u *linep, int len) { char_u *name = vim_strnsave(linep, len); int id = syn_name2id(name); - free(name); + xfree(name); return id; } @@ -7070,7 +6981,7 @@ int syn_check_group(char_u *pp, int len) if (id == 0) /* doesn't exist yet */ id = syn_add_group(name); else - free(name); + xfree(name); return id; } @@ -7087,7 +6998,7 @@ static int syn_add_group(char_u *name) for (p = name; *p != NUL; ++p) { if (!vim_isprintc(*p)) { EMSG(_("E669: Unprintable character in group name")); - free(name); + xfree(name); return 0; } else if (!ASCII_ISALNUM(*p) && *p != '_') { /* This is an error, but since there previously was no check only @@ -7108,7 +7019,7 @@ static int syn_add_group(char_u *name) if (highlight_ga.ga_len >= MAX_HL_ID) { EMSG(_("E849: Too many highlight and syntax groups")); - free(name); + xfree(name); return 0; } @@ -7128,8 +7039,8 @@ static int syn_add_group(char_u *name) static void syn_unadd_group(void) { --highlight_ga.ga_len; - free(HL_TABLE()[highlight_ga.ga_len].sg_name); - free(HL_TABLE()[highlight_ga.ga_len].sg_name_u); + xfree(HL_TABLE()[highlight_ga.ga_len].sg_name); + xfree(HL_TABLE()[highlight_ga.ga_len].sg_name_u); } /* |