From 489a5fa552297dac23fe2ff4b740249fcc9989a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Fri, 15 May 2015 05:43:59 +0200 Subject: [PATCH] degesch: factor out irc_get_or_make_user() --- degesch.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/degesch.c b/degesch.c index fe9469b..c48d43a 100644 --- a/degesch.c +++ b/degesch.c @@ -2670,6 +2670,15 @@ irc_make_user (struct server *s, char *nickname) return user; } +struct user * +irc_get_or_make_user (struct server *s, const char *nickname) +{ + struct user *user = str_map_find (&s->irc_users, nickname); + if (user) + return user_ref (user); + return irc_make_user (s, xstrdup (nickname)); +} + static struct buffer * irc_get_or_make_user_buffer (struct server *s, const char *nickname) { @@ -2677,11 +2686,7 @@ irc_get_or_make_user_buffer (struct server *s, const char *nickname) if (buffer) return buffer; - struct user *user = str_map_find (&s->irc_users, nickname); - if (!user) - user = irc_make_user (s, xstrdup (nickname)); - else - user = user_ref (user); + struct user *user = irc_get_or_make_user (s, nickname); // Open a new buffer for the user buffer = buffer_new ();