Patch 8.2.0785

9 views
Skip to first unread message

Bram Moolenaar

unread,
May 17, 2020, 4:28:40 PM5/17/20
to vim...@googlegroups.com

Patch 8.2.0785
Problem: Libvterm code lags behind the upstream version.
Solution: Include revisions 734 - 740.
Files: src/libvterm/include/vterm.h, src/libvterm/src/pen.c,
src/libvterm/src/vterm.c, src/libvterm/doc/seqs.txt,
src/libvterm/t/30state_pen.test, src/libvterm/t/run-test.pl,
src/libvterm/Makefile, src/libvterm/CONTRIBUTING


*** ../vim-8.2.0784/src/libvterm/include/vterm.h 2020-05-17 21:50:11.954655960 +0200
--- src/libvterm/include/vterm.h 2020-05-17 22:17:31.042011756 +0200
***************
*** 19,24 ****
--- 19,30 ----
typedef unsigned char uint8_t;
typedef unsigned int uint32_t;

+ #define VTERM_VERSION_MAJOR 0
+ #define VTERM_VERSION_MINOR 1
+
+ #define VTERM_CHECK_VERSION \
+ vterm_check_version(VTERM_VERSION_MAJOR, VTERM_VERSION_MINOR)
+
typedef struct VTerm VTerm;
typedef struct VTermState VTermState;
typedef struct VTermScreen VTermScreen;
***************
*** 175,180 ****
--- 181,188 ----
void (*free)(void *ptr, void *allocdata);
} VTermAllocatorFunctions;

+ void vterm_check_version(int major, int minor);
+
// Allocate and initialize a new terminal with default allocators.
VTerm *vterm_new(int rows, int cols);

***************
*** 330,335 ****
--- 338,350 ----
unsigned int dhl : 2; // On a DECDHL line (1=top 2=bottom)
} VTermScreenCellAttrs;

+ enum {
+ VTERM_UNDERLINE_OFF,
+ VTERM_UNDERLINE_SINGLE,
+ VTERM_UNDERLINE_DOUBLE,
+ VTERM_UNDERLINE_CURLY,
+ };
+
typedef struct {
#define VTERM_MAX_CHARS_PER_CELL 6
uint32_t chars[VTERM_MAX_CHARS_PER_CELL];
*** ../vim-8.2.0784/src/libvterm/src/pen.c 2020-01-08 22:06:11.057866613 +0100
--- src/libvterm/src/pen.c 2020-05-17 22:13:42.194619004 +0200
***************
*** 261,269 ****
setpenattr_bool(state, VTERM_ATTR_ITALIC, 1);
break;

! case 4: // Underline single
! state->pen.underline = 1;
! setpenattr_int(state, VTERM_ATTR_UNDERLINE, 1);
break;

case 5: // Blink
--- 261,286 ----
setpenattr_bool(state, VTERM_ATTR_ITALIC, 1);
break;

! case 4: // Underline
! state->pen.underline = VTERM_UNDERLINE_SINGLE;
! if(CSI_ARG_HAS_MORE(args[argi])) {
! argi++;
! switch(CSI_ARG(args[argi])) {
! case 0:
! state->pen.underline = 0;
! break;
! case 1:
! state->pen.underline = VTERM_UNDERLINE_SINGLE;
! break;
! case 2:
! state->pen.underline = VTERM_UNDERLINE_DOUBLE;
! break;
! case 3:
! state->pen.underline = VTERM_UNDERLINE_CURLY;
! break;
! }
! }
! setpenattr_int(state, VTERM_ATTR_UNDERLINE, state->pen.underline);
break;

case 5: // Blink
***************
*** 288,295 ****
break;

case 21: // Underline double
! state->pen.underline = 2;
! setpenattr_int(state, VTERM_ATTR_UNDERLINE, 2);
break;

case 22: // Bold off
--- 305,312 ----
break;

case 21: // Underline double
! state->pen.underline = VTERM_UNDERLINE_DOUBLE;
! setpenattr_int(state, VTERM_ATTR_UNDERLINE, state->pen.underline);
break;

case 22: // Bold off
***************
*** 405,412 ****
if(state->pen.italic)
args[argi++] = 3;

! if(state->pen.underline == 1)
args[argi++] = 4;

if(state->pen.blink)
args[argi++] = 5;
--- 422,431 ----
if(state->pen.italic)
args[argi++] = 3;

! if(state->pen.underline == VTERM_UNDERLINE_SINGLE)
args[argi++] = 4;
+ if(state->pen.underline == VTERM_UNDERLINE_CURLY)
+ args[argi++] = 4 | CSI_ARG_FLAG_MORE, args[argi++] = 3;

if(state->pen.blink)
args[argi++] = 5;
***************
*** 420,426 ****
if(state->pen.font)
args[argi++] = 10 + state->pen.font;

! if(state->pen.underline == 2)
args[argi++] = 21;

if(state->fg_index >= 0 && state->fg_index < 8)
--- 439,445 ----
if(state->pen.font)
args[argi++] = 10 + state->pen.font;

! if(state->pen.underline == VTERM_UNDERLINE_DOUBLE)
args[argi++] = 21;

if(state->fg_index >= 0 && state->fg_index < 8)
*** ../vim-8.2.0784/src/libvterm/src/vterm.c 2020-05-17 21:50:11.954655960 +0200
--- src/libvterm/src/vterm.c 2020-05-17 22:16:18.942207859 +0200
***************
*** 406,408 ****
--- 406,425 ----
(*copycell)(pos, srcpos, user);
}
}
+
+ void vterm_check_version(int major, int minor)
+ {
+ if(major != VTERM_VERSION_MAJOR) {
+ fprintf(stderr, "libvterm major version mismatch; %d (wants) != %d (library)\n",
+ major, VTERM_VERSION_MAJOR);
+ exit(1);
+ }
+
+ if(minor > VTERM_VERSION_MINOR) {
+ fprintf(stderr, "libvterm minor version mismatch; %d (wants) > %d (library)\n",
+ minor, VTERM_VERSION_MINOR);
+ exit(1);
+ }
+
+ // Happy
+ }
*** ../vim-8.2.0784/src/libvterm/doc/seqs.txt 2020-05-17 16:28:47.091869380 +0200
--- src/libvterm/doc/seqs.txt 2020-05-17 22:00:08.940797230 +0200
***************
*** 167,172 ****
--- 167,173 ----
123 SGR 1 = Bold on
SGR 3 = Italic on
123 SGR 4 = Underline single
+ SGR 4:x = Underline style
123 SGR 5 = Blink on
123 SGR 7 = Reverse on
SGR 9 = Strikethrough on
*** ../vim-8.2.0784/src/libvterm/t/30state_pen.test 2020-05-17 16:28:47.087869402 +0200
--- src/libvterm/t/30state_pen.test 2020-05-17 22:13:42.194619004 +0200
***************
*** 28,33 ****
--- 28,41 ----
?pen underline = 2
PUSH "\e[24m"
?pen underline = 0
+ PUSH "\e[4m\e[4:0m"
+ ?pen underline = 0
+ PUSH "\e[4:1m"
+ ?pen underline = 1
+ PUSH "\e[4:2m"
+ ?pen underline = 2
+ PUSH "\e[4:3m"
+ ?pen underline = 3
PUSH "\e[4m\e[m"
?pen underline = 0

