}
struct UserNode *user;
+ struct ChanUser *chanuser;
if(chanuserflags & CHANUSERFLAG_INVISIBLE) {
user = createTempUser(argv[4]);
user->flags |= USERFLAG_ISTMPUSER;
chan->flags |= CHANFLAG_HAVE_INVISIBLES;
- struct ChanUser *chanuser = addInvisibleChanUser(chan, user);
+ chanuser = addInvisibleChanUser(chan, user);
chanuser->flags = (chanuser->flags & ~CHANUSERFLAG_OPPED_OR_VOICED) | chanuserflags;
} else {
user = getUserByNick(argv[4]);
if(user == NULL) {
user = addUser(argv[4]);
}
- if(!isUserOnChan(user, chan)) {
- struct ChanUser *chanuser = addChanUser(chan, user);
- chanuser->flags = (chanuser->flags & ~CHANUSERFLAG_OPPED_OR_VOICED) | chanuserflags;
+ if(!(chanuser = getChanUser(user, chan))) {
+ chanuser = addChanUser(chan, user);
}
+ chanuser->flags = (chanuser->flags & ~CHANUSERFLAG_OPPED_OR_VOICED) | chanuserflags;
}
user->flags = (user->flags & ~USERFLAG_ISIRCOP) | userflags;
user->last_who = time(0);