/
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/
/* The terminal handler.  This has all sorts of utterly useless junk on it
 * Share and enjoy.
 * Thrown up by Pinkfish.

 Modified by Godot to add the xterm terminal. (10/16/92)
 Modified by Bannor to use external .h files, and add vt102. (4/16/93)

 Definitions:

 <colour>    foreground colour
 B_<colour>  background colour
 BOLD        bold or bright letters
 FLASH       flashing or blinking letters
 RESET       return to the normal font -- not a terminal reset.
 INITTERM    Sets up a split screen and moves the cursor to line 23
 STATUS      Moves cursor to line 24 and clears the line
 WINDOW      Moves the cursor back to the upper window
 ENDTERM     Resets the terminal to one window (full height)
 */

#include "term_types/t_dumb.h"
#include "term_types/t_ansi.h"
#include "term_types/t_ansi_s.h"
#include "term_types/t_freedm.h"
#include "term_types/t_xterm.h"
#include "term_types/t_xterms.h"
#include "term_types/t_vt100.h"
#include "term_types/t_vt100s.h"


#define ANSI(p) sprintf("%c["+(p)+"m", 27)
#define ESC(p) sprintf("%c"+(p), 27)


mapping terms;

void    create()
{
    terms = ([ 
		  T_DUMB,
		  T_ANSI,
		  T_ANSI_STATUS,
		  T_FREEDOM,
		  T_VT100,
		  T_VT100_STATUS,
		  T_XTERM,
		  T_XTERM_STATUS,
		   ]);
}				/* create() */


mixed   set_term_type( string str )
{
    if( !terms[ str ] )
    {
	efun::tell_object( this_player(), "No entry for " + str +
			   ", using dumb.\n" );
	str = "dumb";
    }
    return terms[ str ];
}				/* set_term_type() */


string *query_term_types()
{
    return m_indices( terms );
}				/* query_term_types() */