*** ../vim-8.2.0784/src/libvterm/t/run-test.pl 2020-05-17 16:03:58.500875755 +0200
--- src/libvterm/t/run-test.pl 2020-05-17 22:19:15.417721608 +0200
***************
*** 177,185 ****

while( my $line = <$test> ) {
$line =~ s/^\s+//;
next if $line =~ m/^(?:#|$)/;

- chomp $line;
do_line( $line );
}

--- 177,187 ----

while( my $line = <$test> ) {
$line =~ s/^\s+//;
+ chomp $line;
+
next if $line =~ m/^(?:#|$)/;
+ last if $line eq "__END__";

do_line( $line );
}

*** ../vim-8.2.0784/src/libvterm/Makefile 2020-05-17 16:03:58.500875755 +0200
--- src/libvterm/Makefile 2020-05-17 22:20:28.273515273 +0200
***************
*** 37,49 ****
HFILES_INT=$(sort $(wildcard src/*.h)) $(HFILES)

VERSION_MAJOR=0
! VERSION_MINOR=0

VERSION_CURRENT=0
VERSION_REVISION=0
VERSION_AGE=0

! VERSION=0

PREFIX=/usr/local
BINDIR=$(PREFIX)/bin
--- 37,49 ----
HFILES_INT=$(sort $(wildcard src/*.h)) $(HFILES)

VERSION_MAJOR=0
! VERSION_MINOR=1

VERSION_CURRENT=0
VERSION_REVISION=0
VERSION_AGE=0

! VERSION=$(VERSION_MAJOR).$(VERSION_MINOR)

PREFIX=/usr/local
BINDIR=$(PREFIX)/bin
***************
*** 110,122 ****

# DIST CUT

- VERSION=$(VERSION_MAJOR).$(VERSION_MINOR)
-
DISTDIR=libvterm-$(VERSION)

distdir: $(INCFILES)
mkdir __distdir
! cp LICENSE __distdir
mkdir __distdir/src
cp src/*.c src/*.h src/*.inc __distdir/src
mkdir __distdir/src/encoding
--- 110,120 ----

# DIST CUT

DISTDIR=libvterm-$(VERSION)

distdir: $(INCFILES)
mkdir __distdir
! cp LICENSE CONTRIBUTING __distdir
mkdir __distdir/src
cp src/*.c src/*.h src/*.inc __distdir/src
mkdir __distdir/src/encoding
*** ../vim-8.2.0784/src/libvterm/CONTRIBUTING 2020-05-17 22:25:44.152596753 +0200
--- src/libvterm/CONTRIBUTING 2020-05-17 22:20:28.273515273 +0200
***************
*** 0 ****
--- 1,22 ----
+ How to Contribute
+ -----------------
+
+ The main resources for this library are:
+
+ Launchpad
+ https://launchpad.net/libvterm
+
+ Freenode:
+ ##tty or #tickit on irc.freenode.net
+
+ Email:
+ Paul "LeoNerd" Evans <leo...@leonerd.org.uk>
+
+
+ Bug reports and feature requests can be sent to any of the above resources.
+
+ New features, bug patches, etc.. should in the first instance be discussed via
+ any of the resources listed above, before starting work on the actual code.
+ There may be future plans or development already in-progress that could be
+ affected so it is better to discuss the ideas first before starting work
+ actually writing any code.
*** ../vim-8.2.0784/src/version.c 2020-05-17 21:50:11.954655960 +0200
--- src/version.c 2020-05-17 22:21:05.893407745 +0200
***************
*** 748,749 ****
--- 748,751 ----
{ /* Add new patch number below this line */
+ /**/
+ 785,
/**/

--
Would you care for a drink? I mean, if it were, like,
disabled and you had to look after it?

/// 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 ///
Reply all
Reply to author
Forward
0 new messages