Germany
Ticket created by ~rkta on ~rkta/w3m
Can reproduce using ISEARCH with #v+ w3m -config /dev/null -o keymap_file=/dev/null ~/word-joiner-w3m.html #v-
----- Forwarded message from Vincent Lefevre vincent@vinc17.net -----
Subject: Bug#1100487: w3m: bad display with image and U+2060 WORD JOINER From: Vincent Lefevre vincent@vinc17.net To: Debian Bug Tracking System submit@bugs.debian.org Reply-To: Vincent Lefevre vincent@vinc17.net, 1100487@bugs.debian.org X-Original-To: mail@rkta.de List-Id: <w3m.tracker.debian.org> Message-ID: 20250314122253.GA4191353@cventin.lip.ens-lyon.fr Date: Fri, 14 Mar 2025 13:22:53 +0100
Package: w3m Version: 0.5.3+git20230121-2.1 Severity: normal
There is a display issue when one has an image (valid or not) and text with the U+2060 WORD JOINER character.
I've attached a testcase, which contains something like:
Text.
[...]Text.
foobar abcdef.
Search for "ab", then move the cursor to the right up to the end. One successively gets:
foobar aacdef. foobar aabdef. foobar aabcef. foobar aabcdf. foobar aabcde. foobar aabcdef foobar aabcdef.
Alternatively, put the cursor at the end ([End] key), then at the beginning of the "foobar abcdef." line, then move the cursor to the right: same display issue starting with "bar".
It is important that the test part is not displayed on the first page, hence the sequence of paragraphs. Note that this issue disappears if either the image or the U+2060 WORD JOINER character is removed.
I first noticed this issue on
https://bugzilla.mozilla.org/show_bug.cgi?id=1876874
when I was searching for "C++" (specifically "of C++").
-- System Information: Debian Release: trixie/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386
Kernel: Linux 6.11.10-amd64 (SMP w/12 CPU threads; PREEMPT) Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled
Versions of packages w3m depends on: ii libc6 2.41-4 ii libgc1 1:8.2.8-1 ii libgpm2 1.20.7-11+b2 ii libssl3t64 3.4.1-1 ii libtinfo6 6.5+20250216-2 ii zlib1g 1:1.3.dfsg+really1.3.1-1+b1
Versions of packages w3m recommends: ii ca-certificates 20241223
Versions of packages w3m suggests: pn brotli ii bzip2 1.0.8-6 pn cmigemo pn compface ii curl 8.12.1-3 ii dict 1.13.1+dfsg-1 ii dict-wn 1:3.0-39 ii dictd 1.13.1+dfsg-1 pn libsixel-bin hi mailcap 3.70+nmu1 ii man-db 2.13.0-1 ii media-types 13.0.0 ii sensible-utils 0.0.24 ii w3m-el 1.4.632+0.20210201.2305.54c3ccd-3 ii w3m-img 0.5.3+git20230121-2.1 ii wget 1.25.0-2 ii xdg-utils 1.2.1-2 pn xsel
-- no debconf information
-- Vincent Lefèvre vincent@vinc17.net - Web: https://www.vinc17.net/ 100% accessible validated (X)HTML - Blog: https://www.vinc17.net/blog/ Work: CR INRIA - computer arithmetic / Pascaline project (LIP, ENS-Lyon)
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>Test with image and U+2060 WORD JOINER for w3m</title> </head> <body> <p>With w3m:</p> <ol> <li>Search for <q>ab</q> (type <samp>/ab</samp> below this text).</li> <li>Then move the cursor to the right with the right arrow.</li> </ol> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p>Text.</p> <p><img src="data:image/png;base64," alt=""/></p> <p>foo⁠bar abcdef.</p> </body> </html>
----- End forwarded message -----
On Sun, Feb 23, 2025 at 05:28:46AM +0000, ~skejg wrote:
When a menu doesn't fit into the screen, it puts
:
at the end to note that it can be scrolled: https://0x0.st/8TO1.pngHowever, if the parent terminal is resized, and the menu is called again, it won't get updated, and will have the same
:
to note that it still doesn't fit the screen: https://0x0.st/8TOe.pngI reuploaded the pictures to avoid the pictures to be deleted before the ticket is resolved:
http://rkta.de/pub/todo-73-menu-new.png http://rkta.de/pub/todo-73-menu-not-fit.png http://rkta.de/pub/todo-73-menu-resized.png
Interestingly, it seems that if some option is set after that via
:SET_OPTION
command, then the menu size actually does get updated.Important: this is not the same menu, which just doesn't get redrawn after the terminal changes (and which is probably expected): https://0x0.st/8TO_.png -- but a whole new menu called after the parent terminal resize.
SET_OPTION/setOpt calls sync_with_option which calls initMenu which probably does something. :) You can achieve the same with REINIT.
I will have to check why w3m doesn't act accordingly on the SIGWINCH here. Thanks for the report.
Ticket created by ~rkta on ~rkta/w3m
Original report here: https://bugs.gentoo.org/show_bug.cgi?id=947517
Quote: Discovered when cross-compiling to riscv64-unknown-linux-gnu. The configure script tries to discover libraries from the build system's root instead of the sysroot. Specifically, -lbsd is discovered from /usr/lib.
Probably because of 'grep -A 14 '# AC_W3M_EXTLIBS' acinclude.m4'
Check if we can use pkg-config here.
Ticket created by ~rkta on ~rkta/w3m
dunno punycode, but something like below... https://%e0%b8%88lug.toastal.in.th/ https://xn--lug-5kl.toastal.in.th
Ticket created by ~rkta on ~rkta/w3m
When a variable that is used to store settings obtained from .w3m/config is changed during runtime and the user changes another setting in the option panel, we will override the user setting with that changed variable.
Correct behaviour would be to uncompress, but for now let's just save it as .gz.
patch exists added by ~rkta on ~rkta/w3m