diff options
author | beber <beber> | 2005-08-22 18:31:08 +0000 |
---|---|---|
committer | beber <beber> | 2005-08-22 18:31:08 +0000 |
commit | e92c88491b6638f6a21c872a1be489f33e2f0a56 (patch) | |
tree | f3dc542021a90bca8cd9ac1ee862ba109576b73c /src | |
parent | Coorect Oops (diff) | |
download | espik-e92c88491b6638f6a21c872a1be489f33e2f0a56.tar.xz |
Some jobs on irc commands
Diffstat (limited to 'src')
-rw-r--r-- | src/espik_irc.c | 131 |
1 files changed, 70 insertions, 61 deletions
diff --git a/src/espik_irc.c b/src/espik_irc.c index 82607ef..84208f0 100644 --- a/src/espik_irc.c +++ b/src/espik_irc.c @@ -12,45 +12,44 @@ #include "espik.h" #include "espik_net.h" -char *current_chan; +char* current_chan; typedef struct { - char *cmd_name; - char *(*format) (char *dest, char *msg); + char* cmd_name; + char* (*format) (char *dest, char *msg); } cmd_t; -cmd_t cmd_tab[] = { +cmd_t cmd_tab[] = { {"JOIN", irc_join}, {"PART", irc_part}, {"PRIVMSG", irc_privmsg}, {"QUIT", irc_quit}, {"RAW", irc_raw}, - /*{"ACTION", irc_action}, */ - +/* {"ACTION", irc_action}, */ {0, 0} }; -char **separate_commandline (char *msg) +char** separate_commandline (char *msg) { - unsigned int len; - char **two_words; + unsigned int len; + char** two_words; - for (len = 0; msg[len] != ' '; len++); /* Yes, do nothing, just get len ! */ + /* Yes, do nothing, just get len ! */ + for (len = 0; msg[len] != ' '; len++); - two_words = malloc (sizeof (char *) * 2); - chk_malloc (two_words); + two_words = malloc (sizeof(char*) * 2); - msg[len] = '\0'; + msg[len] = '\0'; two_words[0] = msg; two_words[1] = msg + len + 1; return (two_words); } -void string_upper (char *str) +void string_upper (char *str) { - unsigned int len, i; + unsigned int len, i; len = strlen (str); @@ -61,118 +60,127 @@ void string_upper (char *str) } } -unsigned short sendmsg_len (char *msg) +unsigned short sendmsg_len (char* msg) { return (strlen (msg) + 2); } -char *irc_privmsg (char *chan, char *msg) +char* irc_privmsg (char* chan, char* msg) { - char *out; - unsigned int len; + char* out; + unsigned int len; - len = strlen ("PRIVMSG") + 1 /* space */ - + strlen (chan) + 2 /* space: */ - + strlen (msg) + 1; /* \0 */ + len = strlen ("PRIVMSG") + 1 /* space */ + + strlen (chan) + 2 /* space: */ + + strlen (msg) + 1; /* EOF */ - out = malloc (sizeof (char) * len); - chk_malloc (out); + out = malloc (sizeof(char) * len); snprintf (out, len, "PRIVMSG %s :%s", chan, msg); return (out); } -char *irc_join (char *chan __UNUSED__, char *msg) +char* irc_join (char* chan __UNUSED__, char* msg) { - char *out; - int len; - - if (msg[0] != '#') /* COuld also by '&' and so one ... have to look on RFC, dev will be done with # only */ + char* out; + int len; + + /* COuld also by '&' and so one ... + * have to look on RFC, dev will be done with # only */ + if (msg[0] != '#') { printf ("%s is not a channel\n", msg); printf ("Usage: /JOIN #channel\n"); return (0); } - len = strlen ("JOIN") + 1 + strlen (msg) + 1; - out = malloc (sizeof (char) * len); - chk_malloc (out); + len = strlen ("JOIN") + 1 + + strlen (msg) + 1; + out = malloc (sizeof(char) * len); snprintf (out, len, "JOIN %s", msg); return (out); } -char *irc_part (char *chan, char *msg) +char* irc_part (char* chan, char* msg) { - char *out; - int len; + char* out; + int len; if (msg[0] != '#') { - len = strlen ("PART") + 1 + strlen (chan) + 2 + strlen (msg) + 1; + len = strlen ("PART") + 1 + + strlen (chan) + 2 + + strlen (msg) + 1; printf ("irc_part: len: %d\n", len); - out = malloc (sizeof (char) * len); - chk_malloc (out); + out = malloc (sizeof(char) * len); snprintf (out, len, "PART %s :%s", chan, msg); } else { - char **sep; + char** sep; sep = separate_commandline (msg); - len = strlen ("PART") + 1 + strlen (sep[0]) + 2 + strlen (sep[1]) + 1; - out = malloc (sizeof (char) * len); - chk_malloc (out); + len = strlen ("PART") + 1 + + strlen (sep[0]) + 2 + + strlen (sep[1]) + 1; + out = malloc (sizeof(char) * len); snprintf (out, len, "PART %s :%s", sep[0], sep[1]); } return (out); } -char *irc_quit (char *chan __UNUSED__, char *msg) +char* irc_quit (char* chan __UNUSED__, char* msg) { - char *out; - int len; + char* out; + int len; - len = strlen ("QUIT") + 2 + strlen (msg) + 1; + len = strlen ("QUIT") + 2 + + strlen (msg) + 1; out = malloc (sizeof (char) * len); - chk_malloc (out); snprintf (out, len, "QUIT :%s", msg); printf ("msg : %s\nout: %s\n", msg, out); - //espik_raw_send (out); - //espik_con_shutdown (); +/* + espik_raw_send (out); + espik_con_shutdown (); -// irc_disconnect(sock); + irc_disconnect(sock); +*/ return (out); } -char *irc_raw (char *chan __UNUSED__, char *msg) +char* irc_raw (char* chan __UNUSED__, char* msg) { return (msg); } -/*Ecore_Con_Server *irc_connect (char *host __UNUSED__, int port __UNUSED__) +/* +Ecore_Con_Server* irc_connect (char* host __UNUSED__, int port __UNUSED__) { return (NULL); -}*/ +} +*/ -/*void irc_disconnect (Ecore_Con_Server * sock) +/* +void irc_disconnect (Ecore_Con_Server *sock) { printf ("> irc_disconnect\n"); ecore_main_loop_quit (); printf ("< irc_disconnect\n"); -}*/ +} +*/ -char *irc_send (char *msg) +char* irc_send (char* msg) { - char *out; + char* out; out = NULL; @@ -180,9 +188,9 @@ char *irc_send (char *msg) if (msg[0] == '/') { - char **cmd_and_message; + char** cmd_and_message; - cmd_t *cmd; + cmd_t* cmd; cmd_and_message = separate_commandline (msg + 1); string_upper (cmd_and_message[0]); @@ -192,8 +200,9 @@ char *irc_send (char *msg) if ((strcmp (cmd_and_message[0], cmd->cmd_name)) == 0) { out = cmd->format (current_chan, cmd_and_message[1]); - break; /* WHy do job after found the good to do ? */ - } + /* WHy do job after found the good to do ? */ + break; + } } if (!out) { |