]> git.armaanb.net Git - sic.git/blobdiff - sic.c
made sic 0.2
[sic.git] / sic.c
diff --git a/sic.c b/sic.c
index 7199c14381b810bce0badac9bc71fb1641383fb1..99007d1ac274adb8b83adbeafd76c0d79f87f36f 100644 (file)
--- a/sic.c
+++ b/sic.c
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <sys/socket.h>
 #include <time.h>
+#include <sys/socket.h>
+#include <sys/time.h>
 
 #define PINGTIMEOUT 300
 #define MAXMSG 4096
 
 enum { Tnick, Tuser, Tcmd, Tchan, Targ, Ttext, Tlast };
 
-/* CUSTOMIZE */
 static char *server = "irc.oftc.net";
 static int port = 6667;
-static char *nick = "arg";
-static char *fullname = "Anselm R. Garbe";
+static char *nick = NULL;
+static char *fullname = NULL;
 static char *password = NULL;
 
 static char bufin[MAXMSG], bufout[MAXMSG];
@@ -52,7 +52,7 @@ pout(char *channel, char *msg)
        time_t t = time(0);
 
        strftime(timestr, sizeof(timestr), "%a %R", localtime(&t));
-       fprintf(stdout, "%s: %s %s\n", channel, timestr, msg);
+       fprintf(stdout, "%-8.8s: %s %s\n", channel, timestr, msg);
 }
 
 static void
@@ -69,6 +69,8 @@ parsein(char *msg)
 {
        char *p;
 
+       if(msg[0] == 0)
+               return;
        if(msg[0] != '/') {
                privmsg(channel, msg);
                return;
@@ -224,7 +226,8 @@ parsesrv(char *msg)
        else if(!strncmp("NOTICE", argv[Tcmd], 7))
                snprintf(bufout, sizeof(bufout), "-!- \"%s\")",
                                argv[Ttext] ? argv[Ttext] : "");
-       else if(!strncmp("PRIVMSG", argv[Tcmd], 8)) snprintf(bufout, sizeof(bufout), "<%s> %s",
+       else if(!strncmp("PRIVMSG", argv[Tcmd], 8))
+               snprintf(bufout, sizeof(bufout), "<%s> %s",
                                argv[Tnick], argv[Ttext] ? argv[Ttext] : "");
        if(!argv[Tchan] || !strncmp(argv[Tchan], nick, strlen(nick)))
                pout(argv[Tnick], bufout);
@@ -242,6 +245,7 @@ main(int argc, char *argv[])
        char ping[256];
        fd_set rd;
 
+       nick = fullname = getenv("USER");
        for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
                switch (argv[i][1]) {
                default:
@@ -250,19 +254,19 @@ main(int argc, char *argv[])
                        exit(EXIT_FAILURE);
                        break;
                case 's':
-                       server = argv[i++];
+                       server = argv[++i];
                        break;
                case 'p':
-                       port = atoi(argv[i++]);
+                       port = atoi(argv[++i]);
                        break;
                case 'n':
-                       nick = argv[i++];
+                       nick = argv[++i];
                        break;
                case 'k':
-                       password = argv[i++];
+                       password = argv[++i];
                        break;
                case 'f':
-                       fullname = argv[i++];
+                       fullname = argv[++i];
                        break;
                case 'v':
                        fputs("sic-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
@@ -289,11 +293,11 @@ main(int argc, char *argv[])
        /* login */
        if(password)
                snprintf(bufout, sizeof(bufout),
-                               "PASS %s\r\nNICK %s\r\nUSER %s localserver %s :%s\r\n",
-                               password, nick, nick, server, fullname ? fullname : nick);
+                               "PASS %s\r\nNICK %s\r\nUSER %s localhost %s :%s\r\n",
+                               password, nick, nick, server, fullname);
        else
-               snprintf(bufout, sizeof(bufout), "NICK %s\r\nUSER %s localserver %s :%s\r\n",
-                                nick, nick, server, fullname ? fullname : nick);
+               snprintf(bufout, sizeof(bufout), "NICK %s\r\nUSER %s localhost %s :%s\r\n",
+                                nick, nick, server, fullname);
        write(srv, bufout, strlen(bufout));
 
        snprintf(ping, sizeof(ping), "PING %s\r\n", server);