# HG changeset patch # User Bram Moolenaar # Date 1422987053 -3600 # Node ID 05202d6ba0ef2b1430519fda8bdb59576b1b01a8 # Parent bdd980d5d13fd3f3eb400b825362a1819a52a628 updated for version 7.4.617 Problem: Wrong ":argdo" range does not cause an error. Solution: Reset "cmd" to NULL. (Marcin Szamotulski, Ingo Karkat) diff --git a/src/ex_docmd.c b/src/ex_docmd.c --- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -4405,6 +4405,7 @@ get_address(ptr, addr_type, skip, to_oth if (addr_type != ADDR_LINES) { EMSG(_(e_invaddr)); + cmd = NULL; goto error; } if (skip) @@ -4436,6 +4437,7 @@ get_address(ptr, addr_type, skip, to_oth if (addr_type != ADDR_LINES) { EMSG(_(e_invaddr)); + cmd = NULL; goto error; } if (skip) /* skip "/pat/" */ @@ -4484,6 +4486,7 @@ get_address(ptr, addr_type, skip, to_oth if (addr_type != ADDR_LINES) { EMSG(_(e_invaddr)); + cmd = NULL; goto error; } if (*cmd == '&') @@ -4575,7 +4578,8 @@ get_address(ptr, addr_type, skip, to_oth n = getdigits(&cmd); if (addr_type == ADDR_LOADED_BUFFERS || addr_type == ADDR_BUFFERS) - lnum = compute_buffer_local_count(addr_type, lnum, (i == '-') ? -1 * n : n); + lnum = compute_buffer_local_count( + addr_type, lnum, (i == '-') ? -1 * n : n); else if (i == '-') lnum -= n; else @@ -4662,7 +4666,8 @@ invalid_range(eap) return (char_u *)_(e_invrange); break; case ADDR_ARGUMENTS: - if (eap->line2 > ARGCOUNT + (!ARGCOUNT)) // add 1 if ARCOUNT is 0 + /* add 1 if ARGCOUNT is 0 */ + if (eap->line2 > ARGCOUNT + (!ARGCOUNT)) return (char_u *)_(e_invrange); break; case ADDR_BUFFERS: diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 617, +/**/ 616, /**/ 615,