1
0
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:
Bram Moolenaar
2020-05-17 16:04:44 +02:00
parent ed37d9b324
commit d4a5f40c0c
6 changed files with 161 additions and 3 deletions

View File

@@ -118,7 +118,7 @@ distdir: $(INCFILES)
mkdir __distdir
cp LICENSE __distdir
mkdir __distdir/src
cp src/*.c src/*.h __distdir/src
cp src/*.c src/*.h src/*.inc __distdir/src
mkdir __distdir/src/encoding
cp src/encoding/*.inc __distdir/src/encoding
mkdir __distdir/include

View File

@@ -922,6 +922,7 @@ static int on_csi(const char *leader, const long args[], int argcount, const cha
VTermState *state = user;
int leader_byte = 0;
int intermed_byte = 0;
int cancel_phantom = 1;
VTermPos oldpos = state->pos;
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;
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
val = CSI_ARG_OR(args[0], 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);
}
updatecursor(state, &oldpos, 1);
updatecursor(state, &oldpos, cancel_phantom);
#ifdef DEBUG
if(state->pos.row < 0 || state->pos.row >= state->rows ||

View File

@@ -30,6 +30,13 @@ PUSH "\xEF\xBC\x90 "
putglyph 0xff10 2 0,0
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
# U+0301 = 0xCC 0x81 name: COMBINING ACUTE
RESET

View 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

View File

@@ -8,14 +8,16 @@ use IPC::Open2 qw( open2 );
use POSIX qw( WIFEXITED WEXITSTATUS WIFSIGNALED WTERMSIG );
my $VALGRIND = 0;
my $EXECUTABLE = "t/.libs/harness";
GetOptions(
'valgrind|v+' => \$VALGRIND,
'executable|e=s' => \$EXECUTABLE
) or exit 1;
my ( $hin, $hout, $hpid );
{
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;
$hpid = open2 $hout, $hin, @command or die "Cannot open2 harness - $!";

View File

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