summaryrefslogtreecommitdiff
path: root/source/ap/vim/patches/7.3.202
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.202')
-rw-r--r--source/ap/vim/patches/7.3.202868
1 files changed, 868 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.202 b/source/ap/vim/patches/7.3.202
new file mode 100644
index 00000000..1289e085
--- /dev/null
+++ b/source/ap/vim/patches/7.3.202
@@ -0,0 +1,868 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.202
+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.202
+Problem: Cannot influence the indent inside a namespace.
+Solution: Add the "N" 'cino' parameter. (Konstantin Lepa)
+Files: runtime/doc/indent.txt, src/misc1.c, src/testdir/test3.in,
+ src/testdir/test3.ok
+
+
+*** ../mercurial/vim73/runtime/doc/indent.txt 2011-04-28 19:01:26.000000000 +0200
+--- runtime/doc/indent.txt 2011-05-25 14:35:37.000000000 +0200
+***************
+*** 128,140 ****
+ used CTRL-T or CTRL-D.
+
+ *cinoptions-values*
+! The 'cinoptions' option sets how Vim performs indentation. In the list below,
+ "N" represents a number of your choice (the number can be negative). When
+ there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
+ "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc. You can use a
+! decimal point, too: "-0.5s" is minus half a 'shiftwidth'. The examples below
+! assume a 'shiftwidth' of 4.
+!
+ >N Amount added for "normal" indent. Used after a line that should
+ increase the indent (lines starting with "if", an opening brace,
+ etc.). (default 'shiftwidth').
+--- 128,147 ----
+ used CTRL-T or CTRL-D.
+
+ *cinoptions-values*
+! The 'cinoptions' option sets how Vim performs indentation. The value after
+! the option character can be one of these (N is any number):
+! N indent N spaces
+! -N indent N spaces to the left
+! Ns N times 'shiftwidth spaces
+! -Ns N times 'shiftwidth spaces to the left
+!
+! In the list below,
+ "N" represents a number of your choice (the number can be negative). When
+ there is an 's' after the number, Vim multiplies the number by 'shiftwidth':
+ "1s" is 'shiftwidth', "2s" is two times 'shiftwidth', etc. You can use a
+! decimal point, too: "-0.5s" is minus half a 'shiftwidth'.
+! The examples below assume a 'shiftwidth' of 4.
+! *cino->*
+ >N Amount added for "normal" indent. Used after a line that should
+ increase the indent (lines starting with "if", an opening brace,
+ etc.). (default 'shiftwidth').
+***************
+*** 145,150 ****
+--- 152,158 ----
+ foo; foo; foo;
+ } } }
+ <
++ *cino-e*
+ eN Add N to the prevailing indent inside a set of braces if the
+ opening brace at the End of the line (more precise: is not the
+ first character in a line). This is useful if you want a
+***************
+*** 160,165 ****
+--- 168,174 ----
+ bar; bar; bar;
+ } } }
+ <
++ *cino-n*
+ nN Add N to the prevailing indent for a statement after an "if",
+ "while", etc., if it is NOT inside a set of braces. This is
+ useful if you want a different indent when there is no '{'
+***************
+*** 174,179 ****
+--- 183,189 ----
+ bar; bar; bar;
+ } } }
+ <
++ *cino-f*
+ fN Place the first opening brace of a function or other block in
+ column N. This applies only for an opening brace that is not
+ inside other braces and is at the start of the line. What comes
+***************
+*** 184,189 ****
+--- 194,200 ----
+ { { {
+ int foo; int foo; int foo;
+ <
++ *cino-{*
+ {N Place opening braces N characters from the prevailing indent.
+ This applies only for opening braces that are inside other
+ braces. (default 0).
+***************
+*** 193,198 ****
+--- 204,210 ----
+ { { {
+ foo; foo; foo;
+ <
++ *cino-}*
+ }N Place closing braces N characters from the matching opening
+ brace. (default 0).
+
+***************
+*** 202,207 ****
+--- 214,220 ----
+ foo; foo; foo;
+ } } }
+ <
++ *cino-^*
+ ^N Add N to the prevailing indent inside a set of braces if the
+ opening brace is in column 0. This can specify a different
+ indent for whole of a function (some may like to set it to a
+***************
+*** 216,221 ****
+--- 229,235 ----
+ } } }
+ } } }
+ <
++ *cino-L*
+ LN Controls placement of jump labels. If N is negative, the label
+ will be placed at column 1. If N is non-negative, the indent of
+ the label will be the prevailing indent minus N. (default -1).
+***************
+*** 229,234 ****
+--- 243,249 ----
+ } } }
+ } } }
+ <
++ *cino-:*
+ :N Place case labels N characters from the indent of the switch().
+ (default 'shiftwidth').
+
+***************
+*** 240,245 ****
+--- 255,261 ----
+ default: default:
+ } }
+ <
++ *cino-=*
+ =N Place statements occurring after a case label N characters from
+ the indent of the label. (default 'shiftwidth').
+
+***************
+*** 247,252 ****
+--- 263,269 ----
+ case 11: case 11: a = a + 1;
+ a = a + 1; b = b + 1;
+ <
++ *cino-l*
+ lN If N != 0 Vim will align with a case label instead of the
+ statement after it in the same line.
+
+***************
+*** 256,261 ****
+--- 273,279 ----
+ break; break;
+ } }
+ <
++ *cino-b*
+ bN If N != 0 Vim will align a final "break" with the case label,
+ so that case..break looks like a sort of block. (default: 0).
+ When using 1, consider adding "0=break" to 'cinkeys'.
+***************
+*** 272,277 ****
+--- 290,296 ----
+ break; break;
+ } }
+ <
++ *cino-g*
+ gN Place C++ scope declarations N characters from the indent of the
+ block they are in. (default 'shiftwidth'). A scope declaration
+ can be "public:", "protected:" or "private:".
+***************
+*** 283,288 ****
+--- 302,308 ----
+ private: private:
+ } }
+ <
++ *cino-h*
+ hN Place statements occurring after a C++ scope declaration N
+ characters from the indent of the label. (default
+ 'shiftwidth').
+***************
+*** 291,296 ****
+--- 311,331 ----
+ public: public: a = a + 1;
+ a = a + 1; b = b + 1;
+ <
++ *cino-N*
++ NN Indent inside C++ namespace N characters extra compared to a
++ normal block. (default 0).
++
++ cino= cino=N-s >
++ namespace { namespace {
++ void function(); void function();
++ } }
++
++ namespace my namespace my
++ { {
++ void function(); void function();
++ } }
++ <
++ *cino-p*
+ pN Parameter declarations for K&R-style function declarations will
+ be indented N characters from the margin. (default
+ 'shiftwidth').
+***************
+*** 300,305 ****
+--- 335,341 ----
+ int a; int a; int a;
+ char b; char b; char b;
+ <
++ *cino-t*
+ tN Indent a function return type declaration N characters from the
+ margin. (default 'shiftwidth').
+
+***************
+*** 307,312 ****
+--- 343,349 ----
+ int int int
+ func() func() func()
+ <
++ *cino-i*
+ iN Indent C++ base class declarations and constructor
+ initializations, if they start in a new line (otherwise they
+ are aligned at the right side of the ':').
+***************
+*** 330,335 ****
+--- 368,374 ----
+ a = b + 9 * a = b + 9 *
+ c; c;
+ <
++ *cino-c*
+ cN Indent comment lines after the comment opener, when there is no
+ other text with which to align, N characters from the comment
+ opener. (default 3). See also |format-comments|.
+***************
+*** 339,344 ****
+--- 378,384 ----
+ text. text.
+ */ */
+ <
++ *cino-C*
+ CN When N is non-zero, indent comment lines by the amount specified
+ with the c flag above even if there is other text behind the
+ comment opener. (default 0).
+***************
+*** 349,360 ****
+--- 389,402 ----
+ ********/ ********/
+ < (Example uses ":set comments& comments-=s1:/* comments^=s0:/*")
+
++ *cino-/*
+ /N Indent comment lines N characters extra. (default 0).
+ cino= cino=/4 >
+ a = b; a = b;
+ /* comment */ /* comment */
+ c = d; c = d;
+ <
++ *cino-(*
+ (N When in unclosed parentheses, indent N characters from the line
+ with the unclosed parentheses. Add a 'shiftwidth' for every
+ unclosed parentheses. When N is 0 or the unclosed parentheses
+***************
+*** 370,375 ****
+--- 412,418 ----
+ (c2 || c3)) (c2 || c3))
+ { {
+ <
++ *cino-u*
+ uN Same as (N, but for one level deeper. (default 'shiftwidth').
+
+ cino= cino=u2 >
+***************
+*** 377,382 ****
+--- 420,426 ----
+ && (c22345 && (c22345
+ || c3)) || c3))
+ <
++ *cino-U*
+ UN When N is non-zero, do not ignore the indenting specified by
+ ( or u in case that the unclosed parentheses is the first
+ non-white character in its line. (default 0).
+***************
+*** 388,393 ****
+--- 432,438 ----
+ c3 c3
+ ) && c4; ) && c4;
+ <
++ *cino-2*
+ wN When in unclosed parentheses and N is non-zero and either
+ using "(0" or "u0", respectively, or using "U0" and the unclosed
+ parentheses is the first non-white character in its line, line
+***************
+*** 400,405 ****
+--- 445,451 ----
+ || c3)) || c3))
+ foo; foo;
+ <
++ *cino-W*
+ WN When in unclosed parentheses and N is non-zero and either
+ using "(0" or "u0", respectively and the unclosed parentheses is
+ the last non-white character in its line and it is not the
+***************
+*** 414,419 ****
+--- 460,466 ----
+ a_short_line(argument, a_short_line(argument,
+ argument); argument);
+ <
++ *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
+ matching opening parentheses. (default 0).
+***************
+*** 428,433 ****
+--- 475,481 ----
+ ) )
+ foo; foo;
+ <
++ *cino-M*
+ MN When N is non-zero, line up a line starting with a closing
+ parentheses with the first character of the previous line.
+ (default 0).
+***************
+*** 437,443 ****
+ cond2 cond2
+ ) )
+ <
+! *java-cinoptions* *java-indenting*
+ jN Indent java anonymous classes correctly. The value 'N' is
+ currently unused but must be non-zero (e.g. 'j1'). 'j1' will
+ indent for example the following code snippet correctly: >
+--- 485,491 ----
+ cond2 cond2
+ ) )
+ <
+! *java-cinoptions* *java-indenting* *cino-j*
+ jN Indent java anonymous classes correctly. The value 'N' is
+ currently unused but must be non-zero (e.g. 'j1'). 'j1' will
+ indent for example the following code snippet correctly: >
+***************
+*** 448,454 ****
+ }
+ });
+ <
+! *javascript-cinoptions* *javascript-indenting*
+ JN Indent JavaScript object declarations correctly by not confusing
+ them with labels. The value 'N' is currently unused but must be
+ non-zero (e.g. 'J1'). >
+--- 496,502 ----
+ }
+ });
+ <
+! *javascript-cinoptions* *javascript-indenting* *cino-J*
+ JN Indent JavaScript object declarations correctly by not confusing
+ them with labels. The value 'N' is currently unused but must be
+ non-zero (e.g. 'J1'). >
+***************
+*** 483,489 ****
+
+
+ The defaults, spelled out in full, are:
+! cinoptions=>s,e0,n0,f0,{0,}0,^0,L-1,:s,=s,l0,b0,gs,hs,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:
+--- 534,540 ----
+
+
+ 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:
+*** ../mercurial/vim73/src/misc1.c 2011-05-25 13:33:59.000000000 +0200
+--- src/misc1.c 2011-05-25 14:57:31.000000000 +0200
+***************
+*** 4959,4964 ****
+--- 4959,4965 ----
+ static int corr_ind_maxparen __ARGS((int ind_maxparen, pos_T *startpos));
+ static int find_last_paren __ARGS((char_u *l, int start, int end));
+ static int find_match __ARGS((int lookfor, linenr_T ourscope, int ind_maxparen, int ind_maxcomment));
++ static int cin_is_cpp_namespace __ARGS((char_u *));
+
+ static int ind_hash_comment = 0; /* # starts a comment */
+
+***************
+*** 5221,5226 ****
+--- 5222,5271 ----
+ return (*(s = cin_skipcomment(s + i)) == ':' && s[1] != ':');
+ }
+
++ /* Maximum number of lines to search back for a "namespace" line. */
++ #define FIND_NAMESPACE_LIM 20
++
++ /*
++ * Recognize a "namespace" scope declaration.
++ */
++ static int
++ cin_is_cpp_namespace(s)
++ char_u *s;
++ {
++ char_u *p;
++ int has_name = FALSE;
++
++ s = cin_skipcomment(s);
++ if (STRNCMP(s, "namespace", 9) == 0 && (s[9] == NUL || !vim_iswordc(s[9])))
++ {
++ p = cin_skipcomment(skipwhite(s + 9));
++ while (*p != NUL)
++ {
++ if (vim_iswhite(*p))
++ {
++ has_name = TRUE; /* found end of a name */
++ p = cin_skipcomment(skipwhite(p));
++ }
++ else if (*p == '{')
++ {
++ break;
++ }
++ else if (vim_iswordc(*p))
++ {
++ if (has_name)
++ return FALSE; /* word character after skipping past name */
++ ++p;
++ }
++ else
++ {
++ return FALSE;
++ }
++ }
++ return TRUE;
++ }
++ return FALSE;
++ }
++
+ /*
+ * Return a pointer to the first non-empty non-comment character after a ':'.
+ * Return NULL if not found.
+***************
+*** 6296,6301 ****
+--- 6341,6351 ----
+ */
+ int ind_keep_case_label = 0;
+
++ /*
++ * handle C++ namespace
++ */
++ int ind_cpp_namespace = 0;
++
+ pos_T cur_curpos;
+ int amount;
+ int scope_amount;
+***************
+*** 6336,6341 ****
+--- 6386,6392 ----
+ int n;
+ int iscase;
+ int lookfor_break;
++ int lookfor_cpp_namespace = FALSE;
+ int cont_amount = 0; /* amount for continuation line */
+ int original_line_islabel;
+
+***************
+*** 6409,6414 ****
+--- 6460,6466 ----
+ case 'J': ind_js = n; break;
+ case 'l': ind_keep_case_label = n; break;
+ case '#': ind_hash_comment = n; break;
++ case 'N': ind_cpp_namespace = n; break;
+ }
+ if (*options == ',')
+ ++options;
+***************
+*** 6976,6986 ****
+--- 7028,7051 ----
+ if (start_brace == BRACE_IN_COL0) /* '{' is in column 0 */
+ {
+ amount = ind_open_left_imag;
++ lookfor_cpp_namespace = TRUE;
++ }
++ else if (start_brace == BRACE_AT_START &&
++ lookfor_cpp_namespace) /* '{' is at start */
++ {
++
++ lookfor_cpp_namespace = TRUE;
+ }
+ else
+ {
+ if (start_brace == BRACE_AT_END) /* '{' is at end of line */
++ {
+ amount += ind_open_imag;
++
++ l = skipwhite(ml_get_curline());
++ if (cin_is_cpp_namespace(l))
++ amount += ind_cpp_namespace;
++ }
+ else
+ {
+ /* Compensate for adding ind_open_extra later. */
+***************
+*** 7151,7156 ****
+--- 7216,7261 ----
+ else
+ amount += ind_continuation;
+ }
++ else if (lookfor_cpp_namespace)
++ {
++ if (curwin->w_cursor.lnum == ourscope)
++ continue;
++
++ if (curwin->w_cursor.lnum == 0
++ || curwin->w_cursor.lnum
++ < ourscope - FIND_NAMESPACE_LIM)
++ break;
++
++ l = ml_get_curline();
++
++ /*
++ * If we're in a comment now, skip to the start of the
++ * comment.
++ */
++ trypos = find_start_comment(ind_maxcomment);
++ if (trypos != NULL)
++ {
++ curwin->w_cursor.lnum = trypos->lnum + 1;
++ curwin->w_cursor.col = 0;
++ continue;
++ }
++
++ /*
++ * Skip preprocessor directives and blank lines.
++ */
++ if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum))
++ continue;
++
++ if (cin_is_cpp_namespace(l))
++ {
++ amount += ind_cpp_namespace;
++ break;
++ }
++
++ if (cin_nocode(l))
++ continue;
++
++ }
+ else if (lookfor != LOOKFOR_TERM
+ && lookfor != LOOKFOR_CPP_BASECLASS)
+ {
+*** ../mercurial/vim73/src/testdir/test3.in 2011-05-25 13:33:59.000000000 +0200
+--- src/testdir/test3.in 2011-05-25 14:47:31.000000000 +0200
+***************
+*** 799,804 ****
+--- 799,867 ----
+ df */
+ hello
+ }
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++
+ /* end of AUTO */
+
+ STARTTEST
+***************
+*** 1428,1433 ****
+--- 1491,1566 ----
+ }
+
+ STARTTEST
++ :set cino=N-s
++ /namespaces
++ =/^NAMESPACEEND
++ ENDTEST
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++ NAMESPACEEND
++
++
++ STARTTEST
+ :g/^STARTTEST/.,/^ENDTEST/d
+ :1;/start of AUTO/,$wq! test.out
+ ENDTEST
+*** ../mercurial/vim73/src/testdir/test3.ok 2011-05-25 13:33:59.000000000 +0200
+--- src/testdir/test3.ok 2011-05-25 14:48:02.000000000 +0200
+***************
+*** 787,792 ****
+--- 787,855 ----
+ df */
+ hello
+ }
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++
+ /* end of AUTO */
+
+
+***************
+*** 1273,1275 ****
+--- 1336,1403 ----
+ baz();
+ }
+
++
++ /* valid namespaces with normal indent */
++ namespace
++ {
++ {
++ 111111111111;
++ }
++ }
++ namespace /* test */
++ {
++ 11111111111111111;
++ }
++ namespace // test
++ {
++ 111111111111111111;
++ }
++ namespace
++ {
++ 111111111111111111;
++ }
++ namespace test
++ {
++ 111111111111111111;
++ }
++ namespace{
++ 111111111111111111;
++ }
++ namespace test{
++ 111111111111111111;
++ }
++ namespace {
++ 111111111111111111;
++ }
++ namespace test {
++ 111111111111111111;
++ namespace test2 {
++ 22222222222222222;
++ }
++ }
++
++ /* invalid namespaces use block indent */
++ namespace test test2 {
++ 111111111111111111111;
++ }
++ namespace11111111111 {
++ 111111111111;
++ }
++ namespace() {
++ 1111111111111;
++ }
++ namespace()
++ {
++ 111111111111111111;
++ }
++ namespace test test2
++ {
++ 1111111111111111111;
++ }
++ namespace111111111
++ {
++ 111111111111111111;
++ }
++ NAMESPACEEND
++
++
+*** ../vim-7.3.201/src/version.c 2011-05-25 13:33:59.000000000 +0200
+--- src/version.c 2011-05-25 15:14:20.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 202,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+107. When using your phone you forget that you don't have to use your
+ keyboard.
+
+ /// 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 ///