arakiken / mlterm

Other
160 stars 14 forks source link

Valid input causes mlterm to spawn multiple new windows #79

Open paulie-g opened 1 year ago

paulie-g commented 1 year ago

I used notcurses-demo from the notcurses library package to see what mlterm does and does not do well (I was attracted by its DECDHL support). During one of the tests, the input it produced caused mlterm to spawn a dozen new child processes and windows. I reproduced this twice.

pacman -Qi mlterm
Name            : mlterm
Version         : 3.9.3-2
Description     : Multi Lingual TERMinal emulator on X
Architecture    : x86_64
URL             : http://mlterm.sourceforge.net/
Licenses        : BSD
Groups          : None
Provides        : None
Depends On      : gtk2  gtk3  m17n-lib  libutempter
Optional Deps   : None
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 8.52 MiB
Packager        : Unknown Packager
Build Date      : Sun 08 Oct 2023 07:56:49 PM EDT
Install Date    : Sun 08 Oct 2023 07:57:20 PM EDT
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : None

on Arch with:

pacman -Qi notcurses
Name            : notcurses
Version         : 3.0.9-3
Description     : Blingful TUI/character graphics library
Architecture    : x86_64
URL             : https://nick-black.com/dankwiki/index.php/Notcurses
Licenses        : Apache
Groups          : None
Provides        : libnotcurses++.so=3-64  libnotcurses.so=3-64  libnotcurses-core.so=3-64
Depends On      : gcc-libs  glibc  ffmpeg  libavcodec.so=60-64  libavformat.so=60-64  libavutil.so=58-64  libswscale.so=7-64  gpm  libgpm.so=2-64  libdeflate  libdeflate.so=0-64  libunistring  libunistring.so=5-64  ncurses  libncursesw.so=6-64  python-cffi
Optional Deps   : None
Required By     : growlight
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 11.53 MiB
Packager        : Antonio Rojas <arojas@archlinux.org>
Build Date      : Tue 11 Apr 2023 02:22:24 PM EDT
Install Date    : Thu 04 May 2023 03:44:03 AM EDT
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature
arakiken commented 1 year ago

Thanks. I found a bug in processing arabic characters. I think it caused this problem. Fix -> https://github.com/arakiken/mlterm/commit/9404c352e841b77cb2cc7586be8b4abe05e21ae5

paulie-g commented 1 year ago

Thanks. I found a bug in processing arabic characters. I think it caused this problem. Fix -> 9404c35

I've rebuilt from master and can confirm that the bug is no longer present. Brilliant, thank you!

Out of curiosity, are display/correctness bugs demonstrated by notcurses-demo of interest? While notcurses itself is not widely used by applications currently and several more common ones like btop work perfectly fine in mlterm, the -demo is an excellent torture test for terminal emulators wishing to be compliant and produces various graphical glitches at present, some indicating state leakage (existing content in mlterm is distorted after a run). Is mlterm as good as it needs to be at present (and it is seriously good in terms of features, imo, I've not see anything that comes close across all those platforms and backends), in your view, barring significant breaking bugs like the one in this issue?