Handle bold, italic, underline
parent
c383f9f3a7
commit
0a1528796b
24
chat.c
24
chat.c
|
@ -75,15 +75,35 @@ static void uiDraw(void) {
|
||||||
doupdate();
|
doupdate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void uiAdd(WINDOW *win, const char *str) {
|
||||||
|
attr_t attrs = A_NORMAL;
|
||||||
|
short pair = 0;
|
||||||
|
for (;;) {
|
||||||
|
size_t cc = strcspn(str, "\x02\x03\x1D\x1F");
|
||||||
|
wattr_set(win, attrs, pair, NULL);
|
||||||
|
waddnstr(win, str, cc);
|
||||||
|
|
||||||
|
if (!str[cc]) break;
|
||||||
|
switch (str[cc]) {
|
||||||
|
break; case 0x02: attrs ^= A_BOLD;
|
||||||
|
break; case 0x03: // TODO
|
||||||
|
break; case 0x1D: attrs ^= A_ITALIC;
|
||||||
|
break; case 0x1F: attrs ^= A_UNDERLINE;
|
||||||
|
}
|
||||||
|
str = &str[cc + 1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void uiTopic(const char *topic) {
|
static void uiTopic(const char *topic) {
|
||||||
wmove(ui.topic, 0, 0);
|
wmove(ui.topic, 0, 0);
|
||||||
wclrtoeol(ui.topic);
|
wclrtoeol(ui.topic);
|
||||||
waddnstr(ui.topic, topic, COLS);
|
uiAdd(ui.topic, topic);
|
||||||
}
|
}
|
||||||
static void uiChat(const char *line) {
|
static void uiChat(const char *line) {
|
||||||
waddch(ui.chat, '\n');
|
waddch(ui.chat, '\n');
|
||||||
waddstr(ui.chat, line);
|
uiAdd(ui.chat, line);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void uiFmt(const char *format, ...) {
|
static void uiFmt(const char *format, ...) {
|
||||||
char *buf;
|
char *buf;
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
|
Loading…
Reference in New Issue