summaryrefslogtreecommitdiff
path: root/source/ap/vim/patches/7.3.492
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.492')
-rw-r--r--source/ap/vim/patches/7.3.492718
1 files changed, 718 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.492 b/source/ap/vim/patches/7.3.492
new file mode 100644
index 00000000..b32b6f68
--- /dev/null
+++ b/source/ap/vim/patches/7.3.492
@@ -0,0 +1,718 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.492
+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.492
+Problem: Can't indent conditions separately from function arguments.
+Solution: Add the 'k' flag in 'cino. (Lech Lorens)
+Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
+ src/testdir/test3.ok
+
+
+*** ../vim-7.3.491/runtime/doc/indent.txt 2011-06-26 03:16:58.000000000 +0200
+--- runtime/doc/indent.txt 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 459,464 ****
+--- 460,481 ----
+ a_short_line(argument, a_short_line(argument,
+ argument); argument);
+ <
++ *cino-k*
++ kN When in unclosed parentheses which follow "if", "for" or
++ "while" and N is non-zero, overrides the behaviour defined by
++ "(N": causes the indent to be N characters relative to the outer
++ context (i.e. the line where "if", "for" or "while" is). Has
++ no effect on deeper levels of nesting. Affects flags like "wN"
++ only for the "if", "for" and "while" conditions. If 0, defaults
++ to behaviour defined by the "(N" flag. (default: 0).
++
++ cino=(0 cino=(0,ks >
++ if (condition1 if (condition1
++ && condition2) && condition2)
++ action(); action();
++ function(argument1 function(argument1
++ && argument2); && argument2);
++ <
+ *cino-m*
+ mN When N is non-zero, line up a line starting with a closing
+ parentheses with the first character of the line with the
+***************
+*** 527,540 ****
+
+ *cino-#*
+ #N When N is non-zero recognize shell/Perl comments, starting with
+! '#'. Default N is zero: don't recognizes '#' comments. Note
+ that lines starting with # will still be seen as preprocessor
+ lines.
+
+
+ The defaults, spelled out in full, are:
+ cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+! c3,C0,/0,(2s,us,U0,w0,W0,m0,j0,J0,)20,*70,#0
+
+ Vim puts a line in column 1 if:
+ - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
+--- 546,559 ----
+
+ *cino-#*
+ #N When N is non-zero recognize shell/Perl comments, starting with
+! '#'. Default N is zero: don't recognize '#' comments. Note
+ that lines starting with # will still be seen as preprocessor
+ lines.
+
+
+ The defaults, spelled out in full, are:
+ cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,N0,ps,ts,is,+s,
+! c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0
+
+ Vim puts a line in column 1 if:
+ - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'.
+*** ../vim-7.3.491/src/misc1.c 2012-02-29 13:49:03.000000000 +0100
+--- src/misc1.c 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 5771,5776 ****
+--- 5771,5822 ----
+ }
+
+ /*
++ * Check whether in "p" there is an "if", "for" or "while" before offset.
++ * Return 0 if there is none.
++ * Otherwise return !0 and update "*poffset" to point to the place where the
++ * string was found.
++ */
++ static int
++ cin_is_if_for_while_before_offset(line, offset, poffset)
++ char_u *line;
++ size_t offset;
++ int *poffset;
++ {
++
++ if (offset-- < 2)
++ return 0;
++ while (offset > 2 && vim_iswhite(line[offset]))
++ --offset;
++
++ offset -= 1;
++ if (!STRNCMP(line + offset, "if", 2))
++ goto probablyFound;
++
++ if (offset >= 1)
++ {
++ offset -= 1;
++ if (!STRNCMP(line + offset, "for", 3))
++ goto probablyFound;
++
++ if (offset >= 2)
++ {
++ offset -= 2;
++ if (!STRNCMP(line + offset, "while", 5))
++ goto probablyFound;
++ }
++ }
++
++ return 0;
++ probablyFound:
++ if (!offset || !vim_isIDc(line[offset - 1]))
++ {
++ *poffset = offset;
++ return 1;
++ }
++ return 0;
++ }
++
++ /*
+ * Return TRUE if we are at the end of a do-while.
+ * do
+ * nothing;
+***************
+*** 6124,6130 ****
+
+ /*
+ * Find the matching '(', failing if it is in a comment.
+! * Return NULL of no match found.
+ */
+ static pos_T *
+ find_match_paren(ind_maxparen, ind_maxcomment) /* XXX */
+--- 6170,6176 ----
+
+ /*
+ * Find the matching '(', failing if it is in a comment.
+! * Return NULL if no match found.
+ */
+ static pos_T *
+ find_match_paren(ind_maxparen, ind_maxcomment) /* XXX */
+***************
+*** 6393,6398 ****
+--- 6439,6450 ----
+ */
+ int ind_cpp_namespace = 0;
+
++ /*
++ * handle continuation lines containing conditions of if(), for() and
++ * while()
++ */
++ int ind_if_for_while = 0;
++
+ pos_T cur_curpos;
+ int amount;
+ int scope_amount;
+***************
+*** 6437,6442 ****
+--- 6489,6495 ----
+ int cont_amount = 0; /* amount for continuation line */
+ int original_line_islabel;
+ int added_to_amount = 0;
++ int is_if_for_while = 0;
+
+ for (options = curbuf->b_p_cino; *options; )
+ {
+***************
+*** 6509,6514 ****
+--- 6562,6568 ----
+ case 'l': ind_keep_case_label = n; break;
+ case '#': ind_hash_comment = n; break;
+ case 'N': ind_cpp_namespace = n; break;
++ case 'k': ind_if_for_while = n; break;
+ }
+ if (*options == ',')
+ ++options;
+***************
+*** 6812,6817 ****
+--- 6866,6900 ----
+ if (amount == -1)
+ {
+ int ignore_paren_col = 0;
++ int is_if_for_while = 0;
++
++ if (ind_if_for_while)
++ {
++ /* Look for the outermost opening parenthesis on this line
++ * and check whether it belongs to an "if", "for" or "while". */
++
++ pos_T cursor_save = curwin->w_cursor;
++ pos_T outermost;
++ char_u *line;
++ int look_col;
++
++ trypos = &our_paren_pos;
++ do {
++ outermost = *trypos;
++ curwin->w_cursor.lnum = outermost.lnum;
++ curwin->w_cursor.col = outermost.col;
++
++ trypos = find_match_paren(ind_maxparen, ind_maxcomment);
++ } while (trypos && trypos->lnum == outermost.lnum);
++
++ curwin->w_cursor = cursor_save;
++
++ line = ml_get(outermost.lnum);
++
++ is_if_for_while =
++ cin_is_if_for_while_before_offset(line, outermost.col,
++ &outermost.col);
++ }
+
+ amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment);
+ look = skipwhite(look);
+***************
+*** 6836,6842 ****
+ curwin->w_cursor.lnum = save_lnum;
+ look = ml_get(our_paren_pos.lnum) + look_col;
+ }
+! if (theline[0] == ')' || ind_unclosed == 0
+ || (!ind_unclosed_noignore && *look == '('
+ && ignore_paren_col == 0))
+ {
+--- 6919,6925 ----
+ curwin->w_cursor.lnum = save_lnum;
+ look = ml_get(our_paren_pos.lnum) + look_col;
+ }
+! if (theline[0] == ')' || (ind_unclosed == 0 && is_if_for_while == 0)
+ || (!ind_unclosed_noignore && *look == '('
+ && ignore_paren_col == 0))
+ {
+***************
+*** 6907,6913 ****
+ {
+ /* Line up with the start of the matching paren line. */
+ }
+! else if (ind_unclosed == 0 || (!ind_unclosed_noignore
+ && *look == '(' && ignore_paren_col == 0))
+ {
+ if (cur_amount != MAXCOL)
+--- 6990,6997 ----
+ {
+ /* Line up with the start of the matching paren line. */
+ }
+! else if ((ind_unclosed == 0 && is_if_for_while == 0)
+! || (!ind_unclosed_noignore
+ && *look == '(' && ignore_paren_col == 0))
+ {
+ if (cur_amount != MAXCOL)
+***************
+*** 6943,6949 ****
+ if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+ amount += ind_unclosed2;
+ else
+! amount += ind_unclosed;
+ }
+ /*
+ * For a line starting with ')' use the minimum of the two
+--- 7027,7038 ----
+ if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL)
+ amount += ind_unclosed2;
+ else
+! {
+! if (is_if_for_while)
+! amount += ind_if_for_while;
+! else
+! amount += ind_unclosed;
+! }
+ }
+ /*
+ * For a line starting with ')' use the minimum of the two
+*** ../vim-7.3.491/src/testdir/test3.in 2011-12-14 20:21:29.000000000 +0100
+--- src/testdir/test3.in 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 1574,1579 ****
+--- 1574,1793 ----
+ }
+
+ STARTTEST
++ :set cino=k2s,(0
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++ STARTTEST
++ :set cino=k2s,(s
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++ STARTTEST
++ :set cino=k2s,(s,U1
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ c = c1 &&
++ (
++ c2 ||
++ c3
++ ) && c4;
++ }
++
++ STARTTEST
++ :set cino=k2s,(0,W4
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++
++ a_long_line(
++ argument,
++ argument);
++ a_short_line(argument,
++ argument);
++ }
++
++ STARTTEST
++ :set cino=k2s,u2
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++ }
++
++ STARTTEST
++ :set cino=k2s,(0,w1
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++ STARTTEST
++ :set cino=k2,(s
++ 2kdd3j=][
++ ENDTEST
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ }
++
++ STARTTEST
+ :set cino=N-s
+ /^NAMESPACESTART
+ =/^NAMESPACEEND
+*** ../vim-7.3.491/src/testdir/test3.ok 2011-12-14 20:21:29.000000000 +0100
+--- src/testdir/test3.ok 2012-04-05 17:12:14.000000000 +0200
+***************
+*** 1411,1416 ****
+--- 1411,1602 ----
+ }
+
+
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ c = c1 &&
++ (
++ c2 ||
++ c3
++ ) && c4;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++
++ a_long_line(
++ argument,
++ argument);
++ a_short_line(argument,
++ argument);
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ if (c123456789
++ && (c22345
++ || c3))
++ printf("foo\n");
++
++ if ( c1
++ && ( c2
++ || c3))
++ foo;
++ func( c1
++ && ( c2
++ || c3))
++ foo;
++ }
++
++
++ void func(void)
++ {
++ if (condition1
++ && condition2)
++ action();
++ function(argument1
++ && argument2);
++
++ if (c1 && (c2 ||
++ c3))
++ foo;
++ if (c1 &&
++ (c2 || c3))
++ {
++ }
++ }
++
++
+ NAMESPACESTART
+ /* valid namespaces with normal indent */
+ namespace
+*** ../vim-7.3.491/src/version.c 2012-04-05 16:56:38.000000000 +0200
+--- src/version.c 2012-04-05 17:14:18.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 492,
+ /**/
+
+--
+You were lucky to have a LAKE! There were a hundred and sixty of
+us living in a small shoebox in the middle of the road.
+
+ /// 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 ///