Fredrick Brennan
Fredrick Brennan
It's not feasible if wcswidth(S) must always equal sum(wcwidth(C) for C in S); changing that will certainly break applications...wcwidth itself was always a hack :-)
Sorry to say, that if your internal implementation does not match that of [glibc's](https://github.com/lattera/glibc/blob/master/wcsmbs/wcswidth.c#L30), (which works how I explain,) the mismatch will lead to subtle rendering errors (unless Kitty somehow...
Interesting :-) Well in that case, yes, to my knowledge all emoji ZWJ sequences have a visual wcswidth of 2, but a glibc wcswidth of 4 or more. I'm sorry...
Why not use fribidi
In master you can now use Fribidi if you enable `force_ltr`. See #2293
@egmontkob Sorry to bother you. We've corresponded briefly. Would you have an answer to why Fribidi isn't sufficient? Is the main problem that it impedes text selection (text is reversed)?...
@egmontkob Thank you, you answered my question. Your implementation, (which I consider to be the reference implementation,) uses FriBidi. @XVilka ignored my question which made me think that the answer...
@kovidgoyal I would aim to make BIDI an "enabled-by-default" feature, disabled via "force_ltr". But the current behavior, where single words are reversed by the shaper, would no longer be selectable.
Gotcha, understood. Note https://github.com/fontforge/fontforge/issues/703#issuecomment-582727339, but once that's done I'll take a serious crack at this. Not promising to succeed, but I'll definitely try.
I suppose you're asking for something like this, but much less broken?  The patch that does this is so embarrassingly broken I won't be distributing it, and I have...