Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libtsm for openSUSE:Factory checked in at 2026-09-28 13:47:49 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libtsm (Old) and /work/SRC/openSUSE:Factory/.libtsm.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libtsm" Mon Sep 28 13:47:49 2026 rev:11 rq:1381137 version:4.8.0 Changes: -------- --- /work/SRC/openSUSE:Factory/libtsm/libtsm.changes 2026-08-21 17:03:16.040186290 +0200 +++ /work/SRC/openSUSE:Factory/.libtsm.new.383539/libtsm.changes 2026-09-28 13:47:51.868939873 +0200 @@ -1,0 +2,7 @@ +Mon Sep 28 09:08:40 UTC 2026 - Fabian Vogt <[email protected]> + +- Updaet to 4.8.0: + * vte: don't emit double escape for meta+arrow keys + * cursor blinking rate feature + +------------------------------------------------------------------- Old: ---- v4.7.1.tar.gz New: ---- v4.8.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libtsm.spec ++++++ --- /var/tmp/diff_new_pack.i3mOqp/_old 2026-09-28 13:47:52.429963324 +0200 +++ /var/tmp/diff_new_pack.i3mOqp/_new 2026-09-28 13:47:52.431963408 +0200 @@ -19,7 +19,7 @@ %global sover 4 %global lname libtsm%{sover} Name: libtsm -Version: 4.7.1 +Version: 4.8.0 Release: 0 Summary: DEC-VT terminal emulator state machine License: LGPL-2.1-or-later AND MIT ++++++ v4.7.1.tar.gz -> v4.8.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/NEWS.md new/libtsm-4.8.0/NEWS.md --- old/libtsm-4.7.1/NEWS.md 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/NEWS.md 2026-09-25 15:08:08.000000000 +0200 @@ -1,5 +1,13 @@ # libtsm Release News +## CHANGES WITH 4.8.0 +* vte: don't emit double escape for meta+arrow keys by @perryprog in https://github.com/kmscon/libtsm/pull/67 +* cursor blinking rate feature by @fnnFox in https://github.com/kmscon/libtsm/pull/68 + +## New Contributors +* @perryprog made their first contribution in https://github.com/kmscon/libtsm/pull/67 +* @fnnFox made their first contribution in https://github.com/kmscon/libtsm/pull/68 + ## CHANGES WITH 4.7.1 ### Bug fixes * libtsm: fix tsm_screen_attr2_t by @kdj0c in https://github.com/kmscon/libtsm/pull/64 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/meson.build new/libtsm-4.8.0/meson.build --- old/libtsm-4.7.1/meson.build 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/meson.build 2026-09-25 15:08:08.000000000 +0200 @@ -3,7 +3,7 @@ project( 'libtsm', 'c', - version: '4.7.1', + version: '4.8.0', license: 'MIT', meson_version: '>=1.1', default_options: [ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/src/tsm/libtsm-int.h new/libtsm-4.8.0/src/tsm/libtsm-int.h --- old/libtsm-4.7.1/src/tsm/libtsm-int.h 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/src/tsm/libtsm-int.h 2026-09-25 15:08:08.000000000 +0200 @@ -149,6 +149,7 @@ unsigned int cursor_y; /* current cursor y-pos */ enum tsm_screen_cursor_style cstyle; /* cursor shape */ + uint32_t blinking_rate_ms; /* cursor blinking rate */ /* tab ruler */ bool *tab_ruler; /* tab-flag for all cells of one row */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/src/tsm/libtsm.h new/libtsm-4.8.0/src/tsm/libtsm.h --- old/libtsm-4.7.1/src/tsm/libtsm.h 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/src/tsm/libtsm.h 2026-09-25 15:08:08.000000000 +0200 @@ -309,6 +309,9 @@ enum tsm_screen_cursor_style tsm_screen_get_cursor_style(struct tsm_screen *con); void tsm_screen_set_cursor_style(struct tsm_screen *con, enum tsm_screen_cursor_style type); +uint32_t tsm_screen_get_cursor_blinking_rate_ms(struct tsm_screen *con); +void tsm_screen_set_cursor_blinking_rate_ms(struct tsm_screen *con, uint32_t ms); + /** @} */ /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/src/tsm/libtsm.sym new/libtsm-4.8.0/src/tsm/libtsm.sym --- old/libtsm-4.7.1/src/tsm/libtsm.sym 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/src/tsm/libtsm.sym 2026-09-25 15:08:08.000000000 +0200 @@ -159,3 +159,9 @@ tsm_screen_get_cursor_style; tsm_screen_set_cursor_style; } LIBTSM_4_6; + +LIBTSM_4_8 { +global: + tsm_screen_get_cursor_blinking_rate_ms; + tsm_screen_set_cursor_blinking_rate_ms; +} LIBTSM_4_7; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/src/tsm/meson.build new/libtsm-4.8.0/src/tsm/meson.build --- old/libtsm-4.7.1/src/tsm/meson.build 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/src/tsm/meson.build 2026-09-25 15:08:08.000000000 +0200 @@ -49,6 +49,6 @@ pkg.generate( libtsm, name: 'libtsm', - url: 'https://github.com/Aetf/libtsm', + url: 'https://github.com/kmscon/libtsm', description: 'terminal-emulator state machine', ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/src/tsm/tsm-screen.c new/libtsm-4.8.0/src/tsm/tsm-screen.c --- old/libtsm-4.7.1/src/tsm/tsm-screen.c 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/src/tsm/tsm-screen.c 2026-09-25 15:08:08.000000000 +0200 @@ -483,6 +483,7 @@ con->def_attr.fr = 255; con->def_attr.fg = 255; con->def_attr.fb = 255; + con->blinking_rate_ms = 500; shl_dlist_init(&con->sb.list); ret = tsm_symbol_table_new(&con->sym_table); @@ -1690,3 +1691,26 @@ con->cstyle = type; } + +SHL_EXPORT +uint32_t tsm_screen_get_cursor_blinking_rate_ms(struct tsm_screen *con) +{ + if (!con) + return 0; + + return con->blinking_rate_ms; +} + +SHL_EXPORT +void tsm_screen_set_cursor_blinking_rate_ms(struct tsm_screen *con, uint32_t ms) +{ + if (!con) + return; + + if (ms < 50) + ms = 50; + if (ms > 5000) + ms = 5000; + + con->blinking_rate_ms = ms; +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libtsm-4.7.1/src/tsm/tsm-vte.c new/libtsm-4.8.0/src/tsm/tsm-vte.c --- old/libtsm-4.7.1/src/tsm/tsm-vte.c 2026-08-14 14:45:17.000000000 +0200 +++ new/libtsm-4.8.0/src/tsm/tsm-vte.c 2026-09-25 15:08:08.000000000 +0200 @@ -2171,6 +2171,11 @@ vte->led_cb(vte, vte->led_state, vte->led_data); } break; + case ']': /* Cursor blinking rate */ + /* This behavior is similar to agetty */ + if (vte->csi_argv[0] == 16 && vte->csi_argc >= 2) + tsm_screen_set_cursor_blinking_rate_ms(vte->con, vte->csi_argv[1]); + break; default: llog_debug(vte, "unhandled CSI sequence %c", data); } @@ -2821,6 +2826,8 @@ char code_with_modifier[6] = {'\e', '[', '1', ';', '0', 'A'}; char code[3] = {'\e', '[', 'A'}; + vte->flags &= ~TSM_VTE_FLAG_PREPEND_ESCAPE; + int modifier = csi_modifier_from_mask(mods); if (modifier) { code_with_modifier[4] = modifier;
