Index: work/net/libuirc/Makefile =================================================================== --- work/net/libuirc/Makefile (revision 20986) +++ work/net/libuirc/Makefile (revision 20987) @@ -1 +1,8 @@ +CFLAGS = -Wall -g +LDLIBS = -lporty_net libgenvector.a + +main: main.o libuirc.o + +main.o: main.c + libuirc.o: libuirc.c libuirc.h Index: work/net/libuirc/main.c =================================================================== --- work/net/libuirc/main.c (nonexistent) +++ work/net/libuirc/main.c (revision 20987) @@ -0,0 +1,55 @@ +#include +#include +#include +#include "libuirc.h" + +static void read_stdin(uirc_t *ctx) +{ + struct P_pollfd fds[1]; + + fds[0].fd = 0; + fds[0].events = P_POLLIN; + + if (P_poll(fds, 1, 0) == 1) { + char line[600]; + fgets(line, sizeof(line), stdin); + if (*line == '/') { + uirc_raw(ctx, line+1); + } + else { + if (ctx->query[ctx->curr_query].name != NULL) + uirc_privmsg(ctx, ctx->query[ctx->curr_query].name, line); + } + } +} + +int main() +{ + uirc_t irc; + + memset(&irc, 0, sizeof(irc)); + + irc.nick = strdup("libuirc"); + if (uirc_connect(&irc, "repo.hu", 6667, "libuirc test client") != 0) { + printf("Failed to connect.\n"); + return 1; + } + + for(;irc.alive;) { + uirc_event_t ev = uirc_poll(&irc); + if (ev & UIRC_CONNECT) { + printf("joining\n"); + uirc_raw(&irc, "join :#pcb-rnd"); + } + if (ev & UIRC_QUERY_BEGIN) { + irc.curr_query = irc.last_new_query; + printf("### begin query with %s\n", irc.query[irc.curr_query].name); + } + + read_stdin(&irc); + usleep(100); + } + + return 0; +} +