0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

updated for version 7.3.235

Problem:    ";" gets stuck on a "t" command, it's not useful.
Solution:   Add the ';' flag in 'cpo'. (Christian Brabandt)
This commit is contained in:
Bram Moolenaar 2011-06-26 05:36:34 +02:00
parent 20892c1e68
commit 8b3e0330ba
13 changed files with 58 additions and 14 deletions

View File

@ -269,11 +269,11 @@ T{char} Till after [count]'th occurrence of {char} to the
{char} can be entered like with the |f| command.
*;*
; Repeat latest f, t, F or T [count] times.
; Repeat latest f, t, F or T [count] times. See |cpo-;|
*,*
, Repeat latest f, t, F or T in opposite direction
[count] times.
[count] times. See also |cpo-;|
==============================================================================
3. Up-down motions *up-down-motions*

View File

@ -2117,6 +2117,12 @@ A jump table for the options with a short description can be found at |Q_op|.
*cpo->*
> When appending to a register, put a line break before
the appended text.
*cpo-;*
; When using |,| or |;| to repeat the last |t| search
and the cursor is right in front of the searched
character, the cursor won't move. When not included,
the cursor would skip over it and jump to the
following occurence.
POSIX flags. These are not included in the Vi default value, except
when $VIM_POSIX was set on startup. |posix|

View File

@ -169,10 +169,12 @@
#define CPO_SUBPERCENT '/' /* % in :s string uses previous one */
#define CPO_BACKSL '\\' /* \ is not special in [] */
#define CPO_CHDIR '.' /* don't chdir if buffer is modified */
#define CPO_SCOLON ';' /* using "," and ";" will skip over char if
* cursor would not move */
/* default values for Vim, Vi and POSIX */
#define CPO_VIM "aABceFs"
#define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>"
#define CPO_ALL "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\."
#define CPO_VI "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>;"
#define CPO_ALL "aAbBcCdDeEfFgHiIjJkKlLmMnoOpPqrRsStuvwWxXyZ$!%*-+<>#{|&/\\.;"
/* characters for p_ww option: */
#define WW_ALL "bshl<>[],~"

View File

@ -1546,6 +1546,7 @@ searchc(cap, t_cmd)
int col;
char_u *p;
int len;
int stop = TRUE;
#ifdef FEAT_MBYTE
static char_u bytes[MB_MAXBYTES];
static int bytelen = 1; /* >1 for multi-byte char */
@ -1580,6 +1581,12 @@ searchc(cap, t_cmd)
t_cmd = last_t_cmd;
c = lastc;
/* For multi-byte re-use last bytes[] and bytelen. */
/* Force a move of at least one char, so ";" and "," will move the
* cursor, even if the cursor is right in front of char we are looking
* at. */
if (vim_strchr(p_cpo, CPO_SCOLON) == NULL && count == 1)
stop = FALSE;
}
if (dir == BACKWARD)
@ -1612,14 +1619,15 @@ searchc(cap, t_cmd)
}
if (bytelen == 1)
{
if (p[col] == c)
if (p[col] == c && stop)
break;
}
else
{
if (vim_memcmp(p + col, bytes, bytelen) == 0)
if (vim_memcmp(p + col, bytes, bytelen) == 0 && stop)
break;
}
stop = TRUE;
}
}
else
@ -1629,8 +1637,9 @@ searchc(cap, t_cmd)
{
if ((col += dir) < 0 || col >= len)
return FAIL;
if (p[col] == c)
if (p[col] == c && stop)
break;
stop = TRUE;
}
}
}

View File

@ -28,7 +28,8 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out
test76.out test77.out test78.out test79.out test80.out \
test81.out
.SUFFIXES: .in .out
@ -128,3 +129,4 @@ test77.out: test77.in
test78.out: test78.in
test79.out: test79.in
test80.out: test80.in
test81.out: test81.in

View File

@ -29,7 +29,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out
test79.out test80.out test81.out
SCRIPTS32 = test50.out test70.out

View File

@ -49,7 +49,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
test42.out test52.out test65.out test66.out test67.out \
test68.out test69.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out
test79.out test80.out test81.out
SCRIPTS32 = test50.out test70.out

View File

@ -28,7 +28,8 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out test70.out \
test71.out test72.out test73.out test74.out test75.out \
test76.out test77.out test78.out test79.out test80.out
test76.out test77.out test78.out test79.out test80.out \
test81.out
.SUFFIXES: .in .out

View File

@ -4,7 +4,7 @@
# Authors: Zoltan Arpadffy, <arpadffy@polarhome.com>
# Sandor Kopanyi, <sandor.kopanyi@mailbox.hu>
#
# Last change: 2011 Jun 19
# Last change: 2011 Jun 26
#
# This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64.
# Edit the lines in the Configuration section below to select.
@ -75,7 +75,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
test61.out test62.out test63.out test64.out test65.out \
test66.out test67.out test68.out test69.out \
test71.out test72.out test74.out test75.out test76.out \
test77.out test78.out test79.out test80.out
test77.out test78.out test79.out test80.out test81.out
# Known problems:
# Test 30: a problem around mac format - unknown reason

View File

@ -26,7 +26,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
test64.out test65.out test66.out test67.out test68.out \
test69.out test70.out test71.out test72.out test73.out \
test74.out test75.out test76.out test77.out test78.out \
test79.out test80.out
test79.out test80.out test81.out
SCRIPTS_GUI = test16.out

18
src/testdir/test81.in Normal file
View File

@ -0,0 +1,18 @@
Test for t movement command and 'cpo-;' setting
STARTTEST
:set nocompatible
:set cpo-=;
/firstline/
j0tt;D
$Ty;D:set cpo+=;
j0tt;;D
$Ty;;D:?firstline?+1,$w! test.out
:qa!
ENDTEST
firstline
aaa two three four
bbb yee yoo four
ccc two three four
ddd yee yoo four

4
src/testdir/test81.ok Normal file
View File

@ -0,0 +1,4 @@
aaa two
bbb y
ccc
ddd yee y

View File

@ -709,6 +709,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
235,
/**/
234,
/**/