From b8c88bbf4e928a0ac4af89dfe72f0661beb35827 Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Fri, 14 Aug 2009 17:07:26 +0200 Subject: Parse text and join lines. Add users from text lines. Fixed hash table code. --- main.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'main.c') diff --git a/main.c b/main.c index a3b3c7e..79b1eec 100644 --- a/main.c +++ b/main.c @@ -1,8 +1,10 @@ #include +#include #include "config.h" #include "regexset.h" #include "channel.h" +#include "user.h" int main(int argc, char **argv) { /* Regex sets must be initialized before config. */ @@ -15,6 +17,7 @@ int main(int argc, char **argv) { channel_free(); return 1; } + user_init(); /* Parsing stuff goes here. */ for(int chan_i = 0; chan_i < channel_get_count(); chan_i++) { @@ -33,13 +36,29 @@ int main(int argc, char **argv) { char line[0x2ff]; while(fgets(line, 0x2ff, f)) { - // TODO: Magic. + int rc; + int ovector[30]; + + rc = pcre_exec(rs->text, NULL, line, strlen(line), 0, 0, ovector, 30); + if(rc > 0) { + char nick[0x20], text[0x200]; + pcre_copy_named_substring(rs->text, line, ovector, rc, "nick", nick, 0x20); + pcre_copy_named_substring(rs->text, line, ovector, rc, "text", text, 0x200); + struct user_t *user = user_get(nick); + continue; + } + + rc = pcre_exec(rs->join, NULL, line, strlen(line), 0, 0, ovector, 30); + if(rc > 0) { + continue; + } } file = file->next; } } + user_free(); cfg_free(); channel_free(); rs_free(); -- cgit v1.2.3