use this for your swho function to fix the "Bad short who tag.c" errors that arise from ppl doing who at login, with only one person logged on void swho ( player * p, char * str ) { player **list, *scan; char *oldstack = stack, *text; int count = 0; align (stack); list = (player **) stack; for (scan = flatlist_start; scan; scan = scan->flat_next) { if (scan->name[0] && scan->location) { *(player **) stack = scan; stack += sizeof (player **); count++; } } if (!count) { if (p->name[0]) log ("error", "Really Bad short who (tag.c)"); else tell_player (p, " No-one is online atm ...\n"); stack = oldstack; return; } if (count == 1 && p->name[0]) { tell_player(p, " It's just you and me, kid\n"); stack = oldstack; return; } text = stack; if (count > 1) sprintf (stack, " There are %s people on the talker.\n", number2string (count)); else sprintf (stack, " There is one person on the talker.\n"); while (*stack) stack++; if ((str && *str == '-') || p->saved_flags & NOPREFIX) sys_flags |= NO_PRETITLES; construct_name_list_swho (list, count, 1); sys_flags &= ~NO_PRETITLES; *stack++ = 0; if (p->flags & NO_PAGER || !(p->logged_in)) tell_player (p, text); else pager (p, text, 0); stack = oldstack; }