diff options
author | Emanuele Giaquinta <exg@irssi.org> | 2007-02-14 10:59:27 +0000 |
---|---|---|
committer | exg <exg@dbcabf3a-b0e7-0310-adc4-f8d773084564> | 2007-02-14 10:59:27 +0000 |
commit | c536d1f19ccf869cab28a2d02e49cc5680f255da (patch) | |
tree | a98b5139765478459cf6ceab239fe3c052975f1c /src/fe-common/core/formats.c | |
parent | 6d11f6f897a17b92f3df1db35f6f6e21654ac130 (diff) | |
download | irssi-c536d1f19ccf869cab28a2d02e49cc5680f255da.zip |
Fix format_real_length to return the correct length when the input string
includes a trailing wide char.
Change statusbar_item_default_handler to compute padding also when
item->size < item->min_size, needed after the fix to format_real_length.
Patch by Yi-Hsuan Hsin, bug #452.
git-svn-id: http://svn.irssi.org/repos/irssi/trunk@4416 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/fe-common/core/formats.c')
-rw-r--r-- | src/fe-common/core/formats.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/fe-common/core/formats.c b/src/fe-common/core/formats.c index ccfad968..9a5569ff 100644 --- a/src/fe-common/core/formats.c +++ b/src/fe-common/core/formats.c @@ -366,6 +366,7 @@ int format_real_length(const char *str, int len) GString *tmp; const char *start; #ifdef HAVE_GLIB2 + const char *oldstr; gboolean utf8; #endif g_return_val_if_fail(str != NULL, 0); @@ -394,7 +395,10 @@ int format_real_length(const char *str, int len) } #ifdef HAVE_GLIB2 + oldstr = str; len -= advance(&str, utf8); + if (len < 0) + str = oldstr; #else len--; str++; |