Patch 7.3.202

32 views
Skip to first unread message

Bram Moolenaar

unread,
May 25, 2011, 9:16:33 AM5/25/11
to vim...@googlegroups.com

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 ':').
***************
*** 320,325 ****
--- 357,363 ----
BaseClass(3) BaseClass(3)
{} {}
<
+ *cino-+*
+N Indent a continuation line (a line that spills onto the next)
inside a function N additional characters. (default
'shiftwidth').
***************
*** 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'). >
***************
*** 466,481 ****
--- 514,532 ----
}
}
<
+ *cino-)*
)N Vim searches for unclosed parentheses at most N lines away.
This limits the time needed to search for parentheses. (default
20 lines).

+ *cino-star*
*N Vim searches for unclosed comments at most N lines away. This
limits the time needed to search for the start of a comment.
If your /* */ comments stop indenting afer N lines this is the
value you will want to change.
(default 70 lines).

+ *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
***************
*** 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 -- Br...@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 ///

Danek Duvall

unread,
May 27, 2011, 3:49:29 PM5/27/11
to vim...@googlegroups.com
I'm getting an error applying this, after having applied all previous
patches to the 7.3 tarball:

patching file runtime/doc/indent.txt
Hunk #12 succeeded at 273 with fuzz 1.
Hunk #13 succeeded at 289 (offset -1 lines).
Hunk #14 succeeded at 301 (offset -1 lines).
Hunk #15 succeeded at 310 (offset -1 lines).
Hunk #16 succeeded at 334 (offset -1 lines).
Hunk #17 succeeded at 342 (offset -1 lines).
Hunk #18 FAILED at 356.
Hunk #19 succeeded at 364 (offset -4 lines).
Hunk #20 succeeded at 374 (offset -4 lines).
Hunk #21 succeeded at 385 (offset -4 lines).
Hunk #22 succeeded at 408 (offset -4 lines).
Hunk #23 succeeded at 416 (offset -4 lines).
Hunk #24 succeeded at 428 (offset -4 lines).
Hunk #25 succeeded at 441 (offset -4 lines).
Hunk #26 succeeded at 456 (offset -4 lines).
Hunk #27 succeeded at 471 (offset -4 lines).
Hunk #28 succeeded at 481 (offset -4 lines).
Hunk #29 succeeded at 492 (offset -4 lines).
Hunk #30 FAILED at 510.
Hunk #31 succeeded at 528 (offset -6 lines).
2 out of 31 hunks FAILED -- saving rejects to file runtime/doc/indent.txt.rej
patching file src/misc1.c
patching file src/testdir/test3.in
patching file src/testdir/test3.ok
patching file src/version.c

Normally this is just fine. In fact, patches 191 and 196 were the only
other patches that reported even needing an offset.

Any ideas?

Thanks,
Danek

H Xu

unread,
May 28, 2011, 7:11:22 AM5/28/11
to Danek Duvall, vim...@googlegroups.com
On 05/28/2011 03:49 AM, Danek Duvall wrote:
> I'm getting an error applying this, after having applied all previous
> patches to the 7.3 tarball:
> [...]

> Normally this is just fine. In fact, patches 191 and 196 were the only
> other patches that reported even needing an offset.

Hello Danek Duvall,

I see that you failed to patch a doc file, which is not only updated in
the patch way. Usually doc files are also updated in the vim mercurial
repository, which is probably the culprit of the patch failure, so you
can ignore this patch failure and obtain the latest doc files at the
mercurial repository.

Regards,
H Xu
05/28/2011

Danek Duvall

unread,
May 28, 2011, 1:59:39 PM5/28/11
to H Xu, vim...@googlegroups.com

I usually apply all the patches from the patches directory and then create
a "runtime" patch that applies on top of those to bring the runtime up to
the latest patchlevel. Then I can check the runtime patch into my
workspace, but have the canonical patches downloaded. Unfortunately,
there's no reasonable way to automate interleaving runtime patches with
code.

I'd prefer not to ignore errors, because that usually means something went
wrong, and I'd like the build to fail if something went wrong. I could
also try editing the patch on the fly before applying it, or try to apply
the patch only to the non-runtime files, but the build architecture is
making it a touch difficult to figure out how to do that.

I'll find a way to work around it if necessary, but I was wondering whether
this was simply a mistake, and if so, if the patch file on the ftp site
could simply be regenerated to not include the changes to eval.txt, and let
folks who want to patch that do so the usual way (or if the changes are
truly integral, deliver them as changes that apply against 7.3).

Or perhaps there's a smooth, generic patch-flow I'm not seeing where this
problem isn't actually a problem.

Thanks,
Danek

Tony Mechelynck

unread,
May 28, 2011, 11:31:54 PM5/28/11
to Danek Duvall, H Xu, vim...@googlegroups.com
On 28/05/11 19:59, Danek Duvall wrote:
[...]

> Or perhaps there's a smooth, generic patch-flow I'm not seeing where this
> problem isn't actually a problem.
>
> Thanks,
> Danek
>

See http://vim.wikia.com/wiki/Getting_the_Vim_source_with_Mercurial


Best regards,
Tony.
--
[District Attorneys] learn in District Attorney School that there are
two sure-fire ways to get a lot of favorable publicity:

(1) Go down and raid all the lockers in the local high school and
confiscate 53 marijuana cigarettes and put them in a pile and hold
a press conference where you announce that they have a street value
of $850 million. These raids never fail, because ALL high schools,
including brand-new, never-used ones, have at least 53 marijuana
cigarettes in the lockers. As far as anyone can tell, the locker
factory puts them there.
(2) Raid an "adult book store" and hold a press conference where you
announce you are charging the owner with 850 counts of being a
piece of human sleaze. This also never fails, because you always
get a conviction. A juror at a pornography trial is not about to
state for the record that he finds nothing obscene about a movie
where actors engage in sexual activities with live snakes and a
fire extinguisher. He is going to convict the bookstore owner, and
vote for the death penalty just to make sure nobody gets the wrong
impression.
-- Dave Barry, "Pornography"

Danek Duvall

unread,
May 31, 2011, 11:37:14 AM5/31/11
to Tony Mechelynck, H Xu, vim...@googlegroups.com
Tony Mechelynck wrote:

> On 28/05/11 19:59, Danek Duvall wrote:
>
> >Or perhaps there's a smooth, generic patch-flow I'm not seeing where this
> >problem isn't actually a problem.
>

> See http://vim.wikia.com/wiki/Getting_the_Vim_source_with_Mercurial

Yes, I can do that, but our build infrastructure is currently designed with
tarballs and patches in mind, not SCMs. That said, using an SCM URL in
place of a tarball URL is something I've wanted for a while, so perhaps I
should spend some time designing that into the tools if vim's tarball/patch
model is broken.

Thanks,
Danek

Reply all
Reply to author
Forward
0 new messages