--- ii.c | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/ii.c b/ii.c index 8d3523c..387e1f5 100644 --- a/ii.c +++ b/ii.c _AT_@ -29,7 +29,7 @@ typedef struct Channel Channel; struct Channel { int fd; char name[IRC_CHANNEL_MAX]; /* channel name (normalized) */ - char inpath[PATH_MAX]; /* input path (normalized) */ + char inpath[PATH_MAX]; /* input path */ char outpath[PATH_MAX]; /* output path */ Channel *next; }; _AT_@ -316,43 +316,31 @@ tokenize(char **result, size_t reslen, char *str, int delim) { } static void -print_outfile(const char *path, const char *buf) { +channel_print(Channel *c, const char *buf) { time_t t = time(NULL); FILE *fp = NULL; - char buft[18] = ""; - if(!(fp = fopen(path, "a"))) + if(!(fp = fopen(c->outpath, "a"))) return; - strftime(buft, sizeof(buft), "%Y-%m-%d %H:%M", localtime(&t)); - fprintf(fp, "%s %s\n", buft, buf); + fprintf(fp, "%lu %s\n", t, buf); fclose(fp); } static void -channel_print(Channel *c, const char *buf) { - /* starts with "-!- " #channel */ - if(!strncmp(buf, "-!- ", 4) && - !strncmp(&buf[4], c->name, strlen(c->name))) { - c = channelmaster; - } - print_outfile(c->outpath, buf); -} - -static void -proc_channels_privmsg(int fd, Channel *c, char *buf) { +proc_channels_privmsg(int ircfd, Channel *c, char *buf) { snprintf(msg, sizeof(msg), "<%s> %s", nick, buf); channel_print(c, msg); snprintf(msg, sizeof(msg), "PRIVMSG %s :%s\r\n", c->name, buf); - writestr(fd, msg); + writestr(ircfd, msg); } static void -proc_channels_input(int fd, Channel *c, char *buf) { +proc_channels_input(int ircfd, Channel *c, char *buf) { char *p = NULL; size_t buflen; if(buf[0] != '/' && buf[0] != '\0') { - proc_channels_privmsg(fd, c, buf); + proc_channels_privmsg(ircfd, c, buf); return; } msg[0] = '\0'; _AT_@ -373,7 +361,7 @@ proc_channels_input(int fd, Channel *c, char *buf) { c = channel_join(&buf[3]); } else if(p) { if((c = channel_join(&buf[3]))) - proc_channels_privmsg(fd, c, p + 1); + proc_channels_privmsg(ircfd, c, p + 1); return; } break; _AT_@ -398,14 +386,14 @@ proc_channels_input(int fd, Channel *c, char *buf) { } break; case 'l': /* leave */ - if(c->name[0] == '\0') + if(c == channelmaster) return; if(buflen >= 3) snprintf(msg, sizeof(msg), "PART %s :%s\r\n", c->name, &buf[3]); else snprintf(msg, sizeof(msg), "PART %s :leaving\r\n", c->name); - writestr(fd, msg); + writestr(ircfd, msg); channel_leave(c); return; break; _AT_@ -418,7 +406,7 @@ proc_channels_input(int fd, Channel *c, char *buf) { snprintf(msg, sizeof(msg), "%s\r\n", &buf[1]); } if(msg[0] != '\0') - writestr(fd, msg); + writestr(ircfd, msg); } static void _AT_@ -488,7 +476,7 @@ proc_server_cmd(int fd, char *buf) { } else if(!strncmp("PART", argv[TOK_CMD], 5)) { snprintf(msg, sizeof(msg), "-!- %s(%s) has left %s", argv[TOK_NICKSRV], argv[TOK_USER], argv[TOK_CHAN]); - /* if user itself leaves, don't write to out (don't reopen channel). */ + /* if user itself leaves, don't write to channel (don't reopen channel). */ if(!strcmp(argv[TOK_NICKSRV], nick)) return; } else if(!strncmp("MODE", argv[TOK_CMD], 5)) { _AT_@ -519,7 +507,7 @@ proc_server_cmd(int fd, char *buf) { snprintf(msg, sizeof(msg), "<%s> %s", argv[TOK_NICKSRV], argv[TOK_TEXT] ? argv[TOK_TEXT] : ""); } - if(!argv[TOK_CHAN] || !strncmp(argv[TOK_CHAN], nick, strlen(nick))) + if(!argv[TOK_CHAN] || !strncmp(argv[TOK_CHAN], nick, strlen(nick))) /* TODO: dont use strncmp? its wrong? */ channel = argv[TOK_NICKSRV]; else channel = argv[TOK_CHAN]; -- 2.4.10 --Multipart=_Mon__9_May_2016_17_21_10_+0200_I.6cpFVydhq75aaE Content-Type: text/x-diff; name="0044-strncmp-strcmp-code-style.patch" Content-Disposition: attachment; filename="0044-strncmp-strcmp-code-style.patch" Content-Transfer-Encoding: 7bitReceived on Mon Sep 17 2001 - 00:00:00 CEST
This archive was generated by hypermail 2.3.0 : Mon May 09 2016 - 17:24:22 CEST