# HG changeset patch # User Bram Moolenaar # Date 1575576904 -3600 # Node ID d34ec6fe207d26b1dda71306cfb41f51b025da4f # Parent 65b77e62ec078290b449cc8e1b2c25fea46d3add patch 8.1.2394: using old C style comments Commit: https://github.com/vim/vim/commit/63d9e730f726341bf41ee4f4b829253cb9879110 Author: Bram Moolenaar Date: Thu Dec 5 21:10:38 2019 +0100 patch 8.1.2394: using old C style comments Problem: Using old C style comments. Solution: Use // comments where appropriate. diff --git a/src/popupmenu.c b/src/popupmenu.c --- a/src/popupmenu.c +++ b/src/popupmenu.c @@ -12,22 +12,22 @@ */ #include "vim.h" -static pumitem_T *pum_array = NULL; /* items of displayed pum */ -static int pum_size; /* nr of items in "pum_array" */ -static int pum_selected; /* index of selected item or -1 */ -static int pum_first = 0; /* index of top item */ +static pumitem_T *pum_array = NULL; // items of displayed pum +static int pum_size; // nr of items in "pum_array" +static int pum_selected; // index of selected item or -1 +static int pum_first = 0; // index of top item static int call_update_screen = FALSE; -static int pum_height; /* nr of displayed pum items */ -static int pum_width; /* width of displayed pum items */ -static int pum_base_width; /* width of pum items base */ -static int pum_kind_width; /* width of pum items kind column */ -static int pum_extra_width; /* width of extra stuff */ -static int pum_scrollbar; /* TRUE when scrollbar present */ +static int pum_height; // nr of displayed pum items +static int pum_width; // width of displayed pum items +static int pum_base_width; // width of pum items base +static int pum_kind_width; // width of pum items kind column +static int pum_extra_width; // width of extra stuff +static int pum_scrollbar; // TRUE when scrollbar present -static int pum_row; /* top row of pum */ -static int pum_col; /* left column of pum */ +static int pum_row; // top row of pum +static int pum_col; // left column of pum static win_T *pum_window = NULL; static int pum_win_row; @@ -49,7 +49,7 @@ pum_compute_size(void) int i; int w; - /* Compute the width of the widest match and the widest extra. */ + // Compute the width of the widest match and the widest extra. pum_base_width = 0; pum_kind_width = 0; pum_extra_width = 0; @@ -83,8 +83,8 @@ pum_compute_size(void) pum_display( pumitem_T *array, int size, - int selected) /* index of initially selected item, none if - out of range */ + int selected) // index of initially selected item, none if + // out of range { int def_width; int max_width; @@ -103,8 +103,8 @@ pum_display( above_row = 0; below_row = cmdline_row; - /* Pretend the pum is already there to avoid that must_redraw is set - * when 'cuc' is on. */ + // Pretend the pum is already there to avoid that must_redraw is set + // when 'cuc' is on. pum_array = (pumitem_T *)1; validate_cursor_col(); pum_array = NULL; @@ -141,14 +141,14 @@ pum_display( if (p_ph > 0 && pum_height > p_ph) pum_height = p_ph; - /* Put the pum below "pum_win_row" if possible. If there are few lines - * decide on where there is more room. */ + // Put the pum below "pum_win_row" if possible. If there are few lines + // decide on where there is more room. if (pum_win_row + 2 >= below_row - pum_height && pum_win_row - above_row > (below_row - above_row) / 2) { - /* pum above "pum_win_row" */ + // pum above "pum_win_row" - /* Leave two lines of context if possible */ + // Leave two lines of context if possible if (curwin->w_wrow - curwin->w_cline_row >= 2) context_lines = 2; else @@ -172,9 +172,9 @@ pum_display( } else { - /* pum below "pum_win_row" */ + // pum below "pum_win_row" - /* Leave two lines of context if possible */ + // Leave two lines of context if possible if (curwin->w_cline_row + curwin->w_cline_height - curwin->w_wrow >= 3) context_lines = 3; @@ -191,7 +191,7 @@ pum_display( pum_height = p_ph; } - /* don't display when we only have room for one line */ + // don't display when we only have room for one line if (pum_height < 1 || (pum_height == 1 && size > 1)) return; @@ -209,7 +209,7 @@ pum_display( pum_compute_size(); max_width = pum_base_width; - /* Calculate column */ + // Calculate column #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) cursor_col = curwin->w_wincol + curwin->w_width @@ -218,7 +218,7 @@ pum_display( #endif cursor_col = curwin->w_wincol + curwin->w_wcol; - /* if there are more items than room we need a scrollbar */ + // if there are more items than room we need a scrollbar if (pum_height < size) { pum_scrollbar = 1; @@ -239,10 +239,10 @@ pum_display( #endif )) { - /* align pum with "cursor_col" */ + // align pum with "cursor_col" pum_col = cursor_col; - /* start with the maximum space available */ + // start with the maximum space available #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) pum_width = pum_col - pum_scrollbar + 1; @@ -253,8 +253,8 @@ pum_display( if (pum_width > max_width + pum_kind_width + pum_extra_width + 1 && pum_width > p_pw) { - /* the width is more than needed for the items, make it - * narrower */ + // the width is more than needed for the items, make it + // narrower pum_width = max_width + pum_kind_width + pum_extra_width + 1; if (pum_width < p_pw) pum_width = p_pw; @@ -267,7 +267,7 @@ pum_display( #endif )) { - /* align pum edge with "cursor_col" */ + // align pum edge with "cursor_col" #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl && W_ENDCOL(curwin) < max_width + pum_scrollbar + 1) @@ -282,7 +282,7 @@ pum_display( if (curwin->w_wincol > Columns - max_width - pum_scrollbar && max_width <= p_pw) { - /* use full width to end of the screen */ + // use full width to end of the screen pum_col = Columns - max_width - pum_scrollbar; if (pum_col < 0) pum_col = 0; @@ -326,7 +326,7 @@ pum_display( } else if (Columns < def_width) { - /* not enough room, will use what we have */ + // not enough room, will use what we have #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) pum_col = Columns - 1; @@ -338,7 +338,7 @@ pum_display( else { if (max_width > p_pw) - max_width = p_pw; /* truncate */ + max_width = p_pw; // truncate #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) pum_col = max_width - 1; @@ -348,9 +348,9 @@ pum_display( pum_width = max_width - pum_scrollbar; } - /* Set selected item and redraw. If the window size changed need to - * redo the positioning. Limit this to two times, when there is not - * much room the window size will keep changing. */ + // Set selected item and redraw. If the window size changed need to + // redo the positioning. Limit this to two times, when there is not + // much room the window size will keep changing. } while (pum_set_selected(selected, redo_count) && ++redo_count <= 2); } @@ -440,7 +440,7 @@ pum_redraw(void) idx = i + pum_first; attr = (idx == pum_selected) ? attr_select : attr_norm; - /* prepend a space if there is room */ + // prepend a space if there is room #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) { @@ -452,8 +452,8 @@ pum_redraw(void) if (pum_col > 0) screen_putchar(' ', row, pum_col - 1, attr); - /* Display each entry, use two spaces for a Tab. - * Do this 3 times: For the main text, kind and extra info */ + // Display each entry, use two spaces for a Tab. + // Do this 3 times: For the main text, kind and extra info col = pum_col; totwidth = 0; for (round = 1; round <= 3; ++round) @@ -474,8 +474,8 @@ pum_redraw(void) w = ptr2cells(p); if (*p == NUL || *p == TAB || totwidth + w > pum_width) { - /* Display the text that fits or comes before a Tab. - * First convert it to printable characters. */ + // Display the text that fits or comes before a Tab. + // First convert it to printable characters. char_u *st; int saved = *p; @@ -508,11 +508,11 @@ pum_redraw(void) if (size < pum_width) { - /* Most left character requires - * 2-cells but only 1 cell is - * available on screen. Put a - * '<' on the left of the pum - * item */ + // Most left character requires + // 2-cells but only 1 cell is + // available on screen. Put a + // '<' on the left of the pum + // item *(--rt) = '<'; size++; } @@ -540,7 +540,7 @@ pum_redraw(void) if (*p != TAB) break; - /* Display two spaces for a Tab. */ + // Display two spaces for a Tab. #ifdef FEAT_RIGHTLEFT if (curwin->w_p_rl) { @@ -555,7 +555,7 @@ pum_redraw(void) col += 2; } totwidth += 2; - s = NULL; /* start text at next char */ + s = NULL; // start text at next char width = 0; } else @@ -567,7 +567,7 @@ pum_redraw(void) else n = 1; - /* Stop when there is nothing more to display. */ + // Stop when there is nothing more to display. if (round == 3 || (round == 2 && pum_array[idx].pum_extra == NULL) || (round == 1 && pum_array[idx].pum_kind == NULL @@ -693,8 +693,8 @@ pum_set_selected(int n, int repeat UNUSE { if (pum_first > pum_selected - 4) { - /* scroll down; when we did a jump it's probably a PageUp then - * scroll a whole page */ + // scroll down; when we did a jump it's probably a PageUp then + // scroll a whole page if (pum_first > pum_selected - 2) { pum_first -= pum_height - 2; @@ -708,8 +708,8 @@ pum_set_selected(int n, int repeat UNUSE } else if (pum_first < pum_selected - pum_height + 5) { - /* scroll up; when we did a jump it's probably a PageDown then - * scroll a whole page */ + // scroll up; when we did a jump it's probably a PageDown then + // scroll a whole page if (pum_first < pum_selected - pum_height + 1 + 2) { pum_first += pum_height - 2; @@ -720,21 +720,21 @@ pum_set_selected(int n, int repeat UNUSE pum_first = pum_selected - pum_height + 1; } - /* Give a few lines of context when possible. */ + // Give a few lines of context when possible. if (context > 3) context = 3; if (pum_height > 2) { if (pum_first > pum_selected - context) { - /* scroll down */ + // scroll down pum_first = pum_selected - context; if (pum_first < 0) pum_first = 0; } else if (pum_first < pum_selected + context - pum_height + 1) { - /* scroll up */ + // scroll up pum_first = pum_selected + context - pum_height + 1; } } @@ -845,8 +845,8 @@ pum_set_selected(int n, int repeat UNUSE // delete the empty last line ml_delete(curbuf->b_ml.ml_line_count, FALSE); - /* Increase the height of the preview window to show the - * text, but no more than 'previewheight' lines. */ + // Increase the height of the preview window to show the + // text, but no more than 'previewheight' lines. if (repeat == 0 && use_popup == USEPOPUP_NONE) { if (lnum > p_pvh) @@ -886,20 +886,20 @@ pum_set_selected(int n, int repeat UNUSE if (curtab != curtab_save && valid_tabpage(curtab_save)) goto_tabpage_tp(curtab_save, FALSE, FALSE); - /* When the first completion is done and the preview - * window is not resized, skip the preview window's - * status line redrawing. */ + // When the first completion is done and the preview + // window is not resized, skip the preview window's + // status line redrawing. if (ins_compl_active() && !resized) curwin->w_redr_status = FALSE; - /* Return cursor to where we were */ + // Return cursor to where we were validate_cursor(); redraw_later(SOME_VALID); - /* When the preview window was resized we need to - * update the view on the buffer. Only go back to - * the window when needed, otherwise it will always be - * redraw. */ + // When the preview window was resized we need to + // update the view on the buffer. Only go back to + // the window when needed, otherwise it will always be + // redraw. if (resized && win_valid(curwin_save)) { ++no_u_sync; @@ -908,8 +908,8 @@ pum_set_selected(int n, int repeat UNUSE update_topline(); } - /* Update the screen before drawing the popup menu. - * Enable updating the status lines. */ + // Update the screen before drawing the popup menu. + // Enable updating the status lines. pum_do_redraw = TRUE; update_screen(0); pum_do_redraw = FALSE; @@ -928,8 +928,8 @@ pum_set_selected(int n, int repeat UNUSE # endif } - /* May need to update the screen again when there are - * autocommands involved. */ + // May need to update the screen again when there are + // autocommands involved. pum_do_redraw = TRUE; update_screen(0); pum_do_redraw = FALSE; @@ -1064,14 +1064,14 @@ pum_position_at_mouse(int min_width) { if (Rows - mouse_row > pum_size) { - /* Enough space below the mouse row. */ + // Enough space below the mouse row. pum_row = mouse_row + 1; if (pum_height > Rows - pum_row) pum_height = Rows - pum_row; } else { - /* Show above the mouse row, reduce height if it does not fit. */ + // Show above the mouse row, reduce height if it does not fit. pum_row = mouse_row - pum_size; if (pum_row < 0) { @@ -1081,10 +1081,10 @@ pum_position_at_mouse(int min_width) } if (Columns - mouse_col >= pum_base_width || Columns - mouse_col > min_width) - /* Enough space to show at mouse column. */ + // Enough space to show at mouse column. pum_col = mouse_col; else - /* Not enough space, right align with window. */ + // Not enough space, right align with window. pum_col = Columns - (pum_base_width > min_width ? min_width : pum_base_width); @@ -1158,7 +1158,7 @@ split_message(char_u *mesg, pumitem_T ** { if ((*p == ',' && p[1] == ' ') || *p == '{' || *p == '}') { - /* Looks like a good point to break. */ + // Looks like a good point to break. if (*p == '{') ++indent; else if (*p == '}' && indent > 0) @@ -1181,22 +1181,22 @@ split_message(char_u *mesg, pumitem_T ** height = 2 + ga.ga_len; - /* If there are long items and the height is below the limit: split lines */ + // If there are long items and the height is below the limit: split lines if (long_item_count > 0 && height + long_item_count <= max_height) { split_long_items = TRUE; height += long_item_count; } - /* Limit to half the window height, it has to fit above or below the mouse - * position. */ + // Limit to half the window height, it has to fit above or below the mouse + // position. if (height > max_height) height = max_height; *array = ALLOC_CLEAR_MULT(pumitem_T, height); if (*array == NULL) goto failed; - /* Add an empty line above and below, looks better. */ + // Add an empty line above and below, looks better. (*array)->pum_text = vim_strsave((char_u *)""); (*array + height - 1)->pum_text = vim_strsave((char_u *)""); @@ -1246,7 +1246,7 @@ split_message(char_u *mesg, pumitem_T ** vim_strncpy(p + ind, item->start + skip, copylen); (*array)[line].pum_text = p; - item->indent = 0; /* wrapped line has no indent */ + item->indent = 0; // wrapped line has no indent ++line; } } @@ -1415,7 +1415,7 @@ pum_show_popupmenu(vimmenu_T *menu) pum_selected = -1; pum_first = 0; # ifdef FEAT_BEVAL_TERM - p_bevalterm = TRUE; /* track mouse movement */ + p_bevalterm = TRUE; // track mouse movement mch_setmouse(TRUE); # endif @@ -1435,13 +1435,13 @@ pum_show_popupmenu(vimmenu_T *menu) break; else if (c == CAR || c == NL) { - /* enter: select current item, if any, and close */ + // enter: select current item, if any, and close pum_execute_menu(menu, mode); break; } else if (c == 'k' || c == K_UP || c == K_MOUSEUP) { - /* cursor up: select previous item */ + // cursor up: select previous item while (pum_selected > 0) { --pum_selected; @@ -1451,7 +1451,7 @@ pum_show_popupmenu(vimmenu_T *menu) } else if (c == 'j' || c == K_DOWN || c == K_MOUSEDOWN) { - /* cursor down: select next item */ + // cursor down: select next item while (pum_selected < pum_size - 1) { ++pum_selected; @@ -1461,19 +1461,19 @@ pum_show_popupmenu(vimmenu_T *menu) } else if (c == K_RIGHTMOUSE) { - /* Right mouse down: reposition the menu. */ + // Right mouse down: reposition the menu. vungetc(c); break; } else if (c == K_LEFTDRAG || c == K_RIGHTDRAG || c == K_MOUSEMOVE) { - /* mouse moved: select item in the mouse row */ + // mouse moved: select item in the mouse row pum_select_mouse_pos(); } else if (c == K_LEFTMOUSE || c == K_LEFTMOUSE_NM || c == K_RIGHTRELEASE) { - /* left mouse click: select clicked item, if any, and close; - * right mouse release: select clicked item, close if any */ + // left mouse click: select clicked item, if any, and close; + // right mouse release: select clicked item, close if any pum_select_mouse_pos(); if (pum_selected >= 0) { @@ -1500,8 +1500,8 @@ pum_make_popup(char_u *path_name, int us if (!use_mouse_pos) { - /* Hack: set mouse position at the cursor so that the menu pops up - * around there. */ + // Hack: set mouse position at the cursor so that the menu pops up + // around there. mouse_row = curwin->w_winrow + curwin->w_wrow; mouse_col = curwin->w_wincol + curwin->w_wcol; } diff --git a/src/pty.c b/src/pty.c --- a/src/pty.c +++ b/src/pty.c @@ -20,26 +20,25 @@ * copyright notice below. */ -/* Copyright (c) 1993 - * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) - * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) - * Copyright (c) 1987 Oliver Laumann - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING); if not, write to the - * Free Software Foundation, Inc., - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA - */ +// Copyright (c) 1993 +// Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) +// Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) +// Copyright (c) 1987 Oliver Laumann +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2, or (at your option) +// any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program (see the file COPYING); if not, write to the +// Free Software Foundation, Inc., +// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA #include "vim.h" @@ -124,7 +123,7 @@ # define PTYRANGE1 "0123456789abcdef" #endif -/* SVR4 pseudo ttys don't seem to work with SCO-5 */ +// SVR4 pseudo ttys don't seem to work with SCO-5 #ifdef M_UNIX # undef HAVE_SVR4_PTYS #endif @@ -240,7 +239,7 @@ mch_openpty(char **ttyn) { char *m, *s; int f; - /* used for opening a new pty-pair: */ + // used for opening a new pty-pair: static char PtyName[32]; static char TtyName[32]; @@ -289,7 +288,7 @@ mch_openpty(char **ttyn) { int f; stat_T buf; - /* used for opening a new pty-pair: */ + // used for opening a new pty-pair: static char TtyName[32]; if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_NONBLOCK | O_EXTRA, 0)) < 0) @@ -309,8 +308,8 @@ mch_openpty(char **ttyn) #if defined(HAVE_SVR4_PTYS) && !defined(PTY_DONE) && !defined(hpux) \ && !(defined(MACOS_X) && !defined(MAC_OS_X_VERSION_10_6)) -/* NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! - * Same for Mac OS X Leopard (10.5). */ +// NOTE: Even though HPUX can have /dev/ptmx, the code below doesn't work! +// Same for Mac OS X Leopard (10.5). #define PTY_DONE int mch_openpty(char **ttyn) @@ -318,7 +317,7 @@ mch_openpty(char **ttyn) int f; char *m; RETSIGTYPE (*sigcld) SIGPROTOARG; - /* used for opening a new pty-pair: */ + // used for opening a new pty-pair: static char TtyName[32]; if ((f = open("/dev/ptmx", O_RDWR | O_NOCTTY | O_EXTRA, 0)) == -1) @@ -354,10 +353,10 @@ static int aixhack = -1; mch_openpty(char **ttyn) { int f; - /* used for opening a new pty-pair: */ + // used for opening a new pty-pair: static char TtyName[32]; - /* a dumb looking loop replaced by mycrofts code: */ + // a dumb looking loop replaced by mycrofts code: if ((f = open("/dev/ptc", O_RDWR | O_NOCTTY | O_EXTRA)) < 0) return -1; vim_strncpy((char_u *)TtyName, (char_u *)ttyname(f), sizeof(TtyName) - 1); @@ -401,7 +400,7 @@ mch_openpty(char **ttyn) { char *p, *q, *l, *d; int f; - /* used for opening a new pty-pair: */ + // used for opening a new pty-pair: static char PtyName[32]; static char TtyName[32]; @@ -425,13 +424,12 @@ mch_openpty(char **ttyn) continue; } #if defined(SUN_SYSTEM) && defined(TIOCGPGRP) && !defined(SUNOS3) - /* Hack to ensure that the slave side of the pty is - * unused. May not work in anything other than SunOS4.1 - */ + // Hack to ensure that the slave side of the pty is + // unused. May not work in anything other than SunOS4.1 { int pgrp; - /* tcgetpgrp does not work (uses TIOCGETPGRP)! */ + // tcgetpgrp does not work (uses TIOCGETPGRP)! if (ioctl(f, TIOCGPGRP, (char *)&pgrp) != -1 || errno != EIO) { close(f); @@ -474,4 +472,4 @@ mch_isatty(int fd) return isatty(fd); } -#endif /* FEAT_GUI || FEAT_JOB_CHANNEL */ +#endif // FEAT_GUI || FEAT_JOB_CHANNEL diff --git a/src/quickfix.c b/src/quickfix.c --- a/src/quickfix.c +++ b/src/quickfix.c @@ -7880,7 +7880,7 @@ ex_helpgrep(exarg_T *eap) curwin->w_llist = qi; } } -#endif /* FEAT_QUICKFIX */ +#endif // FEAT_QUICKFIX #if defined(FEAT_EVAL) || defined(PROTO) # ifdef FEAT_QUICKFIX diff --git a/src/regexp.c b/src/regexp.c --- a/src/regexp.c +++ b/src/regexp.c @@ -12,9 +12,9 @@ #include "vim.h" #ifdef DEBUG -/* show/save debugging data when BT engine is used */ +// show/save debugging data when BT engine is used # define BT_REGEXP_DUMP -/* save the debugging data to a file instead of displaying it */ +// save the debugging data to a file instead of displaying it # define BT_REGEXP_LOG # define BT_REGEXP_DEBUG_LOG # define BT_REGEXP_DEBUG_LOG_NAME "bt_regexp_debug.log" @@ -58,8 +58,8 @@ toggle_Magic(int x) */ #define UCHARAT(p) ((int)*(char_u *)(p)) -/* Used for an error (down from) vim_regcomp(): give the error message, set - * rc_did_emsg and return NULL */ +// Used for an error (down from) vim_regcomp(): give the error message, set +// rc_did_emsg and return NULL #define EMSG_RET_NULL(m) return (emsg((m)), rc_did_emsg = TRUE, (void *)NULL) #define IEMSG_RET_NULL(m) return (iemsg((m)), rc_did_emsg = TRUE, (void *)NULL) #define EMSG_RET_FAIL(m) return (emsg((m)), rc_did_emsg = TRUE, FAIL) @@ -90,11 +90,11 @@ static char_u e_recursive[] = N_("E956: #define MULTI_MULT 2 // return values for regmatch() -#define RA_FAIL 1 /* something failed, abort */ -#define RA_CONT 2 /* continue in inner loop */ -#define RA_BREAK 3 /* break inner loop */ -#define RA_MATCH 4 /* successful match */ -#define RA_NOMATCH 5 /* didn't match */ +#define RA_FAIL 1 // something failed, abort +#define RA_CONT 2 // continue in inner loop +#define RA_BREAK 3 // break inner loop +#define RA_MATCH 4 // successful match +#define RA_NOMATCH 5 // didn't match /* * Return NOT_MULTI if c is not a "multi" operator. @@ -281,37 +281,37 @@ init_class_tab(void) #define ri_upper(c) (c < 0x100 && (class_tab[c] & RI_UPPER)) #define ri_white(c) (c < 0x100 && (class_tab[c] & RI_WHITE)) -/* flags for regflags */ -#define RF_ICASE 1 /* ignore case */ -#define RF_NOICASE 2 /* don't ignore case */ -#define RF_HASNL 4 /* can match a NL */ -#define RF_ICOMBINE 8 /* ignore combining characters */ -#define RF_LOOKBH 16 /* uses "\@<=" or "\@?@ACDFHIKLMOPSUVWX[_acdfhiklmnopsuvwxz{|~"; #else -/* META[] is used often enough to justify turning it into a table. */ +// META[] is used often enough to justify turning it into a table. static char_u META_flags[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* % & ( ) * + . */ +// % & ( ) * + . 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, -/* 1 2 3 4 5 6 7 8 9 < = > ? */ +// 1 2 3 4 5 6 7 8 9 < = > ? 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, -/* @ A C D F H I K L M O */ +// @ A C D F H I K L M O 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 0, 1, -/* P S U V W X Z [ _ */ +// P S U V W X Z [ _ 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 1, -/* a c d f h i k l m n o */ +// a c d f h i k l m n o 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, -/* p s u v w x z { | ~ */ +// p s u v w x z { | ~ 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1 }; #endif -static int curchr; /* currently parsed character */ -/* Previous character. Note: prevchr is sometimes -1 when we are not at the - * start, eg in /[ ^I]^ the pattern was never found even if it existed, - * because ^ was taken to be magic -- webb */ +static int curchr; // currently parsed character +// Previous character. Note: prevchr is sometimes -1 when we are not at the +// start, eg in /[ ^I]^ the pattern was never found even if it existed, +// because ^ was taken to be magic -- webb static int prevchr; -static int prevprevchr; /* previous-previous character */ -static int nextchr; /* used for ungetchr() */ +static int prevprevchr; // previous-previous character +static int nextchr; // used for ungetchr() -/* arguments for reg() */ -#define REG_NOPAREN 0 /* toplevel reg() */ -#define REG_PAREN 1 /* \(\) */ -#define REG_ZPAREN 2 /* \z(\) */ -#define REG_NPAREN 3 /* \%(\) */ +// arguments for reg() +#define REG_NOPAREN 0 // toplevel reg() +#define REG_PAREN 1 // \(\) +#define REG_ZPAREN 2 // \z(\) +#define REG_NPAREN 3 // \%(\) typedef struct { @@ -477,8 +477,8 @@ get_coll_element(char_u **pp) return 0; } -static int reg_cpo_lit; /* 'cpoptions' contains 'l' flag */ -static int reg_cpo_bsl; /* 'cpoptions' contains '\' flag */ +static int reg_cpo_lit; // 'cpoptions' contains 'l' flag +static int reg_cpo_bsl; // 'cpoptions' contains '\' flag static void get_cpo_flags(void) @@ -497,7 +497,7 @@ skip_anyof(char_u *p) { int l; - if (*p == '^') /* Complement of range. */ + if (*p == '^') // Complement of range. ++p; if (*p == ']' || *p == '-') ++p; @@ -523,7 +523,7 @@ skip_anyof(char_u *p) && get_equi_class(&p) == 0 && get_coll_element(&p) == 0 && *p != NUL) - ++p; /* it is not a class name and not NUL */ + ++p; // it is not a class name and not NUL } else ++p; @@ -559,7 +559,7 @@ skip_regexp( for (; p[0] != NUL; MB_PTR_ADV(p)) { - if (p[0] == dirc) /* found end of regexp */ + if (p[0] == dirc) // found end of regexp break; if ((p[0] == '[' && mymagic >= MAGIC_ON) || (p[0] == '\\' && p[1] == '[' && mymagic <= MAGIC_OFF)) @@ -572,7 +572,7 @@ skip_regexp( { if (dirc == '?' && newp != NULL && p[1] == '?') { - /* change "\?" to "?", make a copy first. */ + // change "\?" to "?", make a copy first. if (*newp == NULL) { *newp = vim_strsave(startp); @@ -585,7 +585,7 @@ skip_regexp( ++p; } else - ++p; /* skip next character */ + ++p; // skip next character if (*p == 'v') mymagic = MAGIC_ALL; else if (*p == 'V') @@ -598,7 +598,7 @@ skip_regexp( /* * Functions for getting characters from the regexp input. */ -static int prevchr_len; /* byte length of previous char */ +static int prevchr_len; // byte length of previous char static int at_start; // True when on the first character static int prev_at_start; // True when on the second character @@ -666,7 +666,7 @@ peekchr(void) case '.': case '[': case '~': - /* magic when 'magic' is on */ + // magic when 'magic' is on if (reg_magic >= MAGIC_ON) curchr = Magic(curchr); break; @@ -683,23 +683,23 @@ peekchr(void) case '|': case '<': case '>': - case '#': /* future ext. */ - case '"': /* future ext. */ - case '\'': /* future ext. */ - case ',': /* future ext. */ - case '-': /* future ext. */ - case ':': /* future ext. */ - case ';': /* future ext. */ - case '`': /* future ext. */ - case '/': /* Can't be used in / command */ - /* magic only after "\v" */ + case '#': // future ext. + case '"': // future ext. + case '\'': // future ext. + case ',': // future ext. + case '-': // future ext. + case ':': // future ext. + case ';': // future ext. + case '`': // future ext. + case '/': // Can't be used in / command + // magic only after "\v" if (reg_magic == MAGIC_ALL) curchr = Magic(curchr); break; case '*': - /* * is not magic as the very first character, eg "?*ptr", when - * after '^', eg "/^*ptr" and when after "\(", "\|", "\&". But - * "\(\*" is not magic, thus must be magic if "after_slash" */ + // * is not magic as the very first character, eg "?*ptr", when + // after '^', eg "/^*ptr" and when after "\(", "\|", "\&". But + // "\(\*" is not magic, thus must be magic if "after_slash" if (reg_magic >= MAGIC_ON && !at_start && !(prev_at_start && prevchr == Magic('^')) @@ -710,8 +710,8 @@ peekchr(void) curchr = Magic('*'); break; case '^': - /* '^' is only magic as the very first character and if it's after - * "\(", "\|", "\&' or "\n" */ + // '^' is only magic as the very first character and if it's after + // "\(", "\|", "\&' or "\n" if (reg_magic >= MAGIC_OFF && (at_start || reg_magic == MAGIC_ALL @@ -728,14 +728,14 @@ peekchr(void) } break; case '$': - /* '$' is only magic as the very last char and if it's in front of - * either "\|", "\)", "\&", or "\n" */ + // '$' is only magic as the very last char and if it's in front of + // either "\|", "\)", "\&", or "\n" if (reg_magic >= MAGIC_OFF) { char_u *p = regparse + 1; int is_magic_all = (reg_magic == MAGIC_ALL); - /* ignore \c \C \m \M \v \V and \Z after '$' */ + // ignore \c \C \m \M \v \V and \Z after '$' while (p[0] == '\\' && (p[1] == 'c' || p[1] == 'C' || p[1] == 'm' || p[1] == 'M' || p[1] == 'v' || p[1] == 'V' || p[1] == 'Z')) @@ -761,7 +761,7 @@ peekchr(void) int c = regparse[1]; if (c == NUL) - curchr = '\\'; /* trailing '\' */ + curchr = '\\'; // trailing '\' else if ( #ifdef EBCDIC vim_strchr(META, c) @@ -779,7 +779,7 @@ peekchr(void) */ curchr = -1; prev_at_start = at_start; - at_start = FALSE; /* be able to say "/\*ptr" */ + at_start = FALSE; // be able to say "/\*ptr" ++regparse; ++after_slash; peekchr(); @@ -825,7 +825,7 @@ peekchr(void) static void skipchr(void) { - /* peekchr() eats a backslash, do the same here */ + // peekchr() eats a backslash, do the same here if (*regparse == '\\') prevchr_len = 1; else @@ -833,7 +833,7 @@ skipchr(void) if (regparse[prevchr_len] != NUL) { if (enc_utf8) - /* exclude composing chars that mb_ptr2len does include */ + // exclude composing chars that mb_ptr2len does include prevchr_len += utf_ptr2len(regparse + prevchr_len); else if (has_mbyte) prevchr_len += (*mb_ptr2len)(regparse + prevchr_len); @@ -845,7 +845,7 @@ skipchr(void) at_start = FALSE; prevprevchr = prevchr; prevchr = curchr; - curchr = nextchr; /* use previously unget char, or -1 */ + curchr = nextchr; // use previously unget char, or -1 nextchr = -1; } @@ -891,8 +891,8 @@ ungetchr(void) at_start = prev_at_start; prev_at_start = FALSE; - /* Backup regparse, so that it's at the same position as before the - * getchr(). */ + // Backup regparse, so that it's at the same position as before the + // getchr(). regparse -= prevchr_len; } @@ -946,7 +946,7 @@ getdecchrs(void) nr *= 10; nr += c - '0'; ++regparse; - curchr = -1; /* no longer valid */ + curchr = -1; // no longer valid } if (i == 0) @@ -999,13 +999,13 @@ read_limits(long *minval, long *maxval) if (*regparse == '-') { - /* Starts with '-', so reverse the range later */ + // Starts with '-', so reverse the range later regparse++; reverse = TRUE; } first_char = regparse; *minval = getdigits(®parse); - if (*regparse == ',') /* There is a comma */ + if (*regparse == ',') // There is a comma { if (vim_isdigit(*++regparse)) *maxval = getdigits(®parse); @@ -1013,11 +1013,11 @@ read_limits(long *minval, long *maxval) *maxval = MAX_LIMIT; } else if (VIM_ISDIGIT(*first_char)) - *maxval = *minval; /* It was \{n} or \{-n} */ + *maxval = *minval; // It was \{n} or \{-n} else - *maxval = MAX_LIMIT; /* It was \{} or \{-} */ + *maxval = MAX_LIMIT; // It was \{} or \{-} if (*regparse == '\\') - regparse++; /* Allow either \{...} or \{...\} */ + regparse++; // Allow either \{...} or \{...\} if (*regparse != '}') EMSG2_RET_FAIL(_("E554: Syntax error in %s{...}"), reg_magic == MAGIC_ALL); @@ -1032,7 +1032,7 @@ read_limits(long *minval, long *maxval) *minval = *maxval; *maxval = tmp; } - skipchr(); /* let's be friends with the lexer again */ + skipchr(); // let's be friends with the lexer again return OK; } @@ -1087,7 +1087,7 @@ typedef struct { buf_T *reg_buf; linenr_T reg_firstlnum; linenr_T reg_maxline; - int reg_line_lbr; /* "\n" in string is line break */ + int reg_line_lbr; // "\n" in string is line break // The current match-position is stord in these variables: linenr_T lnum; // line number, relative to first line @@ -1100,17 +1100,17 @@ typedef struct { // cleared #endif - /* Internal copy of 'ignorecase'. It is set at each call to vim_regexec(). - * Normally it gets the value of "rm_ic" or "rmm_ic", but when the pattern - * contains '\c' or '\C' the value is overruled. */ + // Internal copy of 'ignorecase'. It is set at each call to vim_regexec(). + // Normally it gets the value of "rm_ic" or "rmm_ic", but when the pattern + // contains '\c' or '\C' the value is overruled. int reg_ic; - /* Similar to "reg_ic", but only for 'combining' characters. Set with \Z - * flag in the regexp. Defaults to false, always. */ + // Similar to "reg_ic", but only for 'combining' characters. Set with \Z + // flag in the regexp. Defaults to false, always. int reg_icombine; - /* Copy of "rmm_maxcol": maximum column to search for a match. Zero when - * there is no maximum. */ + // Copy of "rmm_maxcol": maximum column to search for a match. Zero when + // there is no maximum. colnr_T reg_maxcol; // State for the NFA engine regexec. @@ -1149,24 +1149,24 @@ reg_iswordc(int c) static char_u * reg_getline(linenr_T lnum) { - /* when looking behind for a match/no-match lnum is negative. But we - * can't go before line 1 */ + // when looking behind for a match/no-match lnum is negative. But we + // can't go before line 1 if (rex.reg_firstlnum + lnum < 1) return NULL; if (lnum > rex.reg_maxline) - /* Must have matched the "\n" in the last line. */ + // Must have matched the "\n" in the last line. return (char_u *)""; return ml_get_buf(rex.reg_buf, rex.reg_firstlnum + lnum, FALSE); } #ifdef FEAT_SYN_HL -static char_u *reg_startzp[NSUBEXP]; /* Workspace to mark beginning */ -static char_u *reg_endzp[NSUBEXP]; /* and end of \z(...\) matches */ -static lpos_T reg_startzpos[NSUBEXP]; /* idem, beginning pos */ -static lpos_T reg_endzpos[NSUBEXP]; /* idem, end pos */ +static char_u *reg_startzp[NSUBEXP]; // Workspace to mark beginning +static char_u *reg_endzp[NSUBEXP]; // and end of \z(...\) matches +static lpos_T reg_startzpos[NSUBEXP]; // idem, beginning pos +static lpos_T reg_endzpos[NSUBEXP]; // idem, end pos #endif -/* TRUE if using multi-line regexp. */ +// TRUE if using multi-line regexp. #define REG_MULTI (rex.reg_match == NULL) #ifdef FEAT_SYN_HL @@ -1240,7 +1240,7 @@ reg_match_visual(void) colnr_T start2, end2; colnr_T cols; - /* Check if the buffer is the current buffer. */ + // Check if the buffer is the current buffer. if (rex.reg_buf != curbuf || VIsual.lnum == 0) return FALSE; @@ -1311,7 +1311,7 @@ prog_magic_wrong(void) prog = REG_MULTI ? rex.reg_mmatch->regprog : rex.reg_match->regprog; if (prog->engine == &nfa_regengine) - /* For NFA matcher we don't check the magic */ + // For NFA matcher we don't check the magic return FALSE; if (UCHARAT(((bt_regprog_T *)prog)->program) != REGMAGIC) @@ -1334,7 +1334,7 @@ cleanup_subexpr(void) { if (REG_MULTI) { - /* Use 0xff to set lnum to -1 */ + // Use 0xff to set lnum to -1 vim_memset(rex.reg_startpos, 0xff, sizeof(lpos_T) * NSUBEXP); vim_memset(rex.reg_endpos, 0xff, sizeof(lpos_T) * NSUBEXP); } @@ -1355,7 +1355,7 @@ cleanup_zsubexpr(void) { if (REG_MULTI) { - /* Use 0xff to set lnum to -1 */ + // Use 0xff to set lnum to -1 vim_memset(reg_startzpos, 0xff, sizeof(lpos_T) * NSUBEXP); vim_memset(reg_endzpos, 0xff, sizeof(lpos_T) * NSUBEXP); } @@ -1403,18 +1403,18 @@ match_with_backref( *bytelen = 0; for (;;) { - /* Since getting one line may invalidate the other, need to make copy. - * Slow! */ + // Since getting one line may invalidate the other, need to make copy. + // Slow! if (rex.line != reg_tofree) { len = (int)STRLEN(rex.line); if (reg_tofree == NULL || len >= (int)reg_tofreelen) { - len += 50; /* get some extra */ + len += 50; // get some extra vim_free(reg_tofree); reg_tofree = alloc(len); if (reg_tofree == NULL) - return RA_FAIL; /* out of memory!*/ + return RA_FAIL; // out of memory! reg_tofreelen = len; } STRCPY(reg_tofree, rex.line); @@ -1422,7 +1422,7 @@ match_with_backref( rex.line = reg_tofree; } - /* Get the line to compare with. */ + // Get the line to compare with. p = reg_getline(clnum); if (clnum == end_lnum) len = end_col - ccol; @@ -1430,15 +1430,15 @@ match_with_backref( len = (int)STRLEN(p + ccol); if (cstrncmp(p + ccol, rex.input, &len) != 0) - return RA_NOMATCH; /* doesn't match */ + return RA_NOMATCH; // doesn't match if (bytelen != NULL) *bytelen += len; if (clnum == end_lnum) - break; /* match and at end! */ + break; // match and at end! if (rex.lnum >= rex.reg_maxline) - return RA_NOMATCH; /* text too short */ + return RA_NOMATCH; // text too short - /* Advance to next line. */ + // Advance to next line. reg_nextline(); if (bytelen != NULL) *bytelen = 0; @@ -1448,8 +1448,8 @@ match_with_backref( return RA_FAIL; } - /* found a match! Note that rex.line may now point to a copy of the line, - * that should not matter. */ + // found a match! Note that rex.line may now point to a copy of the line, + // that should not matter. return RA_MATCH; } @@ -1474,57 +1474,57 @@ typedef struct } decomp_T; -/* 0xfb20 - 0xfb4f */ +// 0xfb20 - 0xfb4f static decomp_T decomp_table[0xfb4f-0xfb20+1] = { - {0x5e2,0,0}, /* 0xfb20 alt ayin */ - {0x5d0,0,0}, /* 0xfb21 alt alef */ - {0x5d3,0,0}, /* 0xfb22 alt dalet */ - {0x5d4,0,0}, /* 0xfb23 alt he */ - {0x5db,0,0}, /* 0xfb24 alt kaf */ - {0x5dc,0,0}, /* 0xfb25 alt lamed */ - {0x5dd,0,0}, /* 0xfb26 alt mem-sofit */ - {0x5e8,0,0}, /* 0xfb27 alt resh */ - {0x5ea,0,0}, /* 0xfb28 alt tav */ - {'+', 0, 0}, /* 0xfb29 alt plus */ - {0x5e9, 0x5c1, 0}, /* 0xfb2a shin+shin-dot */ - {0x5e9, 0x5c2, 0}, /* 0xfb2b shin+sin-dot */ - {0x5e9, 0x5c1, 0x5bc}, /* 0xfb2c shin+shin-dot+dagesh */ - {0x5e9, 0x5c2, 0x5bc}, /* 0xfb2d shin+sin-dot+dagesh */ - {0x5d0, 0x5b7, 0}, /* 0xfb2e alef+patah */ - {0x5d0, 0x5b8, 0}, /* 0xfb2f alef+qamats */ - {0x5d0, 0x5b4, 0}, /* 0xfb30 alef+hiriq */ - {0x5d1, 0x5bc, 0}, /* 0xfb31 bet+dagesh */ - {0x5d2, 0x5bc, 0}, /* 0xfb32 gimel+dagesh */ - {0x5d3, 0x5bc, 0}, /* 0xfb33 dalet+dagesh */ - {0x5d4, 0x5bc, 0}, /* 0xfb34 he+dagesh */ - {0x5d5, 0x5bc, 0}, /* 0xfb35 vav+dagesh */ - {0x5d6, 0x5bc, 0}, /* 0xfb36 zayin+dagesh */ - {0xfb37, 0, 0}, /* 0xfb37 -- UNUSED */ - {0x5d8, 0x5bc, 0}, /* 0xfb38 tet+dagesh */ - {0x5d9, 0x5bc, 0}, /* 0xfb39 yud+dagesh */ - {0x5da, 0x5bc, 0}, /* 0xfb3a kaf sofit+dagesh */ - {0x5db, 0x5bc, 0}, /* 0xfb3b kaf+dagesh */ - {0x5dc, 0x5bc, 0}, /* 0xfb3c lamed+dagesh */ - {0xfb3d, 0, 0}, /* 0xfb3d -- UNUSED */ - {0x5de, 0x5bc, 0}, /* 0xfb3e mem+dagesh */ - {0xfb3f, 0, 0}, /* 0xfb3f -- UNUSED */ - {0x5e0, 0x5bc, 0}, /* 0xfb40 nun+dagesh */ - {0x5e1, 0x5bc, 0}, /* 0xfb41 samech+dagesh */ - {0xfb42, 0, 0}, /* 0xfb42 -- UNUSED */ - {0x5e3, 0x5bc, 0}, /* 0xfb43 pe sofit+dagesh */ - {0x5e4, 0x5bc,0}, /* 0xfb44 pe+dagesh */ - {0xfb45, 0, 0}, /* 0xfb45 -- UNUSED */ - {0x5e6, 0x5bc, 0}, /* 0xfb46 tsadi+dagesh */ - {0x5e7, 0x5bc, 0}, /* 0xfb47 qof+dagesh */ - {0x5e8, 0x5bc, 0}, /* 0xfb48 resh+dagesh */ - {0x5e9, 0x5bc, 0}, /* 0xfb49 shin+dagesh */ - {0x5ea, 0x5bc, 0}, /* 0xfb4a tav+dagesh */ - {0x5d5, 0x5b9, 0}, /* 0xfb4b vav+holam */ - {0x5d1, 0x5bf, 0}, /* 0xfb4c bet+rafe */ - {0x5db, 0x5bf, 0}, /* 0xfb4d kaf+rafe */ - {0x5e4, 0x5bf, 0}, /* 0xfb4e pe+rafe */ - {0x5d0, 0x5dc, 0} /* 0xfb4f alef-lamed */ + {0x5e2,0,0}, // 0xfb20 alt ayin + {0x5d0,0,0}, // 0xfb21 alt alef + {0x5d3,0,0}, // 0xfb22 alt dalet + {0x5d4,0,0}, // 0xfb23 alt he + {0x5db,0,0}, // 0xfb24 alt kaf + {0x5dc,0,0}, // 0xfb25 alt lamed + {0x5dd,0,0}, // 0xfb26 alt mem-sofit + {0x5e8,0,0}, // 0xfb27 alt resh + {0x5ea,0,0}, // 0xfb28 alt tav + {'+', 0, 0}, // 0xfb29 alt plus + {0x5e9, 0x5c1, 0}, // 0xfb2a shin+shin-dot + {0x5e9, 0x5c2, 0}, // 0xfb2b shin+sin-dot + {0x5e9, 0x5c1, 0x5bc}, // 0xfb2c shin+shin-dot+dagesh + {0x5e9, 0x5c2, 0x5bc}, // 0xfb2d shin+sin-dot+dagesh + {0x5d0, 0x5b7, 0}, // 0xfb2e alef+patah + {0x5d0, 0x5b8, 0}, // 0xfb2f alef+qamats + {0x5d0, 0x5b4, 0}, // 0xfb30 alef+hiriq + {0x5d1, 0x5bc, 0}, // 0xfb31 bet+dagesh + {0x5d2, 0x5bc, 0}, // 0xfb32 gimel+dagesh + {0x5d3, 0x5bc, 0}, // 0xfb33 dalet+dagesh + {0x5d4, 0x5bc, 0}, // 0xfb34 he+dagesh + {0x5d5, 0x5bc, 0}, // 0xfb35 vav+dagesh + {0x5d6, 0x5bc, 0}, // 0xfb36 zayin+dagesh + {0xfb37, 0, 0}, // 0xfb37 -- UNUSED + {0x5d8, 0x5bc, 0}, // 0xfb38 tet+dagesh + {0x5d9, 0x5bc, 0}, // 0xfb39 yud+dagesh + {0x5da, 0x5bc, 0}, // 0xfb3a kaf sofit+dagesh + {0x5db, 0x5bc, 0}, // 0xfb3b kaf+dagesh + {0x5dc, 0x5bc, 0}, // 0xfb3c lamed+dagesh + {0xfb3d, 0, 0}, // 0xfb3d -- UNUSED + {0x5de, 0x5bc, 0}, // 0xfb3e mem+dagesh + {0xfb3f, 0, 0}, // 0xfb3f -- UNUSED + {0x5e0, 0x5bc, 0}, // 0xfb40 nun+dagesh + {0x5e1, 0x5bc, 0}, // 0xfb41 samech+dagesh + {0xfb42, 0, 0}, // 0xfb42 -- UNUSED + {0x5e3, 0x5bc, 0}, // 0xfb43 pe sofit+dagesh + {0x5e4, 0x5bc,0}, // 0xfb44 pe+dagesh + {0xfb45, 0, 0}, // 0xfb45 -- UNUSED + {0x5e6, 0x5bc, 0}, // 0xfb46 tsadi+dagesh + {0x5e7, 0x5bc, 0}, // 0xfb47 qof+dagesh + {0x5e8, 0x5bc, 0}, // 0xfb48 resh+dagesh + {0x5e9, 0x5bc, 0}, // 0xfb49 shin+dagesh + {0x5ea, 0x5bc, 0}, // 0xfb4a tav+dagesh + {0x5d5, 0x5b9, 0}, // 0xfb4b vav+holam + {0x5d1, 0x5bf, 0}, // 0xfb4c bet+rafe + {0x5db, 0x5bf, 0}, // 0xfb4d kaf+rafe + {0x5e4, 0x5bf, 0}, // 0xfb4e pe+rafe + {0x5d0, 0x5dc, 0} // 0xfb4f alef-lamed }; static void @@ -1561,15 +1561,15 @@ cstrncmp(char_u *s1, char_u *s2, int *n) else result = MB_STRNICMP(s1, s2, *n); - /* if it failed and it's utf8 and we want to combineignore: */ + // if it failed and it's utf8 and we want to combineignore: if (result != 0 && enc_utf8 && rex.reg_icombine) { char_u *str1, *str2; int c1, c2, c11, c12; int junk; - /* we have to handle the strcmp ourselves, since it is necessary to - * deal with the composing characters by ignoring them: */ + // we have to handle the strcmp ourselves, since it is necessary to + // deal with the composing characters by ignoring them: str1 = s1; str2 = s2; c1 = c2 = 0; @@ -1612,9 +1612,9 @@ cstrchr(char_u *s, int c) if (!rex.reg_ic || (!enc_utf8 && mb_char2len(c) > 1)) return vim_strchr(s, c); - /* tolower() and toupper() can be slow, comparing twice should be a lot - * faster (esp. when using MS Visual C++!). - * For UTF-8 need to use folded case. */ + // tolower() and toupper() can be slow, comparing twice should be a lot + // faster (esp. when using MS Visual C++!). + // For UTF-8 need to use folded case. if (enc_utf8 && c > 0x80) cc = utf_fold(c); else @@ -1639,7 +1639,7 @@ cstrchr(char_u *s, int c) } } else - /* Faster version for when there are no multi-byte characters. */ + // Faster version for when there are no multi-byte characters. for (p = s; *p != NUL; ++p) if (*p == c || *p == cc) return p; @@ -1647,9 +1647,9 @@ cstrchr(char_u *s, int c) return NULL; } -/*************************************************************** - * regsub stuff * - ***************************************************************/ +//////////////////////////////////////////////////////////////// +// regsub stuff // +//////////////////////////////////////////////////////////////// /* * We should define ftpr as a pointer to a function returning a pointer to @@ -1720,36 +1720,36 @@ regtilde(char_u *source, int magic) { if (reg_prev_sub != NULL) { - /* length = len(newsub) - 1 + len(prev_sub) + 1 */ + // length = len(newsub) - 1 + len(prev_sub) + 1 prevlen = (int)STRLEN(reg_prev_sub); tmpsub = alloc(STRLEN(newsub) + prevlen); if (tmpsub != NULL) { - /* copy prefix */ - len = (int)(p - newsub); /* not including ~ */ + // copy prefix + len = (int)(p - newsub); // not including ~ mch_memmove(tmpsub, newsub, (size_t)len); - /* interpret tilde */ + // interpret tilde mch_memmove(tmpsub + len, reg_prev_sub, (size_t)prevlen); - /* copy postfix */ + // copy postfix if (!magic) - ++p; /* back off \ */ + ++p; // back off backslash STRCPY(tmpsub + len + prevlen, p + 1); - if (newsub != source) /* already allocated newsub */ + if (newsub != source) // already allocated newsub vim_free(newsub); newsub = tmpsub; p = newsub + len + prevlen; } } else if (magic) - STRMOVE(p, p + 1); /* remove '~' */ + STRMOVE(p, p + 1); // remove '~' else - STRMOVE(p, p + 2); /* remove '\~' */ + STRMOVE(p, p + 2); // remove '\~' --p; } else { - if (*p == '\\' && p[1]) /* skip escaped characters */ + if (*p == '\\' && p[1]) // skip escaped characters ++p; if (has_mbyte) p += (*mb_ptr2len)(p) - 1; @@ -1757,19 +1757,19 @@ regtilde(char_u *source, int magic) } vim_free(reg_prev_sub); - if (newsub != source) /* newsub was allocated, just keep it */ + if (newsub != source) // newsub was allocated, just keep it reg_prev_sub = newsub; - else /* no ~ found, need to save newsub */ + else // no ~ found, need to save newsub reg_prev_sub = vim_strsave(newsub); return newsub; } #ifdef FEAT_EVAL -static int can_f_submatch = FALSE; /* TRUE when submatch() can be used */ +static int can_f_submatch = FALSE; // TRUE when submatch() can be used -/* These pointers are used for reg_submatch(). Needed for when the - * substitution string is an expression that contains a call to substitute() - * and submatch(). */ +// These pointers are used for reg_submatch(). Needed for when the +// substitution string is an expression that contains a call to substitute() +// and submatch(). typedef struct { regmatch_T *sm_match; regmmatch_T *sm_mmatch; @@ -1778,7 +1778,7 @@ typedef struct { int sm_line_lbr; } regsubmatch_T; -static regsubmatch_T rsm; /* can only be used when can_f_submatch is TRUE */ +static regsubmatch_T rsm; // can only be used when can_f_submatch is TRUE #endif #ifdef FEAT_EVAL @@ -1861,7 +1861,7 @@ vim_regsub( int rex_in_use_save = rex_in_use; if (rex_in_use) - /* Being called recursively, save the state. */ + // Being called recursively, save the state. rex_save = rex; rex_in_use = TRUE; @@ -1894,13 +1894,13 @@ vim_regsub_multi( int rex_in_use_save = rex_in_use; if (rex_in_use) - /* Being called recursively, save the state. */ + // Being called recursively, save the state. rex_save = rex; rex_in_use = TRUE; rex.reg_match = NULL; rex.reg_mmatch = rmp; - rex.reg_buf = curbuf; /* always works on the current buffer! */ + rex.reg_buf = curbuf; // always works on the current buffer! rex.reg_firstlnum = lnum; rex.reg_maxline = curbuf->b_ml.ml_line_count - lnum; rex.reg_line_lbr = FALSE; @@ -1930,13 +1930,13 @@ vim_regsub_both( int no = -1; fptr_T func_all = (fptr_T)NULL; fptr_T func_one = (fptr_T)NULL; - linenr_T clnum = 0; /* init for GCC */ - int len = 0; /* init for GCC */ + linenr_T clnum = 0; // init for GCC + int len = 0; // init for GCC #ifdef FEAT_EVAL static char_u *eval_result = NULL; #endif - /* Be paranoid... */ + // Be paranoid... if ((source == NULL && expr == NULL) || dest == NULL) { emsg(_(e_null)); @@ -1953,10 +1953,10 @@ vim_regsub_both( if (expr != NULL || (source[0] == '\\' && source[1] == '=')) { #ifdef FEAT_EVAL - /* To make sure that the length doesn't change between checking the - * length and copying the string, and to speed up things, the - * resulting string is saved from the call with "copy" == FALSE to the - * call with "copy" == TRUE. */ + // To make sure that the length doesn't change between checking the + // length and copying the string, and to speed up things, the + // resulting string is saved from the call with "copy" == FALSE to the + // call with "copy" == TRUE. if (copy) { if (eval_result != NULL) @@ -1973,9 +1973,9 @@ vim_regsub_both( vim_free(eval_result); - /* The expression may contain substitute(), which calls us - * recursively. Make sure submatch() gets the text from the first - * level. */ + // The expression may contain substitute(), which calls us + // recursively. Make sure submatch() gets the text from the first + // level. if (can_f_submatch) rsm_save = rsm; can_f_submatch = TRUE; @@ -2038,9 +2038,9 @@ vim_regsub_both( 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(). - * Skip over a backslashed character. */ + // Change NL to CR, so that it becomes a line break, + // unless called from vim_regexec_nl(). + // Skip over a backslashed character. if (*s == NL && !rsm.sm_line_lbr) *s = CAR; else if (*s == '\\' && s[1] != NUL) @@ -2059,7 +2059,7 @@ vim_regsub_both( } if (had_backslash && backslash) { - /* Backslashes will be consumed, need to double them. */ + // Backslashes will be consumed, need to double them. s = vim_strsave_escaped(eval_result, (char_u *)"\\"); if (s != NULL) { @@ -2111,11 +2111,11 @@ vim_regsub_both( } } } - if (no < 0) /* Ordinary character. */ + if (no < 0) // Ordinary character. { if (c == K_SPECIAL && src[0] != NUL && src[1] != NUL) { - /* Copy a special key as-is. */ + // Copy a special key as-is. if (copy) { *dst++ = c; @@ -2132,18 +2132,18 @@ vim_regsub_both( if (c == '\\' && *src != NUL) { - /* Check for abbreviations -- webb */ + // Check for abbreviations -- webb switch (*src) { case 'r': c = CAR; ++src; break; case 'n': c = NL; ++src; break; case 't': c = TAB; ++src; break; - /* Oh no! \e already has meaning in subst pat :-( */ - /* case 'e': c = ESC; ++src; break; */ + // Oh no! \e already has meaning in subst pat :-( + // case 'e': c = ESC; ++src; break; case 'b': c = Ctrl_H; ++src; break; - /* If "backslash" is TRUE the backslash will be removed - * later. Used to insert a literal CR. */ + // If "backslash" is TRUE the backslash will be removed + // later. Used to insert a literal CR. default: if (backslash) { if (copy) @@ -2156,14 +2156,14 @@ vim_regsub_both( else if (has_mbyte) c = mb_ptr2char(src - 1); - /* Write to buffer, if copy is set. */ + // Write to buffer, if copy is set. if (func_one != (fptr_T)NULL) - /* Turbo C complains without the typecast */ + // Turbo C complains without the typecast func_one = (fptr_T)(func_one(&cc, c)); else if (func_all != (fptr_T)NULL) - /* Turbo C complains without the typecast */ + // Turbo C complains without the typecast func_all = (fptr_T)(func_all(&cc, c)); - else /* just copy */ + else // just copy cc = c; if (has_mbyte) @@ -2177,8 +2177,8 @@ vim_regsub_both( { int clen = utf_ptr2len(src - 1); - /* If the character length is shorter than "totlen", there - * are composing characters; copy them as-is. */ + // If the character length is shorter than "totlen", there + // are composing characters; copy them as-is. if (clen < totlen) { if (copy) @@ -2240,7 +2240,7 @@ vim_regsub_both( else break; } - else if (*s == NUL) /* we hit NUL. */ + else if (*s == NUL) // we hit NUL. { if (copy) emsg(_(e_re_damg)); @@ -2271,20 +2271,20 @@ vim_regsub_both( c = *s; if (func_one != (fptr_T)NULL) - /* Turbo C complains without the typecast */ + // Turbo C complains without the typecast func_one = (fptr_T)(func_one(&cc, c)); else if (func_all != (fptr_T)NULL) - /* Turbo C complains without the typecast */ + // Turbo C complains without the typecast func_all = (fptr_T)(func_all(&cc, c)); - else /* just copy */ + else // just copy cc = c; if (has_mbyte) { int l; - /* Copy composing characters separately, one - * at a time. */ + // Copy composing characters separately, one + // at a time. if (enc_utf8) l = utf_ptr2len(s) - 1; else @@ -2374,7 +2374,7 @@ reg_submatch(int no) s += rsm.sm_mmatch->startpos[no].col; if (rsm.sm_mmatch->endpos[no].lnum == lnum) { - /* Within one line: take form start to end col. */ + // Within one line: take form start to end col. len = rsm.sm_mmatch->endpos[no].col - rsm.sm_mmatch->startpos[no].col; if (round == 2) @@ -2383,8 +2383,8 @@ reg_submatch(int no) } else { - /* Multiple lines: take start line from start col, middle - * lines completely and end line up to end col. */ + // Multiple lines: take start line from start col, middle + // lines completely and end line up to end col. len = (int)STRLEN(s); if (round == 2) { @@ -2533,8 +2533,8 @@ static regengine_T nfa_regengine = (char_u *)"" }; -/* Which regexp engine to use? Needed for vim_regcomp(). - * Must match with 'regexpengine'. */ +// Which regexp engine to use? Needed for vim_regcomp(). +// Must match with 'regexpengine'. static int regexp_engine = 0; #ifdef DEBUG @@ -2560,7 +2560,7 @@ vim_regcomp(char_u *expr_arg, int re_fla regexp_engine = p_re; - /* Check for prefix "\%#=", that sets the regexp engine */ + // Check for prefix "\%#=", that sets the regexp engine if (STRNCMP(expr, "\\%#=", 4) == 0) { int newengine = expr[4] - '0'; @@ -2600,11 +2600,11 @@ vim_regcomp(char_u *expr_arg, int re_fla else prog = bt_regengine.regcomp(expr, re_flags); - /* Check for error compiling regexp with initial engine. */ + // Check for error compiling regexp with initial engine. if (prog == NULL) { #ifdef BT_REGEXP_DEBUG_LOG - if (regexp_engine != BACKTRACKING_ENGINE) /* debugging log for NFA */ + if (regexp_engine != BACKTRACKING_ENGINE) // debugging log for NFA { FILE *f; f = fopen(BT_REGEXP_DEBUG_LOG_NAME, "a"); @@ -2634,8 +2634,8 @@ vim_regcomp(char_u *expr_arg, int re_fla if (prog != NULL) { - /* Store the info needed to call regcomp() again when the engine turns - * out to be very slow when executing it. */ + // Store the info needed to call regcomp() again when the engine turns + // out to be very slow when executing it. prog->re_engine = regexp_engine; prog->re_flags = re_flags; } @@ -2702,8 +2702,8 @@ regprog_in_use(regprog_T *prog) static int vim_regexec_string( regmatch_T *rmp, - char_u *line, /* string to match against */ - colnr_T col, /* column to start looking for match */ + char_u *line, // string to match against + colnr_T col, // column to start looking for match int nl) { int result; @@ -2731,7 +2731,7 @@ vim_regexec_string( result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl); rmp->regprog->re_in_use = FALSE; - /* NFA engine aborted because it's very slow. */ + // NFA engine aborted because it's very slow. if (rmp->regprog->re_engine == AUTOMATIC_ENGINE && result == NFA_TOO_EXPENSIVE) { @@ -2820,12 +2820,12 @@ vim_regexec_nl(regmatch_T *rmp, char_u * long vim_regexec_multi( regmmatch_T *rmp, - win_T *win, /* window in which to search or NULL */ - buf_T *buf, /* buffer in which to search */ - linenr_T lnum, /* nr of line to start looking for match */ - colnr_T col, /* column to start looking for match */ - proftime_T *tm, /* timeout limit or NULL */ - int *timed_out) /* flag is set when timeout limit reached */ + win_T *win, // window in which to search or NULL + buf_T *buf, // buffer in which to search + linenr_T lnum, // nr of line to start looking for match + colnr_T col, // column to start looking for match + proftime_T *tm, // timeout limit or NULL + int *timed_out) // flag is set when timeout limit reached { int result; regexec_T rex_save; @@ -2840,7 +2840,7 @@ vim_regexec_multi( rmp->regprog->re_in_use = TRUE; if (rex_in_use) - /* Being called recursively, save the state. */ + // Being called recursively, save the state. rex_save = rex; rex_in_use = TRUE; @@ -2848,7 +2848,7 @@ vim_regexec_multi( rmp, win, buf, lnum, col, tm, timed_out); rmp->regprog->re_in_use = FALSE; - /* NFA engine aborted because it's very slow. */ + // NFA engine aborted because it's very slow. if (rmp->regprog->re_engine == AUTOMATIC_ENGINE && result == NFA_TOO_EXPENSIVE) { diff --git a/src/regexp_nfa.c b/src/regexp_nfa.c --- a/src/regexp_nfa.c +++ b/src/regexp_nfa.c @@ -29,43 +29,43 @@ # define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log" #endif -/* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */ +// Added to NFA_ANY - NFA_NUPPER_IC to include a NL. #define NFA_ADD_NL 31 enum { NFA_SPLIT = -1024, NFA_MATCH, - NFA_EMPTY, /* matches 0-length */ - - NFA_START_COLL, /* [abc] start */ - NFA_END_COLL, /* [abc] end */ - NFA_START_NEG_COLL, /* [^abc] start */ - NFA_END_NEG_COLL, /* [^abc] end (postfix only) */ - NFA_RANGE, /* range of the two previous items - * (postfix only) */ - NFA_RANGE_MIN, /* low end of a range */ - NFA_RANGE_MAX, /* high end of a range */ - - NFA_CONCAT, /* concatenate two previous items (postfix - * only) */ - NFA_OR, /* \| (postfix only) */ - NFA_STAR, /* greedy * (postfix only) */ - NFA_STAR_NONGREEDY, /* non-greedy * (postfix only) */ - NFA_QUEST, /* greedy \? (postfix only) */ - NFA_QUEST_NONGREEDY, /* non-greedy \? (postfix only) */ - - NFA_BOL, /* ^ Begin line */ - NFA_EOL, /* $ End line */ - NFA_BOW, /* \< Begin word */ - NFA_EOW, /* \> End word */ - NFA_BOF, /* \%^ Begin file */ - NFA_EOF, /* \%$ End file */ + NFA_EMPTY, // matches 0-length + + NFA_START_COLL, // [abc] start + NFA_END_COLL, // [abc] end + NFA_START_NEG_COLL, // [^abc] start + NFA_END_NEG_COLL, // [^abc] end (postfix only) + NFA_RANGE, // range of the two previous items + // (postfix only) + NFA_RANGE_MIN, // low end of a range + NFA_RANGE_MAX, // high end of a range + + NFA_CONCAT, // concatenate two previous items (postfix + // only) + NFA_OR, // \| (postfix only) + NFA_STAR, // greedy * (postfix only) + NFA_STAR_NONGREEDY, // non-greedy * (postfix only) + NFA_QUEST, // greedy \? (postfix only) + NFA_QUEST_NONGREEDY, // non-greedy \? (postfix only) + + NFA_BOL, // ^ Begin line + NFA_EOL, // $ End line + NFA_BOW, // \< Begin word + NFA_EOW, // \> End word + NFA_BOF, // \%^ Begin file + NFA_EOF, // \%$ End file NFA_NEWL, - NFA_ZSTART, /* Used for \zs */ - NFA_ZEND, /* Used for \ze */ - NFA_NOPEN, /* Start of subexpression marked with \%( */ - NFA_NCLOSE, /* End of subexpr. marked with \%( ... \) */ + NFA_ZSTART, // Used for \zs + NFA_ZEND, // Used for \ze + NFA_NOPEN, // Start of subexpression marked with \%( + NFA_NCLOSE, // End of subexpr. marked with \%( ... \) NFA_START_INVISIBLE, NFA_START_INVISIBLE_FIRST, NFA_START_INVISIBLE_NEG, @@ -78,40 +78,40 @@ enum NFA_END_INVISIBLE, NFA_END_INVISIBLE_NEG, NFA_END_PATTERN, - NFA_COMPOSING, /* Next nodes in NFA are part of the - composing multibyte char */ - NFA_END_COMPOSING, /* End of a composing char in the NFA */ - NFA_ANY_COMPOSING, /* \%C: Any composing characters. */ - NFA_OPT_CHARS, /* \%[abc] */ - - /* The following are used only in the postfix form, not in the NFA */ - NFA_PREV_ATOM_NO_WIDTH, /* Used for \@= */ - NFA_PREV_ATOM_NO_WIDTH_NEG, /* Used for \@! */ - NFA_PREV_ATOM_JUST_BEFORE, /* Used for \@<= */ - NFA_PREV_ATOM_JUST_BEFORE_NEG, /* Used for \@ */ - - NFA_BACKREF1, /* \1 */ - NFA_BACKREF2, /* \2 */ - NFA_BACKREF3, /* \3 */ - NFA_BACKREF4, /* \4 */ - NFA_BACKREF5, /* \5 */ - NFA_BACKREF6, /* \6 */ - NFA_BACKREF7, /* \7 */ - NFA_BACKREF8, /* \8 */ - NFA_BACKREF9, /* \9 */ + NFA_COMPOSING, // Next nodes in NFA are part of the + // composing multibyte char + NFA_END_COMPOSING, // End of a composing char in the NFA + NFA_ANY_COMPOSING, // \%C: Any composing characters. + NFA_OPT_CHARS, // \%[abc] + + // The following are used only in the postfix form, not in the NFA + NFA_PREV_ATOM_NO_WIDTH, // Used for \@= + NFA_PREV_ATOM_NO_WIDTH_NEG, // Used for \@! + NFA_PREV_ATOM_JUST_BEFORE, // Used for \@<= + NFA_PREV_ATOM_JUST_BEFORE_NEG, // Used for \@ + + NFA_BACKREF1, // \1 + NFA_BACKREF2, // \2 + NFA_BACKREF3, // \3 + NFA_BACKREF4, // \4 + NFA_BACKREF5, // \5 + NFA_BACKREF6, // \6 + NFA_BACKREF7, // \7 + NFA_BACKREF8, // \8 + NFA_BACKREF9, // \9 #ifdef FEAT_SYN_HL - NFA_ZREF1, /* \z1 */ - NFA_ZREF2, /* \z2 */ - NFA_ZREF3, /* \z3 */ - NFA_ZREF4, /* \z4 */ - NFA_ZREF5, /* \z5 */ - NFA_ZREF6, /* \z6 */ - NFA_ZREF7, /* \z7 */ - NFA_ZREF8, /* \z8 */ - NFA_ZREF9, /* \z9 */ + NFA_ZREF1, // \z1 + NFA_ZREF2, // \z2 + NFA_ZREF3, // \z3 + NFA_ZREF4, // \z4 + NFA_ZREF5, // \z5 + NFA_ZREF6, // \z6 + NFA_ZREF7, // \z7 + NFA_ZREF8, // \z8 + NFA_ZREF9, // \z9 #endif - NFA_SKIP, /* Skip characters */ + NFA_SKIP, // Skip characters NFA_MOPEN, NFA_MOPEN1, @@ -159,58 +159,58 @@ enum NFA_ZCLOSE9, #endif - /* NFA_FIRST_NL */ - NFA_ANY, /* Match any one character. */ - NFA_IDENT, /* Match identifier char */ - NFA_SIDENT, /* Match identifier char but no digit */ - NFA_KWORD, /* Match keyword char */ - NFA_SKWORD, /* Match word char but no digit */ - NFA_FNAME, /* Match file name char */ - NFA_SFNAME, /* Match file name char but no digit */ - NFA_PRINT, /* Match printable char */ - NFA_SPRINT, /* Match printable char but no digit */ - NFA_WHITE, /* Match whitespace char */ - NFA_NWHITE, /* Match non-whitespace char */ - NFA_DIGIT, /* Match digit char */ - NFA_NDIGIT, /* Match non-digit char */ - NFA_HEX, /* Match hex char */ - NFA_NHEX, /* Match non-hex char */ - NFA_OCTAL, /* Match octal char */ - NFA_NOCTAL, /* Match non-octal char */ - NFA_WORD, /* Match word char */ - NFA_NWORD, /* Match non-word char */ - NFA_HEAD, /* Match head char */ - NFA_NHEAD, /* Match non-head char */ - NFA_ALPHA, /* Match alpha char */ - NFA_NALPHA, /* Match non-alpha char */ - NFA_LOWER, /* Match lowercase char */ - NFA_NLOWER, /* Match non-lowercase char */ - NFA_UPPER, /* Match uppercase char */ - NFA_NUPPER, /* Match non-uppercase char */ - NFA_LOWER_IC, /* Match [a-z] */ - NFA_NLOWER_IC, /* Match [^a-z] */ - NFA_UPPER_IC, /* Match [A-Z] */ - NFA_NUPPER_IC, /* Match [^A-Z] */ + // NFA_FIRST_NL + NFA_ANY, // Match any one character. + NFA_IDENT, // Match identifier char + NFA_SIDENT, // Match identifier char but no digit + NFA_KWORD, // Match keyword char + NFA_SKWORD, // Match word char but no digit + NFA_FNAME, // Match file name char + NFA_SFNAME, // Match file name char but no digit + NFA_PRINT, // Match printable char + NFA_SPRINT, // Match printable char but no digit + NFA_WHITE, // Match whitespace char + NFA_NWHITE, // Match non-whitespace char + NFA_DIGIT, // Match digit char + NFA_NDIGIT, // Match non-digit char + NFA_HEX, // Match hex char + NFA_NHEX, // Match non-hex char + NFA_OCTAL, // Match octal char + NFA_NOCTAL, // Match non-octal char + NFA_WORD, // Match word char + NFA_NWORD, // Match non-word char + NFA_HEAD, // Match head char + NFA_NHEAD, // Match non-head char + NFA_ALPHA, // Match alpha char + NFA_NALPHA, // Match non-alpha char + NFA_LOWER, // Match lowercase char + NFA_NLOWER, // Match non-lowercase char + NFA_UPPER, // Match uppercase char + NFA_NUPPER, // Match non-uppercase char + NFA_LOWER_IC, // Match [a-z] + NFA_NLOWER_IC, // Match [^a-z] + NFA_UPPER_IC, // Match [A-Z] + NFA_NUPPER_IC, // Match [^A-Z] NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL, NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL, - NFA_CURSOR, /* Match cursor pos */ - NFA_LNUM, /* Match line number */ - NFA_LNUM_GT, /* Match > line number */ - NFA_LNUM_LT, /* Match < line number */ - NFA_COL, /* Match cursor column */ - NFA_COL_GT, /* Match > cursor column */ - NFA_COL_LT, /* Match < cursor column */ - NFA_VCOL, /* Match cursor virtual column */ - NFA_VCOL_GT, /* Match > cursor virtual column */ - NFA_VCOL_LT, /* Match < cursor virtual column */ - NFA_MARK, /* Match mark */ - NFA_MARK_GT, /* Match > mark */ - NFA_MARK_LT, /* Match < mark */ - NFA_VISUAL, /* Match Visual area */ - - /* Character classes [:alnum:] etc */ + NFA_CURSOR, // Match cursor pos + NFA_LNUM, // Match line number + NFA_LNUM_GT, // Match > line number + NFA_LNUM_LT, // Match < line number + NFA_COL, // Match cursor column + NFA_COL_GT, // Match > cursor column + NFA_COL_LT, // Match < cursor column + NFA_VCOL, // Match cursor virtual column + NFA_VCOL_GT, // Match > cursor virtual column + NFA_VCOL_LT, // Match < cursor virtual column + NFA_MARK, // Match mark + NFA_MARK_GT, // Match > mark + NFA_MARK_LT, // Match < mark + NFA_VISUAL, // Match Visual area + + // Character classes [:alnum:] etc NFA_CLASS_ALNUM, NFA_CLASS_ALPHA, NFA_CLASS_BLANK, @@ -232,7 +232,7 @@ enum NFA_CLASS_FNAME }; -/* Keep in sync with classchars. */ +// Keep in sync with classchars. static int nfa_classcodes[] = { NFA_ANY, NFA_IDENT, NFA_SIDENT, NFA_KWORD,NFA_SKWORD, NFA_FNAME, NFA_SFNAME, NFA_PRINT, NFA_SPRINT, @@ -255,10 +255,10 @@ static int *post_ptr; static int nstate; // Number of states in the NFA. static int istate; // Index in the state vector, used in alloc_state() -/* If not NULL match must end at this position */ +// If not NULL match must end at this position static save_se_T *nfa_endp = NULL; -/* 0 for first call to nfa_regmatch(), 1 for recursive call. */ +// 0 for first call to nfa_regmatch(), 1 for recursive call. static int nfa_ll_index = 0; static int realloc_post_list(void); @@ -269,7 +269,7 @@ static void nfa_print_state2(FILE *debug static int match_follows(nfa_state_T *startstate, int depth); static int failure_chance(nfa_state_T *state, int depth); -/* helper functions used when doing re2post() ... regatom() parsing */ +// helper functions used when doing re2post() ... regatom() parsing #define EMIT(c) do { \ if (post_ptr >= post_end && realloc_post_list() == FAIL) \ return FAIL; \ @@ -283,21 +283,21 @@ static int failure_chance(nfa_state_T *s static int nfa_regcomp_start( char_u *expr, - int re_flags) /* see vim_regcomp() */ + int re_flags) // see vim_regcomp() { size_t postfix_size; int nstate_max; nstate = 0; istate = 0; - /* A reasonable estimation for maximum size */ + // A reasonable estimation for maximum size nstate_max = (int)(STRLEN(expr) + 1) * 25; - /* Some items blow up in size, such as [A-z]. Add more space for that. - * When it is still not enough realloc_post_list() will be used. */ + // Some items blow up in size, such as [A-z]. Add more space for that. + // When it is still not enough realloc_post_list() will be used. nstate_max += 1000; - /* Size for postfix representation of expr. */ + // Size for postfix representation of expr. postfix_size = sizeof(int) * nstate_max; post_start = alloc(postfix_size); @@ -308,7 +308,7 @@ nfa_regcomp_start( rex.nfa_has_zend = FALSE; rex.nfa_has_backref = FALSE; - /* shared with BT engine */ + // shared with BT engine regcomp_start(expr, re_flags); return OK; @@ -332,7 +332,7 @@ nfa_get_reganch(nfa_state_T *start, int { case NFA_BOL: case NFA_BOF: - return 1; /* yes! */ + return 1; // yes! case NFA_ZSTART: case NFA_ZEND: @@ -370,7 +370,7 @@ nfa_get_reganch(nfa_state_T *start, int && nfa_get_reganch(p->out1, depth + 1); default: - return 0; /* noooo */ + return 0; // noooo } } return 0; @@ -392,7 +392,7 @@ nfa_get_regstart(nfa_state_T *start, int { switch (p->c) { - /* all kinds of zero-width matches */ + // all kinds of zero-width matches case NFA_BOL: case NFA_BOF: case NFA_BOW: @@ -446,13 +446,13 @@ nfa_get_regstart(nfa_state_T *start, int int c2 = nfa_get_regstart(p->out1, depth + 1); if (c1 == c2) - return c1; /* yes! */ + return c1; // yes! return 0; } default: if (p->c > 0) - return p->c; /* yes! */ + return p->c; // yes! return 0; } } @@ -473,7 +473,7 @@ nfa_get_match_text(nfa_state_T *start) char_u *s; if (p->c != NFA_MOPEN) - return NULL; /* just in case */ + return NULL; // just in case p = p->out; while (p->c > 0) { @@ -486,7 +486,7 @@ nfa_get_match_text(nfa_state_T *start) ret = alloc(len); if (ret != NULL) { - p = start->out->out; /* skip first char, it goes into regstart */ + p = start->out->out; // skip first char, it goes into regstart s = ret; while (p->c > 0) { @@ -633,7 +633,7 @@ nfa_recognize_char_class(char_u *start, } else return FAIL; - } /* while (p < end) */ + } // while (p < end) if (p != end) return FAIL; @@ -1161,7 +1161,7 @@ nfa_emit_equi_class(int c) EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95) return OK; - /* default: character itself */ + // default: character itself } } @@ -1241,12 +1241,12 @@ nfa_regatom(void) if (c == NUL) EMSG_RET_FAIL(_(e_nul_found)); - if (c == '^') /* "\_^" is start-of-line */ + if (c == '^') // "\_^" is start-of-line { EMIT(NFA_BOL); break; } - if (c == '$') /* "\_$" is end-of-line */ + if (c == '$') // "\_$" is end-of-line { EMIT(NFA_EOL); #if defined(FEAT_SYN_HL) || defined(PROTO) @@ -1257,12 +1257,12 @@ nfa_regatom(void) extra = NFA_ADD_NL; - /* "\_[" is collection plus newline */ + // "\_[" is collection plus newline if (c == '[') goto collection; - /* "\_x" is character class plus newline */ - /* FALLTHROUGH */ + // "\_x" is character class plus newline + // FALLTHROUGH /* * Character classes. @@ -1307,8 +1307,8 @@ nfa_regatom(void) return FAIL; } - /* When '.' is followed by a composing char ignore the dot, so that - * the composing char is matched here. */ + // When '.' is followed by a composing char ignore the dot, so that + // the composing char is matched here. if (enc_utf8 && c == Magic('.') && utf_iscomposing(peekchr())) { old_regparse = regparse; @@ -1326,11 +1326,11 @@ nfa_regatom(void) case Magic('n'): if (reg_string) - /* In a string "\n" matches a newline character. */ + // In a string "\n" matches a newline character. EMIT(NL); else { - /* In buffer text "\n" matches the end of a line. */ + // In buffer text "\n" matches the end of a line. EMIT(NFA_NEWL); regflags |= RF_HASNL; } @@ -1338,7 +1338,7 @@ nfa_regatom(void) case Magic('('): if (nfa_reg(REG_PAREN) == FAIL) - return FAIL; /* cascaded error */ + return FAIL; // cascaded error break; case Magic('|'): @@ -1353,7 +1353,7 @@ nfa_regatom(void) case Magic('@'): case Magic('*'): case Magic('{'): - /* these should follow an atom, not form an atom */ + // these should follow an atom, not form an atom semsg(_(e_misplaced), no_Magic(c)); return FAIL; @@ -1361,8 +1361,8 @@ nfa_regatom(void) { char_u *lp; - /* Previous substitute pattern. - * Generated as "\%(pattern\)". */ + // Previous substitute pattern. + // Generated as "\%(pattern\)". if (reg_prev_sub == NULL) { emsg(_(e_nopresub)); @@ -1422,20 +1422,20 @@ nfa_regatom(void) case '7': case '8': case '9': - /* \z1...\z9 */ + // \z1...\z9 if ((reg_do_extmatch & REX_USE) == 0) EMSG_RET_FAIL(_(e_z1_not_allowed)); EMIT(NFA_ZREF1 + (no_Magic(c) - '1')); - /* No need to set rex.nfa_has_backref, the sub-matches don't - * change when \z1 .. \z9 matches or not. */ + // No need to set rex.nfa_has_backref, the sub-matches don't + // change when \z1 .. \z9 matches or not. re_has_z = REX_USE; break; case '(': - /* \z( */ + // \z( if ((reg_do_extmatch & REX_SET) == 0) EMSG_RET_FAIL(_(e_z_not_allowed)); if (nfa_reg(REG_ZPAREN) == FAIL) - return FAIL; /* cascaded error */ + return FAIL; // cascaded error re_has_z = REX_SET; break; #endif @@ -1450,18 +1450,18 @@ nfa_regatom(void) c = no_Magic(getchr()); switch (c) { - /* () without a back reference */ + // () without a back reference case '(': if (nfa_reg(REG_NPAREN) == FAIL) return FAIL; EMIT(NFA_NOPEN); break; - case 'd': /* %d123 decimal */ - case 'o': /* %o123 octal */ - case 'x': /* %xab hex 2 */ - case 'u': /* %uabcd hex 4 */ - case 'U': /* %U1234abcd hex 8 */ + case 'd': // %d123 decimal + case 'o': // %o123 octal + case 'x': // %xab hex 2 + case 'u': // %uabcd hex 4 + case 'U': // %U1234abcd hex 8 { long nr; @@ -1479,14 +1479,14 @@ nfa_regatom(void) EMSG2_RET_FAIL( _("E678: Invalid character after %s%%[dxouU]"), reg_magic == MAGIC_ALL); - /* A NUL is stored in the text as NL */ - /* TODO: what if a composing character follows? */ + // A NUL is stored in the text as NL + // TODO: what if a composing character follows? EMIT(nr == 0 ? 0x0a : nr); } break; - /* Catch \%^ and \%$ regardless of where they appear in the - * pattern -- regardless of whether or not it makes sense. */ + // Catch \%^ and \%$ regardless of where they appear in the + // pattern -- regardless of whether or not it makes sense. case '^': EMIT(NFA_BOF); break; @@ -1511,30 +1511,30 @@ nfa_regatom(void) { int n; - /* \%[abc] */ + // \%[abc] for (n = 0; (c = peekchr()) != ']'; ++n) { if (c == NUL) EMSG2_RET_FAIL(_(e_missing_sb), reg_magic == MAGIC_ALL); - /* recursive call! */ + // recursive call! if (nfa_regatom() == FAIL) return FAIL; } - getchr(); /* get the ] */ + getchr(); // get the ] if (n == 0) EMSG2_RET_FAIL(_(e_empty_sb), reg_magic == MAGIC_ALL); EMIT(NFA_OPT_CHARS); EMIT(n); - /* Emit as "\%(\%[abc]\)" to be able to handle - * "\%[abc]*" which would cause the empty string to be - * matched an unlimited number of times. NFA_NOPEN is - * added only once at a position, while NFA_SPLIT is - * added multiple times. This is more efficient than - * not allowing NFA_SPLIT multiple times, it is used - * a lot. */ + // Emit as "\%(\%[abc]\)" to be able to handle + // "\%[abc]*" which would cause the empty string to be + // matched an unlimited number of times. NFA_NOPEN is + // added only once at a position, while NFA_SPLIT is + // added multiple times. This is more efficient than + // not allowing NFA_SPLIT multiple times, it is used + // a lot. EMIT(NFA_NOPEN); break; } @@ -1557,19 +1557,19 @@ nfa_regatom(void) if (c == 'l') { - /* \%{n}l \%{n}l */ + // \%{n}l \%{n}l EMIT(cmp == '<' ? NFA_LNUM_LT : cmp == '>' ? NFA_LNUM_GT : NFA_LNUM); if (save_prev_at_start) at_start = TRUE; } else if (c == 'c') - /* \%{n}c \%{n}c */ + // \%{n}c \%{n}c EMIT(cmp == '<' ? NFA_COL_LT : cmp == '>' ? NFA_COL_GT : NFA_COL); else { - /* \%{n}v \%{n}v */ + // \%{n}v \%{n}v EMIT(cmp == '<' ? NFA_VCOL_LT : cmp == '>' ? NFA_VCOL_GT : NFA_VCOL); limit = INT_MAX / MB_MAXBYTES; @@ -1584,7 +1584,7 @@ nfa_regatom(void) } else if (c == '\'' && n == 0) { - /* \%'m \%<'m \%>'m */ + // \%'m \%<'m \%>'m EMIT(cmp == '<' ? NFA_MARK_LT : cmp == '>' ? NFA_MARK_GT : NFA_MARK); EMIT(getchr()); @@ -1640,7 +1640,7 @@ collection: */ startc = endc = oldstartc = -1; negated = FALSE; - if (*regparse == '^') /* negated range */ + if (*regparse == '^') // negated range { negated = TRUE; MB_PTR_ADV(regparse); @@ -1655,7 +1655,7 @@ collection: EMIT(NFA_CONCAT); MB_PTR_ADV(regparse); } - /* Emit the OR branches for each character in the [] */ + // Emit the OR branches for each character in the [] emit_range = FALSE; while (regparse < endp) { @@ -1664,7 +1664,7 @@ collection: got_coll_char = FALSE; if (*regparse == '[') { - /* Check for [: :], [= =], [. .] */ + // Check for [: :], [= =], [. .] equiclass = collclass = 0; charclass = get_char_class(®parse); if (charclass == CLASS_NONE) @@ -1674,7 +1674,7 @@ collection: collclass = get_coll_element(®parse); } - /* Character class like [:alpha:] */ + // Character class like [:alpha:] if (charclass != CLASS_NONE) { switch (charclass) @@ -1740,41 +1740,40 @@ collection: EMIT(NFA_CONCAT); continue; } - /* Try equivalence class [=a=] and the like */ + // Try equivalence class [=a=] and the like if (equiclass != 0) { result = nfa_emit_equi_class(equiclass); if (result == FAIL) { - /* should never happen */ + // should never happen EMSG_RET_FAIL(_("E868: Error building NFA with equivalence class!")); } continue; } - /* Try collating class like [. .] */ + // Try collating class like [. .] if (collclass != 0) { - startc = collclass; /* allow [.a.]-x as a range */ - /* Will emit the proper atom at the end of the - * while loop. */ + startc = collclass; // allow [.a.]-x as a range + // Will emit the proper atom at the end of the + // while loop. } } - /* Try a range like 'a-x' or '\t-z'. Also allows '-' as a - * start character. */ + // Try a range like 'a-x' or '\t-z'. Also allows '-' as a + // start character. if (*regparse == '-' && oldstartc != -1) { emit_range = TRUE; startc = oldstartc; MB_PTR_ADV(regparse); - continue; /* reading the end of the range */ + continue; // reading the end of the range } - /* Now handle simple and escaped characters. - * Only "\]", "\^", "\]" and "\\" are special in Vi. Vim - * accepts "\t", "\e", etc., but only when the 'l' flag in - * 'cpoptions' is not included. - * Posix doesn't recognize backslash at all. - */ + // Now handle simple and escaped characters. + // Only "\]", "\^", "\]" and "\\" are special in Vi. Vim + // accepts "\t", "\e", etc., but only when the 'l' flag in + // 'cpoptions' is not included. + // Posix doesn't recognize backslash at all. if (*regparse == '\\' && !reg_cpo_bsl && regparse + 1 <= endp @@ -1797,23 +1796,23 @@ collection: || *regparse == 'U' ) { - /* TODO(RE) This needs more testing */ + // TODO(RE) This needs more testing startc = coll_get_char(); got_coll_char = TRUE; MB_PTR_BACK(old_regparse, regparse); } else { - /* \r,\t,\e,\b */ + // \r,\t,\e,\b startc = backslash_trans(*regparse); } } - /* Normal printable char */ + // Normal printable char if (startc == -1) startc = PTR2CHAR(regparse); - /* Previous char was '-', so this char is end of range. */ + // Previous char was '-', so this char is end of range. if (emit_range) { endc = startc; @@ -1823,13 +1822,13 @@ collection: if (endc > startc + 2) { - /* Emit a range instead of the sequence of - * individual characters. */ + // Emit a range instead of the sequence of + // individual characters. if (startc == 0) - /* \x00 is translated to \x0a, start at \x01. */ + // \x00 is translated to \x0a, start at \x01. EMIT(1); else - --post_ptr; /* remove NFA_CONCAT */ + --post_ptr; // remove NFA_CONCAT EMIT(endc); EMIT(NFA_RANGE); EMIT(NFA_CONCAT); @@ -1837,9 +1836,9 @@ collection: else if (has_mbyte && ((*mb_char2len)(startc) > 1 || (*mb_char2len)(endc) > 1)) { - /* Emit the characters in the range. - * "startc" was already emitted, so skip it. - * */ + // Emit the characters in the range. + // "startc" was already emitted, so skip it. + // for (c = startc + 1; c <= endc; c++) { EMIT(c); @@ -1851,13 +1850,13 @@ collection: #ifdef EBCDIC int alpha_only = FALSE; - /* for alphabetical range skip the gaps - * 'i'-'j', 'r'-'s', 'I'-'J' and 'R'-'S'. */ + // for alphabetical range skip the gaps + // 'i'-'j', 'r'-'s', 'I'-'J' and 'R'-'S'. if (isalpha(startc) && isalpha(endc)) alpha_only = TRUE; #endif - /* Emit the range. "startc" was already emitted, so - * skip it. */ + // Emit the range. "startc" was already emitted, so + // skip it. for (c = startc + 1; c <= endc; c++) #ifdef EBCDIC if (!alpha_only || isalpha(startc)) @@ -1872,18 +1871,18 @@ collection: } else { - /* This char (startc) is not part of a range. Just - * emit it. - * Normally, simply emit startc. But if we get char - * code=0 from a collating char, then replace it with - * 0x0a. - * This is needed to completely mimic the behaviour of - * the backtracking engine. */ + // This char (startc) is not part of a range. Just + // emit it. + // Normally, simply emit startc. But if we get char + // code=0 from a collating char, then replace it with + // 0x0a. + // This is needed to completely mimic the behaviour of + // the backtracking engine. if (startc == NFA_NEWL) { - /* Line break can't be matched as part of the - * collection, add an OR below. But not for negated - * range. */ + // Line break can't be matched as part of the + // collection, add an OR below. But not for negated + // range. if (!negated) extra = NFA_ADD_NL; } @@ -1898,26 +1897,26 @@ collection: } MB_PTR_ADV(regparse); - } /* while (p < endp) */ + } // while (p < endp) MB_PTR_BACK(old_regparse, regparse); - if (*regparse == '-') /* if last, '-' is just a char */ + if (*regparse == '-') // if last, '-' is just a char { EMIT('-'); EMIT(NFA_CONCAT); } - /* skip the trailing ] */ + // skip the trailing ] regparse = endp; MB_PTR_ADV(regparse); - /* Mark end of the collection. */ + // Mark end of the collection. if (negated == TRUE) EMIT(NFA_END_NEG_COLL); else EMIT(NFA_END_COLL); - /* \_[] also matches \n but it's not negated */ + // \_[] also matches \n but it's not negated if (extra == NFA_ADD_NL) { EMIT(reg_string ? NL : NFA_NEWL); @@ -1925,32 +1924,32 @@ collection: } return OK; - } /* if exists closing ] */ + } // if exists closing ] if (reg_strict) EMSG_RET_FAIL(_(e_missingbracket)); - /* FALLTHROUGH */ + // FALLTHROUGH default: { int plen; nfa_do_multibyte: - /* plen is length of current char with composing chars */ + // plen is length of current char with composing chars if (enc_utf8 && ((*mb_char2len)(c) != (plen = utfc_ptr2len(old_regparse)) || utf_iscomposing(c))) { int i = 0; - /* A base character plus composing characters, or just one - * or more composing characters. - * This requires creating a separate atom as if enclosing - * the characters in (), where NFA_COMPOSING is the ( and - * NFA_END_COMPOSING is the ). Note that right now we are - * building the postfix form, not the NFA itself; - * a composing char could be: a, b, c, NFA_COMPOSING - * where 'b' and 'c' are chars with codes > 256. */ + // A base character plus composing characters, or just one + // or more composing characters. + // This requires creating a separate atom as if enclosing + // the characters in (), where NFA_COMPOSING is the ( and + // NFA_END_COMPOSING is the ). Note that right now we are + // building the postfix form, not the NFA itself; + // a composing char could be: a, b, c, NFA_COMPOSING + // where 'b' and 'c' are chars with codes > 256. for (;;) { EMIT(c); @@ -1992,7 +1991,7 @@ nfa_regpiece(void) int op; int ret; long minval, maxval; - int greedy = TRUE; /* Braces are prefixed with '-' ? */ + int greedy = TRUE; // Braces are prefixed with '-' ? parse_state_T old_state; parse_state_T new_state; long c2; @@ -2000,16 +1999,16 @@ nfa_regpiece(void) int my_post_start; int quest; - /* Save the current parse state, so that we can use it if {m,n} is - * next. */ + // Save the current parse state, so that we can use it if {m,n} is + // next. save_parse_state(&old_state); - /* store current pos in the postfix form, for \{m,n} involving 0s */ + // store current pos in the postfix form, for \{m,n} involving 0s my_post_start = (int)(post_ptr - post_start); ret = nfa_regatom(); if (ret == FAIL) - return FAIL; /* cascaded error */ + return FAIL; // cascaded error op = peekchr(); if (re_multi_type(op) == NOT_MULTI) @@ -2040,7 +2039,7 @@ nfa_regpiece(void) return FAIL; EMIT(NFA_STAR); EMIT(NFA_CONCAT); - skipchr(); /* skip the \+ */ + skipchr(); // skip the \+ break; case Magic('@'): @@ -2050,24 +2049,24 @@ nfa_regpiece(void) switch(op) { case '=': - /* \@= */ + // \@= i = NFA_PREV_ATOM_NO_WIDTH; break; case '!': - /* \@! */ + // \@! i = NFA_PREV_ATOM_NO_WIDTH_NEG; break; case '<': op = no_Magic(getchr()); if (op == '=') - /* \@<= */ + // \@<= i = NFA_PREV_ATOM_JUST_BEFORE; else if (op == '!') - /* \@': - /* \@> */ + // \@> i = NFA_PREV_ATOM_LIKE_PATTERN; break; } @@ -2088,12 +2087,11 @@ nfa_regpiece(void) break; case Magic('{'): - /* a{2,5} will expand to 'aaa?a?a?' - * a{-1,3} will expand to 'aa??a??', where ?? is the nongreedy - * version of '?' - * \v(ab){2,3} will expand to '(ab)(ab)(ab)?', where all the - * parenthesis have the same id - */ + // a{2,5} will expand to 'aaa?a?a?' + // a{-1,3} will expand to 'aa??a??', where ?? is the nongreedy + // version of '?' + // \v(ab){2,3} will expand to '(ab)(ab)(ab)?', where all the + // parenthesis have the same id greedy = TRUE; c2 = peekchr(); @@ -2105,50 +2103,50 @@ nfa_regpiece(void) if (!read_limits(&minval, &maxval)) EMSG_RET_FAIL(_("E870: (NFA regexp) Error reading repetition limits")); - /* {0,inf}, {0,} and {} are equivalent to - * * */ + // {0,inf}, {0,} and {} are equivalent to + // * if (minval == 0 && maxval == MAX_LIMIT) { - if (greedy) /* { { (match the braces) */ - /* \{}, \{0,} */ + if (greedy) // { { (match the braces) + // \{}, \{0,} EMIT(NFA_STAR); - else /* { { (match the braces) */ - /* \{-}, \{-0,} */ + else // { { (match the braces) + // \{-}, \{-0,} EMIT(NFA_STAR_NONGREEDY); break; } - /* Special case: x{0} or x{-0} */ + // Special case: x{0} or x{-0} if (maxval == 0) { - /* Ignore result of previous call to nfa_regatom() */ + // Ignore result of previous call to nfa_regatom() post_ptr = post_start + my_post_start; - /* NFA_EMPTY is 0-length and works everywhere */ + // NFA_EMPTY is 0-length and works everywhere EMIT(NFA_EMPTY); return OK; } - /* The engine is very inefficient (uses too many states) when the - * maximum is much larger than the minimum and when the maximum is - * large. Bail out if we can use the other engine. */ + // The engine is very inefficient (uses too many states) when the + // maximum is much larger than the minimum and when the maximum is + // large. Bail out if we can use the other engine. if ((nfa_re_flags & RE_AUTO) && (maxval > 500 || maxval > minval + 200)) return FAIL; - /* Ignore previous call to nfa_regatom() */ + // Ignore previous call to nfa_regatom() post_ptr = post_start + my_post_start; - /* Save parse state after the repeated atom and the \{} */ + // Save parse state after the repeated atom and the \{} save_parse_state(&new_state); quest = (greedy == TRUE? NFA_QUEST : NFA_QUEST_NONGREEDY); for (i = 0; i < maxval; i++) { - /* Goto beginning of the repeated atom */ + // Goto beginning of the repeated atom restore_parse_state(&old_state); old_post_pos = (int)(post_ptr - post_start); if (nfa_regatom() == FAIL) return FAIL; - /* after "minval" times, atoms are optional */ + // after "minval" times, atoms are optional if (i + 1 > minval) { if (maxval == MAX_LIMIT) @@ -2167,7 +2165,7 @@ nfa_regpiece(void) break; } - /* Go to just after the repeated atom and the \{} */ + // Go to just after the repeated atom and the \{} restore_parse_state(&new_state); curchr = -1; @@ -2176,10 +2174,10 @@ nfa_regpiece(void) default: break; - } /* end switch */ + } // end switch if (re_multi_type(peekchr()) != NOT_MULTI) - /* Can't have a multi follow a multi. */ + // Can't have a multi follow a multi. EMSG_RET_FAIL(_("E871: (NFA regexp) Can't have a multi follow a multi")); return OK; @@ -2278,15 +2276,15 @@ nfa_regbranch(void) old_post_pos = (int)(post_ptr - post_start); - /* First branch, possibly the only one */ + // First branch, possibly the only one if (nfa_regconcat() == FAIL) return FAIL; - /* Try next concats */ + // Try next concats while (peekchr() == Magic('&')) { skipchr(); - /* if concat is empty do emit a node */ + // if concat is empty do emit a node if (old_post_pos == (int)(post_ptr - post_start)) EMIT(NFA_EMPTY); EMIT(NFA_NOPEN); @@ -2294,13 +2292,13 @@ nfa_regbranch(void) old_post_pos = (int)(post_ptr - post_start); if (nfa_regconcat() == FAIL) return FAIL; - /* if concat is empty do emit a node */ + // if concat is empty do emit a node if (old_post_pos == (int)(post_ptr - post_start)) EMIT(NFA_EMPTY); EMIT(NFA_CONCAT); } - /* if a branch is empty, emit one node for it */ + // if a branch is empty, emit one node for it if (old_post_pos == (int)(post_ptr - post_start)) EMIT(NFA_EMPTY); @@ -2320,20 +2318,20 @@ nfa_regbranch(void) */ static int nfa_reg( - int paren) /* REG_NOPAREN, REG_PAREN, REG_NPAREN or REG_ZPAREN */ + int paren) // REG_NOPAREN, REG_PAREN, REG_NPAREN or REG_ZPAREN { int parno = 0; if (paren == REG_PAREN) { - if (regnpar >= NSUBEXP) /* Too many `(' */ + if (regnpar >= NSUBEXP) // Too many `(' EMSG_RET_FAIL(_("E872: (NFA regexp) Too many '('")); parno = regnpar++; } #ifdef FEAT_SYN_HL else if (paren == REG_ZPAREN) { - /* Make a ZOPEN node. */ + // Make a ZOPEN node. if (regnzpar >= NSUBEXP) EMSG_RET_FAIL(_("E879: (NFA regexp) Too many \\z(")); parno = regnzpar++; @@ -2341,17 +2339,17 @@ nfa_reg( #endif if (nfa_regbranch() == FAIL) - return FAIL; /* cascaded error */ + return FAIL; // cascaded error while (peekchr() == Magic('|')) { skipchr(); if (nfa_regbranch() == FAIL) - return FAIL; /* cascaded error */ + return FAIL; // cascaded error EMIT(NFA_OR); } - /* Check for proper termination. */ + // Check for proper termination. if (paren != REG_NOPAREN && getchr() != Magic(')')) { if (paren == REG_NPAREN) @@ -2372,7 +2370,7 @@ nfa_reg( */ if (paren == REG_PAREN) { - had_endbrace[parno] = TRUE; /* have seen the close paren */ + had_endbrace[parno] = TRUE; // have seen the close paren EMIT(NFA_MOPEN + parno); } #ifdef FEAT_SYN_HL @@ -2678,7 +2676,7 @@ nfa_print_state2(FILE *debugf, nfa_state fprintf(debugf, "(%2d)", abs(state->id)); - /* Output indent */ + // Output indent p = (char_u *)indent->ga_data; if (indent->ga_len >= 3) { @@ -2704,7 +2702,7 @@ nfa_print_state2(FILE *debugf, nfa_state state->id = abs(state->id) * -1; - /* grow indent for state->out */ + // grow indent for state->out indent->ga_len -= 1; if (state->out1) ga_concat(indent, (char_u *)"| "); @@ -2714,14 +2712,14 @@ nfa_print_state2(FILE *debugf, nfa_state nfa_print_state2(debugf, state->out, indent); - /* replace last part of indent for state->out1 */ + // replace last part of indent for state->out1 indent->ga_len -= 3; ga_concat(indent, (char_u *)" "); ga_append(indent, '\0'); nfa_print_state2(debugf, state->out1, indent); - /* shrink indent */ + // shrink indent indent->ga_len -= 3; ga_append(indent, '\0'); } @@ -2749,8 +2747,8 @@ nfa_dump(nfa_regprog_T *prog) fclose(debugf); } } -#endif /* ENABLE_LOG */ -#endif /* DEBUG */ +#endif // ENABLE_LOG +#endif // DEBUG /* * Parse r.e. @expr and convert it into postfix form. @@ -2765,7 +2763,7 @@ re2post(void) return post_start; } -/* NB. Some of the code below is inspired by Russ's. */ +// NB. Some of the code below is inspired by Russ's. /* * Represents an NFA state plus zero or one or two arrows exiting. @@ -2774,7 +2772,7 @@ re2post(void) * If c < 256, labeled arrow with character c to out. */ -static nfa_state_T *state_ptr; /* points to nfa_prog->state */ +static nfa_state_T *state_ptr; // points to nfa_prog->state /* * Allocate and initialize nfa_state_T. @@ -2808,9 +2806,9 @@ alloc_state(int c, nfa_state_T *out, nfa * next state for this fragment. */ -/* Since the out pointers in the list are always - * uninitialized, we use the pointers themselves - * as storage for the Ptrlists. */ +// Since the out pointers in the list are always +// uninitialized, we use the pointers themselves +// as storage for the Ptrlists. typedef union Ptrlist Ptrlist; union Ptrlist { @@ -2970,7 +2968,7 @@ nfa_max_width(nfa_state_T *startstate, i nfa_state_T *state = startstate; int len = 0; - /* detect looping in a NFA_SPLIT */ + // detect looping in a NFA_SPLIT if (depth > 4) return -1; @@ -2980,11 +2978,11 @@ nfa_max_width(nfa_state_T *startstate, i { case NFA_END_INVISIBLE: case NFA_END_INVISIBLE_NEG: - /* the end, return what we have */ + // the end, return what we have return len; case NFA_SPLIT: - /* two alternatives, use the maximum */ + // two alternatives, use the maximum l = nfa_max_width(state->out, depth + 1); r = nfa_max_width(state->out1, depth + 1); if (l < 0 || r < 0) @@ -2994,7 +2992,7 @@ nfa_max_width(nfa_state_T *startstate, i case NFA_ANY: case NFA_START_COLL: case NFA_START_NEG_COLL: - /* matches some character, including composing chars */ + // matches some character, including composing chars if (enc_utf8) len += MB_MAXBYTES; else if (has_mbyte) @@ -3003,7 +3001,7 @@ nfa_max_width(nfa_state_T *startstate, i ++len; if (state->c != NFA_ANY) { - /* skip over the characters */ + // skip over the characters state = state->out1->out; continue; } @@ -3013,7 +3011,7 @@ nfa_max_width(nfa_state_T *startstate, i case NFA_WHITE: case NFA_HEX: case NFA_OCTAL: - /* ascii */ + // ascii ++len; break; @@ -3044,7 +3042,7 @@ nfa_max_width(nfa_state_T *startstate, i case NFA_UPPER_IC: case NFA_NUPPER_IC: case NFA_ANY_COMPOSING: - /* possibly non-ascii */ + // possibly non-ascii if (has_mbyte) len += 3; else @@ -3055,7 +3053,7 @@ nfa_max_width(nfa_state_T *startstate, i case NFA_START_INVISIBLE_NEG: case NFA_START_INVISIBLE_BEFORE: case NFA_START_INVISIBLE_BEFORE_NEG: - /* zero-width, out1 points to the END state */ + // zero-width, out1 points to the END state state = state->out1->out; continue; @@ -3081,7 +3079,7 @@ nfa_max_width(nfa_state_T *startstate, i #endif case NFA_NEWL: case NFA_SKIP: - /* unknown width */ + // unknown width return -1; case NFA_BOL: @@ -3158,23 +3156,23 @@ nfa_max_width(nfa_state_T *startstate, i case NFA_END_PATTERN: case NFA_COMPOSING: case NFA_END_COMPOSING: - /* zero-width */ + // zero-width break; default: if (state->c < 0) - /* don't know what this is */ + // don't know what this is return -1; - /* normal character */ + // normal character len += MB_CHAR2LEN(state->c); break; } - /* normal way to continue */ + // normal way to continue state = state->out; } - /* unrecognized, "cannot happen" */ + // unrecognized, "cannot happen" return -1; } @@ -3226,13 +3224,13 @@ post2nfa(int *postfix, int *end, int nfa switch (*p) { case NFA_CONCAT: - /* Concatenation. - * Pay attention: this operator does not exist in the r.e. itself - * (it is implicit, really). It is added when r.e. is translated - * to postfix form in re2post(). */ + // Concatenation. + // Pay attention: this operator does not exist in the r.e. itself + // (it is implicit, really). It is added when r.e. is translated + // to postfix form in re2post(). if (nfa_calc_size == TRUE) { - /* nstate += 0; */ + // nstate += 0; break; } e2 = POP(); @@ -3242,7 +3240,7 @@ post2nfa(int *postfix, int *end, int nfa break; case NFA_OR: - /* Alternation */ + // Alternation if (nfa_calc_size == TRUE) { nstate++; @@ -3257,7 +3255,7 @@ post2nfa(int *postfix, int *end, int nfa break; case NFA_STAR: - /* Zero or more, prefer more */ + // Zero or more, prefer more if (nfa_calc_size == TRUE) { nstate++; @@ -3272,7 +3270,7 @@ post2nfa(int *postfix, int *end, int nfa break; case NFA_STAR_NONGREEDY: - /* Zero or more, prefer zero */ + // Zero or more, prefer zero if (nfa_calc_size == TRUE) { nstate++; @@ -3287,7 +3285,7 @@ post2nfa(int *postfix, int *end, int nfa break; case NFA_QUEST: - /* one or zero atoms=> greedy match */ + // one or zero atoms=> greedy match if (nfa_calc_size == TRUE) { nstate++; @@ -3301,7 +3299,7 @@ post2nfa(int *postfix, int *end, int nfa break; case NFA_QUEST_NONGREEDY: - /* zero or one atoms => non-greedy match */ + // zero or one atoms => non-greedy match if (nfa_calc_size == TRUE) { nstate++; @@ -3316,9 +3314,9 @@ post2nfa(int *postfix, int *end, int nfa case NFA_END_COLL: case NFA_END_NEG_COLL: - /* On the stack is the sequence starting with NFA_START_COLL or - * NFA_START_NEG_COLL and all possible characters. Patch it to - * add the output to the start. */ + // On the stack is the sequence starting with NFA_START_COLL or + // NFA_START_NEG_COLL and all possible characters. Patch it to + // add the output to the start. if (nfa_calc_size == TRUE) { nstate++; @@ -3334,11 +3332,11 @@ post2nfa(int *postfix, int *end, int nfa break; case NFA_RANGE: - /* Before this are two characters, the low and high end of a - * range. Turn them into two states with MIN and MAX. */ + // Before this are two characters, the low and high end of a + // range. Turn them into two states with MIN and MAX. if (nfa_calc_size == TRUE) { - /* nstate += 0; */ + // nstate += 0; break; } e2 = POP(); @@ -3352,7 +3350,7 @@ post2nfa(int *postfix, int *end, int nfa break; case NFA_EMPTY: - /* 0-length, used in a repetition with max/min count of 0 */ + // 0-length, used in a repetition with max/min count of 0 if (nfa_calc_size == TRUE) { nstate++; @@ -3368,30 +3366,29 @@ post2nfa(int *postfix, int *end, int nfa { int n; - /* \%[abc] implemented as: - * NFA_SPLIT - * +-CHAR(a) - * | +-NFA_SPLIT - * | +-CHAR(b) - * | | +-NFA_SPLIT - * | | +-CHAR(c) - * | | | +-next - * | | +- next - * | +- next - * +- next - */ - n = *++p; /* get number of characters */ + // \%[abc] implemented as: + // NFA_SPLIT + // +-CHAR(a) + // | +-NFA_SPLIT + // | +-CHAR(b) + // | | +-NFA_SPLIT + // | | +-CHAR(c) + // | | | +-next + // | | +- next + // | +- next + // +- next + n = *++p; // get number of characters if (nfa_calc_size == TRUE) { nstate += n; break; } - s = NULL; /* avoid compiler warning */ - e1.out = NULL; /* stores list with out1's */ - s1 = NULL; /* previous NFA_SPLIT to connect to */ + s = NULL; // avoid compiler warning + e1.out = NULL; // stores list with out1's + s1 = NULL; // previous NFA_SPLIT to connect to while (n-- > 0) { - e = POP(); /* get character */ + e = POP(); // get character s = alloc_state(NFA_SPLIT, e.start, NULL); if (s == NULL) goto theend; @@ -3438,21 +3435,21 @@ post2nfa(int *postfix, int *end, int nfa start_state = NFA_START_INVISIBLE_BEFORE_NEG; end_state = NFA_END_INVISIBLE_NEG; break; - default: /* NFA_PREV_ATOM_LIKE_PATTERN: */ + default: // NFA_PREV_ATOM_LIKE_PATTERN: start_state = NFA_START_PATTERN; end_state = NFA_END_PATTERN; break; } if (before) - n = *++p; /* get the count */ - - /* The \@= operator: match the preceding atom with zero width. - * The \@! operator: no match for the preceding atom. - * The \@<= operator: match for the preceding atom. - * The \@ NFA_END_PATTERN -> NFA_SKIP -> what follows. */ + // NFA_ZEND -> NFA_END_PATTERN -> NFA_SKIP -> what follows. skip = alloc_state(NFA_SKIP, NULL, NULL); if (skip == NULL) goto theend; @@ -3487,26 +3484,26 @@ post2nfa(int *postfix, int *end, int nfa if (before) { if (n <= 0) - /* See if we can guess the maximum width, it avoids a - * lot of pointless tries. */ + // See if we can guess the maximum width, it avoids a + // lot of pointless tries. n = nfa_max_width(e.start, 0); - s->val = n; /* store the count */ + s->val = n; // store the count } } break; } - case NFA_COMPOSING: /* char with composing char */ + case NFA_COMPOSING: // char with composing char #if 0 - /* TODO */ + // TODO if (regflags & RF_ICOMBINE) { - /* use the base character only */ + // use the base character only } #endif - /* FALLTHROUGH */ - - case NFA_MOPEN: /* \( \) Submatch */ + // FALLTHROUGH + + case NFA_MOPEN: // \( \) Submatch case NFA_MOPEN1: case NFA_MOPEN2: case NFA_MOPEN3: @@ -3517,7 +3514,7 @@ post2nfa(int *postfix, int *end, int nfa case NFA_MOPEN8: case NFA_MOPEN9: #ifdef FEAT_SYN_HL - case NFA_ZOPEN: /* \z( \) Submatch */ + case NFA_ZOPEN: // \z( \) Submatch case NFA_ZOPEN1: case NFA_ZOPEN2: case NFA_ZOPEN3: @@ -3528,7 +3525,7 @@ post2nfa(int *postfix, int *end, int nfa case NFA_ZOPEN8: case NFA_ZOPEN9: #endif - case NFA_NOPEN: /* \%( \) "Invisible Submatch" */ + case NFA_NOPEN: // \%( \) "Invisible Submatch" if (nfa_calc_size == TRUE) { nstate += 2; @@ -3553,15 +3550,15 @@ post2nfa(int *postfix, int *end, int nfa #endif case NFA_COMPOSING: mclose = NFA_END_COMPOSING; break; default: - /* NFA_MOPEN, NFA_MOPEN1 .. NFA_MOPEN9 */ + // NFA_MOPEN, NFA_MOPEN1 .. NFA_MOPEN9 mclose = *p + NSUBEXP; break; } - /* Allow "NFA_MOPEN" as a valid postfix representation for - * the empty regexp "". In this case, the NFA will be - * NFA_MOPEN -> NFA_MCLOSE. Note that this also allows - * empty groups of parenthesis, and empty mbyte chars */ + // Allow "NFA_MOPEN" as a valid postfix representation for + // the empty regexp "". In this case, the NFA will be + // NFA_MOPEN -> NFA_MCLOSE. Note that this also allows + // empty groups of parenthesis, and empty mbyte chars if (stackp == stack) { s = alloc_state(mopen, NULL, NULL); @@ -3575,20 +3572,20 @@ post2nfa(int *postfix, int *end, int nfa break; } - /* At least one node was emitted before NFA_MOPEN, so - * at least one node will be between NFA_MOPEN and NFA_MCLOSE */ + // At least one node was emitted before NFA_MOPEN, so + // at least one node will be between NFA_MOPEN and NFA_MCLOSE e = POP(); - s = alloc_state(mopen, e.start, NULL); /* `(' */ + s = alloc_state(mopen, e.start, NULL); // `(' if (s == NULL) goto theend; - s1 = alloc_state(mclose, NULL, NULL); /* `)' */ + s1 = alloc_state(mclose, NULL, NULL); // `)' if (s1 == NULL) goto theend; patch(e.out, s1); if (mopen == NFA_COMPOSING) - /* COMPOSING->out1 = END_COMPOSING */ + // COMPOSING->out1 = END_COMPOSING patch(list1(&s->out1), s1); PUSH(frag(s, list1(&s1->out))); @@ -3642,7 +3639,7 @@ post2nfa(int *postfix, int *end, int nfa case NFA_MARK_GT: case NFA_MARK_LT: { - int n = *++p; /* lnum, col or mark name */ + int n = *++p; // lnum, col or mark name if (nfa_calc_size == TRUE) { @@ -3660,7 +3657,7 @@ post2nfa(int *postfix, int *end, int nfa case NFA_ZSTART: case NFA_ZEND: default: - /* Operands */ + // Operands if (nfa_calc_size == TRUE) { nstate++; @@ -3672,14 +3669,14 @@ post2nfa(int *postfix, int *end, int nfa PUSH(frag(s, list1(&s->out))); break; - } /* switch(*p) */ - - } /* for(p = postfix; *p; ++p) */ + } // switch(*p) + + } // for(p = postfix; *p; ++p) if (nfa_calc_size == TRUE) { nstate++; - goto theend; /* Return value when counting size is ignored anyway */ + goto theend; // Return value when counting size is ignored anyway } e = POP(); @@ -3695,7 +3692,7 @@ post2nfa(int *postfix, int *end, int nfa EMSG_RET_NULL(_("E876: (NFA regexp) Not enough space to store the whole NFA ")); } - matchstate = &state_ptr[istate++]; /* the match state */ + matchstate = &state_ptr[istate++]; // the match state matchstate->c = NFA_MATCH; matchstate->out = matchstate->out1 = NULL; matchstate->id = 0; @@ -3734,8 +3731,8 @@ nfa_postprocess(nfa_regprog_T *prog) { int directly; - /* Do it directly when what follows is possibly the end of the - * match. */ + // Do it directly when what follows is possibly the end of the + // match. if (match_follows(prog->state[i].out1->out, 0)) directly = TRUE; else @@ -3743,15 +3740,15 @@ nfa_postprocess(nfa_regprog_T *prog) int ch_invisible = failure_chance(prog->state[i].out, 0); int ch_follows = failure_chance(prog->state[i].out1->out, 0); - /* Postpone when the invisible match is expensive or has a - * lower chance of failing. */ + // Postpone when the invisible match is expensive or has a + // lower chance of failing. if (c == NFA_START_INVISIBLE_BEFORE || c == NFA_START_INVISIBLE_BEFORE_NEG) { - /* "before" matches are very expensive when - * unbounded, always prefer what follows then, - * unless what follows will always match. - * Otherwise strongly prefer what follows. */ + // "before" matches are very expensive when + // unbounded, always prefer what follows then, + // unless what follows will always match. + // Otherwise strongly prefer what follows. if (prog->state[i].val <= 0 && ch_follows > 0) directly = FALSE; else @@ -3759,27 +3756,27 @@ nfa_postprocess(nfa_regprog_T *prog) } else { - /* normal invisible, first do the one with the - * highest failure chance */ + // normal invisible, first do the one with the + // highest failure chance directly = ch_follows < ch_invisible; } } if (directly) - /* switch to the _FIRST state */ + // switch to the _FIRST state ++prog->state[i].c; } } } -/**************************************************************** - * NFA execution code. - ****************************************************************/ +///////////////////////////////////////////////////////////////// +// NFA execution code. +///////////////////////////////////////////////////////////////// typedef struct { - int in_use; /* number of subexpr with useful info */ - - /* When REG_MULTI is TRUE list.multi is used, otherwise list.line. */ + int in_use; // number of subexpr with useful info + + // When REG_MULTI is TRUE list.multi is used, otherwise list.line. union { struct multipos @@ -3799,51 +3796,51 @@ typedef struct typedef struct { - regsub_T norm; /* \( .. \) matches */ + regsub_T norm; // \( .. \) matches #ifdef FEAT_SYN_HL - regsub_T synt; /* \z( .. \) matches */ + regsub_T synt; // \z( .. \) matches #endif } regsubs_T; -/* nfa_pim_T stores a Postponed Invisible Match. */ +// nfa_pim_T stores a Postponed Invisible Match. typedef struct nfa_pim_S nfa_pim_T; struct nfa_pim_S { - int result; /* NFA_PIM_*, see below */ - nfa_state_T *state; /* the invisible match start state */ - regsubs_T subs; /* submatch info, only party used */ + int result; // NFA_PIM_*, see below + nfa_state_T *state; // the invisible match start state + regsubs_T subs; // submatch info, only party used union { lpos_T pos; char_u *ptr; - } end; /* where the match must end */ + } end; // where the match must end }; -/* Values for done in nfa_pim_T. */ -#define NFA_PIM_UNUSED 0 /* pim not used */ -#define NFA_PIM_TODO 1 /* pim not done yet */ -#define NFA_PIM_MATCH 2 /* pim executed, matches */ -#define NFA_PIM_NOMATCH 3 /* pim executed, no match */ - - -/* nfa_thread_T contains execution information of a NFA state */ +// Values for done in nfa_pim_T. +#define NFA_PIM_UNUSED 0 // pim not used +#define NFA_PIM_TODO 1 // pim not done yet +#define NFA_PIM_MATCH 2 // pim executed, matches +#define NFA_PIM_NOMATCH 3 // pim executed, no match + + +// nfa_thread_T contains execution information of a NFA state typedef struct { nfa_state_T *state; int count; - nfa_pim_T pim; /* if pim.result != NFA_PIM_UNUSED: postponed - * invisible match */ - regsubs_T subs; /* submatch info, only party used */ + nfa_pim_T pim; // if pim.result != NFA_PIM_UNUSED: postponed + // invisible match + regsubs_T subs; // submatch info, only party used } nfa_thread_T; -/* nfa_list_T contains the alternative NFA execution states. */ +// nfa_list_T contains the alternative NFA execution states. typedef struct { - nfa_thread_T *t; /* allocated array of states */ - int n; /* nr of states currently in "t" */ - int len; /* max nr of states in "t" */ - int id; /* ID of the list */ - int has_pim; /* TRUE when any state has a PIM */ + nfa_thread_T *t; // allocated array of states + int n; // nr of states currently in "t" + int len; // max nr of states in "t" + int id; // ID of the list + int has_pim; // TRUE when any state has a PIM } nfa_list_T; #ifdef ENABLE_LOG @@ -3901,7 +3898,7 @@ pim_info(nfa_pim_T *pim) #endif -/* Used during execution: whether a match has been found. */ +// Used during execution: whether a match has been found. static int nfa_match; #ifdef FEAT_RELTIME static proftime_T *nfa_time_limit; @@ -3932,7 +3929,7 @@ copy_pim(nfa_pim_T *to, nfa_pim_T *from) clear_sub(regsub_T *sub) { if (REG_MULTI) - /* Use 0xff to set lnum to -1 */ + // Use 0xff to set lnum to -1 vim_memset(sub->list.multi, 0xff, sizeof(struct multipos) * rex.nfa_nsubexpr); else @@ -3950,7 +3947,7 @@ copy_sub(regsub_T *to, regsub_T *from) to->in_use = from->in_use; if (from->in_use > 0) { - /* Copy the match start and end positions. */ + // Copy the match start and end positions. if (REG_MULTI) mch_memmove(&to->list.multi[0], &from->list.multi[0], @@ -3972,7 +3969,7 @@ copy_sub_off(regsub_T *to, regsub_T *fro to->in_use = from->in_use; if (from->in_use > 1) { - /* Copy the match start and end positions. */ + // Copy the match start and end positions. if (REG_MULTI) mch_memmove(&to->list.multi[1], &from->list.multi[1], @@ -4121,10 +4118,10 @@ report_state(char *action, */ static int has_state_with_pos( - nfa_list_T *l, /* runtime state list */ - nfa_state_T *state, /* state to update */ - regsubs_T *subs, /* pointers to subexpressions */ - nfa_pim_T *pim) /* postponed match or NULL */ + nfa_list_T *l, // runtime state list + nfa_state_T *state, // state to update + regsubs_T *subs, // pointers to subexpressions + nfa_pim_T *pim) // postponed match or NULL { nfa_thread_T *thread; int i; @@ -4155,15 +4152,15 @@ pim_equal(nfa_pim_T *one, nfa_pim_T *two int two_unused = (two == NULL || two->result == NFA_PIM_UNUSED); if (one_unused) - /* one is unused: equal when two is also unused */ + // one is unused: equal when two is also unused return two_unused; if (two_unused) - /* one is used and two is not: not equal */ + // one is used and two is not: not equal return FALSE; - /* compare the state id */ + // compare the state id if (one->state->id != two->state->id) return FALSE; - /* compare the position */ + // compare the position if (REG_MULTI) return one->end.pos.lnum == two->end.pos.lnum && one->end.pos.col == two->end.pos.col; @@ -4178,7 +4175,7 @@ match_follows(nfa_state_T *startstate, i { nfa_state_T *state = startstate; - /* avoid too much recursion */ + // avoid too much recursion if (depth > 10) return FALSE; @@ -4206,7 +4203,7 @@ match_follows(nfa_state_T *startstate, i case NFA_START_INVISIBLE_BEFORE_NEG: case NFA_START_INVISIBLE_BEFORE_NEG_FIRST: case NFA_COMPOSING: - /* skip ahead to next state */ + // skip ahead to next state state = state->out1->out; continue; @@ -4245,16 +4242,16 @@ match_follows(nfa_state_T *startstate, i case NFA_START_COLL: case NFA_START_NEG_COLL: case NFA_NEWL: - /* state will advance input */ + // state will advance input return FALSE; default: if (state->c > 0) - /* state will advance input */ + // state will advance input return FALSE; - /* Others: zero-width or possibly zero-width, might still find - * a match at the same position, keep looking. */ + // Others: zero-width or possibly zero-width, might still find + // a match at the same position, keep looking. break; } state = state->out; @@ -4268,9 +4265,9 @@ match_follows(nfa_state_T *startstate, i */ static int state_in_list( - nfa_list_T *l, /* runtime state list */ - nfa_state_T *state, /* state to update */ - regsubs_T *subs) /* pointers to subexpressions */ + nfa_list_T *l, // runtime state list + nfa_state_T *state, // state to update + regsubs_T *subs) // pointers to subexpressions { if (state->lastlist[nfa_ll_index] == l->id) { @@ -4280,7 +4277,7 @@ state_in_list( return FALSE; } -/* Offset used for "off" by addstate_here(). */ +// Offset used for "off" by addstate_here(). #define ADDSTATE_HERE_OFFSET 10 /* @@ -4290,11 +4287,11 @@ state_in_list( */ static regsubs_T * addstate( - nfa_list_T *l, /* runtime state list */ - nfa_state_T *state, /* state to update */ - regsubs_T *subs_arg, /* pointers to subexpressions */ - nfa_pim_T *pim, /* postponed look-behind match */ - int off_arg) /* byte offset, when -1 go to next line */ + nfa_list_T *l, // runtime state list + nfa_state_T *state, // state to update + regsubs_T *subs_arg, // pointers to subexpressions + nfa_pim_T *pim, // postponed look-behind match + int off_arg) // byte offset, when -1 go to next line { int subidx; int off = off_arg; @@ -4359,22 +4356,22 @@ addstate( case NFA_ZEND: case NFA_SPLIT: case NFA_EMPTY: - /* These nodes are not added themselves but their "out" and/or - * "out1" may be added below. */ + // These nodes are not added themselves but their "out" and/or + // "out1" may be added below. break; case NFA_BOL: case NFA_BOF: - /* "^" won't match past end-of-line, don't bother trying. - * Except when at the end of the line, or when we are going to the - * next line for a look-behind match. */ + // "^" won't match past end-of-line, don't bother trying. + // Except when at the end of the line, or when we are going to the + // next line for a look-behind match. if (rex.input > rex.line && *rex.input != NUL && (nfa_endp == NULL || !REG_MULTI || rex.lnum == nfa_endp->se_u.pos.lnum)) goto skip_add; - /* FALLTHROUGH */ + // FALLTHROUGH case NFA_MOPEN1: case NFA_MOPEN2: @@ -4399,22 +4396,22 @@ addstate( #endif case NFA_NOPEN: case NFA_ZSTART: - /* These nodes need to be added so that we can bail out when it - * was added to this list before at the same position to avoid an - * endless loop for "\(\)*" */ + // These nodes need to be added so that we can bail out when it + // was added to this list before at the same position to avoid an + // endless loop for "\(\)*" default: if (state->lastlist[nfa_ll_index] == l->id && state->c != NFA_SKIP) { - /* This state is already in the list, don't add it again, - * unless it is an MOPEN that is used for a backreference or - * when there is a PIM. For NFA_MATCH check the position, - * lower position is preferred. */ + // This state is already in the list, don't add it again, + // unless it is an MOPEN that is used for a backreference or + // when there is a PIM. For NFA_MATCH check the position, + // lower position is preferred. if (!rex.nfa_has_backref && pim == NULL && !l->has_pim && state->c != NFA_MATCH) { - /* When called from addstate_here() do insert before - * existing states. */ + // When called from addstate_here() do insert before + // existing states. if (add_here) { for (k = 0; k < l->n && k < listindex; ++k) @@ -4438,8 +4435,8 @@ skip_add: } } - /* Do not add the state again when it exists with the same - * positions. */ + // Do not add the state again when it exists with the same + // positions. if (has_state_with_pos(l, state, subs, pim)) goto skip_add; } @@ -4460,8 +4457,8 @@ skip_add: } if (subs != &temp_subs) { - /* "subs" may point into the current array, need to make a - * copy before it becomes invalid. */ + // "subs" may point into the current array, need to make a + // copy before it becomes invalid. copy_sub(&temp_subs.norm, &subs->norm); #ifdef FEAT_SYN_HL if (rex.nfa_has_zsubexpr) @@ -4481,7 +4478,7 @@ skip_add: l->len = newlen; } - /* add the state to the list */ + // add the state to the list state->lastlist[nfa_ll_index] = l->id; thread = &l->t[l->n++]; thread->state = state; @@ -4513,7 +4510,7 @@ skip_add: break; case NFA_SPLIT: - /* order matters here */ + // order matters here subs = addstate(l, state->out, subs, pim, off_arg); subs = addstate(l, state->out1, subs, pim, off_arg); break; @@ -4565,12 +4562,12 @@ skip_add: sub = &subs->norm; } - /* avoid compiler warnings */ + // avoid compiler warnings save_ptr = NULL; vim_memset(&save_multipos, 0, sizeof(save_multipos)); - /* Set the position (with "off" added) in the subexpression. Save - * and restore it when it was in use. Otherwise fill any gap. */ + // Set the position (with "off" added) in the subexpression. Save + // and restore it when it was in use. Otherwise fill any gap. if (REG_MULTI) { if (subidx < sub->in_use) @@ -4652,7 +4649,7 @@ skip_add: subs = addstate(l, state->out, subs, pim, off_arg); break; } - /* FALLTHROUGH */ + // FALLTHROUGH case NFA_MCLOSE1: case NFA_MCLOSE2: case NFA_MCLOSE3: @@ -4693,8 +4690,8 @@ skip_add: sub = &subs->norm; } - /* We don't fill in gaps here, there must have been an MOPEN that - * has done that. */ + // We don't fill in gaps here, there must have been an MOPEN that + // has done that. save_in_use = sub->in_use; if (sub->in_use <= subidx) sub->in_use = subidx + 1; @@ -4712,21 +4709,21 @@ skip_add: sub->list.multi[subidx].end_col = (colnr_T)(rex.input - rex.line + off); } - /* avoid compiler warnings */ + // avoid compiler warnings save_ptr = NULL; } else { save_ptr = sub->list.line[subidx].end; sub->list.line[subidx].end = rex.input + off; - /* avoid compiler warnings */ + // avoid compiler warnings vim_memset(&save_multipos, 0, sizeof(save_multipos)); } subs = addstate(l, state->out, subs, pim, off_arg); if (subs == NULL) break; - /* "subs" may have changed, need to set "sub" again */ + // "subs" may have changed, need to set "sub" again #ifdef FEAT_SYN_HL if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9) sub = &subs->synt; @@ -4753,10 +4750,10 @@ skip_add: */ static regsubs_T * addstate_here( - nfa_list_T *l, /* runtime state list */ - nfa_state_T *state, /* state to update */ - regsubs_T *subs, /* pointers to subexpressions */ - nfa_pim_T *pim, /* postponed look-behind match */ + nfa_list_T *l, // runtime state list + nfa_state_T *state, // state to update + regsubs_T *subs, // pointers to subexpressions + nfa_pim_T *pim, // postponed look-behind match int *ip) { int tlen = l->n; @@ -4764,9 +4761,9 @@ addstate_here( int listidx = *ip; regsubs_T *r; - /* First add the state(s) at the end, so that we know how many there are. - * Pass the listidx as offset (avoids adding another argument to - * addstate(). */ + // First add the state(s) at the end, so that we know how many there are. + // Pass the listidx as offset (avoids adding another argument to + // addstate(). r = addstate(l, state, subs, pim, -listidx - ADDSTATE_HERE_OFFSET); if (r == NULL) return NULL; @@ -4788,8 +4785,8 @@ addstate_here( { if (l->n + count - 1 >= l->len) { - /* not enough space to move the new states, reallocate the list - * and move the states to the right position */ + // not enough space to move the new states, reallocate the list + // and move the states to the right position int newlen = l->len * 3 / 2 + 50; size_t newsize = newlen * sizeof(nfa_thread_T); nfa_thread_T *newl; @@ -4817,8 +4814,8 @@ addstate_here( } else { - /* make space for new states, then move them from the - * end to the current position */ + // make space for new states, then move them from the + // end to the current position mch_memmove(&(l->t[listidx + count]), &(l->t[listidx + 1]), sizeof(nfa_thread_T) * (l->n - listidx - 1)); @@ -4919,7 +4916,7 @@ check_char_class(int class, int c) break; default: - /* should not be here :P */ + // should not be here :P siemsg(_(e_ill_char_class), class); return FAIL; } @@ -4932,16 +4929,16 @@ check_char_class(int class, int c) */ static int match_backref( - regsub_T *sub, /* pointers to subexpressions */ + regsub_T *sub, // pointers to subexpressions int subidx, - int *bytelen) /* out: length of match in bytes */ + int *bytelen) // out: length of match in bytes { int len; if (sub->in_use <= subidx) { retempty: - /* backref was not set, match an empty string */ + // backref was not set, match an empty string *bytelen = 0; return TRUE; } @@ -4998,14 +4995,14 @@ retempty: static int match_zref( int subidx, - int *bytelen) /* out: length of match in bytes */ + int *bytelen) // out: length of match in bytes { int len; cleanup_zsubexpr(); if (re_extmatch_in == NULL || re_extmatch_in->matches[subidx] == NULL) { - /* backref was not set, match an empty string */ + // backref was not set, match an empty string *bytelen = 0; return TRUE; } @@ -5031,7 +5028,7 @@ nfa_save_listids(nfa_regprog_T *prog, in int i; nfa_state_T *p; - /* Order in the list is reverse, it's a bit faster that way. */ + // Order in the list is reverse, it's a bit faster that way. p = &prog->state[0]; for (i = prog->nstate; --i >= 0; ) { @@ -5095,7 +5092,7 @@ recursive_regmatch( if (pim != NULL) { - /* start at the position where the postponed match was */ + // start at the position where the postponed match was if (REG_MULTI) rex.input = rex.line + pim->end.pos.col; else @@ -5107,8 +5104,8 @@ recursive_regmatch( || state->c == NFA_START_INVISIBLE_BEFORE_NEG || state->c == NFA_START_INVISIBLE_BEFORE_NEG_FIRST) { - /* The recursive match must end at the current position. When "pim" is - * not NULL it specifies the current position. */ + // The recursive match must end at the current position. When "pim" is + // not NULL it specifies the current position. endposp = &endpos; if (REG_MULTI) { @@ -5128,17 +5125,17 @@ recursive_regmatch( endpos.se_u.ptr = pim->end.ptr; } - /* Go back the specified number of bytes, or as far as the - * start of the previous line, to try matching "\@<=" or - * not matching "\@val <= 0) { if (REG_MULTI) { rex.line = reg_getline(--rex.lnum); if (rex.line == NULL) - /* can't go before the first line */ + // can't go before the first line rex.line = reg_getline(++rex.lnum); } rex.input = rex.line; @@ -5147,12 +5144,12 @@ recursive_regmatch( { if (REG_MULTI && (int)(rex.input - rex.line) < state->val) { - /* Not enough bytes in this line, go to end of - * previous line. */ + // Not enough bytes in this line, go to end of + // previous line. rex.line = reg_getline(--rex.lnum); if (rex.line == NULL) { - /* can't go before the first line */ + // can't go before the first line rex.line = reg_getline(++rex.lnum); rex.input = rex.line; } @@ -5175,12 +5172,12 @@ recursive_regmatch( fclose(log_fd); log_fd = NULL; #endif - /* Have to clear the lastlist field of the NFA nodes, so that - * nfa_regmatch() and addstate() can run properly after recursion. */ + // Have to clear the lastlist field of the NFA nodes, so that + // nfa_regmatch() and addstate() can run properly after recursion. if (nfa_ll_index == 1) { - /* Already calling nfa_regmatch() recursively. Save the lastlist[1] - * values and clear them. */ + // Already calling nfa_regmatch() recursively. Save the lastlist[1] + // values and clear them. if (*listids == NULL || *listids_len < prog->nstate) { vim_free(*listids); @@ -5194,20 +5191,20 @@ recursive_regmatch( } nfa_save_listids(prog, *listids); need_restore = TRUE; - /* any value of rex.nfa_listid will do */ + // any value of rex.nfa_listid will do } else { - /* First recursive nfa_regmatch() call, switch to the second lastlist - * entry. Make sure rex.nfa_listid is different from a previous - * recursive call, because some states may still have this ID. */ + // First recursive nfa_regmatch() call, switch to the second lastlist + // entry. Make sure rex.nfa_listid is different from a previous + // recursive call, because some states may still have this ID. ++nfa_ll_index; if (rex.nfa_listid <= rex.nfa_alt_listid) rex.nfa_listid = rex.nfa_alt_listid; } - /* Call nfa_regmatch() to check if the current concat matches at this - * position. The concat ends with the node NFA_END_INVISIBLE */ + // Call nfa_regmatch() to check if the current concat matches at this + // position. The concat ends with the node NFA_END_INVISIBLE nfa_endp = endposp; result = nfa_regmatch(prog, state->out, submatch, m); @@ -5219,7 +5216,7 @@ recursive_regmatch( rex.nfa_alt_listid = rex.nfa_listid; } - /* restore position in input text */ + // restore position in input text rex.lnum = save_reglnum; if (REG_MULTI) rex.line = reg_getline(rex.lnum); @@ -5262,7 +5259,7 @@ failure_chance(nfa_state_T *state, int d int c = state->c; int l, r; - /* detect looping */ + // detect looping if (depth > 4) return 1; @@ -5270,21 +5267,21 @@ failure_chance(nfa_state_T *state, int d { case NFA_SPLIT: if (state->out->c == NFA_SPLIT || state->out1->c == NFA_SPLIT) - /* avoid recursive stuff */ + // avoid recursive stuff return 1; - /* two alternatives, use the lowest failure chance */ + // two alternatives, use the lowest failure chance l = failure_chance(state->out, depth + 1); r = failure_chance(state->out1, depth + 1); return l < r ? l : r; case NFA_ANY: - /* matches anything, unlikely to fail */ + // matches anything, unlikely to fail return 1; case NFA_MATCH: case NFA_MCLOSE: case NFA_ANY_COMPOSING: - /* empty match works always */ + // empty match works always return 0; case NFA_START_INVISIBLE: @@ -5296,7 +5293,7 @@ failure_chance(nfa_state_T *state, int d case NFA_START_INVISIBLE_BEFORE_NEG: case NFA_START_INVISIBLE_BEFORE_NEG_FIRST: case NFA_START_PATTERN: - /* recursive regmatch is expensive, use low failure chance */ + // recursive regmatch is expensive, use low failure chance return 5; case NFA_BOL: @@ -5375,7 +5372,7 @@ failure_chance(nfa_state_T *state, int d case NFA_ZREF8: case NFA_ZREF9: #endif - /* backreferences don't match in many places */ + // backreferences don't match in many places return 94; case NFA_LNUM_GT: @@ -5387,7 +5384,7 @@ failure_chance(nfa_state_T *state, int d case NFA_MARK_GT: case NFA_MARK_LT: case NFA_VISUAL: - /* before/after positions don't match very often */ + // before/after positions don't match very often return 85; case NFA_LNUM: @@ -5397,7 +5394,7 @@ failure_chance(nfa_state_T *state, int d case NFA_COL: case NFA_VCOL: case NFA_MARK: - /* specific positions rarely match */ + // specific positions rarely match return 98; case NFA_COMPOSING: @@ -5405,11 +5402,11 @@ failure_chance(nfa_state_T *state, int d default: if (c > 0) - /* character match fails often */ + // character match fails often return 95; } - /* something else, includes character classes */ + // something else, includes character classes return 50; } @@ -5421,7 +5418,7 @@ skip_to_start(int c, colnr_T *colp) { char_u *s; - /* Used often, do some work to avoid call overhead. */ + // Used often, do some work to avoid call overhead. if (!rex.reg_ic && !has_mbyte) s = vim_strbyte(rex.line + *colp, c); else @@ -5448,7 +5445,7 @@ find_match_text(colnr_T startcol, int re for (;;) { match = TRUE; - len2 = MB_CHAR2LEN(regstart); /* skip regstart */ + len2 = MB_CHAR2LEN(regstart); // skip regstart for (len1 = 0; match_text[len1] != NUL; len1 += MB_CHAR2LEN(c1)) { c1 = PTR2CHAR(match_text + len1); @@ -5461,7 +5458,7 @@ find_match_text(colnr_T startcol, int re len2 += MB_CHAR2LEN(c2); } if (match - /* check that no composing char follows */ + // check that no composing char follows && !(enc_utf8 && utf_iscomposing(PTR2CHAR(rex.line + col + len2)))) { @@ -5481,8 +5478,8 @@ find_match_text(colnr_T startcol, int re return 1L; } - /* Try finding regstart after the current match. */ - col += MB_CHAR2LEN(regstart); /* skip regstart */ + // Try finding regstart after the current match. + col += MB_CHAR2LEN(regstart); // skip regstart if (skip_to_start(regstart, &col) == FAIL) break; } @@ -5544,8 +5541,8 @@ nfa_regmatch( FILE *debug; #endif - /* Some patterns may take a long time to match, especially when using - * recursive_regmatch(). Allow interrupting them with CTRL-C. */ + // Some patterns may take a long time to match, especially when using + // recursive_regmatch(). Allow interrupting them with CTRL-C. fast_breakcheck(); if (got_int) return FALSE; @@ -5564,7 +5561,7 @@ nfa_regmatch( #endif nfa_match = FALSE; - /* Allocate memory for the lists of nodes. */ + // Allocate memory for the lists of nodes. size = (prog->nstate + 1) * sizeof(nfa_thread_T); list[0].t = alloc(size); @@ -5602,8 +5599,8 @@ nfa_regmatch( #endif thislist->id = rex.nfa_listid + 1; - /* Inline optimized code for addstate(thislist, start, m, 0) if we know - * it's the first MOPEN. */ + // Inline optimized code for addstate(thislist, start, m, 0) if we know + // it's the first MOPEN. if (toplevel) { if (REG_MULTI) @@ -5654,10 +5651,10 @@ nfa_regmatch( go_to_nextline = FALSE; } - /* swap lists */ + // swap lists thislist = &list[flag]; nextlist = &list[flag ^= 1]; - nextlist->n = 0; /* clear nextlist */ + nextlist->n = 0; // clear nextlist nextlist->has_pim = FALSE; ++rex.nfa_listid; if (prog->re_engine == AUTOMATIC_ENGINE @@ -5667,7 +5664,7 @@ nfa_regmatch( # endif )) { - /* too many states, retry with old engine */ + // too many states, retry with old engine nfa_match = NFA_TOO_EXPENSIVE; goto theend; } @@ -5698,11 +5695,11 @@ nfa_regmatch( if (thislist->n == 0) break; - /* compute nextlist */ + // compute nextlist for (listidx = 0; listidx < thislist->n; ++listidx) { - /* If the list gets very long there probably is something wrong. - * At least allow interrupting with CTRL-C. */ + // If the list gets very long there probably is something wrong. + // At least allow interrupting with CTRL-C. fast_breakcheck(); if (got_int) break; @@ -5748,8 +5745,8 @@ nfa_regmatch( { case NFA_MATCH: { - /* If the match ends before a composing characters and - * rex.reg_icombine is not set, that is not really a match. */ + // If the match ends before a composing characters and + // rex.reg_icombine is not set, that is not really a match. if (enc_utf8 && !rex.reg_icombine && utf_iscomposing(curc)) break; @@ -5762,10 +5759,10 @@ nfa_regmatch( #ifdef ENABLE_LOG log_subsexpr(&t->subs); #endif - /* Found the left-most longest match, do not look at any other - * states at this position. When the list of states is going - * to be empty quit without advancing, so that "rex.input" is - * correct. */ + // Found the left-most longest match, do not look at any other + // states at this position. When the list of states is going + // to be empty quit without advancing, so that "rex.input" is + // correct. if (nextlist->n == 0) clen = 0; goto nextchar; @@ -5800,8 +5797,8 @@ nfa_regmatch( (int)(nfa_endp->se_u.ptr - rex.input)); } #endif - /* If "nfa_endp" is set it's only a match if it ends at - * "nfa_endp" */ + // If "nfa_endp" is set it's only a match if it ends at + // "nfa_endp" if (nfa_endp != NULL && (REG_MULTI ? (rex.lnum != nfa_endp->se_u.pos.lnum || (int)(rex.input - rex.line) @@ -5809,7 +5806,7 @@ nfa_regmatch( : rex.input != nfa_endp->se_u.ptr)) break; - /* do not set submatches for \@! */ + // do not set submatches for \@! if (t->state->c != NFA_END_INVISIBLE_NEG) { copy_sub(&m->norm, &t->subs.norm); @@ -5823,7 +5820,7 @@ nfa_regmatch( log_subsexpr(m); #endif nfa_match = TRUE; - /* See comment above at "goto nextchar". */ + // See comment above at "goto nextchar". if (nextlist->n == 0) clen = 0; goto nextchar; @@ -5842,8 +5839,8 @@ nfa_regmatch( failure_chance(t->state->out, 0), failure_chance(t->state->out1->out, 0)); #endif - /* Do it directly if there already is a PIM or when - * nfa_postprocess() detected it will work better. */ + // Do it directly if there already is a PIM or when + // nfa_postprocess() detected it will work better. if (t->pim.result != NFA_PIM_UNUSED || t->state->c == NFA_START_INVISIBLE_FIRST || t->state->c == NFA_START_INVISIBLE_NEG_FIRST @@ -5852,8 +5849,8 @@ nfa_regmatch( { int in_use = m->norm.in_use; - /* Copy submatch info for the recursive call, opposite - * of what happens on success below. */ + // Copy submatch info for the recursive call, opposite + // of what happens on success below. copy_sub_off(&m->norm, &t->subs.norm); #ifdef FEAT_SYN_HL if (rex.nfa_has_zsubexpr) @@ -5872,8 +5869,8 @@ nfa_regmatch( goto theend; } - /* for \@! and \@state->c == NFA_START_INVISIBLE_NEG || t->state->c == NFA_START_INVISIBLE_NEG_FIRST || t->state->c @@ -5881,19 +5878,19 @@ nfa_regmatch( || t->state->c == NFA_START_INVISIBLE_BEFORE_NEG_FIRST)) { - /* Copy submatch info from the recursive call */ + // Copy submatch info from the recursive call copy_sub_off(&t->subs.norm, &m->norm); #ifdef FEAT_SYN_HL if (rex.nfa_has_zsubexpr) copy_sub_off(&t->subs.synt, &m->synt); #endif - /* If the pattern has \ze and it matched in the - * sub pattern, use it. */ + // If the pattern has \ze and it matched in the + // sub pattern, use it. copy_ze_off(&t->subs.norm, &m->norm); - /* t->state->out1 is the corresponding - * END_INVISIBLE node; Add its out to the current - * list (zero-width match). */ + // t->state->out1 is the corresponding + // END_INVISIBLE node; Add its out to the current + // list (zero-width match). add_here = TRUE; add_state = t->state->out1->out; } @@ -5923,9 +5920,9 @@ nfa_regmatch( else pim.end.ptr = rex.input; - /* t->state->out1 is the corresponding END_INVISIBLE - * node; Add its out to the current list (zero-width - * match). */ + // t->state->out1 is the corresponding END_INVISIBLE + // node; Add its out to the current list (zero-width + // match). if (addstate_here(thislist, t->state->out1->out, &t->subs, &pim, &listidx) == NULL) { @@ -5943,8 +5940,8 @@ nfa_regmatch( int skip_lid = 0; #endif - /* There is no point in trying to match the pattern if the - * output state is not going to be added to the list. */ + // There is no point in trying to match the pattern if the + // output state is not going to be added to the list. if (state_in_list(nextlist, t->state->out1->out, &t->subs)) { skip = t->state->out1->out; @@ -5977,15 +5974,15 @@ nfa_regmatch( #endif break; } - /* Copy submatch info to the recursive call, opposite of what - * happens afterwards. */ + // Copy submatch info to the recursive call, opposite of what + // happens afterwards. copy_sub_off(&m->norm, &t->subs.norm); #ifdef FEAT_SYN_HL if (rex.nfa_has_zsubexpr) copy_sub_off(&m->synt, &t->subs.synt); #endif - /* First try matching the pattern. */ + // First try matching the pattern. result = recursive_regmatch(t->state, NULL, prog, submatch, m, &listids, &listids_len); if (result == NFA_TOO_EXPENSIVE) @@ -6001,16 +5998,16 @@ nfa_regmatch( fprintf(log_fd, "NFA_START_PATTERN matches:\n"); log_subsexpr(m); #endif - /* Copy submatch info from the recursive call */ + // Copy submatch info from the recursive call copy_sub_off(&t->subs.norm, &m->norm); #ifdef FEAT_SYN_HL if (rex.nfa_has_zsubexpr) copy_sub_off(&t->subs.synt, &m->synt); #endif - /* Now we need to skip over the matched text and then - * continue with what follows. */ + // Now we need to skip over the matched text and then + // continue with what follows. if (REG_MULTI) - /* TODO: multi-line match */ + // TODO: multi-line match bytelen = m->norm.list.multi[0].end_col - (int)(rex.input - rex.line); else @@ -6021,23 +6018,23 @@ nfa_regmatch( #endif if (bytelen == 0) { - /* empty match, output of corresponding - * NFA_END_PATTERN/NFA_SKIP to be used at current - * position */ + // empty match, output of corresponding + // NFA_END_PATTERN/NFA_SKIP to be used at current + // position add_here = TRUE; add_state = t->state->out1->out->out; } else if (bytelen <= clen) { - /* match current character, output of corresponding - * NFA_END_PATTERN to be used at next position. */ + // match current character, output of corresponding + // NFA_END_PATTERN to be used at next position. add_state = t->state->out1->out->out; add_off = clen; } else { - /* skip over the matched characters, set character - * count in NFA_SKIP */ + // skip over the matched characters, set character + // count in NFA_SKIP add_state = t->state->out1->out; add_off = bytelen; add_count = bytelen - clen; @@ -6071,7 +6068,7 @@ nfa_regmatch( { int this_class; - /* Get class of current and previous char (if it exists). */ + // Get class of current and previous char (if it exists). this_class = mb_get_class_buf(rex.input, rex.reg_buf); if (this_class <= 1) result = FALSE; @@ -6097,7 +6094,7 @@ nfa_regmatch( { int this_class, prev_class; - /* Get class of current and previous char (if it exists). */ + // Get class of current and previous char (if it exists). this_class = mb_get_class_buf(rex.input, rex.reg_buf); prev_class = reg_prev_class(); if (this_class == prev_class @@ -6146,15 +6143,15 @@ nfa_regmatch( len = 0; if (utf_iscomposing(sta->c)) { - /* Only match composing character(s), ignore base - * character. Used for ".{composing}" and "{composing}" - * (no preceding character). */ + // Only match composing character(s), ignore base + // character. Used for ".{composing}" and "{composing}" + // (no preceding character). len += mb_char2len(mc); } if (rex.reg_icombine && len == 0) { - /* If \Z was present, then ignore composing characters. - * When ignoring the base character this always matches. */ + // If \Z was present, then ignore composing characters. + // When ignoring the base character this always matches. if (sta->c != curc) result = FAIL; else @@ -6163,7 +6160,7 @@ nfa_regmatch( sta = sta->out; } - /* Check base character matches first, unless ignored. */ + // Check base character matches first, unless ignored. else if (len > 0 || mc == sta->c) { if (len == 0) @@ -6172,8 +6169,8 @@ nfa_regmatch( sta = sta->out; } - /* We don't care about the order of composing characters. - * Get them into cchars[] first. */ + // We don't care about the order of composing characters. + // Get them into cchars[] first. while (len < clen) { mc = mb_ptr2char(rex.input + len); @@ -6183,9 +6180,9 @@ nfa_regmatch( break; } - /* Check that each composing char in the pattern matches a - * composing char in the text. We do not check if all - * composing chars are matched. */ + // Check that each composing char in the pattern matches a + // composing char in the text. We do not check if all + // composing chars are matched. result = OK; while (sta->c != NFA_END_COMPOSING) { @@ -6203,7 +6200,7 @@ nfa_regmatch( else result = FAIL; - end = t->state->out1; /* NFA_END_COMPOSING */ + end = t->state->out1; // NFA_END_COMPOSING ADD_STATE_IF_MATCH(end); break; } @@ -6213,14 +6210,14 @@ nfa_regmatch( && rex.lnum <= rex.reg_maxline) { go_to_nextline = TRUE; - /* Pass -1 for the offset, which means taking the position - * at the start of the next line. */ + // Pass -1 for the offset, which means taking the position + // at the start of the next line. add_state = t->state->out; add_off = -1; } else if (curc == '\n' && rex.reg_line_lbr) { - /* match \n as if it is an ordinary character */ + // match \n as if it is an ordinary character add_state = t->state->out; add_off = 1; } @@ -6229,14 +6226,14 @@ nfa_regmatch( case NFA_START_COLL: case NFA_START_NEG_COLL: { - /* What follows is a list of characters, until NFA_END_COLL. - * One of them must match or none of them must match. */ + // What follows is a list of characters, until NFA_END_COLL. + // One of them must match or none of them must match. nfa_state_T *state; int result_if_matched; int c1, c2; - /* Never match EOL. If it's part of the collection it is added - * as a separate state with an OR. */ + // Never match EOL. If it's part of the collection it is added + // as a separate state with an OR. if (curc == NUL) break; @@ -6252,7 +6249,7 @@ nfa_regmatch( if (state->c == NFA_RANGE_MIN) { c1 = state->val; - state = state->out; /* advance to NFA_RANGE_MAX */ + state = state->out; // advance to NFA_RANGE_MAX c2 = state->val; #ifdef ENABLE_LOG fprintf(log_fd, "NFA_RANGE_MIN curc=%d c1=%d c2=%d\n", @@ -6291,8 +6288,8 @@ nfa_regmatch( } if (result) { - /* next state is in out of the NFA_END_COLL, out1 of - * START points to the END state */ + // next state is in out of the NFA_END_COLL, out1 of + // START points to the END state add_state = t->state->out1->out; add_off = clen; } @@ -6300,7 +6297,7 @@ nfa_regmatch( } case NFA_ANY: - /* Any char except '\0', (end of input) does not match. */ + // Any char except '\0', (end of input) does not match. if (curc > 0) { add_state = t->state->out; @@ -6309,8 +6306,8 @@ nfa_regmatch( break; case NFA_ANY_COMPOSING: - /* On a composing character skip over it. Otherwise do - * nothing. Always matches. */ + // On a composing character skip over it. Otherwise do + // nothing. Always matches. if (enc_utf8 && utf_iscomposing(curc)) { add_off = clen; @@ -6326,154 +6323,154 @@ nfa_regmatch( /* * Character classes like \a for alpha, \d for digit etc. */ - case NFA_IDENT: /* \i */ + case NFA_IDENT: // \i result = vim_isIDc(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_SIDENT: /* \I */ + case NFA_SIDENT: // \I result = !VIM_ISDIGIT(curc) && vim_isIDc(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_KWORD: /* \k */ + case NFA_KWORD: // \k result = vim_iswordp_buf(rex.input, rex.reg_buf); ADD_STATE_IF_MATCH(t->state); break; - case NFA_SKWORD: /* \K */ + case NFA_SKWORD: // \K result = !VIM_ISDIGIT(curc) && vim_iswordp_buf(rex.input, rex.reg_buf); ADD_STATE_IF_MATCH(t->state); break; - case NFA_FNAME: /* \f */ + case NFA_FNAME: // \f result = vim_isfilec(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_SFNAME: /* \F */ + case NFA_SFNAME: // \F result = !VIM_ISDIGIT(curc) && vim_isfilec(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_PRINT: /* \p */ + case NFA_PRINT: // \p result = vim_isprintc(PTR2CHAR(rex.input)); ADD_STATE_IF_MATCH(t->state); break; - case NFA_SPRINT: /* \P */ + case NFA_SPRINT: // \P result = !VIM_ISDIGIT(curc) && vim_isprintc(PTR2CHAR(rex.input)); ADD_STATE_IF_MATCH(t->state); break; - case NFA_WHITE: /* \s */ + case NFA_WHITE: // \s result = VIM_ISWHITE(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NWHITE: /* \S */ + case NFA_NWHITE: // \S result = curc != NUL && !VIM_ISWHITE(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_DIGIT: /* \d */ + case NFA_DIGIT: // \d result = ri_digit(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NDIGIT: /* \D */ + case NFA_NDIGIT: // \D result = curc != NUL && !ri_digit(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_HEX: /* \x */ + case NFA_HEX: // \x result = ri_hex(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NHEX: /* \X */ + case NFA_NHEX: // \X result = curc != NUL && !ri_hex(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_OCTAL: /* \o */ + case NFA_OCTAL: // \o result = ri_octal(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NOCTAL: /* \O */ + case NFA_NOCTAL: // \O result = curc != NUL && !ri_octal(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_WORD: /* \w */ + case NFA_WORD: // \w result = ri_word(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NWORD: /* \W */ + case NFA_NWORD: // \W result = curc != NUL && !ri_word(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_HEAD: /* \h */ + case NFA_HEAD: // \h result = ri_head(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NHEAD: /* \H */ + case NFA_NHEAD: // \H result = curc != NUL && !ri_head(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_ALPHA: /* \a */ + case NFA_ALPHA: // \a result = ri_alpha(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NALPHA: /* \A */ + case NFA_NALPHA: // \A result = curc != NUL && !ri_alpha(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_LOWER: /* \l */ + case NFA_LOWER: // \l result = ri_lower(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NLOWER: /* \L */ + case NFA_NLOWER: // \L result = curc != NUL && !ri_lower(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_UPPER: /* \u */ + case NFA_UPPER: // \u result = ri_upper(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NUPPER: /* \U */ + case NFA_NUPPER: // \U result = curc != NUL && !ri_upper(curc); ADD_STATE_IF_MATCH(t->state); break; - case NFA_LOWER_IC: /* [a-z] */ + case NFA_LOWER_IC: // [a-z] result = ri_lower(curc) || (rex.reg_ic && ri_upper(curc)); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NLOWER_IC: /* [^a-z] */ + case NFA_NLOWER_IC: // [^a-z] result = curc != NUL && !(ri_lower(curc) || (rex.reg_ic && ri_upper(curc))); ADD_STATE_IF_MATCH(t->state); break; - case NFA_UPPER_IC: /* [A-Z] */ + case NFA_UPPER_IC: // [A-Z] result = ri_upper(curc) || (rex.reg_ic && ri_lower(curc)); ADD_STATE_IF_MATCH(t->state); break; - case NFA_NUPPER_IC: /* ^[A-Z] */ + case NFA_NUPPER_IC: // ^[A-Z] result = curc != NUL && !(ri_upper(curc) || (rex.reg_ic && ri_lower(curc))); ADD_STATE_IF_MATCH(t->state); @@ -6499,7 +6496,7 @@ nfa_regmatch( case NFA_ZREF8: case NFA_ZREF9: #endif - /* \1 .. \9 \z1 .. \z9 */ + // \1 .. \9 \z1 .. \z9 { int subidx; int bytelen; @@ -6521,22 +6518,22 @@ nfa_regmatch( { if (bytelen == 0) { - /* empty match always works, output of NFA_SKIP to be - * used next */ + // empty match always works, output of NFA_SKIP to be + // used next add_here = TRUE; add_state = t->state->out->out; } else if (bytelen <= clen) { - /* match current character, jump ahead to out of - * NFA_SKIP */ + // match current character, jump ahead to out of + // NFA_SKIP add_state = t->state->out->out; add_off = clen; } else { - /* skip over the matched characters, set character - * count in NFA_SKIP */ + // skip over the matched characters, set character + // count in NFA_SKIP add_state = t->state->out; add_off = bytelen; add_count = bytelen - clen; @@ -6545,16 +6542,16 @@ nfa_regmatch( break; } case NFA_SKIP: - /* character of previous matching \1 .. \9 or \@> */ + // character of previous matching \1 .. \9 or \@> if (t->count - clen <= 0) { - /* end of match, go to what follows */ + // end of match, go to what follows add_state = t->state->out; add_off = clen; } else { - /* add state again with decremented count */ + // add state again with decremented count add_state = t->state; add_off = 0; add_count = t->count - clen; @@ -6594,8 +6591,8 @@ nfa_regmatch( colnr_T col = (colnr_T)(rex.input - rex.line); win_T *wp = rex.reg_win == NULL ? curwin : rex.reg_win; - /* Bail out quickly when there can't be a match, avoid the - * overhead of win_linetabsize() on long lines. */ + // Bail out quickly when there can't be a match, avoid the + // overhead of win_linetabsize() on long lines. if (op != 1 && col > t->state->val * (has_mbyte ? MB_MAXBYTES : 1)) break; @@ -6604,8 +6601,8 @@ nfa_regmatch( { int ts = wp->w_buffer->b_p_ts; - /* Guess that a character won't use more columns than - * 'tabstop', with a minimum of 4. */ + // Guess that a character won't use more columns than + // 'tabstop', with a minimum of 4. if (ts < 4) ts = 4; result = col > t->state->val * ts; @@ -6627,9 +6624,9 @@ nfa_regmatch( { pos_T *pos = getmark_buf(rex.reg_buf, t->state->val, FALSE); - /* Compare the mark position to the match position. */ - result = (pos != NULL /* mark doesn't exist */ - && pos->lnum > 0 /* mark isn't set in reg_buf */ + // Compare the mark position to the match position. + result = (pos != NULL // mark doesn't exist + && pos->lnum > 0 // mark isn't set in reg_buf && (pos->lnum == rex.lnum + rex.reg_firstlnum ? (pos->col == (colnr_T)(rex.input - rex.line) ? t->state->c == NFA_MARK @@ -6692,11 +6689,11 @@ nfa_regmatch( #endif case NFA_NOPEN: case NFA_ZSTART: - /* These states are only added to be able to bail out when - * they are added again, nothing is to be done. */ + // These states are only added to be able to bail out when + // they are added again, nothing is to be done. break; - default: /* regular character */ + default: // regular character { int c = t->state->c; @@ -6708,15 +6705,15 @@ nfa_regmatch( if (!result && rex.reg_ic) result = MB_TOLOWER(c) == MB_TOLOWER(curc); - /* If rex.reg_icombine is not set only skip over the character - * itself. When it is set skip over composing characters. */ + // If rex.reg_icombine is not set only skip over the character + // itself. When it is set skip over composing characters. if (result && enc_utf8 && !rex.reg_icombine) clen = utf_ptr2len(rex.input); ADD_STATE_IF_MATCH(t->state); break; } - } /* switch (t->state->c) */ + } // switch (t->state->c) if (add_state != NULL) { @@ -6728,8 +6725,8 @@ nfa_regmatch( else pim = &t->pim; - /* Handle the postponed invisible match if the match might end - * without advancing and before the end of the line. */ + // Handle the postponed invisible match if the match might end + // without advancing and before the end of the line. if (pim != NULL && (clen == 0 || match_follows(add_state, 0))) { if (pim->result == NFA_PIM_TODO) @@ -6743,8 +6740,8 @@ nfa_regmatch( result = recursive_regmatch(pim->state, pim, prog, submatch, m, &listids, &listids_len); pim->result = result ? NFA_PIM_MATCH : NFA_PIM_NOMATCH; - /* for \@! and \@state->c == NFA_START_INVISIBLE_NEG || pim->state->c == NFA_START_INVISIBLE_NEG_FIRST || pim->state->c @@ -6752,7 +6749,7 @@ nfa_regmatch( || pim->state->c == NFA_START_INVISIBLE_BEFORE_NEG_FIRST)) { - /* Copy submatch info from the recursive call */ + // Copy submatch info from the recursive call copy_sub_off(&pim->subs.norm, &m->norm); #ifdef FEAT_SYN_HL if (rex.nfa_has_zsubexpr) @@ -6771,7 +6768,7 @@ nfa_regmatch( #endif } - /* for \@! and \@state->c == NFA_START_INVISIBLE_NEG || pim->state->c == NFA_START_INVISIBLE_NEG_FIRST || pim->state->c @@ -6779,7 +6776,7 @@ nfa_regmatch( || pim->state->c == NFA_START_INVISIBLE_BEFORE_NEG_FIRST)) { - /* Copy submatch info from the recursive call */ + // Copy submatch info from the recursive call copy_sub_off(&t->subs.norm, &pim->subs.norm); #ifdef FEAT_SYN_HL if (rex.nfa_has_zsubexpr) @@ -6787,17 +6784,17 @@ nfa_regmatch( #endif } else - /* look-behind match failed, don't add the state */ + // look-behind match failed, don't add the state continue; - /* Postponed invisible match was handled, don't add it to - * following states. */ + // Postponed invisible match was handled, don't add it to + // following states. pim = NULL; } - /* If "pim" points into l->t it will become invalid when - * adding the state causes the list to be reallocated. Make a - * local copy to avoid that. */ + // If "pim" points into l->t it will become invalid when + // adding the state causes the list to be reallocated. Make a + // local copy to avoid that. if (pim == &t->pim) { copy_pim(&pim_copy, pim); @@ -6820,16 +6817,16 @@ nfa_regmatch( } } - } /* for (thislist = thislist; thislist->state; thislist++) */ - - /* Look for the start of a match in the current position by adding the - * start state to the list of states. - * The first found match is the leftmost one, thus the order of states - * matters! - * Do not add the start state in recursive calls of nfa_regmatch(), - * because recursive calls should only start in the first position. - * Unless "nfa_endp" is not NULL, then we match the end position. - * Also don't start a match past the first line. */ + } // for (thislist = thislist; thislist->state; thislist++) + + // Look for the start of a match in the current position by adding the + // start state to the list of states. + // The first found match is the leftmost one, thus the order of states + // matters! + // Do not add the start state in recursive calls of nfa_regmatch(), + // because recursive calls should only start in the first position. + // Unless "nfa_endp" is not NULL, then we match the end position. + // Also don't start a match past the first line. if (nfa_match == FALSE && ((toplevel && rex.lnum == 0 @@ -6847,8 +6844,8 @@ nfa_regmatch( #ifdef ENABLE_LOG fprintf(log_fd, "(---) STARTSTATE\n"); #endif - /* Inline optimized code for addstate() if we know the state is - * the first MOPEN. */ + // Inline optimized code for addstate() if we know the state is + // the first MOPEN. if (toplevel) { int add = TRUE; @@ -6860,8 +6857,8 @@ nfa_regmatch( { colnr_T col = (colnr_T)(rex.input - rex.line) + clen; - /* Nextlist is empty, we can skip ahead to the - * character that must appear at the start. */ + // Nextlist is empty, we can skip ahead to the + // character that must appear at the start. if (skip_to_start(prog->regstart, &col) == FAIL) break; #ifdef ENABLE_LOG @@ -6872,8 +6869,8 @@ nfa_regmatch( } else { - /* Checking if the required start character matches is - * cheaper than adding a state that won't match. */ + // Checking if the required start character matches is + // cheaper than adding a state that won't match. c = PTR2CHAR(rex.input + clen); if (c != prog->regstart && (!rex.reg_ic || MB_TOLOWER(c) != MB_TOLOWER(prog->regstart))) @@ -6922,8 +6919,8 @@ nfa_regmatch( #endif nextchar: - /* Advance to the next character, or advance to the next line, or - * finish. */ + // Advance to the next character, or advance to the next line, or + // finish. if (clen != 0) rex.input += clen; else if (go_to_nextline || (nfa_endp != NULL && REG_MULTI @@ -6932,12 +6929,12 @@ nextchar: else break; - /* Allow interrupting with CTRL-C. */ + // Allow interrupting with CTRL-C. line_breakcheck(); if (got_int) break; #ifdef FEAT_RELTIME - /* Check for timeout once in a twenty times to avoid overhead. */ + // Check for timeout once in a twenty times to avoid overhead. if (nfa_time_limit != NULL && ++nfa_time_count == 20) { nfa_time_count = 0; @@ -6954,7 +6951,7 @@ nextchar: #endif theend: - /* Free memory */ + // Free memory vim_free(list[0].t); vim_free(list[1].t); vim_free(listids); @@ -6974,8 +6971,8 @@ theend: nfa_regtry( nfa_regprog_T *prog, colnr_T col, - proftime_T *tm UNUSED, /* timeout limit or NULL */ - int *timed_out UNUSED) /* flag set on timeout or NULL */ + proftime_T *tm UNUSED, // timeout limit or NULL + int *timed_out UNUSED) // flag set on timeout or NULL { int i; regsubs_T subs, m; @@ -7042,12 +7039,12 @@ nfa_regtry( } if (rex.reg_endpos[0].lnum < 0) { - /* pattern has a \ze but it didn't match, use current end */ + // pattern has a \ze but it didn't match, use current end rex.reg_endpos[0].lnum = rex.lnum; rex.reg_endpos[0].col = (int)(rex.input - rex.line); } else - /* Use line number of "\ze". */ + // Use line number of "\ze". rex.lnum = rex.reg_endpos[0].lnum; } else @@ -7065,7 +7062,7 @@ nfa_regtry( } #ifdef FEAT_SYN_HL - /* Package any found \z(...\) matches for export. Default is none. */ + // Package any found \z(...\) matches for export. Default is none. unref_extmatch(re_extmatch_out); re_extmatch_out = NULL; @@ -7073,14 +7070,14 @@ nfa_regtry( { cleanup_zsubexpr(); re_extmatch_out = make_extmatch(); - /* Loop over \z1, \z2, etc. There is no \z0. */ + // Loop over \z1, \z2, etc. There is no \z0. for (i = 1; i < subs.synt.in_use; i++) { if (REG_MULTI) { struct multipos *mpos = &subs.synt.list.multi[i]; - /* Only accept single line matches that are valid. */ + // Only accept single line matches that are valid. if (mpos->start_lnum >= 0 && mpos->start_lnum == mpos->end_lnum && mpos->end_col >= mpos->start_col) @@ -7114,9 +7111,9 @@ nfa_regtry( static long nfa_regexec_both( char_u *line, - colnr_T startcol, /* column to start looking for match */ - proftime_T *tm, /* timeout limit or NULL */ - int *timed_out) /* flag set on timeout or NULL */ + colnr_T startcol, // column to start looking for match + proftime_T *tm, // timeout limit or NULL + int *timed_out) // flag set on timeout or NULL { nfa_regprog_T *prog; long retval = 0L; @@ -7126,7 +7123,7 @@ nfa_regexec_both( if (REG_MULTI) { prog = (nfa_regprog_T *)rex.reg_mmatch->regprog; - line = reg_getline((linenr_T)0); /* relative to the cursor */ + line = reg_getline((linenr_T)0); // relative to the cursor rex.reg_startpos = rex.reg_mmatch->startpos; rex.reg_endpos = rex.reg_mmatch->endpos; } @@ -7137,25 +7134,25 @@ nfa_regexec_both( rex.reg_endp = rex.reg_match->endp; } - /* Be paranoid... */ + // Be paranoid... if (prog == NULL || line == NULL) { emsg(_(e_null)); goto theend; } - /* If pattern contains "\c" or "\C": overrule value of rex.reg_ic */ + // If pattern contains "\c" or "\C": overrule value of rex.reg_ic if (prog->regflags & RF_ICASE) rex.reg_ic = TRUE; else if (prog->regflags & RF_NOICASE) rex.reg_ic = FALSE; - /* If pattern contains "\Z" overrule value of rex.reg_icombine */ + // If pattern contains "\Z" overrule value of rex.reg_icombine if (prog->regflags & RF_ICOMBINE) rex.reg_icombine = TRUE; rex.line = line; - rex.lnum = 0; /* relative to line */ + rex.lnum = 0; // relative to line rex.nfa_has_zend = prog->has_zend; rex.nfa_has_backref = prog->has_backref; @@ -7171,7 +7168,7 @@ nfa_regexec_both( rex.need_clear_subexpr = TRUE; #ifdef FEAT_SYN_HL - /* Clear the external match subpointers if necessary. */ + // Clear the external match subpointers if necessary. if (prog->reghasz == REX_SET) { rex.nfa_has_zsubexpr = TRUE; @@ -7186,18 +7183,18 @@ nfa_regexec_both( if (prog->regstart != NUL) { - /* Skip ahead until a character we know the match must start with. - * When there is none there is no match. */ + // Skip ahead until a character we know the match must start with. + // When there is none there is no match. if (skip_to_start(prog->regstart, &col) == FAIL) return 0L; - /* If match_text is set it contains the full text that must match. - * Nothing else to try. Doesn't handle combining chars well. */ + // If match_text is set it contains the full text that must match. + // Nothing else to try. Doesn't handle combining chars well. if (prog->match_text != NULL && !rex.reg_icombine) return find_match_text(col, prog->regstart, prog->match_text); } - /* If the start column is past the maximum column: no need to try. */ + // If the start column is past the maximum column: no need to try. if (rex.reg_maxcol > 0 && col >= rex.reg_maxcol) goto theend; @@ -7245,11 +7242,11 @@ nfa_regcomp(char_u *expr, int re_flags) if (nfa_regcomp_start(expr, re_flags) == FAIL) return NULL; - /* Build postfix form of the regexp. Needed to build the NFA - * (and count its size). */ + // Build postfix form of the regexp. Needed to build the NFA + // (and count its size). postfix = re2post(); if (postfix == NULL) - goto fail; /* Cascaded (syntax?) error */ + goto fail; // Cascaded (syntax?) error /* * In order to build the NFA, we parse the input regexp twice: @@ -7274,7 +7271,7 @@ nfa_regcomp(char_u *expr, int re_flags) */ post2nfa(postfix, post_ptr, TRUE); - /* allocate the regprog with space for the compiled regexp */ + // allocate the regprog with space for the compiled regexp prog_size = sizeof(nfa_regprog_T) + sizeof(nfa_state_T) * (nstate - 1); prog = alloc(prog_size); if (prog == NULL) @@ -7308,7 +7305,7 @@ nfa_regcomp(char_u *expr, int re_flags) nfa_dump(prog); #endif #ifdef FEAT_SYN_HL - /* Remember whether this pattern has any \z specials in it. */ + // Remember whether this pattern has any \z specials in it. prog->reghasz = re_has_z; #endif prog->pattern = vim_strsave(expr); @@ -7358,8 +7355,8 @@ nfa_regfree(regprog_T *prog) static int nfa_regexec_nl( regmatch_T *rmp, - char_u *line, /* string to match against */ - colnr_T col, /* column to start looking for match */ + char_u *line, // string to match against + colnr_T col, // column to start looking for match int line_lbr) { rex.reg_match = rmp; @@ -7403,12 +7400,12 @@ nfa_regexec_nl( static long nfa_regexec_multi( regmmatch_T *rmp, - win_T *win, /* window in which to search or NULL */ - buf_T *buf, /* buffer in which to search */ - linenr_T lnum, /* nr of line to start looking for match */ - colnr_T col, /* column to start looking for match */ - proftime_T *tm, /* timeout limit or NULL */ - int *timed_out) /* flag set on timeout or NULL */ + win_T *win, // window in which to search or NULL + buf_T *buf, // buffer in which to search + linenr_T lnum, // nr of line to start looking for match + colnr_T col, // column to start looking for match + proftime_T *tm, // timeout limit or NULL + int *timed_out) // flag set on timeout or NULL { rex.reg_match = NULL; rex.reg_mmatch = rmp; diff --git a/src/screen.c b/src/screen.c --- a/src/screen.c +++ b/src/screen.c @@ -53,7 +53,7 @@ static void win_rest_invalid(win_T *wp); static void msg_pos_mode(void); static void recording_mode(int attr); -/* Ugly global: overrule attribute used by screen_char() */ +// Ugly global: overrule attribute used by screen_char() static int screen_char_attr = 0; #if defined(FEAT_CONCEAL) || defined(PROTO) @@ -90,8 +90,8 @@ conceal_check_cursor_line(void) if (curwin->w_p_cole > 0 && conceal_cursor_line(curwin)) { need_cursor_line_redraw = TRUE; - /* Need to recompute cursor column, e.g., when starting Visual mode - * without concealing. */ + // Need to recompute cursor column, e.g., when starting Visual mode + // without concealing. curs_columns(TRUE); } } @@ -244,8 +244,8 @@ compute_foldcolumn(win_T *wp, int col) fill_foldcolumn( char_u *p, win_T *wp, - int closed, /* TRUE of FALSE */ - linenr_T lnum) /* current line number */ + int closed, // TRUE of FALSE + linenr_T lnum) // current line number { int i = 0; int level; @@ -253,17 +253,17 @@ fill_foldcolumn( int empty; int fdc = compute_foldcolumn(wp, 0); - /* Init to all spaces. */ + // Init to all spaces. vim_memset(p, ' ', (size_t)fdc); level = win_foldinfo.fi_level; if (level > 0) { - /* If there is only one column put more info in it. */ + // If there is only one column put more info in it. empty = (fdc == 1) ? 0 : 1; - /* If the column is too narrow, we start at the lowest level that - * fits and use numbers to indicated the depth. */ + // If the column is too narrow, we start at the lowest level that + // fits and use numbers to indicated the depth. first_level = level - fdc - closed + 1 + empty; if (first_level < 1) first_level = 1; @@ -286,7 +286,7 @@ fill_foldcolumn( if (closed) p[i >= fdc ? i - 1 : i] = '+'; } -#endif /* FEAT_FOLDING */ +#endif // FEAT_FOLDING /* * Return if the composing characters at "off_from" and "off_to" differ. @@ -409,19 +409,19 @@ screen_line( unsigned max_off_to; int col = 0; int hl; - int force = FALSE; /* force update rest of the line */ - int redraw_this /* bool: does character need redraw? */ + int force = FALSE; // force update rest of the line + int redraw_this // bool: does character need redraw? #ifdef FEAT_GUI - = TRUE /* For GUI when while-loop empty */ + = TRUE // For GUI when while-loop empty #endif ; - int redraw_next; /* redraw_this for next character */ + int redraw_next; // redraw_this for next character int clear_next = FALSE; - int char_cells; /* 1: normal char */ - /* 2: occupies two display cells */ + int char_cells; // 1: normal char + // 2: occupies two display cells # define CHAR_CELLS char_cells - /* Check for illegal row and col, just in case. */ + // Check for illegal row and col, just in case. if (row >= Rows) row = Rows - 1; if (endcol > Columns) @@ -439,7 +439,7 @@ screen_line( #ifdef FEAT_RIGHTLEFT if (flags & SLF_RIGHTLEFT) { - /* Clear rest first, because it's left of the text. */ + // Clear rest first, because it's left of the text. if (clear_width > 0) { while (col <= endcol && ScreenLines[off_to] == ' ' @@ -458,7 +458,7 @@ screen_line( off_from += col; endcol = (clear_width > 0 ? clear_width : -clear_width); } -#endif /* FEAT_RIGHTLEFT */ +#endif // FEAT_RIGHTLEFT #ifdef FEAT_PROP_POPUP // First char of a popup window may go on top of the right half of a @@ -486,10 +486,9 @@ screen_line( off_to + CHAR_CELLS, endcol - col - CHAR_CELLS); #ifdef FEAT_GUI - /* If the next character was bold, then redraw the current character to - * remove any pixels that might have spilt over into us. This only - * happens in the GUI. - */ + // If the next character was bold, then redraw the current character to + // remove any pixels that might have spilt over into us. This only + // happens in the GUI. if (redraw_next && gui.in_use) { hl = ScreenAttrs[off_to + CHAR_CELLS]; @@ -529,10 +528,10 @@ screen_line( * Need to remove highlighting attributes here. */ windgoto(row, col + coloff); - out_str(T_CE); /* clear rest of this screen line */ - screen_start(); /* don't know where cursor is now */ - force = TRUE; /* force redraw of rest of the line */ - redraw_next = TRUE; /* or else next char would miss out */ + out_str(T_CE); // clear rest of this screen line + screen_start(); // don't know where cursor is now + force = TRUE; // force redraw of rest of the line + redraw_next = TRUE; // or else next char would miss out /* * If the previous character was highlighted, need to stop @@ -545,20 +544,20 @@ screen_line( screen_stop_highlight(); } else - screen_attr = 0; /* highlighting has stopped */ + screen_attr = 0; // highlighting has stopped } if (enc_dbcs != 0) { - /* Check if overwriting a double-byte with a single-byte or - * the other way around requires another character to be - * redrawn. For UTF-8 this isn't needed, because comparing - * ScreenLinesUC[] is sufficient. */ + // Check if overwriting a double-byte with a single-byte or + // the other way around requires another character to be + // redrawn. For UTF-8 this isn't needed, because comparing + // ScreenLinesUC[] is sufficient. if (char_cells == 1 && col + 1 < endcol && (*mb_off2cells)(off_to, max_off_to) > 1) { - /* Writing a single-cell character over a double-cell - * character: need to redraw the next cell. */ + // Writing a single-cell character over a double-cell + // character: need to redraw the next cell. ScreenLines[off_to + 1] = 0; redraw_next = TRUE; } @@ -567,9 +566,9 @@ screen_line( && (*mb_off2cells)(off_to, max_off_to) == 1 && (*mb_off2cells)(off_to + 1, max_off_to) > 1) { - /* Writing the second half of a double-cell character over - * a double-cell character: need to redraw the second - * cell. */ + // Writing the second half of a double-cell character over + // a double-cell character: need to redraw the second + // cell. ScreenLines[off_to + 2] = 0; redraw_next = TRUE; } @@ -577,11 +576,11 @@ screen_line( if (enc_dbcs == DBCS_JPNU) ScreenLines2[off_to] = ScreenLines2[off_from]; } - /* When writing a single-width character over a double-width - * character and at the end of the redrawn text, need to clear out - * the right halve of the old character. - * Also required when writing the right halve of a double-width - * char over the left halve of an existing one. */ + // When writing a single-width character over a double-width + // character and at the end of the redrawn text, need to clear out + // the right halve of the old character. + // Also required when writing the right halve of a double-width + // char over the left halve of an existing one. if (has_mbyte && col + char_cells == endcol && ((char_cells == 1 && (*mb_off2cells)(off_to, max_off_to) > 1) @@ -606,10 +605,10 @@ screen_line( ScreenLines[off_to + 1] = ScreenLines[off_from + 1]; #if defined(FEAT_GUI) || defined(UNIX) - /* The bold trick makes a single column of pixels appear in the - * next character. When a bold character is removed, the next - * character should be redrawn too. This happens for our own GUI - * and for some xterms. */ + // The bold trick makes a single column of pixels appear in the + // next character. When a bold character is removed, the next + // character should be redrawn too. This happens for our own GUI + // and for some xterms. if ( # ifdef FEAT_GUI gui.in_use @@ -631,8 +630,8 @@ screen_line( #endif ScreenAttrs[off_to] = ScreenAttrs[off_from]; - /* For simplicity set the attributes of second half of a - * double-wide character equal to the first half. */ + // For simplicity set the attributes of second half of a + // double-wide character equal to the first half. if (char_cells == 2) ScreenAttrs[off_to + 1] = ScreenAttrs[off_from]; @@ -666,8 +665,8 @@ screen_line( if (clear_next) { - /* Clear the second half of a double-wide character of which the left - * half was overwritten with a single-wide character. */ + // Clear the second half of a double-wide character of which the left + // half was overwritten with a single-wide character. ScreenLines[off_to] = ' '; if (enc_utf8) ScreenLinesUC[off_to] = 0; @@ -684,7 +683,7 @@ screen_line( int startCol = col; #endif - /* blank out the rest of the line */ + // blank out the rest of the line while (col < clear_width && ScreenLines[off_to] == ' ' && ScreenAttrs[off_to] == 0 && (!enc_utf8 || ScreenLinesUC[off_to] == 0)) @@ -710,13 +709,13 @@ screen_line( int prev_cells = 1; if (enc_utf8) - /* for utf-8, ScreenLines[char_offset + 1] == 0 means - * that its width is 2. */ + // for utf-8, ScreenLines[char_offset + 1] == 0 means + // that its width is 2. prev_cells = ScreenLines[off_to - 1] == 0 ? 2 : 1; else if (enc_dbcs != 0) { - /* find previous character by counting from first - * column and get its width. */ + // find previous character by counting from first + // column and get its width. unsigned off = LineOffset[row]; unsigned max_off = LineOffset[row] + screen_Columns; @@ -817,7 +816,7 @@ draw_vsep_win(win_T *wp, int row) if (wp->w_vsep_width) { - /* draw the vertical separator right of this window */ + // draw the vertical separator right of this window c = fillchar_vsep(&hl); screen_fill(W_WINROW(wp) + row, W_WINROW(wp) + wp->w_height, W_ENDCOL(wp), W_ENDCOL(wp) + 1, @@ -840,7 +839,7 @@ status_match_len(expand_T *xp, char_u *s int emenu = (xp->xp_context == EXPAND_MENUS || xp->xp_context == EXPAND_MENUNAMES); - /* Check for menu separators - replace with '|'. */ + // Check for menu separators - replace with '|'. if (emenu && menu_is_separator(s)) return 1; #endif @@ -890,7 +889,7 @@ skip_status_match_char(expand_T *xp, cha win_redr_status_matches( expand_T *xp, int num_matches, - char_u **matches, /* list of matches */ + char_u **matches, // list of matches int match, int showtail) { @@ -898,7 +897,7 @@ win_redr_status_matches( int row; char_u *buf; int len; - int clen; /* length in screen cells */ + int clen; // length in screen cells int fillchar; int attr; int i; @@ -914,7 +913,7 @@ win_redr_status_matches( #endif int l; - if (matches == NULL) /* interrupted completion? */ + if (matches == NULL) // interrupted completion? return; if (has_mbyte) @@ -924,33 +923,33 @@ win_redr_status_matches( if (buf == NULL) return; - if (match == -1) /* don't show match but original text */ + if (match == -1) // don't show match but original text { match = 0; highlight = FALSE; } - /* count 1 for the ending ">" */ + // count 1 for the ending ">" clen = status_match_len(xp, L_MATCH(match)) + 3; if (match == 0) first_match = 0; else if (match < first_match) { - /* jumping left, as far as we can go */ + // jumping left, as far as we can go first_match = match; add_left = TRUE; } else { - /* check if match fits on the screen */ + // check if match fits on the screen for (i = first_match; i < match; ++i) clen += status_match_len(xp, L_MATCH(i)) + 2; if (first_match > 0) clen += 2; - /* jumping right, put match at the left */ + // jumping right, put match at the left if ((long)clen > Columns) { first_match = match; - /* if showing the last match, we can add some on the left */ + // if showing the last match, we can add some on the left clen = 2; for (i = match; i < num_matches; ++i) { @@ -995,7 +994,7 @@ win_redr_status_matches( } s = L_MATCH(i); - /* Check for menu separators - replace with '|' */ + // Check for menu separators - replace with '|' #ifdef FEAT_MENU emenu = (xp->xp_context == EXPAND_MENUS || xp->xp_context == EXPAND_MENUNAMES); @@ -1049,8 +1048,8 @@ win_redr_status_matches( { if (msg_scrolled > 0) { - /* Put the wildmenu just above the command line. If there is - * no room, scroll the screen one line up. */ + // Put the wildmenu just above the command line. If there is + // no room, scroll the screen one line up. if (cmdline_row == Rows - 1) { screen_del_lines(0, 0, 1, (int)Rows, TRUE, 0, NULL); @@ -1065,9 +1064,9 @@ win_redr_status_matches( } else { - /* Create status line if needed by setting 'laststatus' to 2. - * Set 'winminheight' to zero to avoid that the window is - * resized. */ + // Create status line if needed by setting 'laststatus' to 2. + // Set 'winminheight' to zero to avoid that the window is + // resized. if (lastwin->w_status_height == 0) { save_p_ls = p_ls; @@ -1130,9 +1129,9 @@ stl_connected(win_T *wp) int get_keymap_str( win_T *wp, - char_u *fmt, /* format string containing one %s item */ - char_u *buf, /* buffer for the result */ - int len) /* length of buffer */ + char_u *fmt, // format string containing one %s item + char_u *buf, // buffer for the result + int len) // length of buffer { char_u *p; @@ -1147,7 +1146,7 @@ get_keymap_str( curbuf = wp->w_buffer; curwin = wp; - STRCPY(buf, "b:keymap_name"); /* must be writable */ + STRCPY(buf, "b:keymap_name"); // must be writable ++emsg_skip; s = p = eval_to_string(buf, NULL, FALSE); --emsg_skip; @@ -1516,7 +1515,7 @@ screen_puts_len( && *ptr != NUL) { c = *ptr; - /* check if this is the first byte of a multibyte */ + // check if this is the first byte of a multibyte if (has_mbyte) { if (enc_utf8 && len > 0) @@ -1527,7 +1526,7 @@ screen_puts_len( mbyte_cells = 1; else if (enc_dbcs != 0) mbyte_cells = mbyte_blen; - else /* enc_utf8 */ + else // enc_utf8 { if (len >= 0) u8c = utfc_ptr2char_len(ptr, u8cc, @@ -1538,10 +1537,10 @@ screen_puts_len( #ifdef FEAT_ARABIC if (p_arshape && !p_tbidi && ARABIC_CHAR(u8c)) { - /* Do Arabic shaping. */ + // Do Arabic shaping. if (len >= 0 && (int)(ptr - text) + mbyte_blen >= len) { - /* Past end of string to be displayed. */ + // Past end of string to be displayed. nc = NUL; nc1 = NUL; } @@ -1560,8 +1559,8 @@ screen_puts_len( #endif if (col + mbyte_cells > screen_Columns) { - /* Only 1 cell left, but character requires 2 cells: - * display a '>' in the last column to avoid wrapping. */ + // Only 1 cell left, but character requires 2 cells: + // display a '>' in the last column to avoid wrapping. c = '>'; mbyte_cells = 1; } @@ -1592,10 +1591,10 @@ screen_puts_len( ) { #if defined(FEAT_GUI) || defined(UNIX) - /* The bold trick makes a single row of pixels appear in the next - * character. When a bold character is removed, the next - * character should be redrawn too. This happens for our own GUI - * and for some xterms. */ + // The bold trick makes a single row of pixels appear in the next + // character. When a bold character is removed, the next + // character should be redrawn too. This happens for our own GUI + // and for some xterms. if (need_redraw && ScreenLines[off] != ' ' && ( # ifdef FEAT_GUI gui.in_use @@ -1616,11 +1615,11 @@ screen_puts_len( force_redraw_next = TRUE; } #endif - /* When at the end of the text and overwriting a two-cell - * character with a one-cell character, need to clear the next - * cell. Also when overwriting the left halve of a two-cell char - * with the right halve of a two-cell char. Do this only once - * (mb_off2cells() may return 2 on the right halve). */ + // When at the end of the text and overwriting a two-cell + // character with a one-cell character, need to clear the next + // cell. Also when overwriting the left halve of a two-cell char + // with the right halve of a two-cell char. Do this only once + // (mb_off2cells() may return 2 on the right halve). if (clear_next_cell) clear_next_cell = FALSE; else if (has_mbyte @@ -1632,8 +1631,8 @@ screen_puts_len( && (*mb_off2cells)(off + 1, max_off) > 1))) clear_next_cell = TRUE; - /* Make sure we never leave a second byte of a double-byte behind, - * it confuses mb_off2cells(). */ + // Make sure we never leave a second byte of a double-byte behind, + // it confuses mb_off2cells(). if (enc_dbcs && ((mbyte_cells == 1 && (*mb_off2cells)(off, max_off) > 1) || (mbyte_cells == 2 @@ -1686,7 +1685,7 @@ screen_puts_len( ptr += mbyte_blen; if (clear_next_cell) { - /* This only happens at the end, display one space next. */ + // This only happens at the end, display one space next. ptr = (char_u *)" "; len = -1; } @@ -1699,8 +1698,8 @@ screen_puts_len( } } - /* If we detected the next character needs to be redrawn, but the text - * doesn't extend up to there, update the character here. */ + // If we detected the next character needs to be redrawn, but the text + // doesn't extend up to there, update the character here. if (force_redraw_next && col < screen_Columns) { if (enc_dbcs != 0 && dbcs_off2cells(off, max_off) > 1) @@ -1722,7 +1721,7 @@ start_search_hl(void) last_pat_prog(&screen_search_hl.rm); screen_search_hl.attr = HL_ATTR(HLF_L); # ifdef FEAT_RELTIME - /* Set the time limit to 'redrawtime'. */ + // Set the time limit to 'redrawtime'. profile_setlimit(p_rdt, &screen_search_hl.tm); # endif } @@ -1759,20 +1758,20 @@ screen_start_highlight(int attr) { char buf[20]; - /* The GUI handles this internally. */ + // The GUI handles this internally. sprintf(buf, IF_EB("\033|%dh", ESC_STR "|%dh"), attr); OUT_STR(buf); } else #endif { - if (attr > HL_ALL) /* special HL attr. */ + if (attr > HL_ALL) // special HL attr. { if (IS_CTERM) aep = syn_cterm_attr2entry(attr); else aep = syn_term_attr2entry(attr); - if (aep == NULL) /* did ":syntax clear" */ + if (aep == NULL) // did ":syntax clear" attr = 0; else attr = aep->ae_attr; @@ -1804,7 +1803,7 @@ screen_start_highlight(int attr) } } #endif - if ((attr & HL_BOLD) && *T_MD != NUL) /* bold */ + if ((attr & HL_BOLD) && *T_MD != NUL) // bold out_str(T_MD); else if (aep != NULL && cterm_normal_fg_bold && ( #ifdef FEAT_TERMGUICOLORS @@ -1813,22 +1812,22 @@ screen_start_highlight(int attr) : #endif t_colors > 1 && aep->ae_u.cterm.fg_color)) - /* If the Normal FG color has BOLD attribute and the new HL - * has a FG color defined, clear BOLD. */ + // If the Normal FG color has BOLD attribute and the new HL + // has a FG color defined, clear BOLD. out_str(T_ME); - if ((attr & HL_STANDOUT) && *T_SO != NUL) /* standout */ + if ((attr & HL_STANDOUT) && *T_SO != NUL) // standout out_str(T_SO); - if ((attr & HL_UNDERCURL) && *T_UCS != NUL) /* undercurl */ + if ((attr & HL_UNDERCURL) && *T_UCS != NUL) // undercurl out_str(T_UCS); - if (((attr & HL_UNDERLINE) /* underline or undercurl */ + if (((attr & HL_UNDERLINE) // underline or undercurl || ((attr & HL_UNDERCURL) && *T_UCS == NUL)) && *T_US != NUL) out_str(T_US); - if ((attr & HL_ITALIC) && *T_CZH != NUL) /* italic */ + if ((attr & HL_ITALIC) && *T_CZH != NUL) // italic out_str(T_CZH); - if ((attr & HL_INVERSE) && *T_MR != NUL) /* inverse (reverse) */ + if ((attr & HL_INVERSE) && *T_MR != NUL) // inverse (reverse) out_str(T_MR); - if ((attr & HL_STRIKETHROUGH) && *T_STS != NUL) /* strike */ + if ((attr & HL_STRIKETHROUGH) && *T_STS != NUL) // strike out_str(T_STS); /* @@ -1838,9 +1837,9 @@ screen_start_highlight(int attr) if (aep != NULL) { #ifdef FEAT_TERMGUICOLORS - /* When 'termguicolors' is set but fg or bg is unset, - * fall back to the cterm colors. This helps for SpellBad, - * where the GUI uses a red undercurl. */ + // When 'termguicolors' is set but fg or bg is unset, + // fall back to the cterm colors. This helps for SpellBad, + // where the GUI uses a red undercurl. if (p_tgc && aep->ae_u.cterm.fg_rgb != CTERMCOLOR) { if (aep->ae_u.cterm.fg_rgb != INVALCOLOR) @@ -1880,7 +1879,7 @@ screen_start_highlight(int attr) void screen_stop_highlight(void) { - int do_ME = FALSE; /* output T_ME code */ + int do_ME = FALSE; // output T_ME code if (screen_attr != 0 #ifdef MSWIN @@ -1893,14 +1892,14 @@ screen_stop_highlight(void) { char buf[20]; - /* use internal GUI code */ + // use internal GUI code sprintf(buf, IF_EB("\033|%dH", ESC_STR "|%dH"), screen_attr); OUT_STR(buf); } else #endif { - if (screen_attr > HL_ALL) /* special HL attr. */ + if (screen_attr > HL_ALL) // special HL attr. { attrentry_T *aep; @@ -1936,7 +1935,7 @@ screen_stop_highlight(void) out_str(aep->ae_u.term.stop); } } - if (aep == NULL) /* did ":syntax clear" */ + if (aep == NULL) // did ":syntax clear" screen_attr = 0; else screen_attr = aep->ae_attr; @@ -1998,7 +1997,7 @@ screen_stop_highlight(void) { if (t_colors > 1) { - /* set Normal cterm colors */ + // set Normal cterm colors if (cterm_normal_fg_color != 0) term_fg_color(cterm_normal_fg_color - 1); if (cterm_normal_bg_color != 0) @@ -2021,7 +2020,7 @@ reset_cterm_colors(void) { if (IS_CTERM) { - /* set Normal cterm colors */ + // set Normal cterm colors #ifdef FEAT_TERMGUICOLORS if (p_tgc ? (cterm_normal_fg_gui_color != INVALCOLOR || cterm_normal_bg_gui_color != INVALCOLOR) @@ -2050,8 +2049,8 @@ screen_char(unsigned off, int row, int c { int attr; - /* Check for illegal values, just in case (could happen just after - * resizing). */ + // Check for illegal values, just in case (could happen just after + // resizing). if (row >= screen_Rows || col >= screen_Columns) return; @@ -2068,13 +2067,13 @@ screen_char(unsigned off, int row, int c return; #endif - /* Outputting a character in the last cell on the screen may scroll the - * screen up. Only do it when the "xn" termcap property is set, otherwise - * mark the character invalid (update it when scrolled up). */ + // Outputting a character in the last cell on the screen may scroll the + // screen up. Only do it when the "xn" termcap property is set, otherwise + // mark the character invalid (update it when scrolled up). if (*T_XN == NUL && row == screen_Rows - 1 && col == screen_Columns - 1 #ifdef FEAT_RIGHTLEFT - /* account for first command-line character in rightleft mode */ + // account for first command-line character in rightleft mode && !cmdmsg_rl #endif ) @@ -2110,19 +2109,19 @@ screen_char(unsigned off, int row, int c #endif ) { - /* Clear the two screen cells. If the character is actually - * single width it won't change the second cell. */ + // Clear the two screen cells. If the character is actually + // single width it won't change the second cell. out_str((char_u *)" "); term_windgoto(row, col); } - /* not sure where the cursor is after drawing the ambiguous width - * character */ + // not sure where the cursor is after drawing the ambiguous width + // character screen_cur_col = 9999; } else if (utf_char2cells(ScreenLinesUC[off]) > 1) ++screen_cur_col; - /* Convert the UTF-8 character to bytes and write it. */ + // Convert the UTF-8 character to bytes and write it. buf[utfc_char2bytes(off, buf)] = NUL; out_str(buf); } @@ -2130,7 +2129,7 @@ screen_char(unsigned off, int row, int c { out_flush_check(); out_char(ScreenLines[off]); - /* double-byte character in single-width cell */ + // double-byte character in single-width cell if (enc_dbcs == DBCS_JPNU && ScreenLines[off] == 0x8e) out_char(ScreenLines2[off]); } @@ -2147,20 +2146,20 @@ screen_char(unsigned off, int row, int c static void screen_char_2(unsigned off, int row, int col) { - /* Check for illegal values (could be wrong when screen was resized). */ + // Check for illegal values (could be wrong when screen was resized). if (off + 1 >= (unsigned)(screen_Rows * screen_Columns)) return; - /* Outputting the last character on the screen may scrollup the screen. - * Don't to it! Mark the character invalid (update it when scrolled up) */ + // Outputting the last character on the screen may scrollup the screen. + // Don't to it! Mark the character invalid (update it when scrolled up) if (row == screen_Rows - 1 && col >= screen_Columns - 2) { ScreenAttrs[off] = (sattr_T)-1; return; } - /* Output the first byte normally (positions the cursor), then write the - * second byte directly. */ + // Output the first byte normally (positions the cursor), then write the + // second byte directly. screen_char(off, row, col); out_char(ScreenLines[off + 1]); ++screen_cur_col; @@ -2182,7 +2181,7 @@ screen_draw_rectangle( int off; int max_off; - /* Can't use ScreenLines unless initialized */ + // Can't use ScreenLines unless initialized if (ScreenLines == NULL) return; @@ -2271,16 +2270,16 @@ screen_fill( int force_next = FALSE; #endif - if (end_row > screen_Rows) /* safety check */ + if (end_row > screen_Rows) // safety check end_row = screen_Rows; - if (end_col > screen_Columns) /* safety check */ + if (end_col > screen_Columns) // safety check end_col = screen_Columns; if (ScreenLines == NULL || start_row >= end_row - || start_col >= end_col) /* nothing to do */ + || start_col >= end_col) // nothing to do return; - /* it's a "normal" terminal when not in a GUI or cterm */ + // it's a "normal" terminal when not in a GUI or cterm norm_term = ( #ifdef FEAT_GUI !gui.in_use && @@ -2294,10 +2293,10 @@ screen_fill( #endif ) { - /* When drawing over the right halve of a double-wide char clear - * out the left halve. When drawing over the left halve of a - * double wide-char clear out the right halve. Only needed in a - * terminal. */ + // When drawing over the right halve of a double-wide char clear + // out the left halve. When drawing over the left halve of a + // double wide-char clear out the right halve. Only needed in a + // terminal. if (start_col > 0 && mb_fix_col(start_col, row) != start_col) screen_puts_len((char_u *)" ", 1, row, start_col - 1, 0); if (end_col < screen_Columns && mb_fix_col(end_col, row) != end_col) @@ -2321,13 +2320,13 @@ screen_fill( * check if we really need to clear something */ col = start_col; - if (c1 != ' ') /* don't clear first char */ + if (c1 != ' ') // don't clear first char ++col; off = LineOffset[row] + col; end_off = LineOffset[row] + end_col; - /* skip blanks (used often, keep it fast!) */ + // skip blanks (used often, keep it fast!) if (enc_utf8) while (off < end_off && ScreenLines[off] == ' ' && ScreenAttrs[off] == 0 && ScreenLinesUC[off] == 0) @@ -2336,21 +2335,21 @@ screen_fill( while (off < end_off && ScreenLines[off] == ' ' && ScreenAttrs[off] == 0) ++off; - if (off < end_off) /* something to be cleared */ + if (off < end_off) // something to be cleared { col = off - LineOffset[row]; screen_stop_highlight(); - term_windgoto(row, col);/* clear rest of this screen line */ + term_windgoto(row, col);// clear rest of this screen line out_str(T_CE); - screen_start(); /* don't know where cursor is now */ + screen_start(); // don't know where cursor is now col = end_col - col; - while (col--) /* clear chars in ScreenLines */ + while (col--) // clear chars in ScreenLines { space_to_screenline(off, 0); ++off; } } - did_delete = TRUE; /* the chars are cleared now */ + did_delete = TRUE; // the chars are cleared now } off = LineOffset[row] + start_col; @@ -2372,10 +2371,10 @@ screen_fill( ) { #if defined(FEAT_GUI) || defined(UNIX) - /* The bold trick may make a single row of pixels appear in - * the next character. When a bold character is removed, the - * next character should be redrawn too. This happens for our - * own GUI and for some xterms. */ + // The bold trick may make a single row of pixels appear in + // the next character. When a bold character is removed, the + // next character should be redrawn too. This happens for our + // own GUI and for some xterms. if ( # ifdef FEAT_GUI gui.in_use @@ -2421,14 +2420,14 @@ screen_fill( } if (end_col == Columns) LineWraps[row] = FALSE; - if (row == Rows - 1) /* overwritten the command line */ + if (row == Rows - 1) // overwritten the command line { redraw_cmdline = TRUE; if (start_col == 0 && end_col == Columns && c1 == ' ' && c2 == ' ' && attr == 0) - clear_cmdline = FALSE; /* command line has been cleared */ + clear_cmdline = FALSE; // command line has been cleared if (start_col == 0) - mode_displayed = FALSE; /* mode cleared or overwritten */ + mode_displayed = FALSE; // mode cleared or overwritten } } } @@ -2473,7 +2472,7 @@ clear_TabPageIdxs(void) int screen_valid(int doclear) { - screenalloc(doclear); /* allocate screen buffers if size changed */ + screenalloc(doclear); // allocate screen buffers if size changed return (ScreenLines != NULL); } @@ -2512,8 +2511,8 @@ screenalloc(int doclear) char *new_popup_transparent; #endif tabpage_T *tp; - static int entered = FALSE; /* avoid recursiveness */ - static int done_outofmem_msg = FALSE; /* did outofmem message */ + static int entered = FALSE; // avoid recursiveness + static int done_outofmem_msg = FALSE; // did outofmem message int retry_count = 0; retry: @@ -2548,9 +2547,9 @@ retry: */ ++RedrawingDisabled; - win_new_shellsize(); /* fit the windows in the new sized shell */ - - comp_col(); /* recompute columns for shown command and ruler */ + win_new_shellsize(); // fit the windows in the new sized shell + + comp_col(); // recompute columns for shown command and ruler /* * We're changing the size of the screen. @@ -2648,11 +2647,11 @@ give_up: { if (ScreenLines != NULL || !done_outofmem_msg) { - /* guess the size */ + // guess the size do_outofmem_msg((long_u)((Rows + 1) * Columns)); - /* Remember we did this to avoid getting outofmem messages over - * and over again. */ + // Remember we did this to avoid getting outofmem messages over + // and over again. done_outofmem_msg = TRUE; } VIM_CLEAR(new_ScreenLines); @@ -2710,8 +2709,8 @@ give_up: len = screen_Columns; else len = Columns; - /* When switching to utf-8 don't copy characters, they - * may be invalid now. Also when p_mco changes. */ + // When switching to utf-8 don't copy characters, they + // may be invalid now. Also when p_mco changes. if (!(enc_utf8 && ScreenLinesUC == NULL) && p_mco == Screen_mco) mch_memmove(new_ScreenLines + new_LineOffset[new_row], @@ -2739,7 +2738,7 @@ give_up: } } } - /* Use the last line of the screen for the current line. */ + // Use the last line of the screen for the current line. current_ScreenLine = new_ScreenLines + Rows * Columns; #ifdef FEAT_PROP_POPUP @@ -2768,15 +2767,15 @@ give_up: popup_mask_refresh = TRUE; #endif - /* It's important that screen_Rows and screen_Columns reflect the actual - * size of ScreenLines[]. Set them before calling anything. */ + // It's important that screen_Rows and screen_Columns reflect the actual + // size of ScreenLines[]. Set them before calling anything. #ifdef FEAT_GUI old_Rows = screen_Rows; #endif screen_Rows = Rows; screen_Columns = Columns; - must_redraw = CLEAR; /* need to clear the screen later */ + must_redraw = CLEAR; // need to clear the screen later if (doclear) screenclear2(); #ifdef FEAT_GUI @@ -2790,12 +2789,12 @@ give_up: * Adjust the position of the cursor, for when executing an external * command. */ - if (msg_row >= Rows) /* Rows got smaller */ - msg_row = Rows - 1; /* put cursor at last row */ - else if (Rows > old_Rows) /* Rows got bigger */ - msg_row += Rows - old_Rows; /* put cursor in same place */ - if (msg_col >= Columns) /* Columns got smaller */ - msg_col = Columns - 1; /* put cursor at last column */ + if (msg_row >= Rows) // Rows got smaller + msg_row = Rows - 1; // put cursor at last row + else if (Rows > old_Rows) // Rows got bigger + msg_row += Rows - old_Rows; // put cursor in same place + if (msg_col >= Columns) // Columns got smaller + msg_col = Columns - 1; // put cursor at last column } #endif clear_TabPageIdxs(); @@ -2810,8 +2809,8 @@ give_up: if (starting == 0 && ++retry_count <= 3) { apply_autocmds(EVENT_VIMRESIZED, NULL, NULL, FALSE, curbuf); - /* In rare cases, autocommands may have altered Rows or Columns, - * jump back to check if we need to allocate the screen again. */ + // In rare cases, autocommands may have altered Rows or Columns, + // jump back to check if we need to allocate the screen again. goto retry; } } @@ -2841,8 +2840,8 @@ free_screenlines(void) screenclear(void) { check_for_delay(FALSE); - screenalloc(FALSE); /* allocate screen buffers if size changed */ - screenclear2(); /* clear the screen */ + screenalloc(FALSE); // allocate screen buffers if size changed + screenclear2(); // clear the screen } static void @@ -2860,15 +2859,15 @@ screenclear2(void) #ifdef FEAT_GUI if (!gui.in_use) #endif - screen_attr = -1; /* force setting the Normal colors */ - screen_stop_highlight(); /* don't want highlighting here */ + screen_attr = -1; // force setting the Normal colors + screen_stop_highlight(); // don't want highlighting here #ifdef FEAT_CLIPBOARD - /* disable selection without redrawing it */ + // disable selection without redrawing it clip_scroll_selection(9999); #endif - /* blank out ScreenLines */ + // blank out ScreenLines for (i = 0; i < Rows; ++i) { lineclear(LineOffset[i], (int)Columns, 0); @@ -2877,30 +2876,30 @@ screenclear2(void) if (can_clear(T_CL)) { - out_str(T_CL); /* clear the display */ + out_str(T_CL); // clear the display clear_cmdline = FALSE; mode_displayed = FALSE; } else { - /* can't clear the screen, mark all chars with invalid attributes */ + // can't clear the screen, mark all chars with invalid attributes for (i = 0; i < Rows; ++i) lineinvalid(LineOffset[i], (int)Columns); clear_cmdline = TRUE; } - screen_cleared = TRUE; /* can use contents of ScreenLines now */ + screen_cleared = TRUE; // can use contents of ScreenLines now win_rest_invalid(firstwin); redraw_cmdline = TRUE; redraw_tabline = TRUE; - if (must_redraw == CLEAR) /* no need to clear again */ + if (must_redraw == CLEAR) // no need to clear again must_redraw = NOT_VALID; compute_cmdrow(); - msg_row = cmdline_row; /* put cursor on last line for messages */ + msg_row = cmdline_row; // put cursor on last line for messages msg_col = 0; - screen_start(); /* don't know where cursor is now */ - msg_scrolled = 0; /* can't scroll back */ + screen_start(); // don't know where cursor is now + msg_scrolled = 0; // can't scroll back msg_didany = FALSE; msg_didout = FALSE; } @@ -3010,28 +3009,28 @@ windgoto(int row, int col) int goto_cost; int attr; -#define GOTO_COST 7 /* assume a term_windgoto() takes about 7 chars */ -#define HIGHL_COST 5 /* assume unhighlight takes 5 chars */ +#define GOTO_COST 7 // assume a term_windgoto() takes about 7 chars +#define HIGHL_COST 5 // assume unhighlight takes 5 chars #define PLAN_LE 1 #define PLAN_CR 2 #define PLAN_NL 3 #define PLAN_WRITE 4 - /* Can't use ScreenLines unless initialized */ + // Can't use ScreenLines unless initialized if (ScreenLines == NULL) return; if (col != screen_cur_col || row != screen_cur_row) { - /* Check for valid position. */ - if (row < 0) /* window without text lines? */ + // Check for valid position. + if (row < 0) // window without text lines? row = 0; if (row >= screen_Rows) row = screen_Rows - 1; if (col >= screen_Columns) col = screen_Columns - 1; - /* check if no cursor movement is allowed in highlight mode */ + // check if no cursor movement is allowed in highlight mode if (screen_attr && *T_MS == NUL) noinvcurs = HIGHL_COST; else @@ -3057,31 +3056,31 @@ windgoto(int row, int col) * If the cursor is in the same row, bigger col, we can use CR * or T_LE. */ - bs = NULL; /* init for GCC */ + bs = NULL; // init for GCC attr = screen_attr; if (row == screen_cur_row && col < screen_cur_col) { - /* "le" is preferred over "bc", because "bc" is obsolete */ + // "le" is preferred over "bc", because "bc" is obsolete if (*T_LE) - bs = T_LE; /* "cursor left" */ + bs = T_LE; // "cursor left" else - bs = T_BC; /* "backspace character (old) */ + bs = T_BC; // "backspace character (old) if (*bs) cost = (screen_cur_col - col) * (int)STRLEN(bs); else cost = 999; - if (col + 1 < cost) /* using CR is less characters */ + if (col + 1 < cost) // using CR is less characters { plan = PLAN_CR; wouldbe_col = 0; - cost = 1; /* CR is just one character */ + cost = 1; // CR is just one character } else { plan = PLAN_LE; wouldbe_col = col; } - if (noinvcurs) /* will stop highlighting */ + if (noinvcurs) // will stop highlighting { cost += noinvcurs; attr = 0; @@ -3095,8 +3094,8 @@ windgoto(int row, int col) { plan = PLAN_NL; wouldbe_col = 0; - cost = (row - screen_cur_row) * 2; /* CR LF */ - if (noinvcurs) /* will stop highlighting */ + cost = (row - screen_cur_row) * 2; // CR LF + if (noinvcurs) // will stop highlighting { cost += noinvcurs; attr = 0; @@ -3141,11 +3140,11 @@ windgoto(int row, int col) --i; } if (i != 0) - cost = 999; /* different attributes, don't do it */ + cost = 999; // different attributes, don't do it } if (enc_utf8) { - /* Don't use an UTF-8 char for positioning, it's slow. */ + // Don't use an UTF-8 char for positioning, it's slow. for (i = wouldbe_col; i < col; ++i) if (ScreenLinesUC[LineOffset[row] + i] != 0) { @@ -3262,8 +3261,8 @@ setcursor_mayforce(int force) windgoto(W_WINROW(curwin) + curwin->w_wrow, curwin->w_wincol + ( #ifdef FEAT_RIGHTLEFT - /* With 'rightleft' set and the cursor on a double-wide - * character, position it on the leftmost column. */ + // With 'rightleft' set and the cursor on a double-wide + // character, position it on the leftmost column. curwin->w_p_rl ? ((int)curwin->w_width - curwin->w_wcol - ((has_mbyte && (*mb_ptr2cells)(ml_get_cursor()) == 2 @@ -3367,7 +3366,7 @@ win_del_lines( int line_count, int invalid, int mayclear, - int clear_attr) /* for clearing lines */ + int clear_attr) // for clearing lines { int retval; @@ -3486,7 +3485,7 @@ win_do_lines( return retval; } - if (wp->w_next != NULL && p_tf) /* don't delete/insert on fast terminal */ + if (wp->w_next != NULL && p_tf) // don't delete/insert on fast terminal return FAIL; return MAYBE; @@ -3545,7 +3544,7 @@ screen_ins_lines( int line_count, int end, int clear_attr, - win_T *wp) /* NULL or window to use width from */ + win_T *wp) // NULL or window to use width from { int i; int j; @@ -3639,8 +3638,8 @@ screen_ins_lines( screen_del_lines(off, end - line_count, line_count, end, FALSE, 0, wp); #ifdef FEAT_CLIPBOARD - /* Remove a modeless selection when inserting lines halfway the screen - * or not the full width of the screen. */ + // Remove a modeless selection when inserting lines halfway the screen + // or not the full width of the screen. if (off + row > 0 || (wp != NULL && wp->w_width != Columns)) clip_clear_selection(&clip_star); else @@ -3648,15 +3647,15 @@ screen_ins_lines( #endif #ifdef FEAT_GUI - /* Don't update the GUI cursor here, ScreenLines[] is invalid until the - * scrolling is actually carried out. */ + // Don't update the GUI cursor here, ScreenLines[] is invalid until the + // scrolling is actually carried out. gui_dont_update_cursor(row + off <= gui.cursor_row); #endif if (wp != NULL && wp->w_wincol != 0 && *T_CSV != NUL && *T_CCS == NUL) cursor_col = wp->w_wincol; - if (*T_CCS != NUL) /* cursor relative to region */ + if (*T_CCS != NUL) // cursor relative to region cursor_row = row; else cursor_row = row + off; @@ -3671,7 +3670,7 @@ screen_ins_lines( { if (wp != NULL && wp->w_width != Columns) { - /* need to copy part of a line */ + // need to copy part of a line j = end - 1 - i; while ((j -= line_count) >= row) linecopy(j + line_count, j, wp); @@ -3706,13 +3705,13 @@ screen_ins_lines( if (clear_attr != 0) screen_start_highlight(clear_attr); - /* redraw the characters */ + // redraw the characters if (type == USE_REDRAW) redraw_block(row, end, wp); else if (type == USE_T_CAL) { term_append_lines(line_count); - screen_start(); /* don't know where cursor is now */ + screen_start(); // don't know where cursor is now } else { @@ -3724,9 +3723,9 @@ screen_ins_lines( windgoto(cursor_row, cursor_col); out_str(T_AL); } - else /* type == USE_T_SR */ + else // type == USE_T_SR out_str(T_SR); - screen_start(); /* don't know where cursor is now */ + screen_start(); // don't know where cursor is now } } @@ -3740,14 +3739,14 @@ screen_ins_lines( { windgoto(off + i, cursor_col); out_str(T_CE); - screen_start(); /* don't know where cursor is now */ + screen_start(); // don't know where cursor is now } } #ifdef FEAT_GUI gui_can_update_cursor(); if (gui.in_use) - out_flush(); /* always flush after a scroll */ + out_flush(); // always flush after a scroll #endif return OK; } @@ -3766,9 +3765,9 @@ screen_del_lines( int row, int line_count, int end, - int force, /* even when line_count > p_ttyscroll */ - int clear_attr, /* used for clearing lines */ - win_T *wp UNUSED) /* NULL or window to use width from */ + int force, // even when line_count > p_ttyscroll + int clear_attr, // used for clearing lines + win_T *wp UNUSED) // NULL or window to use width from { int j; int i; @@ -3776,8 +3775,8 @@ screen_del_lines( int cursor_row; int cursor_col = 0; int cursor_end; - int result_empty; /* result is empty until end of region */ - int can_delete; /* deleting line codes can be used */ + int result_empty; // result is empty until end of region + int can_delete; // deleting line codes can be used int type; /* @@ -3839,8 +3838,8 @@ screen_del_lines( #else else if (row == 0 && ( #ifndef AMIGA - /* On the Amiga, somehow '\n' on the last line doesn't always scroll - * up, so use delete-line command */ + // On the Amiga, somehow '\n' on the last line doesn't always scroll + // up, so use delete-line command line_count == 1 || #endif *T_CDL == NUL)) @@ -3859,8 +3858,8 @@ screen_del_lines( return FAIL; #ifdef FEAT_CLIPBOARD - /* Remove a modeless selection when deleting lines halfway the screen or - * not the full width of the screen. */ + // Remove a modeless selection when deleting lines halfway the screen or + // not the full width of the screen. if (off + row > 0 || (wp != NULL && wp->w_width != Columns)) clip_clear_selection(&clip_star); else @@ -3868,8 +3867,8 @@ screen_del_lines( #endif #ifdef FEAT_GUI - /* Don't update the GUI cursor here, ScreenLines[] is invalid until the - * scrolling is actually carried out. */ + // Don't update the GUI cursor here, ScreenLines[] is invalid until the + // scrolling is actually carried out. gui_dont_update_cursor(gui.cursor_row >= row + off && gui.cursor_row < end + off); #endif @@ -3877,7 +3876,7 @@ screen_del_lines( if (wp != NULL && wp->w_wincol != 0 && *T_CSV != NUL && *T_CCS == NUL) cursor_col = wp->w_wincol; - if (*T_CCS != NUL) /* cursor relative to region */ + if (*T_CCS != NUL) // cursor relative to region { cursor_row = row; cursor_end = end; @@ -3898,7 +3897,7 @@ screen_del_lines( { if (wp != NULL && wp->w_width != Columns) { - /* need to copy part of a line */ + // need to copy part of a line j = row + i; while ((j += line_count) <= end - 1) linecopy(j - line_count, j, wp); @@ -3912,7 +3911,7 @@ screen_del_lines( } else { - /* whole width, moving the line pointers is faster */ + // whole width, moving the line pointers is faster j = row + i; temp = LineOffset[j]; while ((j += line_count) <= end - 1) @@ -3934,20 +3933,20 @@ screen_del_lines( if (clear_attr != 0) screen_start_highlight(clear_attr); - /* redraw the characters */ + // redraw the characters if (type == USE_REDRAW) redraw_block(row, end, wp); - else if (type == USE_T_CD) /* delete the lines */ + else if (type == USE_T_CD) // delete the lines { windgoto(cursor_row, cursor_col); out_str(T_CD); - screen_start(); /* don't know where cursor is now */ + screen_start(); // don't know where cursor is now } else if (type == USE_T_CDL) { windgoto(cursor_row, cursor_col); term_delete_lines(line_count); - screen_start(); /* don't know where cursor is now */ + screen_start(); // don't know where cursor is now } /* * Deleting lines at top of the screen or scroll region: Just scroll @@ -3958,7 +3957,7 @@ screen_del_lines( { windgoto(cursor_end - 1, cursor_col); for (i = line_count; --i >= 0; ) - out_char('\n'); /* cursor will remain on same line */ + out_char('\n'); // cursor will remain on same line } else { @@ -3967,14 +3966,14 @@ screen_del_lines( if (type == USE_T_DL) { windgoto(cursor_row, cursor_col); - out_str(T_DL); /* delete a line */ + out_str(T_DL); // delete a line } - else /* type == USE_T_CE */ + else // type == USE_T_CE { windgoto(cursor_row + i, cursor_col); - out_str(T_CE); /* erase a line */ + out_str(T_CE); // erase a line } - screen_start(); /* don't know where cursor is now */ + screen_start(); // don't know where cursor is now } } @@ -3987,15 +3986,15 @@ screen_del_lines( for (i = line_count; i > 0; --i) { windgoto(cursor_end - i, cursor_col); - out_str(T_CE); /* erase a line */ - screen_start(); /* don't know where cursor is now */ + out_str(T_CE); // erase a line + screen_start(); // don't know where cursor is now } } #ifdef FEAT_GUI gui_can_update_cursor(); if (gui.in_use) - out_flush(); /* always flush after a scroll */ + out_flush(); // always flush after a scroll #endif return OK; @@ -4051,18 +4050,18 @@ showmode(void) nwr_save = need_wait_return; - /* wait a bit before overwriting an important message */ + // wait a bit before overwriting an important message check_for_delay(FALSE); - /* if the cmdline is more than one line high, erase top lines */ + // if the cmdline is more than one line high, erase top lines need_clear = clear_cmdline; if (clear_cmdline && cmdline_row < Rows - 1) - msg_clr_cmdline(); /* will reset clear_cmdline */ - - /* Position on the last line in the window, column 0 */ + msg_clr_cmdline(); // will reset clear_cmdline + + // Position on the last line in the window, column 0 msg_pos_mode(); cursor_off(); - attr = HL_ATTR(HLF_CM); /* Highlight mode */ + attr = HL_ATTR(HLF_CM); // Highlight mode if (do_mode) { msg_puts_attr("--", attr); @@ -4074,17 +4073,17 @@ showmode(void) im_get_status() # endif ) -# ifdef FEAT_GUI_GTK /* most of the time, it's not XIM being used */ +# ifdef FEAT_GUI_GTK // most of the time, it's not XIM being used msg_puts_attr(" IM", attr); # else msg_puts_attr(" XIM", attr); # endif #endif - /* CTRL-X in Insert mode */ + // CTRL-X in Insert mode if (edit_submode != NULL && !shortmess(SHM_COMPLETIONMENU)) { - /* These messages can get long, avoid a wrap in a narrow - * window. Prefer showing edit_submode_extra. */ + // These messages can get long, avoid a wrap in a narrow + // window. Prefer showing edit_submode_extra. length = (Rows - msg_row) * Columns - 3; if (edit_submode_extra != NULL) length -= vim_strsize(edit_submode_extra); @@ -4100,7 +4099,7 @@ showmode(void) } if (edit_submode_extra != NULL) { - msg_puts_attr(" ", attr); /* add a space in between */ + msg_puts_attr(" ", attr); // add a space in between if ((int)edit_submode_highl < (int)HLF_COUNT) sub_attr = HL_ATTR(edit_submode_highl); else @@ -4153,8 +4152,8 @@ showmode(void) { char *p; - /* Don't concatenate separate words to avoid translation - * problems. */ + // Don't concatenate separate words to avoid translation + // problems. switch ((VIsual_select ? 4 : 0) + (VIsual_mode == Ctrl_V) * 2 + (VIsual_mode == 'V')) @@ -4183,13 +4182,13 @@ showmode(void) mode_displayed = TRUE; if (need_clear || clear_cmdline || redraw_mode) msg_clr_eos(); - msg_didout = FALSE; /* overwrite this message */ + msg_didout = FALSE; // overwrite this message length = msg_col; msg_col = 0; - need_wait_return = nwr_save; /* never ask for hit-return for this */ + need_wait_return = nwr_save; // never ask for hit-return for this } else if (clear_cmdline && msg_silent == 0) - /* Clear the whole command line. Will reset "clear_cmdline". */ + // Clear the whole command line. Will reset "clear_cmdline". msg_clr_cmdline(); else if (redraw_mode) { @@ -4198,12 +4197,12 @@ showmode(void) } #ifdef FEAT_CMDL_INFO - /* In Visual mode the size of the selected area must be redrawn. */ + // In Visual mode the size of the selected area must be redrawn. if (VIsual_active) clear_showcmd(); - /* If the last window has no status line, the ruler is after the mode - * message and must be redrawn */ + // If the last window has no status line, the ruler is after the mode + // message and must be redrawn if (redrawing() && lastwin->w_status_height == 0) win_redr_ruler(lastwin, TRUE, FALSE); #endif @@ -4236,7 +4235,7 @@ unshowmode(int force) * Don't delete it right now, when not redrawing or inside a mapping. */ if (!redrawing() || (!force && char_avail() && !KeyTyped)) - redraw_cmdline = TRUE; /* delete mode later */ + redraw_cmdline = TRUE; // delete mode later else clearmode(); } @@ -4309,7 +4308,7 @@ draw_tabline(void) redraw_tabline = FALSE; #ifdef FEAT_GUI_TABLINE - /* Take care of a GUI tabline. */ + // Take care of a GUI tabline. if (gui_use_tabline()) { gui_update_tabline(); @@ -4323,13 +4322,13 @@ draw_tabline(void) #if defined(FEAT_STL_OPT) clear_TabPageIdxs(); - /* Use the 'tabline' option if it's set. */ + // Use the 'tabline' option if it's set. if (*p_tal != NUL) { int saved_did_emsg = did_emsg; - /* Check for an error. If there is one we would loop in redrawing the - * screen. Avoid that by making 'tabline' empty. */ + // Check for an error. If there is one we would loop in redrawing the + // screen. Avoid that by making 'tabline' empty. did_emsg = FALSE; win_redr_custom(NULL, FALSE); if (did_emsg) @@ -4404,7 +4403,7 @@ draw_tabline(void) room = scol - col + tabwidth - 1; if (room > 0) { - /* Get buffer name in NameBuff[] */ + // Get buffer name in NameBuff[] get_trans_bufname(cwp->w_buffer); shorten_dir(NameBuff); len = vim_strsize(NameBuff); @@ -4428,8 +4427,8 @@ draw_tabline(void) } screen_putchar(' ', 0, col++, attr); - /* Store the tab page number in TabPageIdxs[], so that - * jump_to_mouse() knows where each one is. */ + // Store the tab page number in TabPageIdxs[], so that + // jump_to_mouse() knows where each one is. ++tabcount; while (scol < col) TabPageIdxs[scol++] = tabcount; @@ -4441,7 +4440,7 @@ draw_tabline(void) c = ' '; screen_fill(0, 1, col, (int)Columns, c, c, attr_fill); - /* Put an "X" for closing the current tab if there are several. */ + // Put an "X" for closing the current tab if there are several. if (first_tabpage->tp_next != NULL) { screen_putchar('X', 0, (int)Columns - 1, attr_nosel); @@ -4449,8 +4448,8 @@ draw_tabline(void) } } - /* Reset the flag here again, in case evaluating 'tabline' causes it to be - * set. */ + // Reset the flag here again, in case evaluating 'tabline' causes it to be + // set. redraw_tabline = FALSE; } @@ -4502,9 +4501,9 @@ fillchar_status(int *attr, win_T *wp) *attr = HL_ATTR(HLF_SNC); fill = fill_stlnc; } - /* Use fill when there is highlighting, and highlighting of current - * window differs, or the fillchars differ, or this is not the - * current window */ + // Use fill when there is highlighting, and highlighting of current + // window differs, or the fillchars differ, or this is not the + // current window if (*attr != 0 && ((HL_ATTR(HLF_S) != HL_ATTR(HLF_SNC) || wp != curwin || ONE_WINDOW) || (fill_stl != fill_stlnc))) @@ -4617,10 +4616,10 @@ number_width(win_T *wp) linenr_T lnum; if (wp->w_p_rnu && !wp->w_p_nu) - /* cursor line shows "0" */ + // cursor line shows "0" lnum = wp->w_height; else - /* cursor line shows absolute line number */ + // cursor line shows absolute line number lnum = wp->w_buffer->b_ml.ml_line_count; if (lnum == wp->w_nrwidth_line_count && wp->w_nuw_cached == wp->w_p_nuw) @@ -4634,7 +4633,7 @@ number_width(win_T *wp) ++n; } while (lnum > 0); - /* 'numberwidth' gives the minimal width plus one */ + // 'numberwidth' gives the minimal width plus one if (n < wp->w_p_nuw - 1) n = wp->w_p_nuw - 1; diff --git a/src/search.c b/src/search.c --- a/src/search.c +++ b/src/search.c @@ -55,28 +55,28 @@ static void search_stat(int dirc, pos_T */ static spat_T spats[2] = { - {NULL, TRUE, FALSE, {'/', 0, 0, 0L}}, /* last used search pat */ - {NULL, TRUE, FALSE, {'/', 0, 0, 0L}} /* last used substitute pat */ + {NULL, TRUE, FALSE, {'/', 0, 0, 0L}}, // last used search pat + {NULL, TRUE, FALSE, {'/', 0, 0, 0L}} // last used substitute pat }; -static int last_idx = 0; /* index in spats[] for RE_LAST */ - -static char_u lastc[2] = {NUL, NUL}; /* last character searched for */ -static int lastcdir = FORWARD; /* last direction of character search */ -static int last_t_cmd = TRUE; /* last search t_cmd */ +static int last_idx = 0; // index in spats[] for RE_LAST + +static char_u lastc[2] = {NUL, NUL}; // last character searched for +static int lastcdir = FORWARD; // last direction of character search +static int last_t_cmd = TRUE; // last search t_cmd static char_u lastc_bytes[MB_MAXBYTES + 1]; -static int lastc_bytelen = 1; /* >1 for multi-byte char */ - -/* copy of spats[], for keeping the search patterns while executing autocmds */ +static int lastc_bytelen = 1; // >1 for multi-byte char + +// copy of spats[], for keeping the search patterns while executing autocmds static spat_T saved_spats[2]; # ifdef FEAT_SEARCH_EXTRA static int saved_spats_last_idx = 0; static int saved_spats_no_hlsearch = 0; # endif -static char_u *mr_pattern = NULL; /* pattern used by search_regcomp() */ +static char_u *mr_pattern = NULL; // pattern used by search_regcomp() #ifdef FEAT_RIGHTLEFT -static int mr_pattern_alloced = FALSE; /* mr_pattern was allocated */ +static int mr_pattern_alloced = FALSE; // mr_pattern was allocated #endif #ifdef FEAT_FIND_ID @@ -86,10 +86,10 @@ static int mr_pattern_alloced = FALS */ typedef struct SearchedFile { - FILE *fp; /* File pointer */ - char_u *name; /* Full name of file */ - linenr_T lnum; /* Line we were up to in file */ - int matched; /* Found a match in this file */ + FILE *fp; // File pointer + char_u *name; // Full name of file + linenr_T lnum; // Line we were up to in file + int matched; // Found a match in this file } SearchedFile; #endif @@ -113,7 +113,7 @@ search_regcomp( int pat_save, int pat_use, int options, - regmmatch_T *regmatch) /* return: pattern and ignore-case flag */ + regmmatch_T *regmatch) // return: pattern and ignore-case flag { int magic; int i; @@ -130,7 +130,7 @@ search_regcomp( i = last_idx; else i = pat_use; - if (spats[i].pat == NULL) /* pattern was never defined */ + if (spats[i].pat == NULL) // pattern was never defined { if (pat_use == RE_SUBST) emsg(_(e_nopresub)); @@ -143,7 +143,7 @@ search_regcomp( magic = spats[i].magic; no_smartcase = spats[i].no_scs; } - else if (options & SEARCH_HIS) /* put new pattern in history */ + else if (options & SEARCH_HIS) // put new pattern in history add_to_history(HIST_SEARCH, pat, TRUE, NUL); #ifdef FEAT_RIGHTLEFT @@ -159,7 +159,7 @@ search_regcomp( rev_pattern = reverse_text(pat); if (rev_pattern == NULL) - mr_pattern = pat; /* out of memory, keep normal pattern. */ + mr_pattern = pat; // out of memory, keep normal pattern. else { mr_pattern = rev_pattern; @@ -176,10 +176,10 @@ search_regcomp( */ if (!(options & SEARCH_KEEP) && !cmdmod.keeppatterns) { - /* search or global command */ + // search or global command if (pat_save == RE_SEARCH || pat_save == RE_BOTH) save_re_pat(RE_SEARCH, pat, magic); - /* substitute or global command */ + // substitute or global command if (pat_save == RE_SUBST || pat_save == RE_BOTH) save_re_pat(RE_SUBST, pat, magic); } @@ -253,7 +253,7 @@ save_re_pat(int idx, char_u *pat, int ma spats[idx].no_scs = no_smartcase; last_idx = idx; #ifdef FEAT_SEARCH_EXTRA - /* If 'hlsearch' set and search pat changed: need redraw. */ + // If 'hlsearch' set and search pat changed: need redraw. if (p_hls) redraw_all_later(SOME_VALID); set_no_hlsearch(FALSE); @@ -426,11 +426,11 @@ pat_has_uppercase(char_u *pat) } else if (*p == '\\') { - if (p[1] == '_' && p[2] != NUL) /* skip "\_X" */ + if (p[1] == '_' && p[2] != NUL) // skip "\_X" p += 3; - else if (p[1] == '%' && p[2] != NUL) /* skip "\%X" */ + else if (p[1] == '%' && p[2] != NUL) // skip "\%X" p += 3; - else if (p[1] != NUL) /* skip "\X" */ + else if (p[1] != NUL) // skip "\X" p += 2; else p += 1; @@ -517,7 +517,7 @@ set_last_search_pat( int setlast) { vim_free(spats[idx].pat); - /* An empty string means that nothing should be matched. */ + // An empty string means that nothing should be matched. if (*s == NUL) spats[idx].pat = NULL; else @@ -546,7 +546,7 @@ set_last_search_pat( # endif } # ifdef FEAT_SEARCH_EXTRA - /* If 'hlsearch' set and search pat changed: need redraw. */ + // If 'hlsearch' set and search pat changed: need redraw. if (p_hls && idx == last_idx && !no_hlsearch) redraw_all_later(SOME_VALID); # endif @@ -567,7 +567,7 @@ last_pat_prog(regmmatch_T *regmatch) regmatch->regprog = NULL; return; } - ++emsg_off; /* So it doesn't beep if bad expr */ + ++emsg_off; // So it doesn't beep if bad expr (void)search_regcomp((char_u *)"", 0, last_idx, SEARCH_KEEP, regmatch); --emsg_off; } @@ -608,7 +608,7 @@ searchit( searchit_arg_T *extra_arg) // optional extra arguments, can be NULL { int found; - linenr_T lnum; /* no init to shut up Apollo cc */ + linenr_T lnum; // no init to shut up Apollo cc colnr_T col; regmmatch_T regmatch; char_u *ptr; @@ -655,14 +655,14 @@ searchit( * find the string */ called_emsg = FALSE; - do /* loop for count */ + do // loop for count { - /* When not accepting a match at the start position set "extra_col" to - * a non-zero value. Don't do that when starting at MAXCOL, since - * MAXCOL + 1 is zero. */ + // When not accepting a match at the start position set "extra_col" to + // a non-zero value. Don't do that when starting at MAXCOL, since + // MAXCOL + 1 is zero. if (pos->col == MAXCOL) start_char_len = 0; - /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */ + // Watch out for the "col" being MAXCOL - 2, used in a closed fold. else if (has_mbyte && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count && pos->col < MAXCOL - 2) @@ -690,14 +690,14 @@ searchit( extra_col = 0; } - start_pos = *pos; /* remember start pos for detecting no match */ - found = 0; /* default: not found */ - at_first_line = TRUE; /* default: start in first line */ - if (pos->lnum == 0) /* correct lnum for when starting in line 0 */ + start_pos = *pos; // remember start pos for detecting no match + found = 0; // default: not found + at_first_line = TRUE; // default: start in first line + if (pos->lnum == 0) // correct lnum for when starting in line 0 { pos->lnum = 1; pos->col = 0; - at_first_line = FALSE; /* not in first line now */ + at_first_line = FALSE; // not in first line now } /* @@ -716,17 +716,17 @@ searchit( else lnum = pos->lnum; - for (loop = 0; loop <= 1; ++loop) /* loop twice if 'wrapscan' set */ + for (loop = 0; loop <= 1; ++loop) // loop twice if 'wrapscan' set { for ( ; lnum > 0 && lnum <= buf->b_ml.ml_line_count; lnum += dir, at_first_line = FALSE) { - /* Stop after checking "stop_lnum", if it's set. */ + // Stop after checking "stop_lnum", if it's set. if (stop_lnum != 0 && (dir == FORWARD ? lnum > stop_lnum : lnum < stop_lnum)) break; #ifdef FEAT_RELTIME - /* Stop after passing the "tm" time limit. */ + // Stop after passing the "tm" time limit. if (tm != NULL && profile_passed_limit(tm)) break; #endif @@ -744,7 +744,7 @@ searchit( NULL, NULL #endif ); - /* Abort searching on an error (e.g., out of stack). */ + // Abort searching on an error (e.g., out of stack). if (called_emsg #ifdef FEAT_RELTIME || (timed_out != NULL && *timed_out) @@ -753,13 +753,13 @@ searchit( break; if (nmatched > 0) { - /* match may actually be in another line when using \zs */ + // match may actually be in another line when using \zs matchpos = regmatch.startpos[0]; endpos = regmatch.endpos[0]; #ifdef FEAT_EVAL submatch = first_submatch(®match); #endif - /* "lnum" may be past end of buffer for "\n\zs". */ + // "lnum" may be past end of buffer for "\n\zs". if (lnum + matchpos.lnum > buf->b_ml.ml_line_count) ptr = (char_u *)""; else @@ -798,13 +798,13 @@ searchit( { if (nmatched > 1) { - /* end is in next line, thus no match in - * this line */ + // end is in next line, thus no match in + // this line match_ok = FALSE; break; } matchcol = endpos.col; - /* for empty match: advance one char */ + // for empty match: advance one char if (matchcol == matchpos.col && ptr[matchcol] != NUL) { @@ -849,8 +849,8 @@ searchit( submatch = first_submatch(®match); # endif - /* Need to get the line pointer again, a - * multi-line search may have made it invalid. */ + // Need to get the line pointer again, a + // multi-line search may have made it invalid. ptr = ml_get_buf(buf, lnum + matchpos.lnum, FALSE); } if (!match_ok) @@ -868,10 +868,10 @@ searchit( match_ok = FALSE; for (;;) { - /* Remember a position that is before the start - * position, we use it if it's the last match in - * the line. Always accept a position after - * wrapping around. */ + // Remember a position that is before the start + // position, we use it if it's the last match in + // the line. Always accept a position after + // wrapping around. if (loop || ((options & SEARCH_END) ? (lnum + regmatch.endpos[0].lnum @@ -911,7 +911,7 @@ searchit( if (nmatched > 1) break; matchcol = endpos.col; - /* for empty match: advance one char */ + // for empty match: advance one char if (matchcol == matchpos.col && ptr[matchcol] != NUL) { @@ -924,7 +924,7 @@ searchit( } else { - /* Stop when the match is in a next line. */ + // Stop when the match is in a next line. if (matchpos.lnum > 0) break; matchcol = matchpos.col; @@ -949,17 +949,17 @@ searchit( )) == 0) { #ifdef FEAT_RELTIME - /* If the search timed out, we did find a match - * but it might be the wrong one, so that's not - * OK. */ + // If the search timed out, we did find a match + // but it might be the wrong one, so that's not + // OK. if (timed_out != NULL && *timed_out) match_ok = FALSE; #endif break; } - /* Need to get the line pointer again, a - * multi-line search may have made it invalid. */ + // Need to get the line pointer again, a + // multi-line search may have made it invalid. ptr = ml_get_buf(buf, lnum + matchpos.lnum, FALSE); } @@ -971,20 +971,20 @@ searchit( continue; } - /* With the SEARCH_END option move to the last character - * of the match. Don't do it for an empty match, end - * should be same as start then. */ + // With the SEARCH_END option move to the last character + // of the match. Don't do it for an empty match, end + // should be same as start then. if ((options & SEARCH_END) && !(options & SEARCH_NOOF) && !(matchpos.lnum == endpos.lnum && matchpos.col == endpos.col)) { - /* For a match in the first column, set the position - * on the NUL in the previous line. */ + // For a match in the first column, set the position + // on the NUL in the previous line. pos->lnum = lnum + endpos.lnum; pos->col = endpos.col; if (endpos.col == 0) { - if (pos->lnum > 1) /* just in case */ + if (pos->lnum > 1) // just in case { --pos->lnum; pos->col = (colnr_T)STRLEN(ml_get_buf(buf, @@ -1023,19 +1023,19 @@ searchit( found = 1; first_match = FALSE; - /* Set variables used for 'incsearch' highlighting. */ + // Set variables used for 'incsearch' highlighting. search_match_lines = endpos.lnum - matchpos.lnum; search_match_endcol = endpos.col; break; } - line_breakcheck(); /* stop if ctrl-C typed */ + line_breakcheck(); // stop if ctrl-C typed if (got_int) break; #ifdef FEAT_SEARCH_EXTRA - /* Cancel searching if a character was typed. Used for - * 'incsearch'. Don't check too often, that would slowdown - * searching too much. */ + // Cancel searching if a character was typed. Used for + // 'incsearch'. Don't check too often, that would slowdown + // searching too much. if ((options & SEARCH_PEEK) && ((lnum - pos->lnum) & 0x3f) == 0 && char_avail()) @@ -1046,7 +1046,7 @@ searchit( #endif if (loop && lnum == start_pos.lnum) - break; /* if second loop, stop where started */ + break; // if second loop, stop where started } at_first_line = FALSE; @@ -1072,7 +1072,7 @@ searchit( * is redrawn. The keep_msg is cleared whenever another message is * written. */ - if (dir == BACKWARD) /* start second loop at the other end */ + if (dir == BACKWARD) // start second loop at the other end lnum = buf->b_ml.ml_line_count; else lnum = 1; @@ -1092,13 +1092,13 @@ searchit( ) break; } - while (--count > 0 && found); /* stop after count matches or no match */ + while (--count > 0 && found); // stop after count matches or no match vim_regfree(regmatch.regprog); called_emsg |= save_called_emsg; - if (!found) /* did not find it */ + if (!found) // did not find it { if (got_int) emsg(_(e_interr)); @@ -1116,7 +1116,7 @@ searchit( return FAIL; } - /* A pattern like "\n\zs" may go past the last line. */ + // A pattern like "\n\zs" may go past the last line. if (pos->lnum > buf->b_ml.ml_line_count) { pos->lnum = buf->b_ml.ml_line_count; @@ -1187,17 +1187,17 @@ first_submatch(regmmatch_T *rp) */ int do_search( - oparg_T *oap, /* can be NULL */ - int dirc, /* '/' or '?' */ + oparg_T *oap, // can be NULL + int dirc, // '/' or '?' char_u *pat, long count, int options, searchit_arg_T *sia) // optional arguments or NULL { - pos_T pos; /* position of the last match */ + pos_T pos; // position of the last match char_u *searchstr; soffset_T old_off; - int retval; /* Return value */ + int retval; // Return value char_u *p; long c; char_u *dircp; @@ -1223,7 +1223,7 @@ do_search( */ old_off = spats[0].off; - pos = curwin->w_cursor; /* start searching at the cursor position */ + pos = curwin->w_cursor; // start searching at the cursor position /* * Find out the direction of the search. @@ -1240,8 +1240,8 @@ do_search( if (options & SEARCH_REV) { #ifdef MSWIN - /* There is a bug in the Visual C++ 2.2 compiler which means that - * dirc always ends up being '/' */ + // There is a bug in the Visual C++ 2.2 compiler which means that + // dirc always ends up being '/' dirc = (dirc == '/') ? '?' : '/'; #else if (dirc == '/') @@ -1252,12 +1252,12 @@ do_search( } #ifdef FEAT_FOLDING - /* If the cursor is in a closed fold, don't find another match in the same - * fold. */ + // If the cursor is in a closed fold, don't find another match in the same + // fold. if (dirc == '/') { if (hasFolding(pos.lnum, NULL, &pos.lnum)) - pos.col = MAXCOL - 2; /* avoid overflow when adding 1 */ + pos.col = MAXCOL - 2; // avoid overflow when adding 1 } else { @@ -1286,10 +1286,10 @@ do_search( searchstr = pat; dircp = NULL; - /* use previous pattern */ + // use previous pattern if (pat == NULL || *pat == NUL || *pat == dirc) { - if (spats[RE_SEARCH].pat == NULL) /* no previous pattern */ + if (spats[RE_SEARCH].pat == NULL) // no previous pattern { searchstr = spats[RE_SUBST].pat; if (searchstr == NULL) @@ -1301,12 +1301,12 @@ do_search( } else { - /* make search_regcomp() use spats[RE_SEARCH].pat */ + // make search_regcomp() use spats[RE_SEARCH].pat searchstr = (char_u *)""; } } - if (pat != NULL && *pat != NUL) /* look for (new) offset */ + if (pat != NULL && *pat != NUL) // look for (new) offset { /* * Find end of regular expression. @@ -1316,14 +1316,14 @@ do_search( p = skip_regexp(pat, dirc, (int)p_magic, &strcopy); if (strcopy != ps) { - /* made a copy of "pat" to change "\?" to "?" */ + // made a copy of "pat" to change "\?" to "?" searchcmdlen += (int)(STRLEN(pat) - STRLEN(strcopy)); pat = strcopy; searchstr = strcopy; } if (*p == dirc) { - dircp = p; /* remember where we put the NUL */ + dircp = p; // remember where we put the NUL *p++ = NUL; } spats[0].off.line = FALSE; @@ -1340,28 +1340,28 @@ do_search( else if ((options & SEARCH_OPT) && (*p == 'e' || *p == 's' || *p == 'b')) { - if (*p == 'e') /* end */ + if (*p == 'e') // end spats[0].off.end = SEARCH_END; ++p; } - if (VIM_ISDIGIT(*p) || *p == '+' || *p == '-') /* got an offset */ + if (VIM_ISDIGIT(*p) || *p == '+' || *p == '-') // got an offset { - /* 'nr' or '+nr' or '-nr' */ + // 'nr' or '+nr' or '-nr' if (VIM_ISDIGIT(*p) || VIM_ISDIGIT(*(p + 1))) spats[0].off.off = atol((char *)p); - else if (*p == '-') /* single '-' */ + else if (*p == '-') // single '-' spats[0].off.off = -1; - else /* single '+' */ + else // single '+' spats[0].off.off = 1; ++p; - while (VIM_ISDIGIT(*p)) /* skip number */ + while (VIM_ISDIGIT(*p)) // skip number ++p; } - /* compute length of search command for get_address() */ + // compute length of search command for get_address() searchcmdlen += (int)(p - pat); - pat = p; /* put pat after search command */ + pat = p; // put pat after search command } if ((options & SEARCH_ECHO) && messaging() && @@ -1499,9 +1499,9 @@ do_search( for (c = spats[0].off.off; c; --c) if (decl(&pos) == -1) break; - if (c) /* at start of buffer */ + if (c) // at start of buffer { - pos.lnum = 0; /* allow lnum == 0 here */ + pos.lnum = 0; // allow lnum == 0 here pos.col = MAXCOL; } } @@ -1510,7 +1510,7 @@ do_search( for (c = spats[0].off.off; c; ++c) if (incl(&pos) == -1) break; - if (c) /* at end of buffer */ + if (c) // at end of buffer { pos.lnum = curbuf->b_ml.ml_line_count + 1; pos.col = 0; @@ -1540,9 +1540,9 @@ do_search( goto end_do_search; } if (spats[0].off.end && oap != NULL) - oap->inclusive = TRUE; /* 'e' includes last character */ - - retval = 1; /* pattern found */ + oap->inclusive = TRUE; // 'e' includes last character + + retval = 1; // pattern found /* * Add character and/or line offset @@ -1551,7 +1551,7 @@ do_search( { pos_T org_pos = pos; - if (spats[0].off.line) /* Add the offset to the line number. */ + if (spats[0].off.line) // Add the offset to the line number. { c = pos.lnum + spats[0].off.off; if (c < 1) @@ -1562,11 +1562,11 @@ do_search( pos.lnum = c; pos.col = 0; - retval = 2; /* pattern found, line offset added */ + retval = 2; // pattern found, line offset added } - else if (pos.col < MAXCOL - 2) /* just in case */ + else if (pos.col < MAXCOL - 2) // just in case { - /* to the right, check for end of file */ + // to the right, check for end of file c = spats[0].off.off; if (c > 0) { @@ -1574,7 +1574,7 @@ do_search( if (incl(&pos) == -1) break; } - /* to the left, check for start of file */ + // to the left, check for start of file else { while (c++ < 0) @@ -1692,16 +1692,16 @@ search_for_exact_line( p = skipwhite(ptr); pos->col = (colnr_T) (p - ptr); - /* when adding lines the matching line may be empty but it is not - * ignored because we are interested in the next line -- Acevedo */ + // when adding lines the matching line may be empty but it is not + // ignored because we are interested in the next line -- Acevedo if ((compl_cont_status & CONT_ADDING) && !(compl_cont_status & CONT_SOL)) { if ((p_ic ? MB_STRICMP(p, pat) : STRCMP(p, pat)) == 0) return OK; } - else if (*p != NUL) /* ignore empty lines */ - { /* expanding lines or words */ + else if (*p != NUL) // ignore empty lines + { // expanding lines or words if ((p_ic ? MB_STRNICMP(p, pat, compl_length) : STRNCMP(p, pat, compl_length)) == 0) return OK; @@ -1723,17 +1723,17 @@ search_for_exact_line( int searchc(cmdarg_T *cap, int t_cmd) { - int c = cap->nchar; /* char to search for */ - int dir = cap->arg; /* TRUE for searching forward */ - long count = cap->count1; /* repeat count */ + int c = cap->nchar; // char to search for + int dir = cap->arg; // TRUE for searching forward + long count = cap->count1; // repeat count int col; char_u *p; int len; int stop = TRUE; - if (c != NUL) /* normal search: remember args for repeat */ + if (c != NUL) // normal search: remember args for repeat { - if (!KeyStuffed) /* don't remember when redoing */ + if (!KeyStuffed) // don't remember when redoing { *lastc = c; set_csearch_direction(dir); @@ -1749,21 +1749,21 @@ searchc(cmdarg_T *cap, int t_cmd) } } } - else /* repeat previous search */ + else // repeat previous search { if (*lastc == NUL && lastc_bytelen == 1) return FAIL; - if (dir) /* repeat in opposite direction */ + if (dir) // repeat in opposite direction dir = -lastcdir; else dir = lastcdir; t_cmd = last_t_cmd; c = *lastc; - /* For multi-byte re-use last lastc_bytes[] and lastc_bytelen. */ - - /* Force a move of at least one char, so ";" and "," will move the - * cursor, even if the cursor is right in front of char we are looking - * at. */ + // For multi-byte re-use last lastc_bytes[] and lastc_bytelen. + + // Force a move of at least one char, so ";" and "," will move the + // cursor, even if the cursor is right in front of char we are looking + // at. if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1 && t_cmd) stop = FALSE; } @@ -1821,15 +1821,15 @@ searchc(cmdarg_T *cap, int t_cmd) if (t_cmd) { - /* backup to before the character (possibly double-byte) */ + // backup to before the character (possibly double-byte) col -= dir; if (has_mbyte) { if (dir < 0) - /* Landed on the search char which is lastc_bytelen long */ + // Landed on the search char which is lastc_bytelen long col += lastc_bytelen - 1; else - /* To previous char, which may be multi-byte. */ + // To previous char, which may be multi-byte. col -= (*mb_head_off)(p, p + col); } } @@ -2041,31 +2041,31 @@ findmatchlimit( int flags, int maxtravel) { - static pos_T pos; /* current search position */ - int findc = 0; /* matching brace */ + static pos_T pos; // current search position + int findc = 0; // matching brace int c; - int count = 0; /* cumulative number of braces */ - int backwards = FALSE; /* init for gcc */ - int raw_string = FALSE; /* search for raw string */ - int inquote = FALSE; /* TRUE when inside quotes */ - char_u *linep; /* pointer to current line */ + int count = 0; // cumulative number of braces + int backwards = FALSE; // init for gcc + int raw_string = FALSE; // search for raw string + int inquote = FALSE; // TRUE when inside quotes + char_u *linep; // pointer to current line char_u *ptr; - int do_quotes; /* check for quotes in current line */ - int at_start; /* do_quotes value at start position */ - int hash_dir = 0; /* Direction searched for # things */ - int comment_dir = 0; /* Direction searched for comments */ - pos_T match_pos; /* Where last slash-star was found */ - int start_in_quotes; /* start position is in quotes */ - int traveled = 0; /* how far we've searched so far */ - int ignore_cend = FALSE; /* ignore comment end */ - int cpo_match; /* vi compatible matching */ - int cpo_bsl; /* don't recognize backslashes */ - int match_escaped = 0; /* search for escaped match */ - int dir; /* Direction to search */ - int comment_col = MAXCOL; /* start of / / comment */ + int do_quotes; // check for quotes in current line + int at_start; // do_quotes value at start position + int hash_dir = 0; // Direction searched for # things + int comment_dir = 0; // Direction searched for comments + pos_T match_pos; // Where last slash-star was found + int start_in_quotes; // start position is in quotes + int traveled = 0; // how far we've searched so far + int ignore_cend = FALSE; // ignore comment end + int cpo_match; // vi compatible matching + int cpo_bsl; // don't recognize backslashes + int match_escaped = 0; // search for escaped match + int dir; // Direction to search + int comment_col = MAXCOL; // start of / / comment #ifdef FEAT_LISP - int lispcomm = FALSE; /* inside of Lisp-style comment */ - int lisp = curbuf->b_p_lisp; /* engage Lisp-specific hacks ;) */ + int lispcomm = FALSE; // inside of Lisp-style comment + int lisp = curbuf->b_p_lisp; // engage Lisp-specific hacks ;) #endif pos = curwin->w_cursor; @@ -2075,7 +2075,7 @@ findmatchlimit( cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL); cpo_bsl = (vim_strchr(p_cpo, CPO_MATCHBSL) != NULL); - /* Direction to search when initc is '/', '*' or '#' */ + // Direction to search when initc is '/', '*' or '#' if (flags & FM_BACKWARD) dir = BACKWARD; else if (flags & FM_FORWARD) @@ -2123,7 +2123,7 @@ findmatchlimit( */ if (!cpo_match) { - /* Are we before or at #if, #else etc.? */ + // Are we before or at #if, #else etc.? ptr = skipwhite(linep); if (*ptr == '#' && pos.col <= (colnr_T)(ptr - linep)) { @@ -2134,7 +2134,7 @@ findmatchlimit( hash_dir = 1; } - /* Are we on a comment? */ + // Are we on a comment? else if (linep[pos.col] == '/') { if (linep[pos.col + 1] == '*') @@ -2191,7 +2191,7 @@ findmatchlimit( } if (!findc) { - /* no brace in the line, maybe use " #if" then */ + // no brace in the line, maybe use " #if" then if (!cpo_match && *skipwhite(linep) == '#') hash_dir = 1; else @@ -2201,8 +2201,8 @@ findmatchlimit( { int col, bslcnt = 0; - /* Set "match_escaped" if there are an odd number of - * backslashes. */ + // Set "match_escaped" if there are an odd number of + // backslashes. for (col = pos.col; check_prevcol(linep, col, '\\', &col);) bslcnt++; match_escaped = (bslcnt & 1); @@ -2215,7 +2215,7 @@ findmatchlimit( * Look for matching #if, #else, #elif, or #endif */ if (oap != NULL) - oap->motion_type = MLINE; /* Linewise for this case only */ + oap->motion_type = MLINE; // Linewise for this case only if (initc != '#') { ptr = skipwhite(skipwhite(linep) + 1); @@ -2238,7 +2238,7 @@ findmatchlimit( break; pos.lnum += hash_dir; linep = ml_get(pos.lnum); - line_breakcheck(); /* check for CTRL-C typed */ + line_breakcheck(); // check for CTRL-C typed ptr = skipwhite(linep); if (*ptr != '#') continue; @@ -2282,8 +2282,8 @@ findmatchlimit( } #ifdef FEAT_RIGHTLEFT - /* This is just guessing: when 'rightleft' is set, search for a matching - * paren/brace in the other direction. */ + // This is just guessing: when 'rightleft' is set, search for a matching + // paren/brace in the other direction. if (curwin->w_p_rl && vim_strchr((char_u *)"()[]{}<>", initc) != NULL) backwards = !backwards; #endif @@ -2292,7 +2292,7 @@ findmatchlimit( start_in_quotes = MAYBE; CLEAR_POS(&match_pos); - /* backward search: Check if this line contains a single-line comment */ + // backward search: Check if this line contains a single-line comment if ((backwards && comment_dir) #ifdef FEAT_LISP || lisp @@ -2301,7 +2301,7 @@ findmatchlimit( comment_col = check_linecomment(linep); #ifdef FEAT_LISP if (lisp && comment_col != MAXCOL && pos.col > (colnr_T)comment_col) - lispcomm = TRUE; /* find match inside this comment */ + lispcomm = TRUE; // find match inside this comment #endif while (!got_int) { @@ -2312,13 +2312,13 @@ findmatchlimit( if (backwards) { #ifdef FEAT_LISP - /* char to match is inside of comment, don't search outside */ + // char to match is inside of comment, don't search outside if (lispcomm && pos.col < (colnr_T)comment_col) break; #endif - if (pos.col == 0) /* at start of line, go to prev. one */ + if (pos.col == 0) // at start of line, go to prev. one { - if (pos.lnum == 1) /* start of file */ + if (pos.lnum == 1) // start of file break; --pos.lnum; @@ -2326,11 +2326,11 @@ findmatchlimit( break; linep = ml_get(pos.lnum); - pos.col = (colnr_T)STRLEN(linep); /* pos.col on trailing NUL */ + pos.col = (colnr_T)STRLEN(linep); // pos.col on trailing NUL do_quotes = -1; line_breakcheck(); - /* Check if this line contains a single-line comment */ + // Check if this line contains a single-line comment if (comment_dir #ifdef FEAT_LISP || lisp @@ -2338,7 +2338,7 @@ findmatchlimit( ) comment_col = check_linecomment(linep); #ifdef FEAT_LISP - /* skip comment */ + // skip comment if (lisp && comment_col != MAXCOL) pos.col = comment_col; #endif @@ -2350,21 +2350,21 @@ findmatchlimit( pos.col -= (*mb_head_off)(linep, linep + pos.col); } } - else /* forward search */ + else // forward search { if (linep[pos.col] == NUL - /* at end of line, go to next one */ + // at end of line, go to next one #ifdef FEAT_LISP - /* don't search for match in comment */ + // don't search for match in comment || (lisp && comment_col != MAXCOL && pos.col == (colnr_T)comment_col) #endif ) { - if (pos.lnum == curbuf->b_ml.ml_line_count /* end of file */ + if (pos.lnum == curbuf->b_ml.ml_line_count // end of file #ifdef FEAT_LISP - /* line is exhausted and comment with it, - * don't search for match in code */ + // line is exhausted and comment with it, + // don't search for match in code || lispcomm #endif ) @@ -2379,7 +2379,7 @@ findmatchlimit( do_quotes = -1; line_breakcheck(); #ifdef FEAT_LISP - if (lisp) /* find comment pos in new line */ + if (lisp) // find comment pos in new line comment_col = check_linecomment(linep); #endif } @@ -2398,15 +2398,15 @@ findmatchlimit( if (pos.col == 0 && (flags & FM_BLOCKSTOP) && (linep[0] == '{' || linep[0] == '}')) { - if (linep[0] == findc && count == 0) /* match! */ + if (linep[0] == findc && count == 0) // match! return &pos; - break; /* out of scope */ + break; // out of scope } if (comment_dir) { - /* Note: comments do not nest, and we ignore quotes in them */ - /* TODO: ignore comment brackets inside strings */ + // Note: comments do not nest, and we ignore quotes in them + // TODO: ignore comment brackets inside strings if (comment_dir == FORWARD) { if (linep[pos.col] == '*' && linep[pos.col + 1] == '/') @@ -2415,7 +2415,7 @@ findmatchlimit( return &pos; } } - else /* Searching backwards */ + else // Searching backwards { /* * A comment may contain / * or / /, it may also start or end @@ -2429,10 +2429,10 @@ findmatchlimit( && linep[pos.col] == '"' && vim_strchr(linep + pos.col + 1, '(') != NULL) { - /* Possible start of raw string. Now that we have the - * delimiter we can check if it ends before where we - * started searching, or before the previously found - * raw string start. */ + // Possible start of raw string. Now that we have the + // delimiter we can check if it ends before where we + // started searching, or before the previously found + // raw string start. if (!find_rawstring_end(linep, &pos, count > 0 ? &match_pos : &curwin->w_cursor)) { @@ -2440,7 +2440,7 @@ findmatchlimit( match_pos = pos; match_pos.col--; } - linep = ml_get(pos.lnum); /* may have been released */ + linep = ml_get(pos.lnum); // may have been released } } else if ( linep[pos.col - 1] == '/' @@ -2493,7 +2493,7 @@ findmatchlimit( if (*ptr == '\\' && ptr[1] != NUL) ++ptr; } - do_quotes &= 1; /* result is 1 with even number of quotes */ + do_quotes &= 1; // result is 1 with even number of quotes /* * If we find an uneven count, check current line and previous @@ -2507,7 +2507,7 @@ findmatchlimit( do_quotes = 1; if (start_in_quotes == MAYBE) { - /* Do we need to use at_start here? */ + // Do we need to use at_start here? inquote = TRUE; start_in_quotes = TRUE; } @@ -2530,7 +2530,7 @@ findmatchlimit( inquote = TRUE; } - /* ml_get() only keeps one line, need to get linep again */ + // ml_get() only keeps one line, need to get linep again linep = ml_get(pos.lnum); } } @@ -2553,7 +2553,7 @@ findmatchlimit( switch (c) { case NUL: - /* at end of line without trailing backslash, reset inquote */ + // at end of line without trailing backslash, reset inquote if (pos.col == 0 || linep[pos.col - 1] != '\\') { inquote = FALSE; @@ -2562,8 +2562,8 @@ findmatchlimit( break; case '"': - /* a quote that is preceded with an odd number of backslashes is - * ignored */ + // a quote that is preceded with an odd number of backslashes is + // ignored if (do_quotes) { int col; @@ -2606,7 +2606,7 @@ findmatchlimit( } } } - else if (linep[pos.col + 1]) /* forward search */ + else if (linep[pos.col + 1]) // forward search { if (linep[pos.col + 1] == '\\' && linep[pos.col + 2] && linep[pos.col + 3] == '\'') @@ -2621,7 +2621,7 @@ findmatchlimit( } } } - /* FALLTHROUGH */ + // FALLTHROUGH default: #ifdef FEAT_LISP @@ -2637,8 +2637,8 @@ findmatchlimit( break; #endif - /* Check for match outside of quotes, and inside of - * quotes when the start is also inside of quotes. */ + // Check for match outside of quotes, and inside of + // quotes when the start is also inside of quotes. if ((!inquote || start_in_quotes == TRUE) && (c == initc || c == findc)) { @@ -2649,8 +2649,8 @@ findmatchlimit( for (col = pos.col; check_prevcol(linep, col, '\\', &col);) bslcnt++; } - /* Only accept a match when 'M' is in 'cpo' or when escaping - * is what we expect. */ + // Only accept a match when 'M' is in 'cpo' or when escaping + // is what we expect. if (cpo_bsl || (bslcnt & 1) == match_escaped) { if (c == initc) @@ -2671,7 +2671,7 @@ findmatchlimit( pos = match_pos; return &pos; } - return (pos_T *)NULL; /* never found it */ + return (pos_T *)NULL; // never found it } /* @@ -2686,31 +2686,31 @@ check_linecomment(char_u *line) p = line; #ifdef FEAT_LISP - /* skip Lispish one-line comments */ + // skip Lispish one-line comments if (curbuf->b_p_lisp) { - if (vim_strchr(p, ';') != NULL) /* there may be comments */ + if (vim_strchr(p, ';') != NULL) // there may be comments { - int in_str = FALSE; /* inside of string */ - - p = line; /* scan from start */ + int in_str = FALSE; // inside of string + + p = line; // scan from start while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL) { if (*p == '"') { if (in_str) { - if (*(p - 1) != '\\') /* skip escaped quote */ + if (*(p - 1) != '\\') // skip escaped quote in_str = FALSE; } else if (p == line || ((p - line) >= 2 - /* skip #\" form */ + // skip #\" form && *(p - 1) != '\\' && *(p - 2) != '#')) in_str = TRUE; } else if (!in_str && ((p - line) < 2 || (*(p - 1) != '\\' && *(p - 2) != '#'))) - break; /* found! */ + break; // found! ++p; } } @@ -2721,8 +2721,8 @@ check_linecomment(char_u *line) #endif while ((p = vim_strchr(p, '/')) != NULL) { - /* accept a double /, unless it's preceded with * and followed by *, - * because * / / * is an end and start of a C comment */ + // accept a double /, unless it's preceded with * and followed by *, + // because * / / * is an end and start of a C comment if (p[1] == '/' && (p == line || p[-1] != '*' || p[2] != '*')) break; ++p; @@ -2741,7 +2741,7 @@ check_linecomment(char_u *line) */ void showmatch( - int c) /* char to show match for */ + int c) // char to show match for { pos_T *lpos, save_cursor; pos_T mpos; @@ -2759,7 +2759,7 @@ showmatch( /* * Only show match for chars in the 'matchpairs' option. */ - /* 'matchpairs' is "x:y,x:y" */ + // 'matchpairs' is "x:y,x:y" for (p = curbuf->b_p_mps; *p != NUL; ++p) { #ifdef FEAT_RIGHTLEFT @@ -2778,7 +2778,7 @@ showmatch( return; } - if ((lpos = findmatch(NULL, NUL)) == NULL) /* no match, so beep */ + if ((lpos = findmatch(NULL, NUL)) == NULL) // no match, so beep vim_beep(BO_MATCH); else if (lpos->lnum >= curwin->w_topline && lpos->lnum < curwin->w_botline) { @@ -2787,34 +2787,34 @@ showmatch( if (curwin->w_p_wrap || (vcol >= curwin->w_leftcol && vcol < curwin->w_leftcol + curwin->w_width)) { - mpos = *lpos; /* save the pos, update_screen() may change it */ + mpos = *lpos; // save the pos, update_screen() may change it save_cursor = curwin->w_cursor; save_so = *so; save_siso = *siso; - /* Handle "$" in 'cpo': If the ')' is typed on top of the "$", - * stop displaying the "$". */ + // Handle "$" in 'cpo': If the ')' is typed on top of the "$", + // stop displaying the "$". if (dollar_vcol >= 0 && dollar_vcol == curwin->w_virtcol) dollar_vcol = -1; - ++curwin->w_virtcol; /* do display ')' just before "$" */ - update_screen(VALID); /* show the new char first */ + ++curwin->w_virtcol; // do display ')' just before "$" + update_screen(VALID); // show the new char first save_dollar_vcol = dollar_vcol; #ifdef CURSOR_SHAPE save_state = State; State = SHOWMATCH; - ui_cursor_shape(); /* may show different cursor shape */ + ui_cursor_shape(); // may show different cursor shape #endif - curwin->w_cursor = mpos; /* move to matching char */ - *so = 0; /* don't use 'scrolloff' here */ - *siso = 0; /* don't use 'sidescrolloff' here */ + curwin->w_cursor = mpos; // move to matching char + *so = 0; // don't use 'scrolloff' here + *siso = 0; // don't use 'sidescrolloff' here showruler(FALSE); setcursor(); - cursor_on(); /* make sure that the cursor is shown */ + cursor_on(); // make sure that the cursor is shown out_flush_cursor(TRUE, FALSE); - /* Restore dollar_vcol(), because setcursor() may call curs_rows() - * which resets it if the matching position is in a previous line - * and has a higher column number. */ + // Restore dollar_vcol(), because setcursor() may call curs_rows() + // which resets it if the matching position is in a previous line + // and has a higher column number. dollar_vcol = save_dollar_vcol; /* @@ -2825,12 +2825,12 @@ showmatch( ui_delay(p_mat * 100L + 8, TRUE); else if (!char_avail()) ui_delay(p_mat * 100L + 9, FALSE); - curwin->w_cursor = save_cursor; /* restore cursor position */ + curwin->w_cursor = save_cursor; // restore cursor position *so = save_so; *siso = save_siso; #ifdef CURSOR_SHAPE State = save_state; - ui_cursor_shape(); /* may show different cursor shape */ + ui_cursor_shape(); // may show different cursor shape #endif } } @@ -2850,7 +2850,7 @@ findsent(int dir, long count) int c; int (*func)(pos_T *); int startlnum; - int noskip = FALSE; /* do not skip blanks */ + int noskip = FALSE; // do not skip blanks int cpo_J; int found_dot; @@ -2910,11 +2910,11 @@ findsent(int dir, long count) decl(&pos); } - /* remember the line where the search started */ + // remember the line where the search started startlnum = pos.lnum; cpo_J = vim_strchr(p_cpo, CPO_ENDOFSENT) != NULL; - for (;;) /* find end of sentence */ + for (;;) // find end of sentence { c = gchar_pos(&pos); if (c == NUL || (pos.col == 0 && startPS(pos.lnum, NUL, FALSE))) @@ -2936,7 +2936,7 @@ findsent(int dir, long count) && gchar_pos(&tpos) == ' '))) { pos = tpos; - if (gchar_pos(&pos) == NUL) /* skip NUL at EOL */ + if (gchar_pos(&pos) == NUL) // skip NUL at EOL inc(&pos); break; } @@ -2950,7 +2950,7 @@ findsent(int dir, long count) } } found: - /* skip white space */ + // skip white space while (!noskip && ((c = gchar_pos(&pos)) == ' ' || c == '\t')) if (incl(&pos) == -1) break; @@ -2971,21 +2971,21 @@ found: */ int findpar( - int *pincl, /* Return: TRUE if last char is to be included */ + int *pincl, // Return: TRUE if last char is to be included int dir, long count, int what, int both) { linenr_T curr; - int did_skip; /* TRUE after separating lines have been skipped */ - int first; /* TRUE on first line */ + int did_skip; // TRUE after separating lines have been skipped + int first; // TRUE on first line int posix = (vim_strchr(p_cpo, CPO_PARA) != NULL); #ifdef FEAT_FOLDING - linenr_T fold_first; /* first line of a closed fold */ - linenr_T fold_last; /* last line of a closed fold */ - int fold_skipped; /* TRUE if a closed fold was skipped this - iteration */ + linenr_T fold_first; // first line of a closed fold + linenr_T fold_last; // last line of a closed fold + int fold_skipped; // TRUE if a closed fold was skipped this + // iteration #endif curr = curwin->w_cursor.lnum; @@ -2999,7 +2999,7 @@ findpar( did_skip = TRUE; #ifdef FEAT_FOLDING - /* skip folded lines */ + // skip folded lines fold_skipped = FALSE; if (first && hasFolding(curr, &fold_first, &fold_last)) { @@ -3008,9 +3008,9 @@ findpar( } #endif - /* POSIX has its own ideas of what a paragraph boundary is and it - * doesn't match historical Vi: It also stops at a "{" in the - * first column and at an empty line. */ + // POSIX has its own ideas of what a paragraph boundary is and it + // doesn't match historical Vi: It also stops at a "{" in the + // first column and at an empty line. if (!first && did_skip && (startPS(curr, what, both) || (posix && what == NUL && *ml_get(curr) == '{'))) break; @@ -3029,15 +3029,15 @@ findpar( } } setpcmark(); - if (both && *ml_get(curr) == '}') /* include line with '}' */ + if (both && *ml_get(curr) == '}') // include line with '}' ++curr; curwin->w_cursor.lnum = curr; if (curr == curbuf->b_ml.ml_line_count && what != '}') { char_u *line = ml_get(curr); - /* Put the cursor on the last character in the last line and make the - * motion inclusive. */ + // Put the cursor on the last character in the last line and make the + // motion inclusive. if ((curwin->w_cursor.col = (colnr_T)STRLEN(line)) != 0) { --curwin->w_cursor.col; @@ -3061,9 +3061,9 @@ inmacro(char_u *opt, char_u *s) for (macro = opt; macro[0]; ++macro) { - /* Accept two characters in the option being equal to two characters - * in the line. A space in the option matches with a space in the - * line or the line having ended. */ + // Accept two characters in the option being equal to two characters + // in the line. A space in the option matches with a space in the + // line or the line having ended. if ( (macro[0] == s[0] || (macro[0] == ' ' && (s[0] == NUL || s[0] == ' '))) @@ -3113,7 +3113,7 @@ startPS(linenr_T lnum, int para, int bot * 2 or higher - keyword characters (letters, digits and underscore) */ -static int cls_bigword; /* TRUE for "W", "B" or "E" */ +static int cls_bigword; // TRUE for "W", "B" or "E" /* * cls() - returns the class of character at curwin->w_cursor @@ -3132,11 +3132,11 @@ cls(void) return 0; if (enc_dbcs != 0 && c > 0xFF) { - /* If cls_bigword, report multi-byte chars as class 1. */ + // If cls_bigword, report multi-byte chars as class 1. if (enc_dbcs == DBCS_KOR && cls_bigword) return 1; - /* process code leading/trailing bytes */ + // process code leading/trailing bytes return dbcs_class(((unsigned)c >> 8), (c & 0xFF)); } if (enc_utf8) @@ -3147,7 +3147,7 @@ cls(void) return c; } - /* If cls_bigword is TRUE, report all non-blanks as class 1. */ + // If cls_bigword is TRUE, report all non-blanks as class 1. if (cls_bigword) return 1; @@ -3166,10 +3166,10 @@ cls(void) int fwd_word( long count, - int bigword, /* "W", "E" or "B" */ + int bigword, // "W", "E" or "B" int eol) { - int sclass; /* starting class */ + int sclass; // starting class int i; int last_line; @@ -3178,8 +3178,8 @@ fwd_word( while (--count >= 0) { #ifdef FEAT_FOLDING - /* When inside a range of folded lines, move to the last char of the - * last line. */ + // When inside a range of folded lines, move to the last char of the + // last line. if (hasFolding(curwin->w_cursor.lnum, NULL, &curwin->w_cursor.lnum)) coladvance((colnr_T)MAXCOL); #endif @@ -3191,9 +3191,9 @@ fwd_word( */ last_line = (curwin->w_cursor.lnum == curbuf->b_ml.ml_line_count); i = inc_cursor(); - if (i == -1 || (i >= 1 && last_line)) /* started at last char in file */ + if (i == -1 || (i >= 1 && last_line)) // started at last char in file return FAIL; - if (i >= 1 && eol && count == 0) /* started at last char in line */ + if (i >= 1 && eol && count == 0) // started at last char in line return OK; /* @@ -3236,20 +3236,20 @@ fwd_word( int bck_word(long count, int bigword, int stop) { - int sclass; /* starting class */ + int sclass; // starting class curwin->w_cursor.coladd = 0; cls_bigword = bigword; while (--count >= 0) { #ifdef FEAT_FOLDING - /* When inside a range of folded lines, move to the first char of the - * first line. */ + // When inside a range of folded lines, move to the first char of the + // first line. if (hasFolding(curwin->w_cursor.lnum, &curwin->w_cursor.lnum, NULL)) curwin->w_cursor.col = 0; #endif sclass = cls(); - if (dec_cursor() == -1) /* started at start of file */ + if (dec_cursor() == -1) // started at start of file return FAIL; if (!stop || sclass == cls() || sclass == 0) @@ -3263,7 +3263,7 @@ bck_word(long count, int bigword, int st if (curwin->w_cursor.col == 0 && LINEEMPTY(curwin->w_cursor.lnum)) goto finished; - if (dec_cursor() == -1) /* hit start of file, stop here */ + if (dec_cursor() == -1) // hit start of file, stop here return OK; } @@ -3274,7 +3274,7 @@ bck_word(long count, int bigword, int st return OK; } - inc_cursor(); /* overshot - forward one */ + inc_cursor(); // overshot - forward one finished: stop = FALSE; } @@ -3303,15 +3303,15 @@ end_word( int stop, int empty) { - int sclass; /* starting class */ + int sclass; // starting class curwin->w_cursor.coladd = 0; cls_bigword = bigword; while (--count >= 0) { #ifdef FEAT_FOLDING - /* When inside a range of folded lines, move to the last char of the - * last line. */ + // When inside a range of folded lines, move to the last char of the + // last line. if (hasFolding(curwin->w_cursor.lnum, NULL, &curwin->w_cursor.lnum)) coladvance((colnr_T)MAXCOL); #endif @@ -3342,7 +3342,7 @@ end_word( if (empty && curwin->w_cursor.col == 0 && LINEEMPTY(curwin->w_cursor.lnum)) goto finished; - if (inc_cursor() == -1) /* hit end of file, stop here */ + if (inc_cursor() == -1) // hit end of file, stop here return FAIL; } @@ -3352,9 +3352,9 @@ end_word( if (skip_chars(cls(), FORWARD)) return FAIL; } - dec_cursor(); /* overshot - one char backward */ + dec_cursor(); // overshot - one char backward finished: - stop = FALSE; /* we move only one word less */ + stop = FALSE; // we move only one word less } return OK; } @@ -3367,10 +3367,10 @@ finished: int bckend_word( long count, - int bigword, /* TRUE for "B" */ - int eol) /* TRUE: stop at end of line. */ + int bigword, // TRUE for "B" + int eol) // TRUE: stop at end of line. { - int sclass; /* starting class */ + int sclass; // starting class int i; curwin->w_cursor.coladd = 0; @@ -3427,15 +3427,15 @@ skip_chars(int cclass, int dir) static void back_in_line(void) { - int sclass; /* starting class */ + int sclass; // starting class sclass = cls(); for (;;) { - if (curwin->w_cursor.col == 0) /* stop at start of line */ + if (curwin->w_cursor.col == 0) // stop at start of line break; dec_cursor(); - if (cls() != sclass) /* stop at start of word */ + if (cls() != sclass) // stop at start of word { inc_cursor(); break; @@ -3465,7 +3465,7 @@ find_first_blank(pos_T *posp) static void findsent_forward( long count, - int at_start_sent) /* cursor is at start of sentence */ + int at_start_sent) // cursor is at start of sentence { while (count--) { @@ -3486,8 +3486,8 @@ findsent_forward( current_word( oparg_T *oap, long count, - int include, /* TRUE: include word and white space */ - int bigword) /* FALSE == word, TRUE == WORD */ + int include, // TRUE: include word and white space + int bigword) // FALSE == word, TRUE == WORD { pos_T start_pos; pos_T pos; @@ -3497,7 +3497,7 @@ current_word( cls_bigword = bigword; CLEAR_POS(&start_pos); - /* Correct cursor when 'selection' is exclusive */ + // Correct cursor when 'selection' is exclusive if (VIsual_active && *p_sel == 'e' && LT_POS(VIsual, curwin->w_cursor)) dec_cursor(); @@ -3544,9 +3544,9 @@ current_word( if (VIsual_active) { - /* should do something when inclusive == FALSE ! */ + // should do something when inclusive == FALSE ! VIsual = start_pos; - redraw_curbuf_later(INVERTED); /* update the inversion */ + redraw_curbuf_later(INVERTED); // update the inversion } else { @@ -3620,7 +3620,7 @@ current_word( * (cursor is at start of next line). * But don't delete white space at start of line (indent). */ - pos = curwin->w_cursor; /* save cursor position */ + pos = curwin->w_cursor; // save cursor position curwin->w_cursor = start_pos; if (oneleft() == OK) { @@ -3633,7 +3633,7 @@ current_word( oap->start = curwin->w_cursor; } } - curwin->w_cursor = pos; /* put cursor back at end */ + curwin->w_cursor = pos; // put cursor back at end } if (VIsual_active) @@ -3643,7 +3643,7 @@ current_word( if (VIsual_mode == 'V') { VIsual_mode = 'v'; - redraw_cmdline = TRUE; /* show mode later */ + redraw_cmdline = TRUE; // show mode later } } else @@ -3668,7 +3668,7 @@ current_sent(oparg_T *oap, long count, i start_pos = curwin->w_cursor; pos = start_pos; - findsent(FORWARD, 1L); /* Find start of next sentence. */ + findsent(FORWARD, 1L); // Find start of next sentence. /* * When the Visual area is bigger than one character: Extend it. @@ -3701,12 +3701,12 @@ extend: { findsent(BACKWARD, 1L); if (EQUAL_POS(curwin->w_cursor, start_pos)) - at_start_sent = TRUE; /* exactly at start of sentence */ + at_start_sent = TRUE; // exactly at start of sentence else - /* inside a sentence, go to its end (start of next) */ + // inside a sentence, go to its end (start of next) findsent(FORWARD, 1L); } - if (include) /* "as" gets twice as much as "is" */ + if (include) // "as" gets twice as much as "is" count *= 2; while (count--) { @@ -3729,7 +3729,7 @@ extend: */ incl(&pos); at_start_sent = TRUE; - /* not just before a sentence */ + // not just before a sentence if (!EQUAL_POS(pos, curwin->w_cursor)) { at_start_sent = FALSE; @@ -3743,13 +3743,13 @@ extend: } incl(&pos); } - if (at_start_sent) /* in the sentence */ + if (at_start_sent) // in the sentence findsent(BACKWARD, 1L); - else /* in/before white before a sentence */ + else // in/before white before a sentence curwin->w_cursor = start_pos; } - if (include) /* "as" gets twice as much as "is" */ + if (include) // "as" gets twice as much as "is" count *= 2; findsent_forward(count, at_start_sent); if (*p_sel == 'e') @@ -3762,12 +3762,12 @@ extend: * If the cursor started on a blank, check if it is just before the start * of the next sentence. */ - while (c = gchar_pos(&pos), VIM_ISWHITE(c)) /* VIM_ISWHITE() is a macro */ + while (c = gchar_pos(&pos), VIM_ISWHITE(c)) // VIM_ISWHITE() is a macro incl(&pos); if (EQUAL_POS(pos, curwin->w_cursor)) { start_blank = TRUE; - find_first_blank(&start_pos); /* go back to first blank */ + find_first_blank(&start_pos); // go back to first blank } else { @@ -3798,7 +3798,7 @@ extend: if (start_blank) { find_first_blank(&curwin->w_cursor); - c = gchar_pos(&curwin->w_cursor); /* VIM_ISWHITE() is a macro */ + c = gchar_pos(&curwin->w_cursor); // VIM_ISWHITE() is a macro if (VIM_ISWHITE(c)) decl(&curwin->w_cursor); } @@ -3808,19 +3808,19 @@ extend: if (VIsual_active) { - /* Avoid getting stuck with "is" on a single space before a sentence. */ + // Avoid getting stuck with "is" on a single space before a sentence. if (EQUAL_POS(start_pos, curwin->w_cursor)) goto extend; if (*p_sel == 'e') ++curwin->w_cursor.col; VIsual = start_pos; VIsual_mode = 'v'; - redraw_cmdline = TRUE; /* show mode later */ - redraw_curbuf_later(INVERTED); /* update the inversion */ + redraw_cmdline = TRUE; // show mode later + redraw_curbuf_later(INVERTED); // update the inversion } else { - /* include a newline after the sentence, if there is one */ + // include a newline after the sentence, if there is one if (incl(&curwin->w_cursor) == -1) oap->inclusive = TRUE; else @@ -3839,9 +3839,9 @@ extend: current_block( oparg_T *oap, long count, - int include, /* TRUE == include white space */ - int what, /* '(', '{', etc. */ - int other) /* ')', '}', etc. */ + int include, // TRUE == include white space + int what, // '(', '{', etc. + int other) // ')', '}', etc. { pos_T old_pos; pos_T *pos = NULL; @@ -3849,10 +3849,10 @@ current_block( pos_T *end_pos; pos_T old_start, old_end; char_u *save_cpo; - int sol = FALSE; /* '{' at start of line */ + int sol = FALSE; // '{' at start of line old_pos = curwin->w_cursor; - old_end = curwin->w_cursor; /* remember where we started */ + old_end = curwin->w_cursor; // remember where we started old_start = old_end; /* @@ -3861,18 +3861,18 @@ current_block( if (!VIsual_active || EQUAL_POS(VIsual, curwin->w_cursor)) { setpcmark(); - if (what == '{') /* ignore indent */ + if (what == '{') // ignore indent while (inindent(1)) if (inc_cursor() != 0) break; if (gchar_cursor() == what) - /* cursor on '(' or '{', move cursor just after it */ + // cursor on '(' or '{', move cursor just after it ++curwin->w_cursor.col; } else if (LT_POS(VIsual, curwin->w_cursor)) { old_start = VIsual; - curwin->w_cursor = VIsual; /* cursor at low end of Visual */ + curwin->w_cursor = VIsual; // cursor at low end of Visual } else old_end = VIsual; @@ -3890,7 +3890,7 @@ current_block( if ((pos = findmatch(NULL, what)) == NULL) break; curwin->w_cursor = *pos; - start_pos = *pos; /* the findmatch for end_pos will overwrite *pos */ + start_pos = *pos; // the findmatch for end_pos will overwrite *pos } p_cpo = save_cpo; @@ -3955,10 +3955,10 @@ current_block( if (*p_sel == 'e') inc(&curwin->w_cursor); if (sol && gchar_cursor() != NUL) - inc(&curwin->w_cursor); /* include the line break */ + inc(&curwin->w_cursor); // include the line break VIsual = start_pos; VIsual_mode = 'v'; - redraw_curbuf_later(INVERTED); /* update the inversion */ + redraw_curbuf_later(INVERTED); // update the inversion showmode(); } else @@ -3969,11 +3969,11 @@ current_block( if (sol) incl(&curwin->w_cursor); else if (LTOREQ_POS(start_pos, curwin->w_cursor)) - /* Include the character under the cursor. */ + // Include the character under the cursor. oap->inclusive = TRUE; else - /* End is before the start (no text in between <>, [], etc.): don't - * operate on any text. */ + // End is before the start (no text in between <>, [], etc.): don't + // operate on any text. curwin->w_cursor = start_pos; } @@ -3998,15 +3998,15 @@ in_html_tag( { char_u *lp = NULL; - /* We search forward until the cursor, because searching backwards is - * very slow for DBCS encodings. */ + // 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)) if (*p == '>' || *p == '<') { lc = *p; lp = p; } - if (*p != '<') /* check for '<' under cursor */ + if (*p != '<') // check for '<' under cursor { if (lc != '<') return FALSE; @@ -4017,10 +4017,10 @@ in_html_tag( { for (p = line + curwin->w_cursor.col; p > line; ) { - if (*p == '<') /* find '<' under/before cursor */ + if (*p == '<') // find '<' under/before cursor break; MB_PTR_BACK(line, p); - if (*p == '>') /* find '>' before cursor */ + if (*p == '>') // find '>' before cursor break; } if (*p != '<') @@ -4032,14 +4032,14 @@ in_html_tag( MB_PTR_ADV(p); if (end_tag) - /* check that there is a '/' after the '<' */ + // check that there is a '/' after the '<' return *p == '/'; - /* check that there is no '/' after the '<' */ + // check that there is no '/' after the '<' if (*p == '/') return FALSE; - /* check that the matching '>' is not preceded by '/' */ + // check that the matching '>' is not preceded by '/' for (;;) { if (inc(&pos) < 0) @@ -4059,7 +4059,7 @@ in_html_tag( current_tagblock( oparg_T *oap, long count_arg, - int include) /* TRUE == include white space */ + int include) // TRUE == include white space { long count = count_arg; long n; @@ -4080,10 +4080,10 @@ current_tagblock( p_ws = FALSE; old_pos = curwin->w_cursor; - old_end = curwin->w_cursor; /* remember where we started */ + old_end = curwin->w_cursor; // remember where we started old_start = old_end; if (!VIsual_active || *p_sel == 'e') - decl(&old_end); /* old_end is inclusive */ + decl(&old_end); // old_end is inclusive /* * If we start on "" select that block. @@ -4092,21 +4092,21 @@ current_tagblock( { setpcmark(); - /* ignore indent */ + // ignore indent while (inindent(1)) if (inc_cursor() != 0) break; if (in_html_tag(FALSE)) { - /* cursor on start tag, move to its '>' */ + // cursor on start tag, move to its '>' while (*ml_get_cursor() != '>') if (inc_cursor() < 0) break; } else if (in_html_tag(TRUE)) { - /* cursor on end tag, move to just before it */ + // cursor on end tag, move to just before it while (*ml_get_cursor() != '<') if (dec_cursor() < 0) break; @@ -4117,7 +4117,7 @@ current_tagblock( else if (LT_POS(VIsual, curwin->w_cursor)) { old_start = VIsual; - curwin->w_cursor = VIsual; /* cursor at low end of Visual */ + curwin->w_cursor = VIsual; // cursor at low end of Visual } else old_end = VIsual; @@ -4173,9 +4173,9 @@ again: if (r < 1 || LT_POS(curwin->w_cursor, old_end)) { - /* Can't find other end or it's before the previous end. Could be a - * HTML tag that doesn't have a matching end. Search backwards for - * another starting tag. */ + // Can't find other end or it's before the previous end. Could be a + // HTML tag that doesn't have a matching end. Search backwards for + // another starting tag. count = 1; curwin->w_cursor = start_pos; goto again; @@ -4183,7 +4183,7 @@ again: if (do_include) { - /* Include up to the '>'. */ + // Include up to the '>'. while (*ml_get_cursor() != '>') if (inc_cursor() < 0) break; @@ -4192,11 +4192,11 @@ again: { char_u *c = ml_get_cursor(); - /* Exclude the '<' of the end tag. - * If the closing tag is on new line, do not decrement cursor, but - * make operation exclusive, so that the linefeed will be selected */ + // Exclude the '<' of the end tag. + // If the closing tag is on new line, do not decrement cursor, but + // make operation exclusive, so that the linefeed will be selected if (*c == '<' && !VIsual_active && curwin->w_cursor.col == 0) - /* do not decrement cursor */ + // do not decrement cursor is_inclusive = FALSE; else if (*c == '<') dec_cursor(); @@ -4205,7 +4205,7 @@ again: if (!do_include) { - /* Exclude the start tag. */ + // Exclude the start tag. curwin->w_cursor = start_pos; while (inc_cursor() >= 0) if (*ml_get_cursor() == '>') @@ -4230,15 +4230,15 @@ again: if (VIsual_active) { - /* If the end is before the start there is no text between tags, select - * the char under the cursor. */ + // If the end is before the start there is no text between tags, select + // the char under the cursor. if (LT_POS(end_pos, start_pos)) curwin->w_cursor = start_pos; else if (*p_sel == 'e') inc_cursor(); VIsual = start_pos; VIsual_mode = 'v'; - redraw_curbuf_later(INVERTED); /* update the inversion */ + redraw_curbuf_later(INVERTED); // update the inversion showmode(); } else @@ -4247,8 +4247,8 @@ again: oap->motion_type = MCHAR; if (LT_POS(end_pos, start_pos)) { - /* End is before the start: there is no text between tags; operate - * on an empty area. */ + // End is before the start: there is no text between tags; operate + // on an empty area. curwin->w_cursor = start_pos; oap->inclusive = FALSE; } @@ -4266,8 +4266,8 @@ theend: current_par( oparg_T *oap, long count, - int include, /* TRUE == include white space */ - int type) /* 'p' for paragraph, 'S' for section */ + int include, // TRUE == include white space + int type) // 'p' for paragraph, 'S' for section { linenr_T start_lnum; linenr_T end_lnum; @@ -4280,7 +4280,7 @@ current_par( int t; int i; - if (type == 'S') /* not implemented yet */ + if (type == 'S') // not implemented yet return FAIL; start_lnum = curwin->w_cursor.lnum; @@ -4345,12 +4345,12 @@ extend: white_in_front = linewhite(start_lnum); while (start_lnum > 1) { - if (white_in_front) /* stop at first white line */ + if (white_in_front) // stop at first white line { if (!linewhite(start_lnum - 1)) break; } - else /* stop at first non-white line of start of paragraph */ + else // stop at first non-white line of start of paragraph { if (linewhite(start_lnum - 1) || startPS(start_lnum, 0, 0)) break; @@ -4411,8 +4411,8 @@ extend: if (VIsual_active) { - /* Problem: when doing "Vipipip" nothing happens in a single white - * line, we get stuck there. Trap this here. */ + // Problem: when doing "Vipipip" nothing happens in a single white + // line, we get stuck there. Trap this here. if (VIsual_mode == 'V' && start_lnum == curwin->w_cursor.lnum) goto extend; if (VIsual.lnum != start_lnum) @@ -4421,7 +4421,7 @@ extend: VIsual.col = 0; } VIsual_mode = 'V'; - redraw_curbuf_later(INVERTED); /* update the inversion */ + redraw_curbuf_later(INVERTED); // update the inversion showmode(); } else @@ -4447,7 +4447,7 @@ find_next_quote( char_u *line, int col, int quotechar, - char_u *escape) /* escape characters, can be NULL */ + char_u *escape) // escape characters, can be NULL { int c; @@ -4479,7 +4479,7 @@ find_prev_quote( char_u *line, int col_start, int quotechar, - char_u *escape) /* escape characters, can be NULL */ + char_u *escape) // escape characters, can be NULL { int n; @@ -4493,7 +4493,7 @@ find_prev_quote( line[col_start - n - 1]) != NULL) ++n; if (n & 1) - col_start -= n; /* uneven number of escape chars, skip it */ + col_start -= n; // uneven number of escape chars, skip it else if (line[col_start] == quotechar) break; } @@ -4528,7 +4528,7 @@ current_quote( // The cursor then is moved forward after adjusting the area. if (VIsual_active) { - /* this only works within one line */ + // this only works within one line if (VIsual.lnum != curwin->w_cursor.lnum) return FALSE; @@ -4562,8 +4562,8 @@ current_quote( if (!vis_empty) { - /* Check if the existing selection exactly spans the text inside - * quotes. */ + // Check if the existing selection exactly spans the text inside + // quotes. if (vis_bef_curs) { inside_quotes = VIsual.col > 0 @@ -4583,7 +4583,7 @@ current_quote( col_end = VIsual.col; } - /* Find out if we have a quote in the selection. */ + // Find out if we have a quote in the selection. while (i <= col_end) if (line[i++] == quotechar) { @@ -4594,12 +4594,12 @@ current_quote( if (!vis_empty && line[col_start] == quotechar) { - /* Already selecting something and on a quote character. Find the - * next quoted string. */ + // Already selecting something and on a quote character. Find the + // next quoted string. if (vis_bef_curs) { - /* Assume we are on a closing quote: move to after the next - * opening quote. */ + // Assume we are on a closing quote: move to after the next + // opening quote. col_start = find_next_quote(line, col_start + 1, quotechar, NULL); if (col_start < 0) goto abort_search; @@ -4607,7 +4607,7 @@ current_quote( curbuf->b_p_qe); if (col_end < 0) { - /* We were on a starting quote perhaps? */ + // We were on a starting quote perhaps? col_end = col_start; col_start = curwin->w_cursor.col; } @@ -4621,7 +4621,7 @@ current_quote( curbuf->b_p_qe); if (line[col_start] != quotechar) { - /* We were on an ending quote perhaps? */ + // We were on an ending quote perhaps? col_start = col_end; col_end = curwin->w_cursor.col; } @@ -4641,24 +4641,24 @@ current_quote( first_col = find_prev_quote(line, col_start, quotechar, NULL); } - /* The cursor is on a quote, we don't know if it's the opening or - * closing quote. Search from the start of the line to find out. - * Also do this when there is a Visual area, a' may leave the cursor - * in between two strings. */ + // The cursor is on a quote, we don't know if it's the opening or + // closing quote. Search from the start of the line to find out. + // Also do this when there is a Visual area, a' may leave the cursor + // in between two strings. col_start = 0; for (;;) { - /* Find open quote character. */ + // Find open quote character. col_start = find_next_quote(line, col_start, quotechar, NULL); if (col_start < 0 || col_start > first_col) goto abort_search; - /* Find close quote character. */ + // Find close quote character. col_end = find_next_quote(line, col_start + 1, quotechar, curbuf->b_p_qe); if (col_end < 0) goto abort_search; - /* If is cursor between start and end quote character, it is - * target text object. */ + // If is cursor between start and end quote character, it is + // target text object. if (col_start <= first_col && first_col <= col_end) break; col_start = col_end + 1; @@ -4666,25 +4666,25 @@ current_quote( } else { - /* Search backward for a starting quote. */ + // Search backward for a starting quote. col_start = find_prev_quote(line, col_start, quotechar, curbuf->b_p_qe); if (line[col_start] != quotechar) { - /* No quote before the cursor, look after the cursor. */ + // No quote before the cursor, look after the cursor. col_start = find_next_quote(line, col_start, quotechar, NULL); if (col_start < 0) goto abort_search; } - /* Find close quote character. */ + // Find close quote character. col_end = find_next_quote(line, col_start + 1, quotechar, curbuf->b_p_qe); if (col_end < 0) goto abort_search; } - /* When "include" is TRUE, include spaces after closing quote or before - * the starting quote. */ + // When "include" is TRUE, include spaces after closing quote or before + // the starting quote. if (include) { if (VIM_ISWHITE(line[col_end + 1])) @@ -4695,17 +4695,16 @@ current_quote( --col_start; } - /* Set start position. After vi" another i" must include the ". - * For v2i" include the quotes. */ + // Set start position. After vi" another i" must include the ". + // For v2i" include the quotes. if (!include && count < 2 && (vis_empty || !inside_quotes)) ++col_start; curwin->w_cursor.col = col_start; if (VIsual_active) { - /* Set the start of the Visual area when the Visual area was empty, we - * were just inside quotes or the Visual area didn't start at a quote - * and didn't include a quote. - */ + // Set the start of the Visual area when the Visual area was empty, we + // were just inside quotes or the Visual area didn't start at a quote + // and didn't include a quote. if (vis_empty || (vis_bef_curs && !selected_quote @@ -4724,9 +4723,9 @@ current_quote( oap->motion_type = MCHAR; } - /* Set end position. */ + // Set end position. curwin->w_cursor.col = col_end; - if ((include || count > 1 /* After vi" another i" must include the ". */ + if ((include || count > 1 // After vi" another i" must include the ". || (!vis_empty && inside_quotes) ) && inc_cursor() == 2) inclusive = TRUE; @@ -4740,9 +4739,9 @@ current_quote( } else { - /* Cursor is at start of Visual area. Set the end of the Visual - * area when it was just inside quotes or it didn't end at a - * quote. */ + // Cursor is at start of Visual area. Set the end of the Visual + // area when it was just inside quotes or it didn't end at a + // quote. if (inside_quotes || (!selected_quote && line[VIsual.col] != quotechar @@ -4757,12 +4756,12 @@ current_quote( if (VIsual_mode == 'V') { VIsual_mode = 'v'; - redraw_cmdline = TRUE; /* show mode later */ + redraw_cmdline = TRUE; // show mode later } } else { - /* Set inclusive and other oap's flags. */ + // Set inclusive and other oap's flags. oap->inclusive = inclusive; } @@ -4784,7 +4783,7 @@ abort_search: return FALSE; } -#endif /* FEAT_TEXTOBJ */ +#endif // FEAT_TEXTOBJ /* * Check if the pattern is zero-width. @@ -4875,7 +4874,7 @@ current_search( pos_T save_VIsual = VIsual; int zero_width; - /* Correct cursor when 'selection' is exclusive */ + // Correct cursor when 'selection' is exclusive if (VIsual_active && *p_sel == 'e' && LT_POS(VIsual, curwin->w_cursor)) dec_cursor(); @@ -4888,12 +4887,11 @@ current_search( decl(&pos); } - /* Is the pattern is zero-width?, this time, don't care about the direction - */ + // Is the pattern is zero-width?, this time, don't care about the direction zero_width = is_zero_width(spats[last_idx].pat, TRUE, &curwin->w_cursor, FORWARD); if (zero_width == -1) - return FAIL; /* pattern not found */ + return FAIL; // pattern not found /* * The trick is to first search backwards and then search forward again, @@ -4923,11 +4921,11 @@ current_search( p_ws = old_p_ws; - /* First search may fail, but then start searching from the - * beginning of the file (cursor might be on the search match) - * except when Visual mode is active, so that extending the visual - * selection works. */ - if (i == 1 && !result) /* not found, abort */ + // First search may fail, but then start searching from the + // beginning of the file (cursor might be on the search match) + // except when Visual mode is active, so that extending the visual + // selection works. + if (i == 1 && !result) // not found, abort { curwin->w_cursor = orig_pos; if (VIsual_active) @@ -4938,13 +4936,13 @@ current_search( { if (forward) { - /* try again from start of buffer */ + // try again from start of buffer CLEAR_POS(&pos); } else { - /* try again from end of buffer */ - /* searching backwards, so set pos to last line and col */ + // try again from end of buffer + // searching backwards, so set pos to last line and col pos.lnum = curwin->w_buffer->b_ml.ml_line_count; pos.col = (colnr_T)STRLEN( ml_get(curwin->w_buffer->b_ml.ml_line_count)); @@ -4968,7 +4966,7 @@ current_search( if (*p_sel == 'e') { - /* Correction for exclusive selection depends on the direction. */ + // Correction for exclusive selection depends on the direction. if (forward && LTOREQ_POS(VIsual, curwin->w_cursor)) inc_cursor(); else if (!forward && LTOREQ_POS(curwin->w_cursor, VIsual)) @@ -4983,8 +4981,8 @@ current_search( may_start_select('c'); setmouse(); #ifdef FEAT_CLIPBOARD - /* Make sure the clipboard gets updated. Needed because start and - * end are still the same, and the selection needs to be owned */ + // Make sure the clipboard gets updated. Needed because start and + // end are still the same, and the selection needs to be owned clip_star.vmode = NUL; #endif redraw_curbuf_later(INVERTED); @@ -5147,20 +5145,20 @@ search_stat( */ void find_pattern_in_path( - char_u *ptr, /* pointer to search pattern */ - int dir UNUSED, /* direction of expansion */ - int len, /* length of search pattern */ - int whole, /* match whole words only */ - int skip_comments, /* don't match inside comments */ - int type, /* Type of search; are we looking for a type? - a macro? */ + char_u *ptr, // pointer to search pattern + int dir UNUSED, // direction of expansion + int len, // length of search pattern + int whole, // match whole words only + int skip_comments, // don't match inside comments + int type, // Type of search; are we looking for a type? + // a macro? long count, - int action, /* What to do when we find it */ - linenr_T start_lnum, /* first line to start searching */ - linenr_T end_lnum) /* last line for searching */ + int action, // What to do when we find it + linenr_T start_lnum, // first line to start searching + linenr_T end_lnum) // last line for searching { - SearchedFile *files; /* Stack of included files */ - SearchedFile *bigger; /* When we need more space */ + SearchedFile *files; // Stack of included files + SearchedFile *bigger; // When we need more space int max_path_depth = 50; long match_count = 1; @@ -5170,7 +5168,7 @@ find_pattern_in_path( char_u *prev_fname = NULL; linenr_T lnum; int depth; - int depth_displayed; /* For type==CHECK_PATH */ + int depth_displayed; // For type==CHECK_PATH int old_files; int already_searched; char_u *file_line; @@ -5201,15 +5199,15 @@ find_pattern_in_path( return; if (type != CHECK_PATH && type != FIND_DEFINE - /* when CONT_SOL is set compare "ptr" with the beginning of the line - * is faster than quote_meta/regcomp/regexec "ptr" -- Acevedo */ + // when CONT_SOL is set compare "ptr" with the beginning of the line + // is faster than quote_meta/regcomp/regexec "ptr" -- Acevedo && !(compl_cont_status & CONT_SOL)) { pat = alloc(len + 5); if (pat == NULL) goto fpip_end; sprintf((char *)pat, whole ? "\\<%.*s\\>" : "%.*s", len, ptr); - /* ignore case according to p_ic, p_scs and pat */ + // ignore case according to p_ic, p_scs and pat regmatch.rm_ic = ignorecase(pat); regmatch.regprog = vim_regcomp(pat, p_magic ? RE_MAGIC : 0); vim_free(pat); @@ -5222,7 +5220,7 @@ find_pattern_in_path( incl_regmatch.regprog = vim_regcomp(inc_opt, p_magic ? RE_MAGIC : 0); if (incl_regmatch.regprog == NULL) goto fpip_end; - incl_regmatch.rm_ic = FALSE; /* don't ignore case in incl. pat. */ + incl_regmatch.rm_ic = FALSE; // don't ignore case in incl. pat. } if (type == FIND_DEFINE && (*curbuf->b_p_def != NUL || *p_def != NUL)) { @@ -5230,7 +5228,7 @@ find_pattern_in_path( ? p_def : curbuf->b_p_def, p_magic ? RE_MAGIC : 0); if (def_regmatch.regprog == NULL) goto fpip_end; - def_regmatch.rm_ic = FALSE; /* don't ignore case in define pat. */ + def_regmatch.rm_ic = FALSE; // don't ignore case in define pat. } files = lalloc_clear(max_path_depth * sizeof(SearchedFile), TRUE); if (files == NULL) @@ -5241,7 +5239,7 @@ find_pattern_in_path( lnum = start_lnum; if (end_lnum > curbuf->b_ml.ml_line_count) end_lnum = curbuf->b_ml.ml_line_count; - if (lnum > end_lnum) /* do at least one line */ + if (lnum > end_lnum) // do at least one line lnum = end_lnum; line = ml_get(lnum); @@ -5254,18 +5252,18 @@ find_pattern_in_path( ? curbuf->b_ffname : curr_fname; if (inc_opt != NULL && strstr((char *)inc_opt, "\\zs") != NULL) - /* Use text from '\zs' to '\ze' (or end) of 'include'. */ + // Use text from '\zs' to '\ze' (or end) of 'include'. new_fname = find_file_name_in_path(incl_regmatch.startp[0], (int)(incl_regmatch.endp[0] - incl_regmatch.startp[0]), FNAME_EXP|FNAME_INCL|FNAME_REL, 1L, p_fname); else - /* Use text after match with 'include'. */ + // Use text after match with 'include'. new_fname = file_name_in_line(incl_regmatch.endp[0], 0, FNAME_EXP|FNAME_INCL|FNAME_REL, 1L, p_fname, NULL); already_searched = FALSE; if (new_fname != NULL) { - /* Check whether we have already searched in this file */ + // Check whether we have already searched in this file for (i = 0;; i++) { if (i == depth + 1) @@ -5278,10 +5276,10 @@ find_pattern_in_path( if (type != CHECK_PATH && action == ACTION_SHOW_ALL && files[i].matched) { - msg_putchar('\n'); /* cursor below last one */ - if (!got_int) /* don't display if 'q' - typed at "--more--" - message */ + msg_putchar('\n'); // cursor below last one + if (!got_int) // don't display if 'q' + // typed at "--more--" + // message { msg_home_replace_hl(new_fname); msg_puts(_(" (includes previously listed match)")); @@ -5299,10 +5297,10 @@ find_pattern_in_path( || (new_fname == NULL && !already_searched))) { if (did_show) - msg_putchar('\n'); /* cursor below last one */ + msg_putchar('\n'); // cursor below last one else { - gotocmdline(TRUE); /* cursor at status line */ + gotocmdline(TRUE); // cursor at status line msg_puts_title(_("--- Included files ")); if (action != ACTION_SHOW_ALL) msg_puts_title(_("not found ")); @@ -5317,15 +5315,15 @@ find_pattern_in_path( msg_home_replace(files[depth_displayed].name); msg_puts(" -->\n"); } - if (!got_int) /* don't display if 'q' typed - for "--more--" message */ + if (!got_int) // don't display if 'q' typed + // for "--more--" message { for (i = 0; i <= depth_displayed; i++) msg_puts(" "); if (new_fname != NULL) { - /* using "new_fname" is more reliable, e.g., when - * 'includeexpr' is set. */ + // using "new_fname" is more reliable, e.g., when + // 'includeexpr' is set. msg_outtrans_attr(new_fname, HL_ATTR(HLF_D)); } else @@ -5337,14 +5335,14 @@ find_pattern_in_path( if (inc_opt != NULL && strstr((char *)inc_opt, "\\zs") != NULL) { - /* pattern contains \zs, use the match */ + // pattern contains \zs, use the match p = incl_regmatch.startp[0]; i = (int)(incl_regmatch.endp[0] - incl_regmatch.startp[0]); } else { - /* find the file name after the end of the match */ + // find the file name after the end of the match for (p = incl_regmatch.endp[0]; *p && !vim_isfilec(*p); p++) ; @@ -5354,12 +5352,12 @@ find_pattern_in_path( if (i == 0) { - /* Nothing found, use the rest of the line. */ + // Nothing found, use the rest of the line. p = incl_regmatch.endp[0]; i = (int)STRLEN(p); } - /* Avoid checking before the start of the line, can - * happen if \zs appears in the regexp. */ + // Avoid checking before the start of the line, can + // happen if \zs appears in the regexp. else if (p > line) { if (p[-1] == '"' || p[-1] == '<') @@ -5384,12 +5382,12 @@ find_pattern_in_path( msg_puts(_(" NOT FOUND")); } } - out_flush(); /* output each line directly */ + out_flush(); // output each line directly } if (new_fname != NULL) { - /* Push the new file onto the file stack */ + // Push the new file onto the file stack if (depth + 1 == old_files) { bigger = ALLOC_MULT(SearchedFile, max_path_depth * 2); @@ -5431,7 +5429,7 @@ find_pattern_in_path( files[depth].matched = FALSE; if (action == ACTION_EXPAND) { - msg_hist_off = TRUE; /* reset in msg_trunc_attr() */ + msg_hist_off = TRUE; // reset in msg_trunc_attr() vim_snprintf((char*)IObuff, IOSIZE, _("Scanning included file: %s"), (char *)new_fname); @@ -5478,7 +5476,7 @@ search_line: { if (define_matched || (compl_cont_status & CONT_SOL)) { - /* compare the first "len" chars from "ptr" */ + // compare the first "len" chars from "ptr" startp = skipwhite(p); if (p_ic) matched = !MB_STRNICMP(startp, ptr, len); @@ -5521,14 +5519,14 @@ search_line: && (p[1] == '*' || p[1] == '/')) { matched = FALSE; - /* After "//" all text is comment */ + // After "//" all text is comment if (p[1] == '/') break; ++p; } else if (!matched && p[0] == '*' && p[1] == '/') { - /* Can find match after "* /". */ + // Can find match after "* /". matched = TRUE; ++p; } @@ -5561,12 +5559,12 @@ search_line: if ((compl_cont_status & CONT_ADDING) && i == compl_length) { - /* IOSIZE > compl_length, so the STRNCPY works */ + // IOSIZE > compl_length, so the STRNCPY works STRNCPY(IObuff, aux, i); - /* Get the next line: when "depth" < 0 from the current - * buffer, otherwise from the included file. Jump to - * exit_matched when past the last line. */ + // Get the next line: when "depth" < 0 from the current + // buffer, otherwise from the included file. Jump to + // exit_matched when past the last line. if (depth < 0) { if (lnum >= end_lnum) @@ -5577,9 +5575,9 @@ search_line: LSIZE, files[depth].fp)) goto exit_matched; - /* we read a line, set "already" to check this "line" later - * if depth >= 0 we'll increase files[depth].lnum far - * bellow -- Acevedo */ + // we read a line, set "already" to check this "line" later + // if depth >= 0 we'll increase files[depth].lnum far + // bellow -- Acevedo already = aux = p = skipwhite(line); p = find_word_start(p); p = find_word_end(p); @@ -5589,7 +5587,7 @@ search_line: { if (IObuff[i-1] != ' ') IObuff[i++] = ' '; - /* IObuf =~ "\(\k\|\i\).* ", thus i >= 2*/ + // IObuf =~ "\(\k\|\i\).* ", thus i >= 2 if (p_js && (IObuff[i-2] == '.' || (vim_strchr(p_cpo, CPO_JOINSP) == NULL @@ -5597,7 +5595,7 @@ search_line: || IObuff[i-2] == '!')))) IObuff[i++] = ' '; } - /* copy as much as possible of the new word */ + // copy as much as possible of the new word if (p - aux >= IOSIZE - i) p = aux + IOSIZE - i - 1; STRNCPY(IObuff + i, aux, p - aux); @@ -5615,7 +5613,7 @@ search_line: curr_fname == curbuf->b_fname ? NULL : curr_fname, dir, cont_s_ipos); if (add_r == OK) - /* if dir was BACKWARD then honor it just once */ + // if dir was BACKWARD then honor it just once dir = FORWARD; else if (add_r == FAIL) break; @@ -5624,13 +5622,13 @@ search_line: { found = TRUE; if (!did_show) - gotocmdline(TRUE); /* cursor at status line */ + gotocmdline(TRUE); // cursor at status line if (curr_fname != prev_fname) { if (did_show) - msg_putchar('\n'); /* cursor below last one */ - if (!got_int) /* don't display if 'q' typed - at "--more--" message */ + msg_putchar('\n'); // cursor below last one + if (!got_int) // don't display if 'q' typed + // at "--more--" message msg_home_replace_hl(curr_fname); prev_fname = curr_fname; } @@ -5641,8 +5639,8 @@ search_line: (depth == -1) ? &lnum : &files[depth].lnum, match_count++); - /* Set matched flag for this file and all the ones that - * include it */ + // Set matched flag for this file and all the ones that + // include it for (i = 0; i <= depth; ++i) files[i].matched = TRUE; } @@ -5668,7 +5666,7 @@ search_line: need_mouse_correct = TRUE; #endif #if defined(FEAT_QUICKFIX) - /* ":psearch" uses the preview window */ + // ":psearch" uses the preview window if (g_do_tagpreview != 0) { curwin_save = curwin; @@ -5683,14 +5681,14 @@ search_line: } if (depth == -1) { - /* match in current file */ + // match in current file #if defined(FEAT_QUICKFIX) if (g_do_tagpreview != 0) { if (!GETFILE_SUCCESS(getfile( curwin_save->w_buffer->b_fnum, NULL, NULL, TRUE, lnum, FALSE))) - break; /* failed to jump to file */ + break; // failed to jump to file } else #endif @@ -5703,9 +5701,9 @@ search_line: if (!GETFILE_SUCCESS(getfile( 0, files[depth].name, NULL, TRUE, files[depth].lnum, FALSE))) - break; /* failed to jump to file */ - /* autocommands may have changed the lnum, we don't - * want that here */ + break; // failed to jump to file + // autocommands may have changed the lnum, we don't + // want that here curwin->w_cursor.lnum = files[depth].lnum; } } @@ -5719,7 +5717,7 @@ search_line: if (g_do_tagpreview != 0 && curwin != curwin_save && win_valid(curwin_save)) { - /* Return cursor to where we were */ + // Return cursor to where we were validate_cursor(); redraw_later(VALID); win_enter(curwin_save, TRUE); @@ -5734,8 +5732,8 @@ search_line: } exit_matched: matched = FALSE; - /* look for other matches in the rest of the line if we - * are not at the end of it already */ + // look for other matches in the rest of the line if we + // are not at the end of it already if (def_regmatch.regprog == NULL && action == ACTION_EXPAND && !(compl_cont_status & CONT_SOL) @@ -5767,10 +5765,10 @@ exit_matched: if (depth < depth_displayed) depth_displayed = depth; } - if (depth >= 0) /* we could read the line */ + if (depth >= 0) // we could read the line { files[depth].lnum++; - /* Remove any CR and LF from the line. */ + // Remove any CR and LF from the line. i = (int)STRLEN(line); if (i > 0 && line[i - 1] == '\n') line[--i] = NUL; @@ -5785,9 +5783,9 @@ exit_matched: } already = NULL; } - /* End of big for (;;) loop. */ - - /* Close any files that are still open. */ + // End of big for (;;) loop. + + // Close any files that are still open. for (i = 0; i <= depth; i++) { fclose(files[i].fp); @@ -5839,17 +5837,17 @@ show_pat_in_path( char_u *p; if (did_show) - msg_putchar('\n'); /* cursor below last one */ + msg_putchar('\n'); // cursor below last one else if (!msg_silent) - gotocmdline(TRUE); /* cursor at status line */ - if (got_int) /* 'q' typed at "--more--" message */ + gotocmdline(TRUE); // cursor at status line + if (got_int) // 'q' typed at "--more--" message return; for (;;) { p = line + STRLEN(line) - 1; if (fp != NULL) { - /* We used fgets(), so get rid of newline at end */ + // We used fgets(), so get rid of newline at end if (p >= line && *p == '\n') --p; if (p >= line && *p == '\r') @@ -5858,23 +5856,23 @@ show_pat_in_path( } if (action == ACTION_SHOW_ALL) { - sprintf((char *)IObuff, "%3ld: ", count); /* show match nr */ + sprintf((char *)IObuff, "%3ld: ", count); // show match nr msg_puts((char *)IObuff); - sprintf((char *)IObuff, "%4ld", *lnum); /* show line nr */ - /* Highlight line numbers */ + sprintf((char *)IObuff, "%4ld", *lnum); // show line nr + // Highlight line numbers msg_puts_attr((char *)IObuff, HL_ATTR(HLF_N)); msg_puts(" "); } msg_prt_line(line, FALSE); - out_flush(); /* show one line at a time */ - - /* Definition continues until line that doesn't end with '\' */ + out_flush(); // show one line at a time + + // Definition continues until line that doesn't end with '\' if (got_int || type != FIND_DEFINE || p < line || *p != '\\') break; if (fp != NULL) { - if (vim_fgets(line, LSIZE, fp)) /* end of file */ + if (vim_fgets(line, LSIZE, fp)) // end of file break; ++*lnum; } diff --git a/src/sha256.c b/src/sha256.c --- a/src/sha256.c +++ b/src/sha256.c @@ -260,7 +260,7 @@ sha256_finish(context_sha256_T *ctx, cha PUT_UINT32(ctx->state[6], digest, 24); PUT_UINT32(ctx->state[7], digest, 28); } -#endif /* FEAT_CRYPT || FEAT_PERSISTENT_UNDO */ +#endif // FEAT_CRYPT || FEAT_PERSISTENT_UNDO #if defined(FEAT_CRYPT) || defined(PROTO) /* @@ -301,7 +301,7 @@ sha256_key( char_u *salt, int salt_len) { - /* No passwd means don't encrypt */ + // No passwd means don't encrypt if (buf == NULL || *buf == NUL) return (char_u *)""; @@ -370,7 +370,7 @@ sha256_self_test(void) { failures++; output[sizeof(output) - 1] = '\0'; - /* printf("sha256_self_test %d failed %s\n", i, output); */ + // printf("sha256_self_test %d failed %s\n", i, output); } } return failures > 0 ? FAIL : OK; @@ -382,7 +382,7 @@ get_some_time(void) # ifdef HAVE_GETTIMEOFDAY struct timeval tv; - /* Using usec makes it less predictable. */ + // Using usec makes it less predictable. gettimeofday(&tv, NULL); return (unsigned int)(tv.tv_sec + tv.tv_usec); # else @@ -414,14 +414,14 @@ sha2_seed( sha256_update(&ctx, (char_u *)random_data, sizeof(random_data)); sha256_finish(&ctx, sha256sum); - /* put first block into header. */ + // put first block into header. for (i = 0; i < header_len; i++) header[i] = sha256sum[i % sizeof(sha256sum)]; - /* put remaining block into salt. */ + // put remaining block into salt. if (salt != NULL) for (i = 0; i < salt_len; i++) salt[i] = sha256sum[(i + header_len) % sizeof(sha256sum)]; } -#endif /* FEAT_CRYPT */ +#endif // FEAT_CRYPT diff --git a/src/sign.c b/src/sign.c --- a/src/sign.c +++ b/src/sign.c @@ -701,8 +701,8 @@ buf_signcount(buf_T *buf, linenr_T lnum) return count; } -# endif /* FEAT_SIGN_ICONS */ -# endif /* FEAT_NETBEANS_INTG */ +# endif // FEAT_SIGN_ICONS +# endif // FEAT_NETBEANS_INTG /* * Delete signs in group 'group' in buffer "buf". If 'group' is '*', then @@ -2744,4 +2744,4 @@ f_sign_unplacelist(typval_T *argvars, ty } } -#endif /* FEAT_SIGNS */ +#endif // FEAT_SIGNS diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -743,6 +743,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2394, +/**/ 2393, /**/ 2392,