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_enabled = 1; /* master toggle for translation */
|
||||
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 */
|
||||
#define MAX_PM_NICKS 32
|
||||
@@ -188,6 +189,8 @@ static void ai_config_load(void)
|
||||
}
|
||||
else if (strcmp(line, "irc_colors") == 0)
|
||||
irc_colors = atoi(eq);
|
||||
else if (strcmp(line, "rent") == 0)
|
||||
snprintf(rent_msg, sizeof(rent_msg), "%s", eq);
|
||||
}
|
||||
fclose(f);
|
||||
|
||||
@@ -540,11 +543,12 @@ static void draw_statusbar(void)
|
||||
tm->tm_mon + 1, tm->tm_mday, tm->tm_hour, tm->tm_min);
|
||||
size_t bar_len = strlen(bar);
|
||||
size_t rhs_len = strlen(rhs);
|
||||
if (bar_len + rhs_len < (size_t)term_cols) {
|
||||
size_t pad = term_cols - rhs_len;
|
||||
if (bar_len + rhs_len + 1 < (size_t)term_cols) {
|
||||
size_t pad = term_cols - rhs_len - 1;
|
||||
while (bar_len < pad)
|
||||
bar[bar_len++] = ' ';
|
||||
memcpy(bar + pad, rhs, rhs_len);
|
||||
bar[pad + rhs_len] = ' ';
|
||||
bar[term_cols] = '\0';
|
||||
}
|
||||
|
||||
@@ -1060,9 +1064,9 @@ static void handle_line(char *line)
|
||||
uname(&ut);
|
||||
irc_send_raw("NOTICE %s :\x01VERSION "
|
||||
"Holck's Mirk, OS: %s %s %s"
|
||||
" :: This space available for rent\x01",
|
||||
" :: %s\x01",
|
||||
sender, ut.sysname,
|
||||
ut.release, ut.machine);
|
||||
ut.release, ut.machine, rent_msg);
|
||||
wprintf(WL_STATUS, "* CTCP VERSION from %s\n", sender);
|
||||
} else if (strncmp(text, "\x01" "ACTION ", 8) == 0) {
|
||||
/* /me action */
|
||||
@@ -1810,6 +1814,18 @@ int main(int argc, char *argv[])
|
||||
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 */
|
||||
for (int ti = 0; ti < translate_count; ) {
|
||||
if (FD_ISSET(translate_pending[ti].fd, &fds)) {
|
||||
|
||||
Reference in New Issue
Block a user