if (*p == '_' || *p == '-' || (*p == '.' && !g_ascii_isdigit(*(p+1)))) {
/* Ensure that we allow to break after '_' or '.' characters,
* if they are not followed by a number */
str = g_string_append (str, ZERO_WIDTH_SPACE);
}
}"
it seems like the "zero width space" is what is creating the issue, I'm unsure why that's happening though.
One bug I can see is that the code is iterating over char types, and an utf8 non ascii glyph might not fit in a char, so it could insert value in the middle of an utf8 sequence and corrupt it, but that doesn't seem to be what is happening there since the "weird" glyphs are added after "_" and "."
Thanks, that's a bug in the code that helps wrapping labels at the right position for the icon view
nautilus- icon-canvas- item.c has this code
"
#define ZERO_WIDTH_SPACE "\xE2\x80\x8B"
for (p = text; *p != '\0'; p++) {
str = g_string_append_c (str, *p);
if (*p == '_' || *p == '-' || (*p == '.' && !g_ascii_ isdigit( *(p+1)) )) {
/* Ensure that we allow to break after '_' or '.' characters,
* if they are not followed by a number */
str = g_string_append (str, ZERO_WIDTH_SPACE);
}
}"
it seems like the "zero width space" is what is creating the issue, I'm unsure why that's happening though.
One bug I can see is that the code is iterating over char types, and an utf8 non ascii glyph might not fit in a char, so it could insert value in the middle of an utf8 sequence and corrupt it, but that doesn't seem to be what is happening there since the "weird" glyphs are added after "_" and "."