Patch 8.1.2096
Problem: Too many #ifdefs.
Solution: Graduate FEAT_COMMENTS.
Files: src/feature.h, src/buffer.c, src/change.c, src/edit.c,
src/evalfunc.c, src/fold.c, src/insexpand.c, src/misc1.c,
src/normal.c, src/ops.c, src/option.c, src/optionstr.c,
src/search.c, src/version.c, src/globals.h, src/option.h,
src/optiondefs.h, src/structs.h, runtime/doc/change.txt,
runtime/doc/options.txt, runtime/doc/various.txt
*** ../vim-8.1.2095/src/feature.h 2019-09-15 13:16:55.204317458 +0200
--- src/feature.h 2019-09-28 18:33:19.779000578 +0200
***************
*** 108,113 ****
--- 108,114 ----
* +cmdline_compl completion of mappings/abbreviations in cmdline mode.
* +insert_expand CTRL-N/CTRL-P/CTRL-X in insert mode.
* +modify_fname modifiers for file name. E.g., "%:p:h".
+ * +comments 'comments' option.
*
* Obsolete:
* +tag_old_static Old style static tags: "file:tag file ..".
***************
*** 496,508 ****
#endif
/*
- * +comments 'comments' option.
- */
- #ifdef FEAT_NORMAL
- # define FEAT_COMMENTS
- #endif
-
- /*
* +cryptv Encryption (by Mohsin Ahmed <[email protected]>).
*/
#if defined(FEAT_NORMAL) && !defined(FEAT_CRYPT) || defined(PROTO)
--- 497,502 ----
*** ../vim-8.1.2095/src/buffer.c 2019-09-25 20:37:22.073343455 +0200
--- src/buffer.c 2019-09-28 18:25:14.613522198 +0200
***************
*** 2226,2234 ****
keymap_clear(&buf->b_kmap_ga);
ga_clear(&buf->b_kmap_ga);
#endif
- #ifdef FEAT_COMMENTS
clear_string_option(&buf->b_p_com);
- #endif
#ifdef FEAT_FOLDING
clear_string_option(&buf->b_p_cms);
#endif
--- 2226,2232 ----
*** ../vim-8.1.2095/src/change.c 2019-09-14 21:00:01.379100893 +0200
--- src/change.c 2019-09-28 18:26:16.721176493 +0200
***************
*** 1414,1431 ****
int n;
int trunc_line = FALSE; // truncate current line
afterwards
int retval = FAIL; // return value
- #ifdef FEAT_COMMENTS
int extra_len = 0; // length of p_extra string
int lead_len; // length of comment leader
char_u *lead_flags; // position in 'comments' for comment leader
char_u *leader = NULL; // copy of comment leader
- #endif
char_u *allocated = NULL; // allocated memory
char_u *p;
int saved_char = NUL; // init for GCC
- #if defined(FEAT_SMARTINDENT) || defined(FEAT_COMMENTS)
pos_T *pos;
- #endif
#ifdef FEAT_SMARTINDENT
int do_si = (!p_paste && curbuf->b_p_si
# ifdef FEAT_CINDENT
--- 1414,1427 ----
***************
*** 1493,1501 ****
first_char = *p;
}
#endif
- #ifdef FEAT_COMMENTS
extra_len = (int)STRLEN(p_extra);
- #endif
saved_char = *p_extra;
*p_extra = NUL;
}
--- 1489,1495 ----
***************
*** 1544,1570 ****
old_cursor = curwin->w_cursor;
ptr = saved_line;
- # ifdef FEAT_COMMENTS
if (flags & OPENLINE_DO_COM)
lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
else
lead_len = 0;
- # endif
if (dir == FORWARD)
{
// Skip preprocessor directives, unless they are
// recognised as comments.
! if (
! # ifdef FEAT_COMMENTS
! lead_len == 0 &&
! # endif
! ptr[0] == '#')
{
while (ptr[0] == '#' && curwin->w_cursor.lnum > 1)
ptr = ml_get(--curwin->w_cursor.lnum);
newindent = get_indent();
}
- # ifdef FEAT_COMMENTS
if (flags & OPENLINE_DO_COM)
lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
else
--- 1538,1557 ----
old_cursor = curwin->w_cursor;
ptr = saved_line;
if (flags & OPENLINE_DO_COM)
lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
else
lead_len = 0;
if (dir == FORWARD)
{
// Skip preprocessor directives, unless they are
// recognised as comments.
! if ( lead_len == 0 && ptr[0] == '#')
{
while (ptr[0] == '#' && curwin->w_cursor.lnum > 1)
ptr = ml_get(--curwin->w_cursor.lnum);
newindent = get_indent();
}
if (flags & OPENLINE_DO_COM)
lead_len = get_leader_len(ptr, NULL, FALSE, TRUE);
else
***************
*** 1600,1606 ****
}
}
else // Not a comment line
- # endif
{
// Find last non-blank in line
p = ptr + STRLEN(ptr) - 1;
--- 1587,1592 ----
***************
*** 1651,1661 ****
{
// Skip preprocessor directives, unless they are
// recognised as comments.
! if (
! # ifdef FEAT_COMMENTS
! lead_len == 0 &&
! # endif
! ptr[0] == '#')
{
int was_backslashed = FALSE;
--- 1637,1643 ----
{
// Skip preprocessor directives, unless they are
// recognised as comments.
! if (lead_len == 0 && ptr[0] == '#')
{
int was_backslashed = FALSE;
***************
*** 1688,1694 ****
did_ai = TRUE;
}
- #ifdef FEAT_COMMENTS
// Find out if the current line starts with a comment leader.
// This may then be inserted in front of the new line.
end_comment_pending = NUL;
--- 1670,1675 ----
***************
*** 2086,2092 ****
}
}
}
- #endif
// (State == INSERT || State == REPLACE), only when dir == FORWARD
if (p_extra != NULL)
--- 2067,2072 ----
***************
*** 2120,2126 ****
if (p_extra == NULL)
p_extra = (char_u *)""; // append empty line
- #ifdef FEAT_COMMENTS
// concatenate leader and p_extra, if there is a leader
if (lead_len)
{
--- 2100,2105 ----
***************
*** 2147,2153 ****
}
else
end_comment_pending = NUL; // turns out there was no leader
- #endif
old_cursor = curwin->w_cursor;
if (dir == BACKWARD)
--- 2126,2131 ----
***************
*** 2237,2249 ****
#endif
}
- #ifdef FEAT_COMMENTS
// In REPLACE mode, for each character in the extra leader, there must be
// a NUL on the replace stack, for when it is deleted with BS.
if (REPLACE_NORMAL(State))
while (lead_len-- > 0)
replace_push(NUL);
- #endif
curwin->w_cursor = old_cursor;
--- 2215,2225 ----
***************
*** 2299,2307 ****
#ifdef FEAT_LISP
// May do lisp indenting.
if (!p_paste
- # ifdef FEAT_COMMENTS
&& leader == NULL
- # endif
&& curbuf->b_p_lisp
&& curbuf->b_p_ai)
{
--- 2275,2281 ----
*** ../vim-8.1.2095/src/edit.c 2019-09-21 20:46:14.720275786 +0200
--- src/edit.c 2019-09-28 18:27:35.704748664 +0200
***************
*** 2272,2280 ****
int second_indent) /* indent for second line if >=
0 */
{
int textwidth;
- #ifdef FEAT_COMMENTS
char_u *p;
- #endif
int fo_ins_blank;
int force_format = flags & INSCHAR_FORMAT;
--- 2272,2278 ----
***************
*** 2332,2343 ****
if (c == NUL) /* only formatting was wanted */
return;
! #ifdef FEAT_COMMENTS
! /* Check whether this character should end a comment. */
if (did_ai && (int)c == end_comment_pending)
{
char_u *line;
! char_u lead_end[COM_MAX_LEN]; /* end-comment string */
int middle_len, end_len;
int i;
--- 2330,2340 ----
if (c == NUL) /* only formatting was wanted */
return;
! // Check whether this character should end a comment.
if (did_ai && (int)c == end_comment_pending)
{
char_u *line;
! char_u lead_end[COM_MAX_LEN]; // end-comment string
int middle_len, end_len;
int i;
***************
*** 2346,2391 ****
* comment leader. First, check what comment leader we can find.
*/
i = get_leader_len(line = ml_get_curline(), &p, FALSE, TRUE);
! if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) /* Just checking */
{
! /* Skip middle-comment string */
! while (*p && p[-1] != ':') /* find end of middle flags */
++p;
middle_len = copy_option_part(&p, lead_end, COM_MAX_LEN, ",");
! /* Don't count trailing white space for middle_len */
while (middle_len > 0 && VIM_ISWHITE(lead_end[middle_len - 1]))
--middle_len;
! /* Find the end-comment string */
! while (*p && p[-1] != ':') /* find end of end flags */
++p;
end_len = copy_option_part(&p, lead_end, COM_MAX_LEN, ",");
! /* Skip white space before the cursor */
i = curwin->w_cursor.col;
while (--i >= 0 && VIM_ISWHITE(line[i]))
;
i++;
! /* Skip to before the middle leader */
i -= middle_len;
! /* Check some expected things before we go on */
if (i >= 0 && lead_end[end_len - 1] == end_comment_pending)
{
! /* Backspace over all the stuff we want to replace */
backspace_until_column(i);
! /*
! * Insert the end-comment string, except for the last
! * character, which will get inserted as normal later.
! */
ins_bytes_len(lead_end, end_len - 1);
}
}
}
end_comment_pending = NUL;
- #endif
did_ai = FALSE;
#ifdef FEAT_SMARTINDENT
--- 2343,2385 ----
* comment leader. First, check what comment leader we can find.
*/
i = get_leader_len(line = ml_get_curline(), &p, FALSE, TRUE);
! if (i > 0 && vim_strchr(p, COM_MIDDLE) != NULL) // Just checking
{
! // Skip middle-comment string
! while (*p && p[-1] != ':') // find end of middle flags
++p;
middle_len = copy_option_part(&p, lead_end, COM_MAX_LEN, ",");
! // Don't count trailing white space for middle_len
while (middle_len > 0 && VIM_ISWHITE(lead_end[middle_len - 1]))
--middle_len;
! // Find the end-comment string
! while (*p && p[-1] != ':') // find end of end flags
++p;
end_len = copy_option_part(&p, lead_end, COM_MAX_LEN, ",");
! // Skip white space before the cursor
i = curwin->w_cursor.col;
while (--i >= 0 && VIM_ISWHITE(line[i]))
;
i++;
! // Skip to before the middle leader
i -= middle_len;
! // Check some expected things before we go on
if (i >= 0 && lead_end[end_len - 1] == end_comment_pending)
{
! // Backspace over all the stuff we want to replace
backspace_until_column(i);
! // Insert the end-comment string, except for the last
! // character, which will get inserted as normal later.
ins_bytes_len(lead_end, end_len - 1);
}
}
}
end_comment_pending = NUL;
did_ai = FALSE;
#ifdef FEAT_SMARTINDENT
***************
*** 2518,2528 ****
int fo_multibyte = has_format_option(FO_MBYTE_BREAK);
int fo_white_par = has_format_option(FO_WHITE_PAR);
int first_line = TRUE;
- #ifdef FEAT_COMMENTS
colnr_T leader_len;
int no_leader = FALSE;
int do_comments = (flags & INSCHAR_DO_COM);
- #endif
#ifdef FEAT_LINEBREAK
int has_lbr = curwin->w_p_lbr;
--- 2512,2520 ----
***************
*** 2566,2572 ****
if (virtcol <= (colnr_T)textwidth)
break;
- #ifdef FEAT_COMMENTS
if (no_leader)
do_comments = FALSE;
else if (!(flags & INSCHAR_FORMAT)
--- 2558,2563 ----
***************
*** 2585,2595 ****
* to start with %. */
if (leader_len == 0)
no_leader = TRUE;
- #endif
if (!(flags & INSCHAR_FORMAT)
- #ifdef FEAT_COMMENTS
&& leader_len == 0
- #endif
&& !has_format_option(FO_WRAP))
break;
--- 2576,2583 ----
***************
*** 2641,2661 ****
if (has_format_option(FO_PERIOD_ABBR) && cc == '.' && wcc < 2)
continue;
- #ifdef FEAT_COMMENTS
/* Don't break until after the comment leader */
if (curwin->w_cursor.col < leader_len)
break;
- #endif
if (has_format_option(FO_ONE_LETTER))
{
/* do not break after one-letter words */
if (curwin->w_cursor.col == 0)
break; /* one-letter word at begin */
- #ifdef FEAT_COMMENTS
/* do not break "#a b" when 'tw' is 2 */
if (curwin->w_cursor.col <= leader_len)
break;
- #endif
col = curwin->w_cursor.col;
dec_cursor();
cc = gchar_cursor();
--- 2629,2645 ----
***************
*** 2677,2687 ****
/* Break after or before a multi-byte character. */
if (curwin->w_cursor.col != startcol)
{
- #ifdef FEAT_COMMENTS
/* Don't break until after the comment leader */
if (curwin->w_cursor.col < leader_len)
break;
- #endif
col = curwin->w_cursor.col;
inc_cursor();
/* Don't change end_foundcol if already set. */
--- 2661,2669 ----
***************
*** 2705,2715 ****
if (WHITECHAR(cc))
continue; /* break with space */
- #ifdef FEAT_COMMENTS
/* Don't break until after the comment leader */
if (curwin->w_cursor.col < leader_len)
break;
- #endif
curwin->w_cursor.col = col;
--- 2687,2695 ----
***************
*** 2783,2792 ****
*/
open_line(FORWARD, OPENLINE_DELSPACES + OPENLINE_MARKFIX
+ (fo_white_par ? OPENLINE_KEEPTRAIL : 0)
- #ifdef FEAT_COMMENTS
+ (do_comments ? OPENLINE_DO_COM : 0)
+ ((flags & INSCHAR_COM_LIST) ? OPENLINE_COM_LIST : 0)
- #endif
, ((flags & INSCHAR_COM_LIST) ? second_indent : old_indent));
if (!(flags & INSCHAR_COM_LIST))
old_indent = 0;
--- 2763,2770 ----
***************
*** 2812,2818 ****
change_indent(INDENT_SET, second_indent,
FALSE, NUL, TRUE);
else
- #ifdef FEAT_COMMENTS
if (leader_len > 0 && second_indent - leader_len > 0)
{
int i;
--- 2790,2795 ----
***************
*** 2829,2839 ****
}
else
{
- #endif
(void)set_indent(second_indent, SIN_CHANGED);
- #ifdef FEAT_COMMENTS
}
- #endif
}
}
first_line = FALSE;
--- 2806,2813 ----
***************
*** 2937,2949 ****
curwin->w_cursor = pos;
}
- #ifdef FEAT_COMMENTS
/* With the 'c' flag in 'formatoptions' and 't' missing: only format
* comments. */
if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
! && get_leader_len(old, NULL, FALSE, TRUE)
== 0)
return;
- #endif
/*
* May start formatting in a previous line, so that after "x" a word is
--- 2911,2921 ----
curwin->w_cursor = pos;
}
/* With the 'c' flag in 'formatoptions' and 't' missing: only format
* comments. */
if (has_format_option(FO_WRAP_COMS) && !has_format_option(FO_WRAP)
! && get_leader_len(old, NULL, FALSE, TRUE) == 0)
return;
/*
* May start formatting in a previous line, so that after "x" a word is
***************
*** 4796,4804 ****
if (in_indent)
can_cindent = FALSE;
#endif
- #ifdef FEAT_COMMENTS
end_comment_pending = NUL; /* After BS, don't auto-end comment */
- #endif
#ifdef FEAT_RIGHTLEFT
if (revins_on) /* put cursor after last inserted char */
inc_cursor();
--- 4768,4774 ----
***************
*** 5912,5921 ****
AppendToRedobuff(NL_STR);
i = open_line(FORWARD,
! #ifdef FEAT_COMMENTS
! has_format_option(FO_RET_COMS) ? OPENLINE_DO_COM :
! #endif
! 0, old_indent);
old_indent = 0;
#ifdef FEAT_CINDENT
can_cindent = TRUE;
--- 5882,5888 ----
AppendToRedobuff(NL_STR);
i = open_line(FORWARD,
! has_format_option(FO_RET_COMS) ? OPENLINE_DO_COM : 0, old_indent);
old_indent = 0;
#ifdef FEAT_CINDENT
can_cindent = TRUE;
*** ../vim-8.1.2095/src/evalfunc.c 2019-09-26 23:08:10.501926883 +0200
--- src/evalfunc.c 2019-09-28 18:27:48.580680064 +0200
***************
*** 3315,3323 ****
#endif
"cmdline_compl",
"cmdline_hist",
- #ifdef FEAT_COMMENTS
"comments",
- #endif
#ifdef FEAT_CONCEAL
"conceal",
#endif
--- 3315,3321 ----
*** ../vim-8.1.2095/src/fold.c 2019-09-01 17:52:27.334698921 +0200
--- src/fold.c 2019-09-28 18:28:01.040613984 +0200
***************
*** 1773,1782 ****
if (u_save(lnum - 1, lnum + 1) == OK)
{
- #if defined(FEAT_COMMENTS)
/* Check if the line ends with an unclosed comment */
(void)skip_comment(line, FALSE, FALSE, &line_is_comment);
- #endif
newline = alloc(line_len + markerlen + STRLEN(cms) + 1);
if (newline == NULL)
return;
--- 1773,1780 ----
*** ../vim-8.1.2095/src/insexpand.c 2019-09-21 20:46:14.724275765 +0200
--- src/insexpand.c 2019-09-28 18:28:15.908535491 +0200
***************
*** 3861,3877 ****
if (ctrl_x_mode_line_or_eval())
{
// Insert a new line, keep indentation but ignore 'comments'
- #ifdef FEAT_COMMENTS
char_u *old = curbuf->b_p_com;
curbuf->b_p_com = (char_u *)"";
- #endif
compl_startpos.lnum = curwin->w_cursor.lnum;
compl_startpos.col = compl_col;
ins_eol('\r');
- #ifdef FEAT_COMMENTS
curbuf->b_p_com = old;
- #endif
compl_length = 0;
compl_col = curwin->w_cursor.col;
}
--- 3861,3873 ----
*** ../vim-8.1.2095/src/misc1.c 2019-09-22 21:29:49.659426007 +0200
--- src/misc1.c 2019-09-28 18:28:32.952445992 +0200
***************
*** 466,476 ****
return -1;
pos.lnum = 0;
- #ifdef FEAT_COMMENTS
/* In format_lines() (i.e. not insert mode), fo+=q is needed too... */
if ((State & INSERT) || has_format_option(FO_Q_COMS))
lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
! #endif
regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
if (regmatch.regprog != NULL)
{
--- 466,475 ----
return -1;
pos.lnum = 0;
/* In format_lines() (i.e. not insert mode), fo+=q is needed too... */
if ((State & INSERT) || has_format_option(FO_Q_COMS))
lead_len = get_leader_len(ml_get(lnum), NULL, FALSE, TRUE);
!
regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC);
if (regmatch.regprog != NULL)
{
***************
*** 561,567 ****
}
#endif
- #if defined(FEAT_COMMENTS) || defined(PROTO)
/*
* get_leader_len() returns the length in bytes of the prefix of the given
* string which introduces a comment. If this string is not a comment then
--- 560,565 ----
***************
*** 862,868 ****
}
return result;
}
- #endif
/*
* Return the number of window lines occupied by buffer line "lnum".
--- 860,865 ----
***************
*** 1548,1555 ****
if (msg_row > 0)
cmdline_row = msg_row - 1;
need_wait_return = FALSE;
- msg_didany = FALSE;
- msg_didout = FALSE;
}
else
cmdline_row = save_cmdline_row;
--- 1545,1550 ----
*** ../vim-8.1.2095/src/normal.c 2019-09-24 22:47:42.578098633 +0200
--- src/normal.c 2019-09-28 18:29:04.340282450 +0200
***************
*** 3281,3287 ****
}
break;
}
- #ifdef FEAT_COMMENTS
if (get_leader_len(ml_get_curline(), NULL, FALSE, TRUE) > 0)
{
/* Ignore this line, continue at start of next line. */
--- 3281,3286 ----
***************
*** 3289,3295 ****
curwin->w_cursor.col = 0;
continue;
}
- #endif
valid = is_ident(ml_get_curline(), curwin->w_cursor.col);
/* If the current position is not a valid identifier and a previous
--- 3288,3293 ----
***************
*** 7228,7237 ****
(cap->cmdchar == 'o' ? 1 : 0))
) == OK
&& open_line(cap->cmdchar == 'O' ? BACKWARD : FORWARD,
! #ifdef FEAT_COMMENTS
! has_format_option(FO_OPEN_COMS) ? OPENLINE_DO_COM :
! #endif
! 0, 0) == OK)
{
#ifdef FEAT_CONCEAL
if (curwin->w_p_cole > 0 && oldline != curwin->w_cursor.lnum)
--- 7226,7233 ----
(cap->cmdchar == 'o' ? 1 : 0))
) == OK
&& open_line(cap->cmdchar == 'O' ? BACKWARD : FORWARD,
! has_format_option(FO_OPEN_COMS) ? OPENLINE_DO_COM : 0,
! 0) == OK)
{
#ifdef FEAT_CONCEAL
if (curwin->w_p_cole > 0 && oldline != curwin->w_cursor.lnum)
*** ../vim-8.1.2095/src/ops.c 2019-09-25 22:36:57.300103046 +0200
--- src/ops.c 2019-09-28 18:32:00.775388803 +0200
***************
*** 18,28 ****
static void mb_adjust_opend(oparg_T *oap);
static int do_addsub(int op_type, pos_T *pos, int length, linenr_T
Prenum1);
static int ends_in_white(linenr_T lnum);
- #ifdef FEAT_COMMENTS
static int fmt_check_par(linenr_T, int *, char_u **, int do_comments);
- #else
- static int fmt_check_par(linenr_T);
- #endif
// Flags for third item in "opchars".
#define OPF_LINES 1 // operator always works on lines
--- 18,24 ----
***************
*** 229,247 ****
int left,
int round,
int amount,
! int call_changed_bytes) /* call changed_bytes() */
{
int count;
int i, j;
int sw_val = (int)get_sw_value_indent(curbuf);
! count = get_indent(); /* get current indent */
! if (round) /* round off indent */
{
! i = count / sw_val; /* number of p_sw rounded down */
! j = count % sw_val; /* extra spaces */
! if (j && left) /* first remove extra spaces */
--amount;
if (left)
{
--- 225,243 ----
int left,
int round,
int amount,
! int call_changed_bytes) // call changed_bytes()
{
int count;
int i, j;
int sw_val = (int)get_sw_value_indent(curbuf);
! count = get_indent(); // get current indent
! if (round) // round off indent
{
! i = count / sw_val; // number of 'shiftwidth' rounded down
! j = count % sw_val; // extra spaces
! if (j && left) // first remove extra spaces
--amount;
if (left)
{
***************
*** 253,259 ****
i += amount;
count = i * sw_val;
}
! else /* original vi indent */
{
if (left)
{
--- 249,255 ----
i += amount;
count = i * sw_val;
}
! else // original vi indent
{
if (left)
{
***************
*** 265,271 ****
count += sw_val * amount;
}
! /* Set new indent */
if (State & VREPLACE_FLAG)
change_indent(INDENT_SET, count, FALSE, NUL, call_changed_bytes);
else
--- 261,267 ----
count += sw_val * amount;
}
! // Set new indent
if (State & VREPLACE_FLAG)
change_indent(INDENT_SET, count, FALSE, NUL, call_changed_bytes);
else
***************
*** 1944,1950 ****
}
#endif
- #if defined(FEAT_COMMENTS) || defined(PROTO)
/*
* If "process" is TRUE and the line begins with a comment leader (possibly
* after some white space), return a pointer to the text after it. Put a
boolean
--- 1940,1945 ----
***************
*** 2015,2021 ****
return line;
}
- #endif
/*
* Join 'count' lines (minimal 2) at cursor position.
--- 2010,2015 ----
***************
*** 2047,2058 ****
linenr_T t;
colnr_T col = 0;
int ret = OK;
- #if defined(FEAT_COMMENTS) || defined(PROTO)
int *comments = NULL;
int remove_comments = (use_formatoptions == TRUE)
&& has_format_option(FO_REMOVE_COMS);
int prev_was_comment;
- #endif
#ifdef FEAT_TEXT_PROP
textprop_T **prop_lines = NULL;
int *prop_lengths = NULL;
--- 2041,2050 ----
***************
*** 2068,2074 ****
spaces = lalloc_clear(count, TRUE);
if (spaces == NULL)
return FAIL;
- #if defined(FEAT_COMMENTS) || defined(PROTO)
if (remove_comments)
{
comments = lalloc_clear(count * sizeof(int), TRUE);
--- 2060,2065 ----
***************
*** 2078,2084 ****
return FAIL;
}
}
- #endif
/*
* Don't move anything yet, just compute the final line length
--- 2069,2074 ----
***************
*** 2094,2100 ****
curwin->w_buffer->b_op_start.lnum = curwin->w_cursor.lnum;
curwin->w_buffer->b_op_start.col = (colnr_T)STRLEN(curr);
}
- #if defined(FEAT_COMMENTS) || defined(PROTO)
if (remove_comments)
{
/* We don't want to remove the comment leader if the
--- 2084,2089 ----
***************
*** 2111,2117 ****
curr = skip_comment(curr, FALSE, insert_space,
&prev_was_comment);
}
- #endif
if (insert_space && t > 0)
{
--- 2100,2105 ----
***************
*** 2230,2239 ****
#endif
curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t - 1));
- #if defined(FEAT_COMMENTS)
if (remove_comments)
curr += comments[t - 1];
- #endif
if (insert_space && t > 1)
curr = skipwhite(curr);
currsize = (int)STRLEN(curr);
--- 2218,2225 ----
***************
*** 2282,2295 ****
theend:
vim_free(spaces);
- #if defined(FEAT_COMMENTS) || defined(PROTO)
if (remove_comments)
vim_free(comments);
- #endif
return ret;
}
- #ifdef FEAT_COMMENTS
/*
* Return TRUE if the two comment leaders given are the same. "lnum" is
* the first line. White-space is ignored. Note that the whole of
--- 2268,2278 ----
***************
*** 2365,2371 ****
}
return (idx2 == leader2_len && idx1 == leader1_len);
}
- #endif
/*
* Implementation of the format operator 'gq'.
--- 2348,2353 ----
***************
*** 2513,2526 ****
int is_end_par; /* at end of paragraph */
int prev_is_end_par = FALSE;/* prev. line not part of
parag. */
int next_is_start_par = FALSE;
- #ifdef FEAT_COMMENTS
int leader_len = 0; /* leader len of current line */
int next_leader_len; /* leader len of next line */
char_u *leader_flags = NULL; /* flags for leader of current line */
char_u *next_leader_flags; /* flags for leader of next line */
int do_comments; /* format comments */
int do_comments_list = 0; /* format comments with 'n' or
'2' */
- #endif
int advance = TRUE;
int second_indent = -1; /* indent for second line
(comment
* aware) */
--- 2495,2506 ----
***************
*** 2538,2546 ****
max_len = comp_textwidth(TRUE) * 3;
/* check for 'q', '2' and '1' in 'formatoptions' */
- #ifdef FEAT_COMMENTS
do_comments = has_format_option(FO_Q_COMS);
- #endif
do_second_indent = has_format_option(FO_Q_SECOND);
do_number_indent = has_format_option(FO_Q_NUMBER);
do_trail_white = has_format_option(FO_WHITE_PAR);
--- 2518,2524 ----
***************
*** 2550,2566 ****
*/
if (curwin->w_cursor.lnum > 1)
is_not_par = fmt_check_par(curwin->w_cursor.lnum - 1
! #ifdef FEAT_COMMENTS
! , &leader_len, &leader_flags, do_comments
! #endif
! );
else
is_not_par = TRUE;
next_is_not_par = fmt_check_par(curwin->w_cursor.lnum
! #ifdef FEAT_COMMENTS
! , &next_leader_len, &next_leader_flags, do_comments
! #endif
! );
is_end_par = (is_not_par || next_is_not_par);
if (!is_end_par && do_trail_white)
is_end_par = !ends_in_white(curwin->w_cursor.lnum - 1);
--- 2528,2538 ----
*/
if (curwin->w_cursor.lnum > 1)
is_not_par = fmt_check_par(curwin->w_cursor.lnum - 1
! , &leader_len, &leader_flags, do_comments);
else
is_not_par = TRUE;
next_is_not_par = fmt_check_par(curwin->w_cursor.lnum
! , &next_leader_len, &next_leader_flags, do_comments);
is_end_par = (is_not_par || next_is_not_par);
if (!is_end_par && do_trail_white)
is_end_par = !ends_in_white(curwin->w_cursor.lnum - 1);
***************
*** 2576,2585 ****
curwin->w_cursor.lnum++;
prev_is_end_par = is_end_par;
is_not_par = next_is_not_par;
- #ifdef FEAT_COMMENTS
leader_len = next_leader_len;
leader_flags = next_leader_flags;
- #endif
}
/*
--- 2548,2555 ----
***************
*** 2588,2605 ****
if (count == 1 || curwin->w_cursor.lnum == curbuf->b_ml.ml_line_count)
{
next_is_not_par = TRUE;
- #ifdef FEAT_COMMENTS
next_leader_len = 0;
next_leader_flags = NULL;
- #endif
}
else
{
next_is_not_par = fmt_check_par(curwin->w_cursor.lnum + 1
! #ifdef FEAT_COMMENTS
! , &next_leader_len, &next_leader_flags, do_comments
! #endif
! );
if (do_number_indent)
next_is_start_par =
(get_number_indent(curwin->w_cursor.lnum + 1) > 0);
--- 2558,2570 ----
if (count == 1 || curwin->w_cursor.lnum == curbuf->b_ml.ml_line_count)
{
next_is_not_par = TRUE;
next_leader_len = 0;
next_leader_flags = NULL;
}
else
{
next_is_not_par = fmt_check_par(curwin->w_cursor.lnum + 1
! , &next_leader_len, &next_leader_flags, do_comments);
if (do_number_indent)
next_is_start_par =
(get_number_indent(curwin->w_cursor.lnum + 1) > 0);
***************
*** 2630,2661 ****
{
if (do_second_indent && !LINEEMPTY(curwin->w_cursor.lnum + 1))
{
- #ifdef FEAT_COMMENTS
if (leader_len == 0 && next_leader_len == 0)
{
/* no comment found */
- #endif
second_indent =
get_indent_lnum(curwin->w_cursor.lnum + 1);
- #ifdef FEAT_COMMENTS
}
else
{
second_indent = next_leader_len;
do_comments_list = 1;
}
- #endif
}
else if (do_number_indent)
{
- #ifdef FEAT_COMMENTS
if (leader_len == 0 && next_leader_len == 0)
{
/* no comment found */
- #endif
second_indent =
get_number_indent(curwin->w_cursor.lnum);
- #ifdef FEAT_COMMENTS
}
else
{
--- 2595,2619 ----
***************
*** 2664,2670 ****
get_number_indent(curwin->w_cursor.lnum);
do_comments_list = 1;
}
- #endif
}
}
--- 2622,2627 ----
***************
*** 2672,2683 ****
* When the comment leader changes, it's the end of the paragraph.
*/
if (curwin->w_cursor.lnum >= curbuf->b_ml.ml_line_count
- #ifdef FEAT_COMMENTS
|| !same_leader(curwin->w_cursor.lnum,
leader_len, leader_flags,
! next_leader_len, next_leader_flags)
! #endif
! )
is_end_par = TRUE;
/*
--- 2629,2637 ----
* When the comment leader changes, it's the end of the paragraph.
*/
if (curwin->w_cursor.lnum >= curbuf->b_ml.ml_line_count
|| !same_leader(curwin->w_cursor.lnum,
leader_len, leader_flags,
! next_leader_len, next_leader_flags))
is_end_par = TRUE;
/*
***************
*** 2702,2712 ****
smd_save = p_smd;
p_smd = FALSE;
insertchar(NUL, INSCHAR_FORMAT
- #ifdef FEAT_COMMENTS
+ (do_comments ? INSCHAR_DO_COM : 0)
+ (do_comments && do_comments_list
? INSCHAR_COM_LIST : 0)
- #endif
+ (avoid_fex ? INSCHAR_NO_FEX : 0), second_indent);
State = old_State;
p_smd = smd_save;
--- 2656,2664 ----
***************
*** 2735,2749 ****
curwin->w_cursor.col = 0;
if (line_count < 0 && u_save_cursor() == FAIL)
break;
- #ifdef FEAT_COMMENTS
if (next_leader_len > 0)
{
(void)del_bytes((long)next_leader_len, FALSE, FALSE);
mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
! (long)-next_leader_len,
0);
! } else
! #endif
! if (second_indent > 0) /* the "leader" for FO_Q_SECOND */
{
int indent = getwhitecols_curline();
--- 2687,2699 ----
curwin->w_cursor.col = 0;
if (line_count < 0 && u_save_cursor() == FAIL)
break;
if (next_leader_len > 0)
{
(void)del_bytes((long)next_leader_len, FALSE, FALSE);
mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L,
! (long)-next_leader_len, 0);
! }
! else if (second_indent > 0) // the "leader" for FO_Q_SECOND
{
int indent = getwhitecols_curline();
***************
*** 2797,2803 ****
* previous line. A new paragraph starts after a blank line, or when the
* comment leader changes -- webb.
*/
- #ifdef FEAT_COMMENTS
static int
fmt_check_par(
linenr_T lnum,
--- 2747,2752 ----
***************
*** 2828,2840 ****
|| (*leader_len > 0 && *flags == COM_END)
|| startPS(lnum, NUL, FALSE));
}
- #else
- static int
- fmt_check_par(linenr_T lnum)
- {
- return (*skipwhite(ml_get(lnum)) == NUL || startPS(lnum, NUL, FALSE));
- }
- #endif
/*
* Return TRUE when a paragraph starts in line "lnum". Return FALSE when the
--- 2777,2782 ----
***************
*** 2844,2856 ****
paragraph_start(linenr_T lnum)
{
char_u *p;
- #ifdef FEAT_COMMENTS
int leader_len = 0; /* leader len of current line */
char_u *leader_flags = NULL; /* flags for leader of current line */
int next_leader_len; /* leader len of next line */
char_u *next_leader_flags; /* flags for leader of next line */
int do_comments; /* format comments */
- #endif
if (lnum <= 1)
return TRUE; /* start of the file */
--- 2786,2796 ----
***************
*** 2859,2879 ****
if (*p == NUL)
return TRUE; /* after empty line */
- #ifdef FEAT_COMMENTS
do_comments = has_format_option(FO_Q_COMS);
! #endif
! if (fmt_check_par(lnum - 1
! #ifdef FEAT_COMMENTS
! , &leader_len, &leader_flags, do_comments
! #endif
! ))
return TRUE; /* after non-paragraph line */
! if (fmt_check_par(lnum
! #ifdef FEAT_COMMENTS
! , &next_leader_len, &next_leader_flags, do_comments
! #endif
! ))
return TRUE; /* "lnum" is not a paragraph line */
if (has_format_option(FO_WHITE_PAR) && !ends_in_white(lnum - 1))
--- 2799,2809 ----
if (*p == NUL)
return TRUE; /* after empty line */
do_comments = has_format_option(FO_Q_COMS);
! if (fmt_check_par(lnum - 1, &leader_len, &leader_flags, do_comments))
return TRUE; /* after non-paragraph line */
! if (fmt_check_par(lnum, &next_leader_len, &next_leader_flags,
do_comments))
return TRUE; /* "lnum" is not a paragraph line */
if (has_format_option(FO_WHITE_PAR) && !ends_in_white(lnum - 1))
***************
*** 2882,2892 ****
if (has_format_option(FO_Q_NUMBER) && (get_number_indent(lnum) > 0))
return TRUE; /* numbered item starts in "lnum". */
- #ifdef FEAT_COMMENTS
if (!same_leader(lnum - 1, leader_len, leader_flags,
next_leader_len, next_leader_flags))
return TRUE; /* change of comment leader. */
- #endif
return FALSE;
}
--- 2812,2820 ----
*** ../vim-8.1.2095/src/option.c 2019-09-28 16:29:44.171649790 +0200
--- src/option.c 2019-09-28 18:32:14.195322380 +0200
***************
*** 5386,5394 ****
#if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT)
case PV_CINW: return (char_u *)&(curbuf->b_p_cinw);
#endif
- #ifdef FEAT_COMMENTS
case PV_COM: return (char_u *)&(curbuf->b_p_com);
- #endif
#ifdef FEAT_FOLDING
case PV_CMS: return (char_u *)&(curbuf->b_p_cms);
#endif
--- 5386,5392 ----
***************
*** 5844,5852 ****
? vim_strsave(p_vsts_nopaste) : NULL;
#endif
buf->b_p_sn = p_sn;
- #ifdef FEAT_COMMENTS
buf->b_p_com = vim_strsave(p_com);
- #endif
#ifdef FEAT_FOLDING
buf->b_p_cms = vim_strsave(p_cms);
#endif
--- 5842,5848 ----
*** ../vim-8.1.2095/src/optionstr.c 2019-09-16 21:05:21.123911709 +0200
--- src/optionstr.c 2019-09-28 18:32:28.931249677 +0200
***************
*** 231,239 ****
check_string_option(&buf->b_p_fo);
check_string_option(&buf->b_p_flp);
check_string_option(&buf->b_p_isk);
- #ifdef FEAT_COMMENTS
check_string_option(&buf->b_p_com);
- #endif
#ifdef FEAT_FOLDING
check_string_option(&buf->b_p_cms);
#endif
--- 231,237 ----
***************
*** 1263,1269 ****
}
}
- #ifdef FEAT_COMMENTS
// 'comments'
else if (gvarp == &p_com)
{
--- 1261,1266 ----
***************
*** 1294,1300 ****
s = skip_to_option_part(s);
}
}
- #endif
// 'listchars'
else if (varp == &p_lcs)
--- 1291,1296 ----
*** ../vim-8.1.2095/src/search.c 2019-09-21 20:46:14.728275744 +0200
--- src/search.c 2019-09-28 18:32:42.307183885 +0200
***************
*** 5393,5399 ****
*/
if (!define_matched && skip_comments)
{
- #ifdef FEAT_COMMENTS
if ((*line != '#' ||
STRNCMP(skipwhite(line + 1), "define", 6) != 0)
&& get_leader_len(line, NULL, FALSE, TRUE))
--- 5393,5398 ----
***************
*** 5408,5414 ****
p = skipwhite(line);
if (matched
|| (p[0] == '/' && p[1] == '*') || p[0] == '*')
- #endif
for (p = line; *p && p < startp; ++p)
{
if (matched
--- 5407,5412 ----
*** ../vim-8.1.2095/src/version.c 2019-09-28 17:25:06.518498628 +0200
--- src/version.c 2019-09-28 19:02:08.913701938 +0200
***************
*** 165,175 ****
#else
"-cmdline_info",
#endif
- #ifdef FEAT_COMMENTS
"+comments",
- #else
- "-comments",
- #endif
#ifdef FEAT_CONCEAL
"+conceal",
#else
--- 165,171 ----
*** ../vim-8.1.2095/src/globals.h 2019-09-25 21:43:07.275251603 +0200
--- src/globals.h 2019-09-28 18:33:44.590879941 +0200
***************
*** 800,806 ****
*/
EXTERN colnr_T ai_col INIT(= 0);
- #ifdef FEAT_COMMENTS
/*
* This is a character which will end a start-middle-end comment when typed as
* the first character on a new line. It is taken from the last character of
--- 800,805 ----
***************
*** 808,814 ****
* comment end in 'comments'. It is only valid when did_ai is TRUE.
*/
EXTERN int end_comment_pending INIT(= NUL);
- #endif
/*
* This flag is set after a ":syncbind" to let the check_scrollbind() function
--- 807,812 ----
*** ../vim-8.1.2095/src/option.h 2019-09-16 21:05:21.123911709 +0200
--- src/option.h 2019-09-28 18:33:56.650821511 +0200
***************
*** 478,486 ****
#endif
EXTERN long p_ph; // 'pumheight'
EXTERN long p_pw; // 'pumwidth'
- #ifdef FEAT_COMMENTS
EXTERN char_u *p_com; // 'comments'
- #endif
EXTERN char_u *p_cpo; // 'cpoptions'
#ifdef FEAT_CSCOPE
EXTERN char_u *p_csprg; // 'cscopeprg'
--- 478,484 ----
***************
*** 1094,1102 ****
#ifdef FEAT_FOLDING
, BV_CMS
#endif
- #ifdef FEAT_COMMENTS
, BV_COM
- #endif
, BV_CPT
, BV_DICT
, BV_TSR
--- 1092,1098 ----
*** ../vim-8.1.2095/src/optiondefs.h 2019-09-16 21:05:21.123911709 +0200
--- src/optiondefs.h 2019-09-28 18:34:19.346711874 +0200
***************
*** 52,60 ****
#ifdef FEAT_FOLDING
# define PV_CMS OPT_BUF(BV_CMS)
#endif
! #ifdef FEAT_COMMENTS
! # define PV_COM OPT_BUF(BV_COM)
! #endif
#define PV_CPT OPT_BUF(BV_CPT)
#define PV_DICT OPT_BOTH(OPT_BUF(BV_DICT))
#define PV_TSR OPT_BOTH(OPT_BUF(BV_TSR))
--- 52,58 ----
#ifdef FEAT_FOLDING
# define PV_CMS OPT_BUF(BV_CMS)
#endif
! #define PV_COM OPT_BUF(BV_COM)
#define PV_CPT OPT_BUF(BV_CPT)
#define PV_DICT OPT_BOTH(OPT_BUF(BV_DICT))
#define PV_TSR OPT_BOTH(OPT_BUF(BV_TSR))
***************
*** 634,647 ****
{(char_u *)80L, (char_u *)0L} SCTX_INIT},
{"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA
|P_NODUP|P_CURSWANT,
- #ifdef FEAT_COMMENTS
(char_u *)&p_com, PV_COM,
{(char_u
*)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-",
(char_u *)0L}
- #else
- (char_u *)NULL, PV_NONE,
- {(char_u *)0L, (char_u *)0L}
- #endif
SCTX_INIT},
{"commentstring", "cms", P_STRING|P_ALLOCED|P_VI_DEF|P_CURSWANT,
#ifdef FEAT_FOLDING
--- 632,640 ----
*** ../vim-8.1.2095/src/structs.h 2019-09-28 16:29:44.175649771 +0200
--- src/structs.h 2019-09-28 18:34:31.870651569 +0200
***************
*** 2429,2437 ****
#if defined(FEAT_CINDENT) || defined(FEAT_SMARTINDENT)
char_u *b_p_cinw; // 'cinwords'
#endif
- #ifdef FEAT_COMMENTS
char_u *b_p_com; // 'comments'
- #endif
#ifdef FEAT_FOLDING
char_u *b_p_cms; // 'commentstring'
#endif
--- 2429,2435 ----
*** ../vim-8.1.2095/runtime/doc/change.txt 2019-08-21 14:36:29.395376065
+0200
--- runtime/doc/change.txt 2019-09-28 18:34:55.370538761 +0200
***************
*** 1622,1629 ****
"#include" is not recognized as a comment line. But a line that starts with
"# define" is recognized. This is a compromise.
- {not available when compiled without the |+comments| feature}
-
*fo-table*
You can use the 'formatoptions' option to influence how Vim formats text.
'formatoptions' is a string that can contain any of the letters below. The
--- 1618,1623 ----
*** ../vim-8.1.2095/runtime/doc/options.txt 2019-09-20 17:00:05.439834655
+0200
--- runtime/doc/options.txt 2019-09-28 18:35:14.098449179 +0200
***************
*** 1685,1692 ****
'comments' 'com' string (default
"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-")
local to buffer
- {not available when compiled without the |+comments|
- feature}
A comma separated list of strings that can start a comment line. See
|format-comments|. See |option-backslash| about using backslashes to
insert a space.
--- 1685,1690 ----
*** ../vim-8.1.2095/runtime/doc/various.txt 2019-05-09 18:59:27.224463628
+0200
--- runtime/doc/various.txt 2019-09-28 18:35:35.562346834 +0200
***************
*** 332,342 ****
m *+channel* inter process communication |channel|
N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
! *+clipboard* |clipboard| support
! N *+cmdline_compl* command line completion |cmdline-completion|
S *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
! N *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
N *+cryptv* encryption support |encryption|
B *+cscope* |cscope| support
--- 332,343 ----
m *+channel* inter process communication |channel|
N *+cindent* |'cindent'|, C indenting
N *+clientserver* Unix and Win32: Remote invocation |clientserver|
! *+clipboard* |clipboard| support compiled-in
! *+clipboard_working* |clipboard| support compiled-in and working
! T *+cmdline_compl* command line completion |cmdline-completion|
S *+cmdline_hist* command line history |cmdline-history|
N *+cmdline_info* |'showcmd'| and |'ruler'|
! T *+comments* |'comments'| support
B *+conceal* "conceal" support, see |conceal| |:syn-conceal| etc.
N *+cryptv* encryption support |encryption|
B *+cscope* |cscope| support
*** ../vim-8.1.2095/src/version.c 2019-09-28 17:25:06.518498628 +0200
--- src/version.c 2019-09-28 19:02:08.913701938 +0200
***************
*** 759,760 ****
--- 755,758 ----
{ /* Add new patch number below this line */
+ /**/
+ 2096,
/**/
--
ARTHUR: Then who is your lord?
WOMAN: We don't have a lord.
ARTHUR: What?
DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in
turns to act as a sort of executive officer for the week.
The Quest for the Holy Grail (Monty Python)
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/201909281706.x8SH6TFH003192%40masaka.moolenaar.net.