summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chat.h1
-rw-r--r--term.c2
-rw-r--r--ui.c9
3 files changed, 7 insertions, 5 deletions
diff --git a/chat.h b/chat.h
index eaecb50..1deb693 100644
--- a/chat.h
+++ b/chat.h
@@ -30,6 +30,7 @@
#define err(...) do { uiHide(); err(__VA_ARGS__); } while (0)
#define errx(...) do { uiHide(); errx(__VA_ARGS__); } while (0)
+typedef unsigned uint;
typedef unsigned char byte;
struct {
diff --git a/term.c b/term.c
index 2be9c16..75380ea 100644
--- a/term.c
+++ b/term.c
@@ -51,7 +51,7 @@ void termMode(enum TermMode mode, bool set) {
enum { Esc = '\33' };
enum TermEvent termEvent(char ch) {
- static int state = 0;
+ static uint state = 0;
switch (T(state, ch)) {
case T(0, Esc): state = 1; return 0;
case T(1, '['): state = 2; return 0;
diff --git a/ui.c b/ui.c
index 9ffe8ad..e437ef9 100644
--- a/ui.c
+++ b/ui.c
@@ -68,8 +68,9 @@ static short pair8(short pair) {
struct View {
struct Tag tag;
WINDOW *log;
- int scroll, unread;
+ int scroll;
bool hot, mark;
+ uint unread;
struct View *prev;
struct View *next;
};
@@ -227,7 +228,7 @@ static void uiTitle(const struct View *view) {
int unread;
char *str;
int len = asprintf(
- &str, "%s%n (%d)", view->tag.name, &unread, view->unread
+ &str, "%s%n (%u)", view->tag.name, &unread, view->unread
);
if (len < 0) err(EX_OSERR, "asprintf");
if (!view->unread) str[unread] = '\0';
@@ -244,7 +245,7 @@ static void uiStatus(void) {
int unread;
wchar_t *str;
int len = aswprintf(
- &str, L"%c %d %s %n(\3%02d%d\3) ",
+ &str, L"%c %d %s %n(\3%02d%u\3) ",
(view == ui.view ? IRCReverse : IRCReset),
num, view->tag.name,
&unread, (view->hot ? IRCYellow : IRCDefault), view->unread
@@ -274,7 +275,7 @@ static void viewRemove(struct View *view) {
views.tags[view->tag.id] = NULL;
}
-static const int LogLines = 256;
+static const int LogLines = 512;
static struct View *viewTag(struct Tag tag) {
struct View *view = views.tags[tag.id];