dnkl changed the topic of #foot to: Foot - fast, lightweight and minimalistic Wayland terminal emulator || 1.21.0 || https://codeberg.org/dnkl/foot || channel logs: https://libera.irclog.whitequark.org/foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
mtm has quit [Ping timeout: 248 seconds]
mtm has joined #foot
kode54 has quit [Quit: The Lounge - https://thelounge.chat]
boomboxnation has quit [Read error: Connection reset by peer]
kode54 has joined #foot
boomboxnation has joined #foot
jmcantrell has quit [Quit: WeeChat 4.5.2]
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
lindsay has quit [Remote host closed the connection]
lindsay has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
mtm has quit [Ping timeout: 265 seconds]
mtm has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
MyNetAz has quit [Remote host closed the connection]
MyNetAz has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
lindsay has quit [Remote host closed the connection]
lindsay has joined #foot
SusanTheNerd2 has left #foot [#foot]
<dnkl> brocellous: hmm, that should be relatively easy to fix
lindsay has quit [Remote host closed the connection]
<dnkl> the VT parser discards invalid UTF-8
lindsay has joined #foot
<dnkl> should be simple to instead insert a replacement character
alexherbo2 has joined #foot
<ovf> i like how every implementation discussed above does its own thing with utf8
MyNetAz has quit [K-Lined]
<dnkl> brocellous: the reason for the "lost" character is that E9 is valid (it indicates a three-byte UTF-8 sequence). So the invalid sequence is detected at 'm'
<dnkl> ovf: since the sequence is invalid, all above variants are valid, in a way...
<dnkl> I suppose we could special case ASCII characters; i.e. if an invalid UTF8 sequence is terminated by an ASCII character, print the ASCII character instead of dropping it as part of the invalid UTF8
<dnkl> but technically, what we're currently doing, _is_ correct
<dnkl> in a sense
<rockorager> the second byte shouldn’t be valid
<rockorager> it was ascii right?
<rockorager> but a 3 byte sequence would have bit 8 on
<dnkl> correct, e9 indicates a three byte sequence. 'm' is the second byte and is not a valid middle byte in a three byte utf8 sequence
<rockorager> oh I got it
<dnkl> foot's vt parser detects this and goes back to the 'ground' (default) state, while discarding the two utf8 bytes read so far
babo67_ has joined #foot
<rockorager> ok. I think for my tui libraries I throw away only one byte
<rockorager> this is what the go std lib does for invalid utf8 too
<dnkl> i suppose my suggestion above could be extended/modified to instead have the state machine go back to the default state, and _then_ feed it the "current" character ('m' in this case)
<dnkl> this would also let us handle longer utf8 sequences following an invalid one
<ovf> dnkl: yep, i think it's a failing of utf8 for not prescribing error recovery
<ovf> i agree that pok\xe9mon should be parsed as pok�mon (i.e. invalid octet terminates multi-byte sequence), because nobody uses serial links anymore, and cosmic rays aren't a huge problem yet (especially for a terminal emulator), so the probability that the illegal character is a result of a bit-flip is pretty low.
<dnkl> fwiw, invalid UTF-8, at all, should be very unusual, unless an application has mixed up its encodings...
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
alexherbo2 has quit [Remote host closed the connection]
alexherbo2 has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
andyrtr_ has joined #foot
andyrtr has quit [Ping timeout: 252 seconds]
andyrtr_ is now known as andyrtr
orahcio has joined #foot
jmcantrell has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
boomboxnation-1 has joined #foot
andyrtr_ has joined #foot
andyrtr has quit [Ping timeout: 276 seconds]
andyrtr_ is now known as andyrtr
<brocellous> Yeah I don't think there's really a "correct" behavior here. I guess my expectation comes from icu, since `uconv -t utf-8 --callback substitute <<< $'pok\xe9mon'` results in "pok�mon".
andyrtr_ has joined #foot
andyrtr has quit [Ping timeout: 252 seconds]
alexherbo2 has quit [Remote host closed the connection]
andyrtr_ is now known as andyrtr
boomboxnation-1 has quit [Read error: Connection reset by peer]
boomboxnation-1 has joined #foot
mtm has quit [Ping timeout: 244 seconds]
mtm has joined #foot
<aelius> I did end up dropping lanczsos3 scaling down to box (somewhat arbitrarily chosen)
<aelius> Because I cannot visually see the difference in the sample emoji.txt
<aelius> and dsepite being an unrealistic scenario, seems like I might as well save the cpu cycles :)
<aelius> (for the presence of any emoji)
<dnkl> aelius: that's what the tweak option is for :)
<dnkl> brocellous: I updated the PR (link above) to also insert a REPLACEMENT CHARACTER. With that, we should behave just like kitty
andyrtr_ has joined #foot
andyrtr has quit [Ping timeout: 268 seconds]
andyrtr_ is now known as andyrtr
<aelius> With that configured, I think foot is pretty much perfect!
<aelius> This is basically what I had hoped the experience of suckless' st would be like- before I learned that their vision of "simple" involved requiring tmux/other :v
<j`ey> what does foot have that doesnt require tmux?
<aelius> a scrollback!
<aelius> lol
<j`ey> ah :D
<aelius> I can understand it, sort of- if a real terminal didn't have a scrollback (before my time)- sure. I guess. On the other hand, didn't og paper terminals technically have a "scrollback" because... it was printed on paper? :P
<aelius> Just seemed very non-suckless of suckless to say "here's our very simple low SLOC terminal- now put termux in it"
<aelius> er, tmux*
boomboxnation-1 has quit [Read error: Connection reset by peer]
boomboxnation-1 has joined #foot
boomboxnation has quit [Quit: WeeChat 4.5.2]
andyrtr_ has joined #foot
andyrtr has quit [Ping timeout: 252 seconds]
andyrtr_ is now known as andyrtr
boomboxnation-1 has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
orahcio has quit [Remote host closed the connection]
<llyyr> show-urls-persistent hits an assert on the latest release
<llyyr> > err: url-mode.c:113: BUG in spawn_url_launcher(): assertion failed: 'term->url_launch != NULL'
<llyyr> first url opens fine, but if you try to open a second url we hit that
<llyyr> ASAN also complains about this once on startup: ../grid.c:820:49: runtime error: variable length array bound evaluates to non-positive value 0
<llyyr> first bad commit for the crash is 051cd6ecfc8b98e1d80b399ebea40207fe040750
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
orahcio has joined #foot
<ovf> aelius: can confirm, my hardcopy terminal has scrollback.
boomboxnation has quit [Read error: Connection reset by peer]
beerman has quit [Remote host closed the connection]
beerman has joined #foot
boomboxnation has joined #foot
m1gr has quit [Quit: m1gr]
woodwose has quit [Ping timeout: 244 seconds]
<aelius> :v
<aelius> (I did figure some models probably do)
boomboxnation-1 has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
boomboxnation has joined #foot
orahcio has quit [Remote host closed the connection]
orahcio has joined #foot
boomboxnation-1 has quit [Quit: WeeChat 4.5.2]
babo67_ has quit [Remote host closed the connection]
babo67_ has joined #foot
boomboxnation has quit [Read error: Connection reset by peer]
an3223 has quit [Remote host closed the connection]
an3223 has joined #foot
boomboxnation has joined #foot