summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--handle.c2
-rw-r--r--irc.c2
-rw-r--r--ui.c17
3 files changed, 15 insertions, 6 deletions
diff --git a/handle.c b/handle.c
index ef49f7c..29d1500 100644
--- a/handle.c
+++ b/handle.c
@@ -212,7 +212,7 @@ static void handlePrivmsg(struct Message *msg) {
if (query && !network) idColors[id] = hash(msg->user);
uiFormat(
id, Warm, tagTime(msg),
- "\3%d%s%s%s\3 %s",
+ "\3%d%s%s%s\3\t%s",
hash(msg->user),
(action ? "* " : notice ? "-" : "<"),
msg->nick,
diff --git a/irc.c b/irc.c
index d8c6a21..2d6f00b 100644
--- a/irc.c
+++ b/irc.c
@@ -105,7 +105,7 @@ static void debug(char dir, const char *line) {
if (!self.debug) return;
size_t len = strcspn(line, "\r\n");
uiFormat(
- Debug, Cold, NULL, "\3%d%c%c\3 %.*s",
+ Debug, Cold, NULL, "\3%d%c%c\3\t%.*s",
Gray, dir, dir, (int)len, line
);
if (!isatty(STDERR_FILENO)) {
diff --git a/ui.c b/ui.c
index 0c2a64e..e93c08c 100644
--- a/ui.c
+++ b/ui.c
@@ -287,14 +287,24 @@ static void styleAdd(WINDOW *win, const char *str, bool show) {
getmaxyx(win, y, width);
size_t len;
+ int align = 0;
struct Style style = Reset;
while (*str) {
- if (*str == ' ') {
+ if (*str == '\t') {
+ waddch(win, ' ');
+ getyx(win, y, align);
+ str++;
+ } else if (*str == ' ') {
getyx(win, y, x);
const char *word = &str[strspn(str, " ")];
if (width - x - 1 <= wordWidth(word)) {
waddch(win, '\n');
+ getyx(win, y, x);
+ wmove(win, y, align);
str = word;
+ } else {
+ waddch(win, ' ');
+ str++;
}
}
@@ -313,9 +323,8 @@ static void styleAdd(WINDOW *win, const char *str, bool show) {
if (str - code > 1) waddnstr(win, &code[1], str - &code[1]);
}
- size_t sp = strspn(str, " ");
- sp += strcspn(&str[sp], " ");
- if (sp < len) len = sp;
+ size_t ws = strcspn(str, "\t ");
+ if (ws < len) len = ws;
wattr_set(
win,