/
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/
varargs string print_object( mixed arg, int off )
{
    write( extract( "                    ", 0, off ) );
    if( stringp( arg ) )
    {
	write( "\"" + arg + "\"\n" );
	return "Ok";
    }
    if( intp( arg ) )
    {
	write( arg + "\n" );
	return "Ok";
    }
    if( objectp( arg ) )
    {
	write( file_name( arg ) );
	if( arg->short() )
	            write( "  (Short) \"" + arg->short() + "\"\n" );

	else
	    if( arg->query_name() )
		write( "  (Name) - \"" + arg->query_name() + "\"\n" );
	    else
		write( "  (Arggghhh)\n" );
	return "Ok";
    }
    if( pointerp( arg ) )
    {
	int     i;

	if( sizeof( arg ) == 0 )
	{
	    write( "({ })\n" );
	    return "Ok";
	}
	write( "({ --- size " + sizeof( arg ) + "\n" );
	for( i = 0; i < sizeof( arg ); i++ )
	    print_object( arg[ i ], off + 3 );
	write( extract( "                  ", 0, off ) + "})\n" );
	return "Ok";
    }
    return "Oh dear we have failed";
}