mirror of
https://github.com/irssi/irssi.git
synced 2024-12-04 14:46:39 -05:00
Move advance() from fe-common/core to core.
This commit is contained in:
parent
5538578820
commit
5c74a3bb88
@ -26,3 +26,18 @@
|
|||||||
#include "module.h"
|
#include "module.h"
|
||||||
#include "wcwidth.c"
|
#include "wcwidth.c"
|
||||||
|
|
||||||
|
int advance(char const **str, gboolean utf8)
|
||||||
|
{
|
||||||
|
if (utf8) {
|
||||||
|
gunichar c;
|
||||||
|
|
||||||
|
c = g_utf8_get_char(*str);
|
||||||
|
*str = g_utf8_next_char(*str);
|
||||||
|
|
||||||
|
return unichar_isprint(c) ? mk_wcwidth(c) : 1;
|
||||||
|
} else {
|
||||||
|
*str += 1;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -14,6 +14,11 @@ typedef guint32 unichar;
|
|||||||
/* Returns width for character (0-2). */
|
/* Returns width for character (0-2). */
|
||||||
int mk_wcwidth(unichar c);
|
int mk_wcwidth(unichar c);
|
||||||
|
|
||||||
|
/* Advance the str pointer one character further; return the number of columns
|
||||||
|
* occupied by the skipped character.
|
||||||
|
*/
|
||||||
|
int advance(char const **str, gboolean utf8);
|
||||||
|
|
||||||
#define unichar_isprint(c) (((c) & ~0x80) >= 32)
|
#define unichar_isprint(c) (((c) & ~0x80) >= 32)
|
||||||
#define is_utf8_leading(c) (((c) & 0xc0) != 0x80)
|
#define is_utf8_leading(c) (((c) & 0xc0) != 0x80)
|
||||||
|
|
||||||
|
@ -420,22 +420,6 @@ void format_create_dest_tag(TEXT_DEST_REC *dest, void *server,
|
|||||||
window_find_closest(server, target, level);
|
window_find_closest(server, target, level);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int advance (char const **str, gboolean utf8)
|
|
||||||
{
|
|
||||||
if (utf8) {
|
|
||||||
gunichar c;
|
|
||||||
|
|
||||||
c = g_utf8_get_char(*str);
|
|
||||||
*str = g_utf8_next_char(*str);
|
|
||||||
|
|
||||||
return unichar_isprint(c) ? mk_wcwidth(c) : 1;
|
|
||||||
} else {
|
|
||||||
*str += 1;
|
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Return length of text part in string (ie. without % codes) */
|
/* Return length of text part in string (ie. without % codes) */
|
||||||
int format_get_length(const char *str)
|
int format_get_length(const char *str)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user