diff --git a/src/libvterm/src/parser.c b/src/libvterm/src/parser.c index c71ea8d736..b07bb94a23 100644 --- a/src/libvterm/src/parser.c +++ b/src/libvterm/src/parser.c @@ -288,6 +288,11 @@ size_t vterm_input_write(VTerm *vt, const char *bytes, size_t len) done_string(vt, string_start, bytes + pos - string_start); ENTER_NORMAL_STATE(); } + else if (pos + 1 == len) { + /* end of input but OSC string isn't finished yet, copy it to + * vt->parser.strbuffer to continue it later */ + more_string(vt, string_start, bytes + pos + 1 - string_start); + } break; case NORMAL: diff --git a/src/libvterm/src/vterm.c b/src/libvterm/src/vterm.c index d9f0e208db..f066b01b81 100644 --- a/src/libvterm/src/vterm.c +++ b/src/libvterm/src/vterm.c @@ -52,7 +52,7 @@ VTerm *vterm_new_with_allocator(int rows, int cols, VTermAllocatorFunctions *fun vt->parser.callbacks = NULL; vt->parser.cbdata = NULL; - vt->parser.strbuffer_len = 64; + vt->parser.strbuffer_len = 500; /* should be able to hold an OSC string */ vt->parser.strbuffer_cur = 0; vt->parser.strbuffer = vterm_allocator_malloc(vt, vt->parser.strbuffer_len); diff --git a/src/version.c b/src/version.c index 9f065797c5..e95a62d3d3 100644 --- a/src/version.c +++ b/src/version.c @@ -762,6 +762,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1674, /**/ 1673, /**/