# HG changeset patch # User Tero Marttila # Date 1238531724 -10800 # Node ID 155a6c7d388669452210dcbed3a88e6a4dad1376 # Parent f357f835f0d51b652b9c568fb164a16a97f32f06 implement lua_client_set_defaults diff -r f357f835f0d5 -r 155a6c7d3886 src/lua_objs.c --- a/src/lua_objs.c Tue Mar 31 22:09:53 2009 +0300 +++ b/src/lua_objs.c Tue Mar 31 23:35:24 2009 +0300 @@ -218,8 +218,31 @@ */ struct lua_client { struct irc_client *client; + + struct irc_client_defaults defaults; }; +static int lua_client_set_defaults (lua_State *L) +{ + struct lua_client *lua_client = lua_obj_get_obj(L, __func__, "evirc.client"); + + // read the args + // XXX: need to copy these, really + lua_client->defaults.register_info.nickname = luaL_checkstring(L, 2); + lua_client->defaults.register_info.username = luaL_checkstring(L, 3); + lua_client->defaults.register_info.realname = luaL_checkstring(L, 4); + + // set the non-args + lua_client->defaults.service = IRC_PORT; + lua_client->defaults.service_ssl = IRC_SSL_PORT; + + // invoke + irc_client_set_defaults(lua_client->client, &lua_client->defaults); + + // ok + return 0; +} + static int lua_client_connect (lua_State *L) { struct lua_client *lua_client = lua_obj_get_obj(L, __func__, "evirc.client"); @@ -280,10 +303,11 @@ } static const struct luaL_Reg lua_client_methods[] = { - { "connect", &lua_client_connect }, - { "network", &lua_client_get_network }, - { "quit", &lua_client_quit }, - { NULL, NULL } + { "set_defaults", &lua_client_set_defaults }, + { "connect", &lua_client_connect }, + { "network", &lua_client_get_network }, + { "quit", &lua_client_quit }, + { NULL, NULL } }; /**