+ char greeting[MAXLEN];
+ int greetingPos = 0;
+ char *a, *b = (chanuserrow ? row[2] : row[1]);
+ do {
+ if(!b) break;
+ a = strstr(b, "$");
+ if(a) *a = '\0';
+ greetingPos += sprintf(greeting + greetingPos, "%s", b);
+ if(!a) break;
+ switch(a[1]) {
+ case '\0':
+ a = NULL;
+ break;
+ case 'A':
+ greetingPos += sprintf(greeting + greetingPos, "%d", uaccess);
+ break;
+ case 'B':
+ greetingPos += sprintf(greeting + greetingPos, "%s", client->user->nick);
+ break;
+ case 'N':
+ greetingPos += sprintf(greeting + greetingPos, "%s", user->nick);
+ break;
+ case 'H':
+ greetingPos += sprintf(greeting + greetingPos, "%s@%s", user->ident, user->host);
+ break;
+ case 'U':
+ greetingPos += sprintf(greeting + greetingPos, "%s", ((user->flags & USERFLAG_ISAUTHED) ? user->auth : "*"));
+ break;
+ default:
+ greeting[greetingPos++] = '$';
+ greeting[greetingPos++] = a[1];
+ break;
+ }
+ if(a)
+ b = a+2;
+ } while(a);
+ if(greetingPos)
+ reply(textclient, user, "[%s] %s", chan->name, greeting);