Compare commits

..

3 Commits

Author SHA1 Message Date
Minty Cube
b820f2c1fe
Merge branch 'bakkeby:master' into master 2024-09-21 08:41:55 +00:00
bakkeby
43f0483d5a scroll: compatibility fix wrt upstream utf8decode overhaul changes #33 2024-09-19 09:31:45 +02:00
Saif Shahriar
23cbc819b9
Fix SYMBOLS_PATCH not changing right symbol "<" (#32)
SYMBOLS_PATCH supposed to change "<" and ">". 
Although, it does replaces ">" with a user defined glyph, 
it does not do the same for "<". This commit fixes that.
2024-09-18 21:30:54 +02:00
2 changed files with 11 additions and 2 deletions

View File

@ -647,10 +647,18 @@ drawmenu(void)
} else if (matches) { } else if (matches) {
/* draw horizontal list */ /* draw horizontal list */
x += inputw; x += inputw;
#if SYMBOLS_PATCH
w = TEXTW(symbol_1);
#else
w = TEXTW("<"); w = TEXTW("<");
#endif // SYMBOLS_PATCH
if (curr->left) { if (curr->left) {
drw_setscheme(drw, scheme[SchemeNorm]); drw_setscheme(drw, scheme[SchemeNorm]);
#if SYMBOLS_PATCH
drw_text(drw, x, 0, w, bh, lrpad / 2, symbol_1, 0
#else
drw_text(drw, x, 0, w, bh, lrpad / 2, "<", 0 drw_text(drw, x, 0, w, bh, lrpad / 2, "<", 0
#endif // SYMBOLS_PATCH
#if PANGO_PATCH #if PANGO_PATCH
, True , True
#endif // PANGO_PATCH #endif // PANGO_PATCH

View File

@ -25,6 +25,7 @@ drw_text_align(Drw *drw, int x, int y, unsigned int w, unsigned int h, const cha
FcPattern *match; FcPattern *match;
XftResult result; XftResult result;
int charexists = 0; int charexists = 0;
int utf8err = 0;
int i, n; int i, n;
if (!drw || (render && !drw->scheme) || !text || !drw->fonts || textlen <= 0 if (!drw || (render && !drw->scheme) || !text || !drw->fonts || textlen <= 0
@ -56,14 +57,14 @@ drw_text_align(Drw *drw, int x, int y, unsigned int w, unsigned int h, const cha
while ((align == AlignL && i < textlen) || (align == AlignR && i > 0)) { while ((align == AlignL && i < textlen) || (align == AlignR && i > 0)) {
if (align == AlignL) { if (align == AlignL) {
utf8charlen = utf8decode(text + i, &utf8codepoint, MIN(textlen - i, UTF_SIZ)); utf8charlen = utf8decode(text + i, &utf8codepoint, &utf8err);
if (!utf8charlen) { if (!utf8charlen) {
textlen = i; textlen = i;
break; break;
} }
} else { } else {
n = utf8nextchar(text, textlen, i, -1); n = utf8nextchar(text, textlen, i, -1);
utf8charlen = utf8decode(text + n, &utf8codepoint, MIN(textlen - n, UTF_SIZ)); utf8charlen = utf8decode(text + n, &utf8codepoint, &utf8err);
if (!utf8charlen) { if (!utf8charlen) {
textlen -= i; textlen -= i;
text += i; text += i;