# HG changeset patch # User Christian Brabandt # Date 1489343405 -3600 # Node ID 506f5d8b7d8b6ab96ee41203fce9aa2e665e7cc1 # Parent 48599a3eae0be29b87284a6bad2590d52df373d6 patch 8.0.0451: some macros are in lower case commit https://github.com/vim/vim/commit/91acfffc1e6c0d8c2abfb186a0e79a5bf19c3f3f Author: Bram Moolenaar Date: Sun Mar 12 19:22:36 2017 +0100 patch 8.0.0451: some macros are in lower case Problem: Some macros are in lower case. Solution: Make a few more macros upper case. Avoid lower case macros use an argument twice. diff --git a/src/charset.c b/src/charset.c --- a/src/charset.c +++ b/src/charset.c @@ -870,7 +870,7 @@ win_linetabsize(win_T *wp, char_u *line, char_u *s; for (s = line; *s != NUL && (len == MAXCOL || s < line + len); - mb_ptr_adv(s)) + MB_PTR_ADV(s)) col += win_lbr_chartabsize(wp, line, s, col, NULL); return (int)col; } @@ -1026,7 +1026,7 @@ lbr_chartabsize_adv( int retval; retval = lbr_chartabsize(line, *s, col); - mb_ptr_adv(*s); + MB_PTR_ADV(*s); return retval; } @@ -1089,8 +1089,8 @@ win_lbr_chartabsize( * needs a break here */ if (wp->w_p_lbr - && vim_isbreak(c) - && !vim_isbreak(s[1]) + && VIM_ISBREAK(c) + && !VIM_ISBREAK(s[1]) && wp->w_p_wrap # ifdef FEAT_WINDOWS && wp->w_width != 0 @@ -1115,12 +1115,12 @@ win_lbr_chartabsize( for (;;) { ps = s; - mb_ptr_adv(s); + MB_PTR_ADV(s); c = *s; if (!(c != NUL - && (vim_isbreak(c) - || (!vim_isbreak(c) - && (col2 == col || !vim_isbreak(*ps)))))) + && (VIM_ISBREAK(c) + || (!VIM_ISBREAK(c) + && (col2 == col || !VIM_ISBREAK(*ps)))))) break; col2 += win_chartabsize(wp, s, col2); @@ -1369,7 +1369,7 @@ getvcol( break; vcol += incr; - mb_ptr_adv(ptr); + MB_PTR_ADV(ptr); } } else @@ -1390,7 +1390,7 @@ getvcol( break; vcol += incr; - mb_ptr_adv(ptr); + MB_PTR_ADV(ptr); } } if (start != NULL) diff --git a/src/edit.c b/src/edit.c --- a/src/edit.c +++ b/src/edit.c @@ -857,7 +857,7 @@ edit( if (str != NULL) { - for (p = str; *p != NUL; mb_ptr_adv(p)) + for (p = str; *p != NUL; MB_PTR_ADV(p)) ins_compl_addleader(PTR2CHAR(p)); vim_free(str); } @@ -1492,7 +1492,7 @@ normalchar: if (*str != NUL && stop_arrow() != FAIL) { /* Insert the new value of v:char literally. */ - for (p = str; *p != NUL; mb_ptr_adv(p)) + for (p = str; *p != NUL; MB_PTR_ADV(p)) { c = PTR2CHAR(p); if (c == CAR || c == K_KENTER || c == NL) @@ -2403,7 +2403,7 @@ ins_compl_add_infercase( actual_len = 0; while (*p != NUL) { - mb_ptr_adv(p); + MB_PTR_ADV(p); ++actual_len; } } @@ -2419,7 +2419,7 @@ ins_compl_add_infercase( actual_compl_length = 0; while (*p != NUL) { - mb_ptr_adv(p); + MB_PTR_ADV(p); ++actual_compl_length; } } @@ -2722,8 +2722,8 @@ ins_compl_longest_match(compl_T *match) #ifdef FEAT_MBYTE if (has_mbyte) { - mb_ptr_adv(p); - mb_ptr_adv(s); + MB_PTR_ADV(p); + MB_PTR_ADV(s); } else #endif @@ -3474,7 +3474,7 @@ ins_compl_bs(void) line = ml_get_curline(); p = line + curwin->w_cursor.col; - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); /* Stop completion when the whole word was deleted. For Omni completion * allow the word to be deleted, we won't match everything. @@ -4023,7 +4023,7 @@ ins_compl_fixRedoBufForLeader(char_u *pt if (len > 0) len -= (*mb_head_off)(p, p + len); #endif - for (p += len; *p != NUL; mb_ptr_adv(p)) + for (p += len; *p != NUL; MB_PTR_ADV(p)) AppendCharToRedobuff(K_BS); } else @@ -5336,9 +5336,9 @@ ins_complete(int c, int enable_pum) { char_u *p = line + startcol; - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); while (p > line && vim_isfilec(PTR2CHAR(p))) - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); if (p == line && vim_isfilec(PTR2CHAR(p))) startcol = 0; else diff --git a/src/eval.c b/src/eval.c --- a/src/eval.c +++ b/src/eval.c @@ -2551,7 +2551,7 @@ set_context_for_expression( for (p = arg + STRLEN(arg); p >= arg; ) { xp->xp_pattern = p; - mb_ptr_back(arg, p); + MB_PTR_BACK(arg, p); if (vim_iswhite(*p)) break; } @@ -4814,7 +4814,7 @@ get_string_tv(char_u **arg, typval_T *re /* * Find the end of the string, skipping backslashed characters. */ - for (p = *arg + 1; *p != NUL && *p != '"'; mb_ptr_adv(p)) + for (p = *arg + 1; *p != NUL && *p != '"'; MB_PTR_ADV(p)) { if (*p == '\\' && p[1] != NUL) { @@ -4952,7 +4952,7 @@ get_lit_string_tv(char_u **arg, typval_T /* * Find the end of the string, skipping ''. */ - for (p = *arg + 1; *p != NUL; mb_ptr_adv(p)) + for (p = *arg + 1; *p != NUL; MB_PTR_ADV(p)) { if (*p == '\'') { @@ -5910,7 +5910,7 @@ string_quote(char_u *str, int function) if (str != NULL) { len += (unsigned)STRLEN(str); - for (p = str; *p != NUL; mb_ptr_adv(p)) + for (p = str; *p != NUL; MB_PTR_ADV(p)) if (*p == '\'') ++len; } @@ -6369,12 +6369,12 @@ find_name_end( || *p == '{' || ((flags & FNE_INCL_BR) && (*p == '[' || *p == '.')) || mb_nest != 0 - || br_nest != 0); mb_ptr_adv(p)) + || br_nest != 0); MB_PTR_ADV(p)) { if (*p == '\'') { /* skip over 'string' to avoid counting [ and ] inside it. */ - for (p = p + 1; *p != NUL && *p != '\''; mb_ptr_adv(p)) + for (p = p + 1; *p != NUL && *p != '\''; MB_PTR_ADV(p)) ; if (*p == NUL) break; @@ -6382,7 +6382,7 @@ find_name_end( else if (*p == '"') { /* skip over "str\"ing" to avoid counting [ and ] inside it. */ - for (p = p + 1; *p != NUL && *p != '"'; mb_ptr_adv(p)) + for (p = p + 1; *p != NUL && *p != '"'; MB_PTR_ADV(p)) if (*p == '\\' && p[1] != NUL) ++p; if (*p == NUL) @@ -9410,7 +9410,7 @@ shortpath_for_partial( /* Count up the path separators from the RHS.. so we know which part * of the path to return. */ sepcount = 0; - for (p = *fnamep; p < *fnamep + *fnamelen; mb_ptr_adv(p)) + for (p = *fnamep; p < *fnamep + *fnamelen; MB_PTR_ADV(p)) if (vim_ispathsep(*p)) ++sepcount; @@ -9528,7 +9528,7 @@ repeat: } /* When "/." or "/.." is used: force expansion to get rid of it. */ - for (p = *fnamep; *p != NUL; mb_ptr_adv(p)) + for (p = *fnamep; *p != NUL; MB_PTR_ADV(p)) { if (vim_ispathsep(*p) && p[1] == '.' @@ -9658,7 +9658,7 @@ repeat: *usedlen += 2; s = get_past_head(*fnamep); while (tail > s && after_pathsep(s, tail)) - mb_ptr_back(*fnamep, tail); + MB_PTR_BACK(*fnamep, tail); *fnamelen = (int)(tail - *fnamep); #ifdef VMS if (*fnamelen > 0) @@ -9677,7 +9677,7 @@ repeat: else { while (tail > s && !after_pathsep(s, tail)) - mb_ptr_back(*fnamep, tail); + MB_PTR_BACK(*fnamep, tail); } } diff --git a/src/ex_cmds.c b/src/ex_cmds.c --- a/src/ex_cmds.c +++ b/src/ex_cmds.c @@ -4863,7 +4863,7 @@ do_sub(exarg_T *eap) } if (cmd[0] == '\\' && cmd[1] != 0) /* skip escaped characters */ ++cmd; - mb_ptr_adv(cmd); + MB_PTR_ADV(cmd); } if (!eap->skip) diff --git a/src/ex_cmds2.c b/src/ex_cmds2.c --- a/src/ex_cmds2.c +++ b/src/ex_cmds2.c @@ -3526,7 +3526,7 @@ add_pack_plugin(char_u *fname, void *coo { /* directory is not yet in 'runtimepath', add it */ p4 = p3 = p2 = p1 = get_past_head(ffname); - for (p = p1; *p; mb_ptr_adv(p)) + for (p = p1; *p; MB_PTR_ADV(p)) if (vim_ispathsep_nocolon(*p)) { p4 = p3; p3 = p2; p2 = p1; p1 = p; diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -3696,7 +3696,7 @@ set_one_cmd_context( return NULL; /* It's a comment */ } } - mb_ptr_adv(p); + MB_PTR_ADV(p); } } @@ -3720,7 +3720,7 @@ set_one_cmd_context( { if (*p == '\\' && *(p + 1) != NUL) ++p; /* skip over escaped character */ - mb_ptr_adv(p); + MB_PTR_ADV(p); } } @@ -3780,7 +3780,7 @@ set_one_cmd_context( else #endif len = 1; - mb_ptr_adv(p); + MB_PTR_ADV(p); } if (in_quote) bow = p; @@ -3788,7 +3788,7 @@ set_one_cmd_context( xp->xp_pattern = p; p -= len; } - mb_ptr_adv(p); + MB_PTR_ADV(p); } /* @@ -4204,7 +4204,7 @@ set_one_cmd_context( arg = p + 1; else if (*p == '\\' && *(p + 1) != NUL) ++p; /* skip over escaped character */ - mb_ptr_adv(p); + MB_PTR_ADV(p); } xp->xp_pattern = arg; } @@ -5280,7 +5280,7 @@ separate_nextcmd(exarg_T *eap) p = eap->arg; #endif - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (*p == Ctrl_V) { @@ -5380,7 +5380,7 @@ skip_cmd_arg( else ++p; } - mb_ptr_adv(p); + MB_PTR_ADV(p); } return p; } @@ -11861,7 +11861,7 @@ ses_put_fname(FILE *fd, char_u *name, un if (*flagp & SSOP_SLASH) { /* change all backslashes to forward slashes */ - for (p = sname; *p != NUL; mb_ptr_adv(p)) + for (p = sname; *p != NUL; MB_PTR_ADV(p)) if (*p == '\\') *p = '/'; } diff --git a/src/ex_getln.c b/src/ex_getln.c --- a/src/ex_getln.c +++ b/src/ex_getln.c @@ -4296,7 +4296,7 @@ sm_gettail(char_u *s) t = p; had_sep = FALSE; } - mb_ptr_adv(p); + MB_PTR_ADV(p); } return t; } @@ -5370,7 +5370,7 @@ ExpandRTDir( if (e - 4 > s && STRNICMP(e - 4, ".vim", 4) == 0) { e -= 4; - for (s = e; s > match; mb_ptr_back(match, s)) + for (s = e; s > match; MB_PTR_BACK(match, s)) if (s < match || vim_ispathsep(*s)) break; ++s; diff --git a/src/fileio.c b/src/fileio.c --- a/src/fileio.c +++ b/src/fileio.c @@ -6247,7 +6247,7 @@ buf_modname( * Then truncate what is after the '/', '\' or ':' to 8 characters for * MSDOS and 26 characters for AMIGA, a lot more for UNIX. */ - for (ptr = retval + fnamelen; ptr > retval; mb_ptr_back(retval, ptr)) + for (ptr = retval + fnamelen; ptr > retval; MB_PTR_BACK(retval, ptr)) { if (*ext == '.' #ifdef USE_LONG_FNAME diff --git a/src/fold.c b/src/fold.c --- a/src/fold.c +++ b/src/fold.c @@ -2064,7 +2064,7 @@ foldtext_cleanup(char_u *str) } else { - mb_ptr_adv(s); + MB_PTR_ADV(s); } } } @@ -3249,7 +3249,7 @@ foldlevelMarker(fline_T *flp) --flp->lvl_next; } else - mb_ptr_adv(s); + MB_PTR_ADV(s); } /* The level can't go negative, must be missing a start marker. */ diff --git a/src/gui.c b/src/gui.c --- a/src/gui.c +++ b/src/gui.c @@ -4500,7 +4500,7 @@ scroll_line_len(linenr_T lnum) for (;;) { w = chartabsize(p, col); - mb_ptr_adv(p); + MB_PTR_ADV(p); if (*p == NUL) /* don't count the last character */ break; col += w; diff --git a/src/gui_gtk.c b/src/gui_gtk.c --- a/src/gui_gtk.c +++ b/src/gui_gtk.c @@ -1522,7 +1522,7 @@ split_button_string(char_u *button_strin else if (*p == DLG_HOTKEY_CHAR) *p++ = '_'; else - mb_ptr_adv(p); + MB_PTR_ADV(p); } array[count] = NULL; /* currently not relied upon, but doesn't hurt */ } diff --git a/src/macros.h b/src/macros.h --- a/src/macros.h +++ b/src/macros.h @@ -8,6 +8,9 @@ /* * macros.h: macro definitions for often used code + * + * Macros should be ALL_CAPS. An exception is for where a function is + * replaced and an argument is not used more than once. */ /* @@ -161,10 +164,10 @@ #endif /* - * vim_isbreak() is used very often if 'linebreak' is set, use a macro to make - * it work fast. + * VIM_ISBREAK() is used very often if 'linebreak' is set, use a macro to make + * it work fast. Only works for single byte characters! */ -#define vim_isbreak(c) (breakat_flags[(char_u)(c)]) +#define VIM_ISBREAK(c) ((c) < 256 && breakat_flags[(char_u)(c)]) /* * On VMS file names are different and require a translation. @@ -190,9 +193,7 @@ # define mch_stat(n, p) vim_stat((n), (p)) # else # ifdef STAT_IGNORES_SLASH - /* On Solaris stat() accepts "file/" as if it was "file". Return -1 if - * the name ends in "/" and it's not a directory. */ -# define mch_stat(n, p) (illegal_slash(n) ? -1 : stat((n), (p))) +# define mch_stat(n, p) vim_stat((n), (p)) # else # define mch_stat(n, p) stat((n), (p)) # endif @@ -258,22 +259,22 @@ #endif /* - * mb_ptr_adv(): advance a pointer to the next character, taking care of + * MB_PTR_ADV(): advance a pointer to the next character, taking care of * multi-byte characters if needed. - * mb_ptr_back(): backup a pointer to the previous character, taking care of + * MB_PTR_BACK(): backup a pointer to the previous character, taking care of * multi-byte characters if needed. * MB_COPY_CHAR(f, t): copy one char from "f" to "t" and advance the pointers. * PTR2CHAR(): get character from pointer. */ #ifdef FEAT_MBYTE /* Get the length of the character p points to */ -# define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : 1) +# define MB_PTR2LEN(p) (has_mbyte ? (*mb_ptr2len)(p) : 1) /* Advance multi-byte pointer, skip over composing chars. */ -# define mb_ptr_adv(p) p += has_mbyte ? (*mb_ptr2len)(p) : 1 +# define MB_PTR_ADV(p) p += has_mbyte ? (*mb_ptr2len)(p) : 1 /* Advance multi-byte pointer, do not skip over composing chars. */ -# define mb_cptr_adv(p) p += enc_utf8 ? utf_ptr2len(p) : has_mbyte ? (*mb_ptr2len)(p) : 1 +# define MB_CPTR_ADV(p) p += enc_utf8 ? utf_ptr2len(p) : has_mbyte ? (*mb_ptr2len)(p) : 1 /* Backup multi-byte pointer. Only use with "p" > "s" ! */ -# define mb_ptr_back(s, p) p -= has_mbyte ? ((*mb_head_off)(s, p - 1) + 1) : 1 +# define MB_PTR_BACK(s, p) p -= has_mbyte ? ((*mb_head_off)(s, p - 1) + 1) : 1 /* get length of multi-byte char, not including composing chars */ # define MB_CPTR2LEN(p) (enc_utf8 ? utf_ptr2len(p) : (*mb_ptr2len)(p)) @@ -284,9 +285,9 @@ #else # define MB_PTR2LEN(p) 1 # define MB_CPTR2LEN(p) 1 -# define mb_ptr_adv(p) ++p -# define mb_cptr_adv(p) ++p -# define mb_ptr_back(s, p) --p +# define MB_PTR_ADV(p) ++p +# define MB_CPTR_ADV(p) ++p +# define MB_PTR_BACK(s, p) --p # define MB_COPY_CHAR(f, t) *t++ = *f++ # define MB_CHARLEN(p) STRLEN(p) # define MB_CHAR2LEN(c) 1 diff --git a/src/mark.c b/src/mark.c --- a/src/mark.c +++ b/src/mark.c @@ -695,7 +695,7 @@ mark_line(pos_T *mp, int lead_len) return NULL; /* Truncate the line to fit it in the window */ len = 0; - for (p = s; *p != NUL; mb_ptr_adv(p)) + for (p = s; *p != NUL; MB_PTR_ADV(p)) { len += ptr2cells(p); if (len >= Columns - lead_len) diff --git a/src/mbyte.c b/src/mbyte.c --- a/src/mbyte.c +++ b/src/mbyte.c @@ -4047,7 +4047,7 @@ mb_prevptr( char_u *p) { if (p > line) - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); return p; } @@ -5708,7 +5708,6 @@ static int xim_real_init(Window x11_wind #ifdef USE_X11R6_XIM -static void xim_instantiate_cb(Display *display, XPointer client_data, XPointer call_data); static void xim_destroy_cb(XIM im, XPointer client_data, XPointer call_data); static void diff --git a/src/memline.c b/src/memline.c --- a/src/memline.c +++ b/src/memline.c @@ -2028,7 +2028,7 @@ make_percent_swname(char_u *dir, char_u if (s != NULL) { STRCPY(s, f); - for (d = s; *d != NUL; mb_ptr_adv(d)) + for (d = s; *d != NUL; MB_PTR_ADV(d)) if (vim_ispathsep(*d)) *d = '%'; d = concat_fnames(dir, s, TRUE); @@ -4015,7 +4015,7 @@ get_file_in_dir( #ifdef WIN3264 if (retval != NULL) - for (t = gettail(retval); *t != NUL; mb_ptr_adv(t)) + for (t = gettail(retval); *t != NUL; MB_PTR_ADV(t)) if (*t == ':') *t = '%'; #endif @@ -4154,7 +4154,7 @@ findswapname( if (buf_fname == NULL) buf_fname = buf->b_fname; else - for (t = gettail(buf_fname); *t != NUL; mb_ptr_adv(t)) + for (t = gettail(buf_fname); *t != NUL; MB_PTR_ADV(t)) if (*t == ':') *t = '%'; } diff --git a/src/menu.c b/src/menu.c --- a/src/menu.c +++ b/src/menu.c @@ -152,7 +152,7 @@ ex_menu( { if (*arg == '\\') STRMOVE(arg, arg + 1); - mb_ptr_adv(arg); + MB_PTR_ADV(arg); } if (*arg != NUL) { @@ -661,7 +661,7 @@ add_menu_path( STRCPY(tearpath, menu_path); idx = (int)(next_name - path_name - 1); - for (s = tearpath; *s && s < tearpath + idx; mb_ptr_adv(s)) + for (s = tearpath; *s && s < tearpath + idx; MB_PTR_ADV(s)) { if ((*s == '\\' || *s == Ctrl_V) && s[1]) { @@ -1472,7 +1472,7 @@ menu_name_skip(char_u *name) { char_u *p; - for (p = name; *p && *p != '.'; mb_ptr_adv(p)) + for (p = name; *p && *p != '.'; MB_PTR_ADV(p)) { if (*p == '\\' || *p == Ctrl_V) { @@ -2485,7 +2485,7 @@ menu_unescape_name(char_u *name) { char_u *p; - for (p = name; *p && *p != '.'; mb_ptr_adv(p)) + for (p = name; *p && *p != '.'; MB_PTR_ADV(p)) if (*p == '\\') STRMOVE(p, p + 1); } diff --git a/src/message.c b/src/message.c --- a/src/message.c +++ b/src/message.c @@ -3746,7 +3746,7 @@ msg_show_console_dialog( } /* advance to the next character */ - mb_ptr_adv(r); + MB_PTR_ADV(r); } if (copy) diff --git a/src/misc1.c b/src/misc1.c --- a/src/misc1.c +++ b/src/misc1.c @@ -1140,7 +1140,7 @@ open_line( while (old_size < repl_size && p > leader) { - mb_ptr_back(leader, p); + MB_PTR_BACK(leader, p); old_size += ptr2cells(p); } l = lead_repl_len - (int)(endp - p); @@ -2070,7 +2070,7 @@ plines_win_col(win_T *wp, linenr_T lnum, while (*s != NUL && --column >= 0) { col += win_lbr_chartabsize(wp, line, s, (colnr_T)col, NULL); - mb_ptr_adv(s); + MB_PTR_ADV(s); } /* @@ -4837,7 +4837,7 @@ gettail(char_u *fname) { if (vim_ispathsep_nocolon(*p2)) p1 = p2 + 1; - mb_ptr_adv(p2); + MB_PTR_ADV(p2); } return p1; } @@ -4875,7 +4875,7 @@ gettail_dir(char_u *fname) dir_end = next_dir_end; look_for_sep = TRUE; } - mb_ptr_adv(p); + MB_PTR_ADV(p); } return dir_end; } @@ -4910,7 +4910,7 @@ gettail_sep(char_u *fname) getnextcomp(char_u *fname) { while (*fname && !vim_ispathsep(*fname)) - mb_ptr_adv(fname); + MB_PTR_ADV(fname); if (*fname) ++fname; return fname; @@ -10378,7 +10378,7 @@ find_previous_pathsep(char_u *path, char { if (vim_ispathsep(**psep)) return OK; - mb_ptr_back(path, *psep); + MB_PTR_BACK(path, *psep); } return FAIL; @@ -10533,7 +10533,7 @@ get_path_cutoff(char_u *fname, garray_T /* skip to the file or directory name */ if (cutoff != NULL) while (vim_ispathsep(*cutoff)) - mb_ptr_adv(cutoff); + MB_PTR_ADV(cutoff); return cutoff; } @@ -10790,7 +10790,7 @@ static int has_env_var(char_u *p); static int has_env_var(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (*p == '\\' && p[1] != NUL) ++p; @@ -10816,7 +10816,7 @@ static int has_special_wildchar(char_u * static int has_special_wildchar(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { /* Allow for escaping. */ if (*p == '\\' && p[1] != NUL) @@ -11293,7 +11293,7 @@ get_isolated_shell_name(void) /* Find the last path separator before the space. */ p1 = p_sh; - for (p2 = p_sh; p2 < p; mb_ptr_adv(p2)) + for (p2 = p_sh; p2 < p; MB_PTR_ADV(p2)) if (vim_ispathsep(*p2)) p1 = p2 + 1; p = vim_strnsave(p1, (int)(p - p1)); diff --git a/src/misc2.c b/src/misc2.c --- a/src/misc2.c +++ b/src/misc2.c @@ -196,7 +196,7 @@ coladvance2( /* Count a tab for what it's worth (if list mode not on) */ #ifdef FEAT_LINEBREAK csize = win_lbr_chartabsize(curwin, line, ptr, col, &head); - mb_ptr_adv(ptr); + MB_PTR_ADV(ptr); #else csize = lbr_chartabsize_adv(line, &ptr, col); #endif @@ -1418,7 +1418,7 @@ vim_strsave_shellescape(char_u *string, /* First count the number of extra bytes required. */ length = (unsigned)STRLEN(string) + 3; /* two quotes and a trailing NUL */ - for (p = string; *p != NUL; mb_ptr_adv(p)) + for (p = string; *p != NUL; MB_PTR_ADV(p)) { # ifdef WIN32 if (!p_ssl) @@ -1950,7 +1950,7 @@ vim_strrchr(char_u *string, int c) { if (*p == c) retval = p; - mb_ptr_adv(p); + MB_PTR_ADV(p); } return retval; } @@ -1971,7 +1971,7 @@ vim_strpbrk(char_u *s, char_u *charset) { if (vim_strchr(charset, *s) != NULL) return s; - mb_ptr_adv(s); + MB_PTR_ADV(s); } return NULL; } @@ -3364,7 +3364,7 @@ vim_chdirfile(char_u *fname) * Used for systems where stat() ignores a trailing slash on a file name. * The Vim code assumes a trailing slash is only ignored for a directory. */ - int + static int illegal_slash(char *name) { if (name[0] == NUL) @@ -3375,6 +3375,17 @@ illegal_slash(char *name) return FALSE; /* trailing slash for a directory */ return TRUE; } + +/* + * Special implementation of mch_stat() for Solaris. + */ + int +vim_stat(const char *name, stat_T *stp) +{ + /* On Solaris stat() accepts "file/" as if it was "file". Return -1 if + * the name ends in "/" and it's not a directory. */ + return illegal_slash(n) ? -1 : stat(n, p); +} #endif #if defined(CURSOR_SHAPE) || defined(PROTO) diff --git a/src/ops.c b/src/ops.c --- a/src/ops.c +++ b/src/ops.c @@ -486,7 +486,7 @@ shift_block(oparg_T *oap, int amount) * the part of which is displayed at the block's beginning. Let's start * searching from the next character. */ if (bd.startspaces) - mb_ptr_adv(non_white); + MB_PTR_ADV(non_white); /* The character's column is in "bd.start_vcol". */ non_white_col = bd.start_vcol; @@ -526,7 +526,7 @@ shift_block(oparg_T *oap, int amount) if (verbatim_copy_width + incr > destination_col) break; verbatim_copy_width += incr; - mb_ptr_adv(verbatim_copy_end); + MB_PTR_ADV(verbatim_copy_end); } /* If "destination_col" is different from the width of the initial @@ -3458,7 +3458,7 @@ do_put( goto end; p = ml_get_cursor(); if (dir == FORWARD && *p != NUL) - mb_ptr_adv(p); + MB_PTR_ADV(p); ptr = vim_strsave(p); if (ptr == NULL) goto end; @@ -3468,7 +3468,7 @@ do_put( oldp = ml_get_curline(); p = oldp + curwin->w_cursor.col; if (dir == FORWARD && *p != NUL) - mb_ptr_adv(p); + MB_PTR_ADV(p); ptr = vim_strnsave(oldp, p - oldp); if (ptr == NULL) goto end; @@ -4489,11 +4489,11 @@ do_join( if (has_mbyte) { cend = curr + currsize; - mb_ptr_back(curr, cend); + MB_PTR_BACK(curr, cend); endcurr1 = (*mb_ptr2char)(cend); if (cend > curr) { - mb_ptr_back(curr, cend); + MB_PTR_BACK(curr, cend); endcurr2 = (*mb_ptr2char)(cend); } } @@ -5262,7 +5262,7 @@ block_prep( } #endif prev_pstart = pstart; - mb_ptr_adv(pstart); + MB_PTR_ADV(pstart); } bdp->start_char_vcols = incr; if (bdp->start_vcol < oap->start_vcol) /* line too short */ diff --git a/src/option.c b/src/option.c --- a/src/option.c +++ b/src/option.c @@ -6785,7 +6785,7 @@ did_set_string_option( { if (ptr2cells(s) != 1) errmsg = (char_u *)N_("E595: contains unprintable or wide character"); - mb_ptr_adv(s); + MB_PTR_ADV(s); } } #endif @@ -11666,7 +11666,7 @@ ExpandOldSetting(int *num_file, char_u * #ifdef BACKSLASH_IN_FILENAME /* For MS-Windows et al. we don't double backslashes at the start and * before a file name character. */ - for (var = buf; *var != NUL; mb_ptr_adv(var)) + for (var = buf; *var != NUL; MB_PTR_ADV(var)) if (var[0] == '\\' && var[1] == '\\' && expand_option_idx >= 0 && (options[expand_option_idx].flags & P_EXPAND) @@ -11866,7 +11866,7 @@ langmap_set(void) for (p = p_langmap; p[0] != NUL; ) { for (p2 = p; p2[0] != NUL && p2[0] != ',' && p2[0] != ';'; - mb_ptr_adv(p2)) + MB_PTR_ADV(p2)) { if (p2[0] == '\\' && p2[1] != NUL) ++p2; @@ -11892,7 +11892,7 @@ langmap_set(void) to = NUL; if (p2 == NULL) { - mb_ptr_adv(p); + MB_PTR_ADV(p); if (p[0] != ',') { if (p[0] == '\\') @@ -11932,10 +11932,10 @@ langmap_set(void) langmap_mapchar[from & 255] = to; /* Advance to next pair */ - mb_ptr_adv(p); + MB_PTR_ADV(p); if (p2 != NULL) { - mb_ptr_adv(p2); + MB_PTR_ADV(p2); if (*p == ';') { p = p2; diff --git a/src/os_amiga.c b/src/os_amiga.c --- a/src/os_amiga.c +++ b/src/os_amiga.c @@ -1567,7 +1567,7 @@ sortcmp(const void *a, const void *b) int mch_has_exp_wildcard(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (*p == '\\' && p[1] != NUL) ++p; @@ -1580,7 +1580,7 @@ mch_has_exp_wildcard(char_u *p) int mch_has_wildcard(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (*p == '\\' && p[1] != NUL) ++p; diff --git a/src/os_mswin.c b/src/os_mswin.c --- a/src/os_mswin.c +++ b/src/os_mswin.c @@ -454,7 +454,7 @@ slash_adjust(char_u *p) { if (*p == psepcN) *p = psepc; - mb_ptr_adv(p); + MB_PTR_ADV(p); } } @@ -600,7 +600,7 @@ vim_stat(const char *name, stat_T *stp) vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1); p = buf + STRLEN(buf); if (p > buf) - mb_ptr_back(buf, p); + MB_PTR_BACK(buf, p); /* Remove trailing '\\' except root path. */ if (p > buf && (*p == '\\' || *p == '/') && p[-1] != ':') @@ -720,7 +720,7 @@ display_errors(void) int mch_has_exp_wildcard(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (vim_strchr((char_u *)"?*[", *p) != NULL || (*p == '~' && p[1] != NUL)) @@ -736,7 +736,7 @@ mch_has_exp_wildcard(char_u *p) int mch_has_wildcard(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (vim_strchr((char_u *) # ifdef VIM_BACKTICK diff --git a/src/os_unix.c b/src/os_unix.c --- a/src/os_unix.c +++ b/src/os_unix.c @@ -6522,7 +6522,7 @@ save_patterns( int mch_has_exp_wildcard(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (*p == '\\' && p[1] != NUL) ++p; @@ -6546,7 +6546,7 @@ mch_has_exp_wildcard(char_u *p) int mch_has_wildcard(char_u *p) { - for ( ; *p; mb_ptr_adv(p)) + for ( ; *p; MB_PTR_ADV(p)) { if (*p == '\\' && p[1] != NUL) ++p; diff --git a/src/os_win32.c b/src/os_win32.c --- a/src/os_win32.c +++ b/src/os_win32.c @@ -5741,7 +5741,7 @@ write_chars( { char_u *p = pchBuf; for (n = 0; n < cchwritten; n++) - mb_cptr_adv(p); + MB_CPTR_ADV(p); written = p - pchBuf; g_coord.X += (SHORT)mb_string2cells(pchBuf, written); } diff --git a/src/popupmnu.c b/src/popupmnu.c --- a/src/popupmnu.c +++ b/src/popupmnu.c @@ -335,7 +335,7 @@ pum_redraw(void) case 3: p = pum_array[idx].pum_extra; break; } if (p != NULL) - for ( ; ; mb_ptr_adv(p)) + for ( ; ; MB_PTR_ADV(p)) { if (s == NULL) s = p; @@ -369,7 +369,7 @@ pum_redraw(void) { size -= has_mbyte ? (*mb_ptr2cells)(rt) : 1; - mb_ptr_adv(rt); + MB_PTR_ADV(rt); } while (size > pum_width); if (size < pum_width) diff --git a/src/proto/misc2.pro b/src/proto/misc2.pro --- a/src/proto/misc2.pro +++ b/src/proto/misc2.pro @@ -83,7 +83,7 @@ int get_real_state(void); int after_pathsep(char_u *b, char_u *p); int same_directory(char_u *f1, char_u *f2); int vim_chdirfile(char_u *fname); -int illegal_slash(char *name); +int vim_stat(const char *name, stat_T *stp); char_u *parse_shape_opt(int what); int get_shape_idx(int mouse); void update_mouseshape(int shape_idx); diff --git a/src/regexp.c b/src/regexp.c --- a/src/regexp.c +++ b/src/regexp.c @@ -1205,7 +1205,7 @@ skip_anyof(char_u *p) { ++p; if (*p != ']' && *p != NUL) - mb_ptr_adv(p); + MB_PTR_ADV(p); } else if (*p == '\\' && !reg_cpo_bsl @@ -1252,7 +1252,7 @@ skip_regexp( mymagic = MAGIC_OFF; get_cpo_flags(); - for (; p[0] != NUL; mb_ptr_adv(p)) + for (; p[0] != NUL; MB_PTR_ADV(p)) { if (p[0] == dirc) /* found end of regexp */ break; @@ -3864,7 +3864,7 @@ bt_regexec_both( { if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) break; /* Found it. */ - mb_ptr_adv(s); + MB_PTR_ADV(s); } #endif else @@ -3872,7 +3872,7 @@ bt_regexec_both( { if (cstrncmp(s, prog->regmust, &prog->regmlen) == 0) break; /* Found it. */ - mb_ptr_adv(s); + MB_PTR_ADV(s); } if (s == NULL) /* Not present. */ goto theend; @@ -4204,7 +4204,7 @@ reg_match_visual(void) return TRUE; } -#define ADVANCE_REGINPUT() mb_ptr_adv(reginput) +#define ADVANCE_REGINPUT() MB_PTR_ADV(reginput) /* * The arguments from BRACE_LIMITS are stored here. They are actually local @@ -4775,7 +4775,7 @@ regmatch( { /* Skip composing characters. */ while (utf_iscomposing(utf_ptr2char(reginput))) - mb_cptr_adv(reginput); + MB_CPTR_ADV(reginput); } #endif break; @@ -5557,7 +5557,7 @@ regmatch( no = FAIL; else { - mb_ptr_back(regline, rp->rs_un.regsave.rs_u.ptr); + MB_PTR_BACK(regline, rp->rs_un.regsave.rs_u.ptr); if (limit > 0 && (long)(behind_pos.rs_u.ptr - rp->rs_un.regsave.rs_u.ptr) > limit) no = FAIL; @@ -5644,7 +5644,7 @@ regmatch( fast_breakcheck(); } else - mb_ptr_back(regline, reginput); + MB_PTR_BACK(regline, reginput); } else { @@ -5788,7 +5788,7 @@ regrepeat( while (*scan != NUL && count < maxcount) { ++count; - mb_ptr_adv(scan); + MB_PTR_ADV(scan); } if (!REG_MULTI || !WITH_NL(OP(p)) || reglnum > rex.reg_maxline || rex.reg_line_lbr || count == maxcount) @@ -5811,7 +5811,7 @@ regrepeat( { if (vim_isIDc(PTR2CHAR(scan)) && (testval || !VIM_ISDIGIT(*scan))) { - mb_ptr_adv(scan); + MB_PTR_ADV(scan); } else if (*scan == NUL) { @@ -5842,7 +5842,7 @@ regrepeat( if (vim_iswordp_buf(scan, rex.reg_buf) && (testval || !VIM_ISDIGIT(*scan))) { - mb_ptr_adv(scan); + MB_PTR_ADV(scan); } else if (*scan == NUL) { @@ -5872,7 +5872,7 @@ regrepeat( { if (vim_isfilec(PTR2CHAR(scan)) && (testval || !VIM_ISDIGIT(*scan))) { - mb_ptr_adv(scan); + MB_PTR_ADV(scan); } else if (*scan == NUL) { @@ -5913,7 +5913,7 @@ regrepeat( else if (vim_isprintc(PTR2CHAR(scan)) == 1 && (testval || !VIM_ISDIGIT(*scan))) { - mb_ptr_adv(scan); + MB_PTR_ADV(scan); } else if (rex.reg_line_lbr && *scan == '\n' && WITH_NL(OP(p))) ++scan; @@ -7546,7 +7546,7 @@ vim_regsub_both( { int had_backslash = FALSE; - for (s = eval_result; *s != NUL; mb_ptr_adv(s)) + for (s = eval_result; *s != NUL; MB_PTR_ADV(s)) { /* Change NL to CR, so that it becomes a line break, * unless called from vim_regexec_nl(). diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -1425,7 +1425,7 @@ nfa_regatom(void) EMSG(_(e_nopresub)); return FAIL; } - for (lp = reg_prev_sub; *lp != NUL; mb_cptr_adv(lp)) + for (lp = reg_prev_sub; *lp != NUL; MB_CPTR_ADV(lp)) { EMIT(PTR2CHAR(lp)); if (lp != reg_prev_sub) @@ -1672,7 +1672,7 @@ collection: else EMIT(result); regparse = endp; - mb_ptr_adv(regparse); + MB_PTR_ADV(regparse); return OK; } /* @@ -1684,7 +1684,7 @@ collection: if (*regparse == '^') /* negated range */ { negated = TRUE; - mb_ptr_adv(regparse); + MB_PTR_ADV(regparse); EMIT(NFA_START_NEG_COLL); } else @@ -1694,7 +1694,7 @@ collection: startc = '-'; EMIT(startc); EMIT(NFA_CONCAT); - mb_ptr_adv(regparse); + MB_PTR_ADV(regparse); } /* Emit the OR branches for each character in the [] */ emit_range = FALSE; @@ -1797,7 +1797,7 @@ collection: { emit_range = TRUE; startc = oldstartc; - mb_ptr_adv(regparse); + MB_PTR_ADV(regparse); continue; /* reading the end of the range */ } @@ -1817,7 +1817,7 @@ collection: ) ) { - mb_ptr_adv(regparse); + MB_PTR_ADV(regparse); if (*regparse == 'n') startc = reg_string ? NL : NFA_NEWL; @@ -1832,7 +1832,7 @@ collection: /* TODO(RE) This needs more testing */ startc = coll_get_char(); got_coll_char = TRUE; - mb_ptr_back(old_regparse, regparse); + MB_PTR_BACK(old_regparse, regparse); } else { @@ -1932,10 +1932,10 @@ collection: } } - mb_ptr_adv(regparse); + MB_PTR_ADV(regparse); } /* while (p < endp) */ - mb_ptr_back(old_regparse, regparse); + MB_PTR_BACK(old_regparse, regparse); if (*regparse == '-') /* if last, '-' is just a char */ { EMIT('-'); @@ -1944,7 +1944,7 @@ collection: /* skip the trailing ] */ regparse = endp; - mb_ptr_adv(regparse); + MB_PTR_ADV(regparse); /* Mark end of the collection. */ if (negated == TRUE) diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -3397,7 +3397,7 @@ win_line( #ifdef FEAT_MBYTE prev_ptr = ptr; #endif - mb_ptr_adv(ptr); + MB_PTR_ADV(ptr); } /* When: @@ -4554,7 +4554,7 @@ win_line( * Found last space before word: check for line break. */ if (wp->w_p_lbr && c0 == c - && vim_isbreak(c) && !vim_isbreak(*ptr)) + && VIM_ISBREAK(c) && !VIM_ISBREAK(*ptr)) { # ifdef FEAT_MBYTE int mb_off = has_mbyte ? (*mb_head_off)(line, ptr - 1) : 0; @@ -6408,7 +6408,7 @@ status_match_len(expand_T *xp, char_u *s { s += skip_status_match_char(xp, s); len += ptr2cells(s); - mb_ptr_adv(s); + MB_PTR_ADV(s); } return len; @@ -10469,7 +10469,7 @@ draw_tabline(void) while (len > room) { len -= ptr2cells(p); - mb_ptr_adv(p); + MB_PTR_ADV(p); } else #endif diff --git a/src/search.c b/src/search.c --- a/src/search.c +++ b/src/search.c @@ -3828,7 +3828,7 @@ in_html_tag( /* We search forward until the cursor, because searching backwards is * very slow for DBCS encodings. */ - for (p = line; p < line + curwin->w_cursor.col; mb_ptr_adv(p)) + for (p = line; p < line + curwin->w_cursor.col; MB_PTR_ADV(p)) if (*p == '>' || *p == '<') { lc = *p; @@ -3848,7 +3848,7 @@ in_html_tag( { if (*p == '<') /* find '<' under/before cursor */ break; - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); if (*p == '>') /* find '>' before cursor */ break; } @@ -3859,7 +3859,7 @@ in_html_tag( pos.lnum = curwin->w_cursor.lnum; pos.col = (colnr_T)(p - line); - mb_ptr_adv(p); + MB_PTR_ADV(p); if (end_tag) /* check that there is a '/' after the '<' */ return *p == '/'; @@ -3974,7 +3974,7 @@ again: */ inc_cursor(); p = ml_get_cursor(); - for (cp = p; *cp != NUL && *cp != '>' && !vim_iswhite(*cp); mb_ptr_adv(cp)) + for (cp = p; *cp != NUL && *cp != '>' && !vim_iswhite(*cp); MB_PTR_ADV(cp)) ; len = (int)(cp - p); if (len == 0) diff --git a/src/spell.c b/src/spell.c --- a/src/spell.c +++ b/src/spell.c @@ -468,7 +468,7 @@ spell_check( { do { - mb_ptr_adv(mi.mi_fend); + MB_PTR_ADV(mi.mi_fend); } while (*mi.mi_fend != NUL && spell_iswordp(mi.mi_fend, wp)); if (capcol != NULL && *capcol == 0 && wp->w_s->b_cap_prog != NULL) @@ -494,7 +494,7 @@ spell_check( /* case-fold the word with one non-word character, so that we can check * for the word end. */ if (*mi.mi_fend != NUL) - mb_ptr_adv(mi.mi_fend); + MB_PTR_ADV(mi.mi_fend); (void)spell_casefold(ptr, (int)(mi.mi_fend - ptr), mi.mi_fword, MAXWLEN + 1); @@ -582,7 +582,7 @@ spell_check( else if (mi.mi_end == ptr) /* Always include at least one character. Required for when there * is a mixup in "midword". */ - mb_ptr_adv(mi.mi_end); + MB_PTR_ADV(mi.mi_end); else if (mi.mi_result == SP_BAD && LANGP_ENTRY(wp->w_s->b_langp, 0)->lp_slang->sl_nobreak) { @@ -598,8 +598,8 @@ spell_check( fp = mi.mi_fword; for (;;) { - mb_ptr_adv(p); - mb_ptr_adv(fp); + MB_PTR_ADV(p); + MB_PTR_ADV(fp); if (p >= mi.mi_end) break; mi.mi_compoff = (int)(fp - mi.mi_fword); @@ -827,8 +827,8 @@ find_word(matchinf_T *mip, int mode) p = mip->mi_word; if (STRNCMP(ptr, p, wlen) != 0) { - for (s = ptr; s < ptr + wlen; mb_ptr_adv(s)) - mb_ptr_adv(p); + for (s = ptr; s < ptr + wlen; MB_PTR_ADV(s)) + MB_PTR_ADV(p); wlen = (int)(p - mip->mi_word); } } @@ -952,8 +952,8 @@ find_word(matchinf_T *mip, int mode) { /* case folding may have changed the length */ p = mip->mi_word; - for (s = ptr; s < ptr + mip->mi_compoff; mb_ptr_adv(s)) - mb_ptr_adv(p); + for (s = ptr; s < ptr + mip->mi_compoff; MB_PTR_ADV(s)) + MB_PTR_ADV(p); } else #endif @@ -969,7 +969,7 @@ find_word(matchinf_T *mip, int mode) * character we do not accept a Onecap word. We do * accept a no-caps word, even when the dictionary * word specifies ONECAP. */ - mb_ptr_back(mip->mi_word, p); + MB_PTR_BACK(mip->mi_word, p); if (spell_iswordp_nmw(p, mip->mi_win) ? capflags == WF_ONECAP : (flags & WF_ONECAP) != 0 @@ -1038,8 +1038,8 @@ find_word(matchinf_T *mip, int mode) p = mip->mi_fword; if (STRNCMP(ptr, p, wlen) != 0) { - for (s = ptr; s < ptr + wlen; mb_ptr_adv(s)) - mb_ptr_adv(p); + for (s = ptr; s < ptr + wlen; MB_PTR_ADV(s)) + MB_PTR_ADV(p); mip->mi_compoff = (int)(p - mip->mi_fword); } } @@ -1506,12 +1506,12 @@ fold_more(matchinf_T *mip) p = mip->mi_fend; do { - mb_ptr_adv(mip->mi_fend); + MB_PTR_ADV(mip->mi_fend); } while (*mip->mi_fend != NUL && spell_iswordp(mip->mi_fend, mip->mi_win)); /* Include the non-word character so that we can check for the word end. */ if (*mip->mi_fend != NUL) - mb_ptr_adv(mip->mi_fend); + MB_PTR_ADV(mip->mi_fend); (void)spell_casefold(p, (int)(mip->mi_fend - p), mip->mi_fword + mip->mi_fwordlen, @@ -2760,7 +2760,7 @@ captype( int past_second = FALSE; /* past second word char */ /* find first letter */ - for (p = word; !spell_iswordp_nmw(p, curwin); mb_ptr_adv(p)) + for (p = word; !spell_iswordp_nmw(p, curwin); MB_PTR_ADV(p)) if (end == NULL ? *p == NUL : p >= end) return 0; /* only non-word characters, illegal word */ #ifdef FEAT_MBYTE @@ -2775,7 +2775,7 @@ captype( * Need to check all letters to find a word with mixed upper/lower. * But a word with an upper char only at start is a ONECAP. */ - for ( ; end == NULL ? *p != NUL : p < end; mb_ptr_adv(p)) + for ( ; end == NULL ? *p != NUL : p < end; MB_PTR_ADV(p)) if (spell_iswordp_nmw(p, curwin)) { c = PTR2CHAR(p); @@ -2818,7 +2818,7 @@ badword_captype(char_u *word, char_u *en /* Count the number of UPPER and lower case letters. */ l = u = 0; first = FALSE; - for (p = word; p < end; mb_ptr_adv(p)) + for (p = word; p < end; MB_PTR_ADV(p)) { c = PTR2CHAR(p); if (SPELL_ISUPPER(c)) @@ -3385,10 +3385,10 @@ spell_suggest(int count) p = line + curwin->w_cursor.col; /* Backup to before start of word. */ while (p > line && spell_iswordp_nmw(p, curwin)) - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); /* Forward to start of word. */ while (*p != NUL && !spell_iswordp_nmw(p, curwin)) - mb_ptr_adv(p); + MB_PTR_ADV(p); if (!spell_iswordp_nmw(p, curwin)) /* No word found. */ { @@ -3624,7 +3624,7 @@ check_need_cap(linenr_T lnum, colnr_T co p = line + endcol; for (;;) { - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); if (p == line || spell_iswordp_nmw(p, curwin)) break; if (vim_regexec(®match, p, 0) @@ -4644,7 +4644,7 @@ suggest_trie_walk( /* Get pointer to last char of previous word. */ p = preword + sp->ts_prewordlen; - mb_ptr_back(preword, p); + MB_PTR_BACK(preword, p); } } @@ -4746,11 +4746,11 @@ suggest_trie_walk( /* Give a penalty when changing non-word char to word * char, e.g., "thes," -> "these". */ p = fword + sp->ts_fidx; - mb_ptr_back(fword, p); + MB_PTR_BACK(fword, p); if (!spell_iswordp(p, curwin)) { p = preword + STRLEN(preword); - mb_ptr_back(preword, p); + MB_PTR_BACK(preword, p); if (spell_iswordp(p, curwin)) newscore += SCORE_NONWORD; } @@ -5157,7 +5157,7 @@ suggest_trie_walk( * to the score. Also for the soundfold * tree (might seem illogical but does * give better scores). */ - mb_ptr_back(tword, p); + MB_PTR_BACK(tword, p); if (c == mb_ptr2char(p)) sp->ts_score -= SCORE_INS - SCORE_INSDUP; @@ -5867,9 +5867,9 @@ nofold_len(char_u *fword, int flen, char char_u *p; int i = 0; - for (p = fword; p < fword + flen; mb_ptr_adv(p)) + for (p = fword; p < fword + flen; MB_PTR_ADV(p)) ++i; - for (p = word; i > 0; mb_ptr_adv(p)) + for (p = word; i > 0; MB_PTR_ADV(p)) --i; return (int)(p - word); } @@ -6745,8 +6745,8 @@ add_suggestion( badlen = (int)(pbad - su->su_badptr); if (goodlen <= 0 || badlen <= 0) break; - mb_ptr_back(goodword, pgood); - mb_ptr_back(su->su_badptr, pbad); + MB_PTR_BACK(goodword, pgood); + MB_PTR_BACK(su->su_badptr, pbad); #ifdef FEAT_MBYTE if (has_mbyte) { @@ -8976,7 +8976,7 @@ spell_to_word_end(char_u *start, win_T * char_u *p = start; while (*p != NUL && spell_iswordp(p, win)) - mb_ptr_adv(p); + MB_PTR_ADV(p); return p; } @@ -9002,7 +9002,7 @@ spell_word_start(int startcol) line = ml_get_curline(); for (p = line + startcol; p > line; ) { - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); if (spell_iswordp_nmw(p, curwin)) break; } @@ -9011,7 +9011,7 @@ spell_word_start(int startcol) while (p > line) { col = (int)(p - line); - mb_ptr_back(line, p); + MB_PTR_BACK(line, p); if (!spell_iswordp(p, curwin)) break; col = 0; diff --git a/src/spellfile.c b/src/spellfile.c --- a/src/spellfile.c +++ b/src/spellfile.c @@ -1429,7 +1429,7 @@ set_sofo(slang_T *lp, char_u *from, char for (p = from, s = to; *p != NUL && *s != NUL; ) { c = mb_cptr2char_adv(&p); - mb_cptr_adv(s); + MB_CPTR_ADV(s); if (c >= 256) ++lp->sl_sal_first[c & 0xff]; } @@ -2802,7 +2802,7 @@ spell_read_aff(spellinfo_T *spin, char_u { p = aff_entry->ae_add + STRLEN(aff_entry->ae_add); - mb_ptr_back(aff_entry->ae_add, p); + MB_PTR_BACK(aff_entry->ae_add, p); if (PTR2CHAR(p) == c_up) { upper = TRUE; @@ -2930,10 +2930,10 @@ spell_read_aff(spellinfo_T *spin, char_u { /* Replace underscore with space (can't include a space * directly). */ - for (p = items[1]; *p != NUL; mb_ptr_adv(p)) + for (p = items[1]; *p != NUL; MB_PTR_ADV(p)) if (*p == '_') *p = ' '; - for (p = items[2]; *p != NUL; mb_ptr_adv(p)) + for (p = items[2]; *p != NUL; MB_PTR_ADV(p)) if (*p == '_') *p = ' '; add_fromto(spin, items[0][3] == 'S' @@ -3624,7 +3624,7 @@ spell_read_dic(spellinfo_T *spin, char_u /* Truncate the word at the "/", set "afflist" to what follows. * Replace "\/" by "/" and "\\" by "\". */ afflist = NULL; - for (p = w; *p != NUL; mb_ptr_adv(p)) + for (p = w; *p != NUL; MB_PTR_ADV(p)) { if (*p == '\\' && (p[1] == '\\' || p[1] == '/')) STRMOVE(p, p + 1); @@ -3947,7 +3947,7 @@ store_aff_word( { i = mb_charlen(ae->ae_chop); for ( ; i > 0; --i) - mb_ptr_adv(p); + MB_PTR_ADV(p); } else #endif @@ -3965,7 +3965,7 @@ store_aff_word( p = newword + STRLEN(newword); i = (int)MB_CHARLEN(ae->ae_chop); for ( ; i > 0; --i) - mb_ptr_back(newword, p); + MB_PTR_BACK(newword, p); *p = NUL; } if (ae->ae_add != NULL) diff --git a/src/syntax.c b/src/syntax.c --- a/src/syntax.c +++ b/src/syntax.c @@ -3211,12 +3211,12 @@ syn_add_end_off( if (off > 0) { while (off-- > 0 && *p != NUL) - mb_ptr_adv(p); + MB_PTR_ADV(p); } else if (off < 0) { while (off++ < 0 && base < p) - mb_ptr_back(base, p); + MB_PTR_BACK(base, p); } col = (int)(p - base); } @@ -3265,12 +3265,12 @@ syn_add_start_off( if (off > 0) { while (off-- && *p != NUL) - mb_ptr_adv(p); + MB_PTR_ADV(p); } else if (off < 0) { while (off++ && base < p) - mb_ptr_back(base, p); + MB_PTR_BACK(base, p); } col = (int)(p - base); } diff --git a/src/tag.c b/src/tag.c --- a/src/tag.c +++ b/src/tag.c @@ -3544,7 +3544,7 @@ simplify_filename(char_u *filename) tail = p + 1; if (p[1] != NUL) while (vim_ispathsep(*tail)) - mb_ptr_adv(tail); + MB_PTR_ADV(tail); else if (p > start) --p; /* strip preceding path separator */ STRMOVE(p, tail); @@ -3556,7 +3556,7 @@ simplify_filename(char_u *filename) /* Skip to after ".." or "../" or "..///". */ tail = p + 2; while (vim_ispathsep(*tail)) - mb_ptr_adv(tail); + MB_PTR_ADV(tail); if (components > 0) /* strip one preceding component */ { @@ -3583,7 +3583,7 @@ simplify_filename(char_u *filename) --p; /* Skip back to after previous '/'. */ while (p > start && !after_pathsep(start, p)) - mb_ptr_back(start, p); + MB_PTR_BACK(start, p); if (!do_strip) { diff --git a/src/ui.c b/src/ui.c --- a/src/ui.c +++ b/src/ui.c @@ -3192,7 +3192,7 @@ vcol2col(win_T *wp, linenr_T lnum, int v while (count < vcol && *ptr != NUL) { count += win_lbr_chartabsize(wp, line, ptr, count, NULL); - mb_ptr_adv(ptr); + MB_PTR_ADV(ptr); } return (int)(ptr - line); } diff --git a/src/undo.c b/src/undo.c --- a/src/undo.c +++ b/src/undo.c @@ -833,7 +833,7 @@ u_get_undo_file_name(char_u *buf_ffname, munged_name = vim_strsave(ffname); if (munged_name == NULL) return NULL; - for (p = munged_name; *p != NUL; mb_ptr_adv(p)) + for (p = munged_name; *p != NUL; MB_PTR_ADV(p)) if (vim_ispathsep(*p)) *p = '%'; } diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -765,6 +765,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 451, +/**/ 450, /**/ 449, diff --git a/src/window.c b/src/window.c --- a/src/window.c +++ b/src/window.c @@ -6127,7 +6127,7 @@ file_name_in_line( */ ptr = line + col; while (*ptr != NUL && !vim_isfilec(*ptr)) - mb_ptr_adv(ptr); + MB_PTR_ADV(ptr); if (*ptr == NUL) /* nothing found */ { if (options & FNAME_MESS)