Try replacing any decomposed Unicode sequence by the corresponding
recomposed code point. Code point to glyph correspondance works best
after recomposition, and this apply mostly to single-width code points
therefore we can't preserve them in their decomposed form anyway.
With all the infrastructure in place this is now trivial to do.
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Link: https://lore.kernel.org/r/20250410011839.64418-9-nico@fluxnic.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* double-width.
*/
} else {
- /* Otherwise zero-width code points are ignored */
- goto out;
+ /* try recomposition */
+ prev_c = ucs_recompose(prev_c, c);
+ if (prev_c != 0) {
+ vc_con_rewind(vc);
+ c = prev_c;
+ } else {
+ /* Otherwise zero-width code points are ignored */
+ goto out;
+ }
}
}
}