diff --git a/degesch.c b/degesch.c index 7b0af26..8bf40ad 100644 --- a/degesch.c +++ b/degesch.c @@ -1286,7 +1286,7 @@ irc_user_on_destroy (void *object, void *user_data) str_map_set (&ctx->irc_users, user->nickname, NULL); } -struct user * +static struct user * irc_make_user (struct app_context *ctx, char *nickname) { hard_assert (!str_map_find (&ctx->irc_users, nickname)); @@ -1307,7 +1307,7 @@ irc_channel_on_destroy (void *object, void *user_data) str_map_set (&ctx->irc_channels, channel->name, NULL); } -struct channel * +static struct channel * irc_make_channel (struct app_context *ctx, char *name) { hard_assert (!str_map_find (&ctx->irc_channels, name)); @@ -2294,6 +2294,7 @@ irc_process_numeric (struct app_context *ctx, const struct irc_message *msg, unsigned long numeric) { // Numerics typically have human-readable information + // TODO: try to output certain replies in more specific buffers // Get rid of the first parameter, if there's any at all, // as it contains our nickname and is of no practical use to the user @@ -2325,7 +2326,12 @@ irc_process_numeric (struct app_context *ctx, // TODO: find the channel and if found, push nicks to names_buf break; case IRC_RPL_ENDOFNAMES: - // TODO: find the channel and if found, overwrite users + // TODO: find the channel and if found, overwrite users; + // however take care to combine channel user modes + break; + case IRC_ERR_NICKNAMEINUSE: + // TODO: if not connected yet (irc_ready), use a different nick; + // either use a number suffix, or accept commas in "nickname" config break; } } @@ -2809,6 +2815,7 @@ handle_command_part (struct app_context *ctx, char *arguments) if (*arguments) // TODO: check if the arguments are in the form of "channel(,channel)*" + // TODO: make sure to send the reason as one argument irc_send (ctx, "PART %s", arguments); else {