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