forked from aniani/vim
patch 8.2.0778: libvterm code lags behind the upstream version
Problem: Libvterm code lags behind the upstream version. Solution: Include revisions 720 - 723.
This commit is contained in:
@@ -118,7 +118,7 @@ distdir: $(INCFILES)
|
|||||||
mkdir __distdir
|
mkdir __distdir
|
||||||
cp LICENSE __distdir
|
cp LICENSE __distdir
|
||||||
mkdir __distdir/src
|
mkdir __distdir/src
|
||||||
cp src/*.c src/*.h __distdir/src
|
cp src/*.c src/*.h src/*.inc __distdir/src
|
||||||
mkdir __distdir/src/encoding
|
mkdir __distdir/src/encoding
|
||||||
cp src/encoding/*.inc __distdir/src/encoding
|
cp src/encoding/*.inc __distdir/src/encoding
|
||||||
mkdir __distdir/include
|
mkdir __distdir/include
|
||||||
|
@@ -922,6 +922,7 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha
|
|||||||
VTermState *state = user;
|
VTermState *state = user;
|
||||||
int leader_byte = 0;
|
int leader_byte = 0;
|
||||||
int intermed_byte = 0;
|
int intermed_byte = 0;
|
||||||
|
int cancel_phantom = 1;
|
||||||
VTermPos oldpos = state->pos;
|
VTermPos oldpos = state->pos;
|
||||||
int handled = 1;
|
int handled = 1;
|
||||||
|
|
||||||
@@ -1237,6 +1238,24 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha
|
|||||||
state->at_phantom = 0;
|
state->at_phantom = 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0x62: { // REP - ECMA-48 8.3.103
|
||||||
|
const int row_width = THISROWWIDTH(state);
|
||||||
|
count = CSI_ARG_COUNT(args[0]);
|
||||||
|
col = state->pos.col + count;
|
||||||
|
UBOUND(col, row_width);
|
||||||
|
while (state->pos.col < col) {
|
||||||
|
putglyph(state, state->combine_chars, state->combine_width, state->pos);
|
||||||
|
state->pos.col += state->combine_width;
|
||||||
|
}
|
||||||
|
if (state->pos.col + state->combine_width >= row_width) {
|
||||||
|
if (state->mode.autowrap) {
|
||||||
|
state->at_phantom = 1;
|
||||||
|
cancel_phantom = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case 0x63: // DA - ECMA-48 8.3.24
|
case 0x63: // DA - ECMA-48 8.3.24
|
||||||
val = CSI_ARG_OR(args[0], 0);
|
val = CSI_ARG_OR(args[0], 0);
|
||||||
if(val == 0)
|
if(val == 0)
|
||||||
@@ -1523,7 +1542,7 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha
|
|||||||
UBOUND(state->pos.col, THISROWWIDTH(state)-1);
|
UBOUND(state->pos.col, THISROWWIDTH(state)-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
updatecursor(state, &oldpos, 1);
|
updatecursor(state, &oldpos, cancel_phantom);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if(state->pos.row < 0 || state->pos.row >= state->rows ||
|
if(state->pos.row < 0 || state->pos.row >= state->rows ||
|
||||||
|
@@ -30,6 +30,13 @@ PUSH "\xEF\xBC\x90 "
|
|||||||
putglyph 0xff10 2 0,0
|
putglyph 0xff10 2 0,0
|
||||||
putglyph 0x20 1 0,2
|
putglyph 0x20 1 0,2
|
||||||
|
|
||||||
|
!UTF-8 emoji wide char
|
||||||
|
# U+1F600 = 0xF0 0x9F 0x98 0x80 name: GRINNING FACE
|
||||||
|
RESET
|
||||||
|
PUSH "\xF0\x9F\x98\x80 "
|
||||||
|
putglyph 0x1f600 2 0,0
|
||||||
|
putglyph 0x20 1 0,2
|
||||||
|
|
||||||
!UTF-8 combining chars
|
!UTF-8 combining chars
|
||||||
# U+0301 = 0xCC 0x81 name: COMBINING ACUTE
|
# U+0301 = 0xCC 0x81 name: COMBINING ACUTE
|
||||||
RESET
|
RESET
|
||||||
|
128
src/libvterm/t/92lp1805050.test
Normal file
128
src/libvterm/t/92lp1805050.test
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
INIT
|
||||||
|
UTF8 1
|
||||||
|
WANTSTATE g
|
||||||
|
|
||||||
|
!REP no argument
|
||||||
|
RESET
|
||||||
|
PUSH "a\e[b"
|
||||||
|
putglyph 0x61 1 0,0
|
||||||
|
putglyph 0x61 1 0,1
|
||||||
|
|
||||||
|
!REP zero (zero should be interpreted as one)
|
||||||
|
RESET
|
||||||
|
PUSH "a\e[0b"
|
||||||
|
putglyph 0x61 1 0,0
|
||||||
|
putglyph 0x61 1 0,1
|
||||||
|
|
||||||
|
!REP lowercase a times two
|
||||||
|
RESET
|
||||||
|
PUSH "a\e[2b"
|
||||||
|
putglyph 0x61 1 0,0
|
||||||
|
putglyph 0x61 1 0,1
|
||||||
|
putglyph 0x61 1 0,2
|
||||||
|
|
||||||
|
!REP with UTF-8 1 char
|
||||||
|
# U+00E9 = 0xC3 0xA9 name: LATIN SMALL LETTER E WITH ACUTE
|
||||||
|
RESET
|
||||||
|
PUSH "\xC3\xA9\e[b"
|
||||||
|
putglyph 0xe9 1 0,0
|
||||||
|
putglyph 0xe9 1 0,1
|
||||||
|
|
||||||
|
!REP with UTF-8 wide char
|
||||||
|
# U+00E9 = 0xC3 0xA9 name: LATIN SMALL LETTER E WITH ACUTE
|
||||||
|
RESET
|
||||||
|
PUSH "\xEF\xBC\x90\e[b"
|
||||||
|
putglyph 0xff10 2 0,0
|
||||||
|
putglyph 0xff10 2 0,2
|
||||||
|
|
||||||
|
!REP with UTF-8 combining character
|
||||||
|
RESET
|
||||||
|
PUSH "e\xCC\x81\e[b"
|
||||||
|
putglyph 0x65,0x301 1 0,0
|
||||||
|
putglyph 0x65,0x301 1 0,1
|
||||||
|
|
||||||
|
!REP till end of line
|
||||||
|
RESET
|
||||||
|
PUSH "a\e[1000bb"
|
||||||
|
putglyph 0x61 1 0,0
|
||||||
|
putglyph 0x61 1 0,1
|
||||||
|
putglyph 0x61 1 0,2
|
||||||
|
putglyph 0x61 1 0,3
|
||||||
|
putglyph 0x61 1 0,4
|
||||||
|
putglyph 0x61 1 0,5
|
||||||
|
putglyph 0x61 1 0,6
|
||||||
|
putglyph 0x61 1 0,7
|
||||||
|
putglyph 0x61 1 0,8
|
||||||
|
putglyph 0x61 1 0,9
|
||||||
|
putglyph 0x61 1 0,10
|
||||||
|
putglyph 0x61 1 0,11
|
||||||
|
putglyph 0x61 1 0,12
|
||||||
|
putglyph 0x61 1 0,13
|
||||||
|
putglyph 0x61 1 0,14
|
||||||
|
putglyph 0x61 1 0,15
|
||||||
|
putglyph 0x61 1 0,16
|
||||||
|
putglyph 0x61 1 0,17
|
||||||
|
putglyph 0x61 1 0,18
|
||||||
|
putglyph 0x61 1 0,19
|
||||||
|
putglyph 0x61 1 0,20
|
||||||
|
putglyph 0x61 1 0,21
|
||||||
|
putglyph 0x61 1 0,22
|
||||||
|
putglyph 0x61 1 0,23
|
||||||
|
putglyph 0x61 1 0,24
|
||||||
|
putglyph 0x61 1 0,25
|
||||||
|
putglyph 0x61 1 0,26
|
||||||
|
putglyph 0x61 1 0,27
|
||||||
|
putglyph 0x61 1 0,28
|
||||||
|
putglyph 0x61 1 0,29
|
||||||
|
putglyph 0x61 1 0,30
|
||||||
|
putglyph 0x61 1 0,31
|
||||||
|
putglyph 0x61 1 0,32
|
||||||
|
putglyph 0x61 1 0,33
|
||||||
|
putglyph 0x61 1 0,34
|
||||||
|
putglyph 0x61 1 0,35
|
||||||
|
putglyph 0x61 1 0,36
|
||||||
|
putglyph 0x61 1 0,37
|
||||||
|
putglyph 0x61 1 0,38
|
||||||
|
putglyph 0x61 1 0,39
|
||||||
|
putglyph 0x61 1 0,40
|
||||||
|
putglyph 0x61 1 0,41
|
||||||
|
putglyph 0x61 1 0,42
|
||||||
|
putglyph 0x61 1 0,43
|
||||||
|
putglyph 0x61 1 0,44
|
||||||
|
putglyph 0x61 1 0,45
|
||||||
|
putglyph 0x61 1 0,46
|
||||||
|
putglyph 0x61 1 0,47
|
||||||
|
putglyph 0x61 1 0,48
|
||||||
|
putglyph 0x61 1 0,49
|
||||||
|
putglyph 0x61 1 0,50
|
||||||
|
putglyph 0x61 1 0,51
|
||||||
|
putglyph 0x61 1 0,52
|
||||||
|
putglyph 0x61 1 0,53
|
||||||
|
putglyph 0x61 1 0,54
|
||||||
|
putglyph 0x61 1 0,55
|
||||||
|
putglyph 0x61 1 0,56
|
||||||
|
putglyph 0x61 1 0,57
|
||||||
|
putglyph 0x61 1 0,58
|
||||||
|
putglyph 0x61 1 0,59
|
||||||
|
putglyph 0x61 1 0,60
|
||||||
|
putglyph 0x61 1 0,61
|
||||||
|
putglyph 0x61 1 0,62
|
||||||
|
putglyph 0x61 1 0,63
|
||||||
|
putglyph 0x61 1 0,64
|
||||||
|
putglyph 0x61 1 0,65
|
||||||
|
putglyph 0x61 1 0,66
|
||||||
|
putglyph 0x61 1 0,67
|
||||||
|
putglyph 0x61 1 0,68
|
||||||
|
putglyph 0x61 1 0,69
|
||||||
|
putglyph 0x61 1 0,70
|
||||||
|
putglyph 0x61 1 0,71
|
||||||
|
putglyph 0x61 1 0,72
|
||||||
|
putglyph 0x61 1 0,73
|
||||||
|
putglyph 0x61 1 0,74
|
||||||
|
putglyph 0x61 1 0,75
|
||||||
|
putglyph 0x61 1 0,76
|
||||||
|
putglyph 0x61 1 0,77
|
||||||
|
putglyph 0x61 1 0,78
|
||||||
|
putglyph 0x61 1 0,79
|
||||||
|
putglyph 0x62 1 1,0
|
||||||
|
|
@@ -8,14 +8,16 @@ use IPC::Open2 qw( open2 );
|
|||||||
use POSIX qw( WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG );
|
use POSIX qw( WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG );
|
||||||
|
|
||||||
my $VALGRIND = 0;
|
my $VALGRIND = 0;
|
||||||
|
my $EXECUTABLE = "t/.libs/harness";
|
||||||
GetOptions(
|
GetOptions(
|
||||||
'valgrind|v+' => \$VALGRIND,
|
'valgrind|v+' => \$VALGRIND,
|
||||||
|
'executable|e=s' => \$EXECUTABLE
|
||||||
) or exit 1;
|
) or exit 1;
|
||||||
|
|
||||||
my ( $hin, $hout, $hpid );
|
my ( $hin, $hout, $hpid );
|
||||||
{
|
{
|
||||||
local $ENV{LD_LIBRARY_PATH} = ".libs";
|
local $ENV{LD_LIBRARY_PATH} = ".libs";
|
||||||
my @command = "t/.libs/harness";
|
my @command = $EXECUTABLE;
|
||||||
unshift @command, "valgrind", "--tool=memcheck", "--leak-check=yes", "--num-callers=25", "--log-file=valgrind.out", "--error-exitcode=126" if $VALGRIND;
|
unshift @command, "valgrind", "--tool=memcheck", "--leak-check=yes", "--num-callers=25", "--log-file=valgrind.out", "--error-exitcode=126" if $VALGRIND;
|
||||||
|
|
||||||
$hpid = open2 $hout, $hin, @command or die "Cannot open2 harness - $!";
|
$hpid = open2 $hout, $hin, @command or die "Cannot open2 harness - $!";
|
||||||
|
@@ -746,6 +746,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
778,
|
||||||
/**/
|
/**/
|
||||||
777,
|
777,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user