/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
#pragma save_binary
string  query_multiple_short( mixed *obs )
{
    int     i, j, k;
    string *str;
    mixed  *bity;

    bity = ({ });
    for( i = 0; i < sizeof( obs ); i++ )
    {
	if( !stringp( obs[ i ] ) )
	{
	    if( !pointerp( obs[ i ] ) )		/* like a string.  First bit is the string.
						 * second the object */
		str = (string *)obs[ i ]->pretty_short();
	    else
	    {
		str = obs[ i ][ 0 ];
		obs[ i ] = obs[ i ][ 1 ];
	    }
	}
	else
	    str = obs[ i ];
	if( !str )		/* ignore invis objects */
	    continue;
	if( stringp( str ) )
	    str = ({ str });
	for( j = 0; j < sizeof( str ); j++ )
	    if( (k = member_array( str[ j ], bity )) == -1 )
		bity += ({ str[ j ], ({ obs[ i ] }) });
	    else
		bity[ k + 1 ] = ({ obs[ i ] }) +bity[ k + 1 ];
    }
    str = ({ });
    for( i = 0; i < sizeof( bity ); i += 2 )
    {
	j = sizeof( bity[ i + 1 ] );
	if( stringp( bity[ i + 1 ][ 0 ] ) )
	    if( j == 1 )
		str += ({ bity[ i ] });
	    else
		str += ({ (query_num( j, 20 ) +
			   " " + pluralize( bity[ i ] )) });
	else
	    if( j == 1 )
		if( bity[ i + 1 ][ 0 ]->query_property( "determinate" ) )
		    str += ({ bity[ i + 1 ][ 0 ]->query_property( "determinate" ) + bity[ i ] });
		else
		    str += ({ add_a( bity[ i ] ) });
	    else
		str += ({ (query_num( j, 20 ) +
			   " " + bity[ i + 1 ][ 0 ]->pretty_plural( bity[ i ] )) });
    }
    if( !sizeof( str ) )
	return "";
    if( sizeof( str ) == 1 )
	return str[ 0 ];
    return implode( str[ 0..sizeof( str ) - 2 ], ", " ) + " and " + str[ sizeof( str ) - 1 ];
}