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 <[email protected]>
+
+
+ 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 -- [email protected] -- 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 ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202005172028.04HKSVDH010622%40masaka.moolenaar.net.