Index: work/net/libuirc/Makefile =================================================================== --- work/net/libuirc/Makefile (nonexistent) +++ work/net/libuirc/Makefile (revision 20981) @@ -0,0 +1 @@ +libuirc.o: libuirc.c libuirc.h Index: work/net/libuirc/libuirc.c =================================================================== --- work/net/libuirc/libuirc.c (nonexistent) +++ work/net/libuirc/libuirc.c (revision 20981) @@ -0,0 +1,39 @@ +#include "libuirc.h" +#include + +P_net_socket uirc_connect(uirc_t *ctx, const char *server, int port, char *user) +{ + +} + +P_net_socket uirc_disconnect(uirc_t *ctx) +{ + +} + +void uirc_read(uirc_t *ctx, char *data, int len) +{ + +} + +void uirc_join(uirc_t *ctx, const char *chan) +{ + +} + +void uirc_close(uirc_t *ctx, int query) +{ + +} + +void uirc_privmsg(uirc_t *ctx, const char *target, const char *msg) +{ + +} + +void uirc_raw(uirc_t *ctx, const char *msg) +{ + +} + + Index: work/net/libuirc/libuirc.h =================================================================== --- work/net/libuirc/libuirc.h (nonexistent) +++ work/net/libuirc/libuirc.h (revision 20981) @@ -0,0 +1,45 @@ +#include +#include + +#define UIRC_MAX_QUERIES 16 + +typedef enum { + UIRC_UNUSED = 0, + UIRC_SERVER, + UIRC_CHAN, + UIRC_PRIV +} uirc_query_type_t; + +typedef struct { + uirc_query_type_t type; + char *name; + + /* channel: */ + gds_t *nicks; /* , separated list of nicknames for a channel; first char is one of @, + or space */ + char *topic; +} uirc_query_t; + +typedef struct uirc_s uirc_t; +struct uirc_s { + char *nick; + uirc_query_t query[UIRC_MAX_QUERIES]; /* query 0 is special: server "window" */ + + void *user_data; + void (*on_connect)(uirc_t *ctx); + void (*on_disconnect)(uirc_t *ctx); + void (*on_got_msg)(uirc_t *ctx, const char *from, int query_to, const char *msg); + void (*on_got_misc)(uirc_t *ctx, int query_to, const char *msg); + void (*on_query_begin)(uirc_t *ctx, int query_to); + void (*on_query_end)(uirc_t *ctx, int query_to); /* called on leaving the channel for any reason */ + void (*on_me_quit)(uirc_t *ctx); +}; + +P_net_socket uirc_connect(uirc_t *ctx, const char *server, int port, char *user); +P_net_socket uirc_disconnect(uirc_t *ctx); +void uirc_read(uirc_t *ctx, char *data, int len); + +void uirc_join(uirc_t *ctx, const char *chan); +void uirc_close(uirc_t *ctx, int query); +void uirc_privmsg(uirc_t *ctx, const char *target, const char *msg); +void uirc_raw(uirc_t *ctx, const char *msg); +