diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.552')
-rw-r--r-- | source/ap/vim/patches/7.3.552 | 582 |
1 files changed, 0 insertions, 582 deletions
diff --git a/source/ap/vim/patches/7.3.552 b/source/ap/vim/patches/7.3.552 deleted file mode 100644 index e9a560ec5..000000000 --- a/source/ap/vim/patches/7.3.552 +++ /dev/null @@ -1,582 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.552 -Fcc: outbox -From: Bram Moolenaar <Bram@moolenaar.net> -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.3.552 -Problem: Formatting inside comments does not use the "2" flag in - 'formatoptions'. -Solution: Support the "2" flag. (Tor Perkins) -Files: src/vim.h, src/ops.c, src/edit.c, src/misc1.c, - src/testdir/test68.in, src/testdir/test68.ok - - -*** ../vim-7.3.551/src/vim.h 2012-06-06 18:03:01.000000000 +0200 ---- src/vim.h 2012-06-13 16:07:27.000000000 +0200 -*************** -*** 1072,1083 **** ---- 1072,1085 ---- - #define INSCHAR_DO_COM 2 /* format comments */ - #define INSCHAR_CTRLV 4 /* char typed just after CTRL-V */ - #define INSCHAR_NO_FEX 8 /* don't use 'formatexpr' */ -+ #define INSCHAR_COM_LIST 16 /* format comments with list/2nd line indent */ - - /* flags for open_line() */ - #define OPENLINE_DELSPACES 1 /* delete spaces after cursor */ - #define OPENLINE_DO_COM 2 /* format comments */ - #define OPENLINE_KEEPTRAIL 4 /* keep trailing spaces */ - #define OPENLINE_MARKFIX 8 /* fix mark positions */ -+ #define OPENLINE_COM_LIST 16 /* format comments with list/2nd line indent */ - - /* - * There are four history tables: -*** ../vim-7.3.551/src/ops.c 2012-06-13 14:01:36.000000000 +0200 ---- src/ops.c 2012-06-13 16:53:44.000000000 +0200 -*************** -*** 1727,1734 **** - * and the delete is within one line. */ - if (( - #ifdef FEAT_CLIPBOARD -! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') || -! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') || - #endif - oap->regname == 0) && oap->motion_type != MLINE - && oap->line_count == 1) ---- 1727,1734 ---- - * and the delete is within one line. */ - if (( - #ifdef FEAT_CLIPBOARD -! ((clip_unnamed & CLIP_UNNAMED) && oap->regname == '*') || -! ((clip_unnamed & CLIP_UNNAMED_PLUS) && oap->regname == '+') || - #endif - oap->regname == 0) && oap->motion_type != MLINE - && oap->line_count == 1) -*************** -*** 4208,4217 **** - * "is_comment". - * line - line to be processed, - * process - if FALSE, will only check whether the line ends with an unclosed -! * comment, - * include_space - whether to also skip space following the comment leader, - * is_comment - will indicate whether the current line ends with an unclosed -! * comment. - */ - static char_u * - skip_comment(line, process, include_space, is_comment) ---- 4208,4217 ---- - * "is_comment". - * line - line to be processed, - * process - if FALSE, will only check whether the line ends with an unclosed -! * comment, - * include_space - whether to also skip space following the comment leader, - * is_comment - will indicate whether the current line ends with an unclosed -! * comment. - */ - static char_u * - skip_comment(line, process, include_space, is_comment) -*************** -*** 4723,4731 **** - 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 */ - #endif - int advance = TRUE; -! int second_indent = -1; - int do_second_indent; - int do_number_indent; - int do_trail_white; ---- 4723,4733 ---- - 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) */ - int do_second_indent; - int do_number_indent; - int do_trail_white; -*************** -*** 4828,4845 **** - if (first_par_line - && (do_second_indent || do_number_indent) - && prev_is_end_par -! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count - #ifdef FEAT_COMMENTS -! && leader_len == 0 -! && next_leader_len == 0 - #endif -! ) -! { -! if (do_second_indent -! && !lineempty(curwin->w_cursor.lnum + 1)) -! second_indent = get_indent_lnum(curwin->w_cursor.lnum + 1); - else if (do_number_indent) -! second_indent = get_number_indent(curwin->w_cursor.lnum); - } - - /* ---- 4830,4875 ---- - if (first_par_line - && (do_second_indent || do_number_indent) - && prev_is_end_par -! && curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) -! { -! 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 -! { -! /* get_number_indent() is now "comment aware"... */ -! second_indent = -! get_number_indent(curwin->w_cursor.lnum); -! do_comments_list = 1; -! } -! #endif -! } - } - - /* -*************** -*** 4878,4883 **** ---- 4908,4915 ---- - 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; -*** ../vim-7.3.551/src/edit.c 2012-06-06 16:12:54.000000000 +0200 ---- src/edit.c 2012-06-13 16:54:10.000000000 +0200 -*************** -*** 1463,1469 **** - * what check_abbr() expects. */ - (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) : - #endif -! c) && c != Ctrl_RSB)) - { - insert_special(c, FALSE, FALSE); - #ifdef FEAT_RIGHTLEFT ---- 1463,1469 ---- - * what check_abbr() expects. */ - (has_mbyte && c >= 0x100) ? (c + ABBR_OFF) : - #endif -! c) && c != Ctrl_RSB)) - { - insert_special(c, FALSE, FALSE); - #ifdef FEAT_RIGHTLEFT -*************** -*** 5769,5774 **** ---- 5769,5784 ---- - # define WHITECHAR(cc) vim_iswhite(cc) - #endif - -+ /* -+ * "flags": INSCHAR_FORMAT - force formatting -+ * INSCHAR_CTRLV - char typed just after CTRL-V -+ * INSCHAR_NO_FEX - don't use 'formatexpr' -+ * -+ * NOTE: passes the flags value straight through to internal_format() which, -+ * beside INSCHAR_FORMAT (above), is also looking for these: -+ * INSCHAR_DO_COM - format comments -+ * INSCHAR_COM_LIST - format comments with num list or 2nd line indent -+ */ - void - insertchar(c, flags, second_indent) - int c; /* character to insert or NUL */ -*************** -*** 6011,6016 **** ---- 6021,6029 ---- - - /* - * Format text at the current insert position. -+ * -+ * If the INSCHAR_COM_LIST flag is present, then the value of second_indent -+ * will be the comment leader length sent to open_line(). - */ - static void - internal_format(textwidth, second_indent, flags, format_only, c) -*************** -*** 6289,6311 **** - + (fo_white_par ? OPENLINE_KEEPTRAIL : 0) - #ifdef FEAT_COMMENTS - + (do_comments ? OPENLINE_DO_COM : 0) - #endif -! , old_indent); -! old_indent = 0; - - replace_offset = 0; - if (first_line) - { -! if (second_indent < 0 && has_format_option(FO_Q_NUMBER)) -! second_indent = get_number_indent(curwin->w_cursor.lnum -1); -! if (second_indent >= 0) - { - #ifdef FEAT_VREPLACE -! if (State & VREPLACE_FLAG) -! change_indent(INDENT_SET, second_indent, FALSE, NUL, TRUE); -! else - #endif -! (void)set_indent(second_indent, SIN_CHANGED); - } - first_line = FALSE; - } ---- 6302,6337 ---- - + (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; - - replace_offset = 0; - if (first_line) - { -! if (!(flags & INSCHAR_COM_LIST)) - { -+ /* -+ * This section is for numeric lists w/o comments. If comment -+ * indents are needed with numeric lists (formatoptions=nq), -+ * then the INSCHAR_COM_LIST flag will cause the corresponding -+ * OPENLINE_COM_LIST flag to be passed through to open_line() -+ * (as seen above)... -+ */ -+ if (second_indent < 0 && has_format_option(FO_Q_NUMBER)) -+ second_indent = get_number_indent(curwin->w_cursor.lnum -1); -+ if (second_indent >= 0) -+ { - #ifdef FEAT_VREPLACE -! if (State & VREPLACE_FLAG) -! change_indent(INDENT_SET, second_indent, -! FALSE, NUL, TRUE); -! else - #endif -! (void)set_indent(second_indent, SIN_CHANGED); -! } - } - first_line = FALSE; - } -*** ../vim-7.3.551/src/misc1.c 2012-06-13 13:40:45.000000000 +0200 ---- src/misc1.c 2012-06-13 16:54:59.000000000 +0200 -*************** -*** 423,449 **** - { - colnr_T col; - pos_T pos; -- regmmatch_T regmatch; - - if (lnum > curbuf->b_ml.ml_line_count) - return -1; - pos.lnum = 0; -! regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC); -! if (regmatch.regprog != NULL) - { -! regmatch.rmm_ic = FALSE; -! regmatch.rmm_maxcol = 0; -! if (vim_regexec_multi(®match, curwin, curbuf, lnum, -! (colnr_T)0, NULL)) - { -! pos.lnum = regmatch.endpos[0].lnum + lnum; -! pos.col = regmatch.endpos[0].col; - #ifdef FEAT_VIRTUALEDIT -! pos.coladd = 0; - #endif - } - vim_free(regmatch.regprog); - } - - if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL) - return -1; ---- 423,492 ---- - { - colnr_T col; - pos_T pos; - - if (lnum > curbuf->b_ml.ml_line_count) - return -1; - pos.lnum = 0; -! -! #ifdef FEAT_COMMENTS -! if (has_format_option(FO_Q_COMS) && has_format_option(FO_Q_NUMBER)) - { -! regmatch_T regmatch; -! int lead_len; /* length of comment leader */ -! -! 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) - { -! regmatch.rm_ic = FALSE; -! -! /* vim_regexec() expects a pointer to a line. This lets us -! * start matching for the flp beyond any comment leader... */ -! if (vim_regexec(®match, ml_get(lnum) + lead_len, (colnr_T)0)) -! { -! pos.lnum = lnum; -! pos.col = *regmatch.endp - (ml_get(lnum) + lead_len); -! pos.col += lead_len; - #ifdef FEAT_VIRTUALEDIT -! pos.coladd = 0; - #endif -+ } - } - vim_free(regmatch.regprog); - } -+ else -+ { -+ /* -+ * What follows is the orig code that is not "comment aware"... -+ * -+ * I'm not sure if regmmatch_T (multi-match) is needed in this case. -+ * It may be true that this section would work properly using the -+ * regmatch_T code above, in which case, these two seperate sections -+ * should be consolidated w/ FEAT_COMMENTS making lead_len > 0... -+ */ -+ #endif -+ regmmatch_T regmatch; -+ -+ regmatch.regprog = vim_regcomp(curbuf->b_p_flp, RE_MAGIC); -+ -+ if (regmatch.regprog != NULL) -+ { -+ regmatch.rmm_ic = FALSE; -+ regmatch.rmm_maxcol = 0; -+ if (vim_regexec_multi(®match, curwin, curbuf, -+ lnum, (colnr_T)0, NULL)) -+ { -+ pos.lnum = regmatch.endpos[0].lnum + lnum; -+ pos.col = regmatch.endpos[0].col; -+ #ifdef FEAT_VIRTUALEDIT -+ pos.coladd = 0; -+ #endif -+ } -+ vim_free(regmatch.regprog); -+ } -+ #ifdef FEAT_COMMENTS -+ } -+ #endif - - if (pos.lnum == 0 || *ml_get_pos(&pos) == NUL) - return -1; -*************** -*** 502,515 **** - * OPENLINE_DO_COM format comments - * OPENLINE_KEEPTRAIL keep trailing spaces - * OPENLINE_MARKFIX adjust mark positions after the line break - * - * Return TRUE for success, FALSE for failure - */ - int -! open_line(dir, flags, old_indent) - int dir; /* FORWARD or BACKWARD */ - int flags; -! int old_indent; /* indent for after ^^D in Insert mode */ - { - char_u *saved_line; /* copy of the original line */ - char_u *next_line = NULL; /* copy of the next line */ ---- 545,562 ---- - * OPENLINE_DO_COM format comments - * OPENLINE_KEEPTRAIL keep trailing spaces - * OPENLINE_MARKFIX adjust mark positions after the line break -+ * OPENLINE_COM_LIST format comments with list or 2nd line indent -+ * -+ * "second_line_indent": indent for after ^^D in Insert mode or if flag -+ * OPENLINE_COM_LIST - * - * Return TRUE for success, FALSE for failure - */ - int -! open_line(dir, flags, second_line_indent) - int dir; /* FORWARD or BACKWARD */ - int flags; -! int second_line_indent; - { - char_u *saved_line; /* copy of the original line */ - char_u *next_line = NULL; /* copy of the next line */ -*************** -*** 650,657 **** - * count white space on current line - */ - newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts); -! if (newindent == 0) -! newindent = old_indent; /* for ^^D command in insert mode */ - - #ifdef FEAT_SMARTINDENT - /* ---- 697,704 ---- - * count white space on current line - */ - newindent = get_indent_str(saved_line, (int)curbuf->b_p_ts); -! if (newindent == 0 && !(flags & OPENLINE_COM_LIST)) -! newindent = second_line_indent; /* for ^^D command in insert mode */ - - #ifdef FEAT_SMARTINDENT - /* -*************** -*** 1008,1015 **** - if (lead_len) - { - /* allocate buffer (may concatenate p_exta later) */ -! leader = alloc(lead_len + lead_repl_len + extra_space + -! extra_len + 1); - allocated = leader; /* remember to free it later */ - - if (leader == NULL) ---- 1055,1062 ---- - if (lead_len) - { - /* allocate buffer (may concatenate p_exta later) */ -! leader = alloc(lead_len + lead_repl_len + extra_space + extra_len -! + (second_line_indent > 0 ? second_line_indent : 0)); - allocated = leader; /* remember to free it later */ - - if (leader == NULL) -*************** -*** 1304,1309 **** ---- 1351,1370 ---- - /* concatenate leader and p_extra, if there is a leader */ - if (lead_len) - { -+ if (flags & OPENLINE_COM_LIST && second_line_indent > 0) -+ { -+ int i; -+ int padding = second_line_indent - (newindent + STRLEN(leader)); -+ -+ /* Here whitespace is inserted after the comment char. -+ * Below, set_indent(newindent, SIN_INSERT) will insert the -+ * whitespace needed before the comment char. */ -+ for (i = 0; i < padding; i++) -+ { -+ STRCAT(leader, " "); -+ newcol++; -+ } -+ } - STRCAT(leader, p_extra); - p_extra = leader; - did_ai = TRUE; /* So truncating blanks works with comments */ -*************** -*** 4966,4973 **** - char_u * - FullName_save(fname, force) - char_u *fname; -! int force; /* force expansion, even when it already looks -! like a full path name */ - { - char_u *buf; - char_u *new_fname = NULL; ---- 5027,5034 ---- - char_u * - FullName_save(fname, force) - char_u *fname; -! int force; /* force expansion, even when it already looks -! * like a full path name */ - { - char_u *buf; - char_u *new_fname = NULL; -*** ../vim-7.3.551/src/testdir/test68.in 2010-10-09 17:21:42.000000000 +0200 ---- src/testdir/test68.in 2012-06-13 15:49:38.000000000 +0200 -*************** -*** 51,56 **** ---- 51,77 ---- - } - - STARTTEST -+ /^{/+1 -+ :set tw=5 fo=qn comments=:# -+ gwap -+ ENDTEST -+ -+ { -+ # 1 a b -+ } -+ -+ STARTTEST -+ /^{/+1 -+ :set tw=5 fo=q2 comments=:# -+ gwap -+ ENDTEST -+ -+ { -+ # x -+ # a b -+ } -+ -+ STARTTEST - /^{/+2 - :set tw& fo=a - I^^ -*** ../vim-7.3.551/src/testdir/test68.ok 2010-10-09 17:21:42.000000000 +0200 ---- src/testdir/test68.ok 2012-06-13 15:49:38.000000000 +0200 -*************** -*** 34,38 **** ---- 34,50 ---- - } - - -+ { -+ # 1 a -+ # b -+ } -+ -+ -+ { -+ # x a -+ # b -+ } -+ -+ - { 1aa ^^2bb } - -*** ../vim-7.3.551/src/version.c 2012-06-13 14:28:16.000000000 +0200 ---- src/version.c 2012-06-13 16:36:14.000000000 +0200 -*************** -*** 716,717 **** ---- 716,719 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 552, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -31. You code your homework in HTML and give your instructor the URL. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- 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 /// |