Add clock auto-update, configurable CTCP VERSION rent tagline, status bar margin fix
This commit is contained in:
@@ -80,6 +80,7 @@ static char query_target[64] = "";
|
|||||||
static int translate_public = 0; /* /trans toggle: echo translations to channel */
|
static int translate_public = 0; /* /trans toggle: echo translations to channel */
|
||||||
static int translate_enabled = 1; /* master toggle for translation */
|
static int translate_enabled = 1; /* master toggle for translation */
|
||||||
static int irc_colors = 1; /* display IRC colour codes as ANSI */
|
static int irc_colors = 1; /* display IRC colour codes as ANSI */
|
||||||
|
static char rent_msg[256] = "This space available for rent";
|
||||||
|
|
||||||
/* Track nicks who sent us private messages */
|
/* Track nicks who sent us private messages */
|
||||||
#define MAX_PM_NICKS 32
|
#define MAX_PM_NICKS 32
|
||||||
@@ -188,6 +189,8 @@ static void ai_config_load(void)
|
|||||||
}
|
}
|
||||||
else if (strcmp(line, "irc_colors") == 0)
|
else if (strcmp(line, "irc_colors") == 0)
|
||||||
irc_colors = atoi(eq);
|
irc_colors = atoi(eq);
|
||||||
|
else if (strcmp(line, "rent") == 0)
|
||||||
|
snprintf(rent_msg, sizeof(rent_msg), "%s", eq);
|
||||||
}
|
}
|
||||||
fclose(f);
|
fclose(f);
|
||||||
|
|
||||||
@@ -540,11 +543,12 @@ static void draw_statusbar(void)
|
|||||||
tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min);
|
tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min);
|
||||||
size_t bar_len = strlen(bar);
|
size_t bar_len = strlen(bar);
|
||||||
size_t rhs_len = strlen(rhs);
|
size_t rhs_len = strlen(rhs);
|
||||||
if (bar_len + rhs_len < (size_t)term_cols) {
|
if (bar_len + rhs_len + 1 < (size_t)term_cols) {
|
||||||
size_t pad = term_cols - rhs_len;
|
size_t pad = term_cols - rhs_len - 1;
|
||||||
while (bar_len < pad)
|
while (bar_len < pad)
|
||||||
bar[bar_len++] = ' ';
|
bar[bar_len++] = ' ';
|
||||||
memcpy(bar + pad, rhs, rhs_len);
|
memcpy(bar + pad, rhs, rhs_len);
|
||||||
|
bar[pad + rhs_len] = ' ';
|
||||||
bar[term_cols] = '\0';
|
bar[term_cols] = '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1060,9 +1064,9 @@ static void handle_line(char *line)
|
|||||||
uname(&ut);
|
uname(&ut);
|
||||||
irc_send_raw("NOTICE %s :\x01VERSION "
|
irc_send_raw("NOTICE %s :\x01VERSION "
|
||||||
"Holck's Mirk, OS: %s %s %s"
|
"Holck's Mirk, OS: %s %s %s"
|
||||||
" :: This space available for rent\x01",
|
" :: %s\x01",
|
||||||
sender, ut.sysname,
|
sender, ut.sysname,
|
||||||
ut.release, ut.machine);
|
ut.release, ut.machine, rent_msg);
|
||||||
wprintf(WL_STATUS, "* CTCP VERSION from %s\n", sender);
|
wprintf(WL_STATUS, "* CTCP VERSION from %s\n", sender);
|
||||||
} else if (strncmp(text, "\x01" "ACTION ", 8) == 0) {
|
} else if (strncmp(text, "\x01" "ACTION ", 8) == 0) {
|
||||||
/* /me action */
|
/* /me action */
|
||||||
@@ -1810,6 +1814,18 @@ int main(int argc, char *argv[])
|
|||||||
die("select");
|
die("select");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Redraw status bar every minute for clock update */
|
||||||
|
{
|
||||||
|
static int last_min = -1;
|
||||||
|
time_t now = time(NULL);
|
||||||
|
int cur_min = localtime(&now)->tm_min;
|
||||||
|
if (cur_min != last_min) {
|
||||||
|
last_min = cur_min;
|
||||||
|
draw_statusbar();
|
||||||
|
redraw_input(input_line, input_len, input_pos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Check translation results */
|
/* Check translation results */
|
||||||
for (int ti = 0; ti < translate_count; ) {
|
for (int ti = 0; ti < translate_count; ) {
|
||||||
if (FD_ISSET(translate_pending[ti].fd, &fds)) {
|
if (FD_ISSET(translate_pending[ti].fd, &fds)) {
|
||||||
|
|||||||
Reference in New Issue
Block a user