/* ansi.c * code to do stuff with ansi color */ #include "autoconf.h" #include "ansi.h" #include "alloc.h" #include "copyright.h" #include "externs.h" #include "flags.h" #include "mudconf.h" char *ltrs2ansi(ltrs) char *ltrs; { static char buff[LBUF_SIZE], *bp, *s; for (s = ltrs, bp = buff; *s; s++) { switch (*s) { case 'h': /* hilite */ safe_str(ANSI_HILITE, buff, &bp); break; case 'i': /* inverse */ safe_str(ANSI_INVERSE, buff, &bp); break; case 'f': /* flash */ safe_str(ANSI_BLINK, buff, &bp); break; case 'n': /* normal */ safe_str(ANSI_NORMAL, buff, &bp); break; case 'k': /* compatibility with Amalgam soft-ansi */ case 'x': /* black fg */ safe_str(ANSI_BLACK, buff, &bp); break; case 'r': /* red fg */ safe_str(ANSI_RED, buff, &bp); break; case 'g': /* green fg */ safe_str(ANSI_GREEN, buff, &bp); break; case 'y': /* yellow fg */ safe_str(ANSI_YELLOW, buff, &bp); break; case 'b': /* blue fg */ safe_str(ANSI_BLUE, buff, &bp); break; case 'm': /* magenta fg */ safe_str(ANSI_MAGENTA, buff, &bp); break; case 'c': /* cyan fg */ safe_str(ANSI_CYAN, buff, &bp); break; case 'w': /* white fg */ safe_str(ANSI_WHITE, buff, &bp); break; case 'K': case 'X': /* black bg */ safe_str(ANSI_BBLACK, buff, &bp); break; case 'R': /* red bg */ safe_str(ANSI_BRED, buff, &bp); break; case 'G': /* green bg */ safe_str(ANSI_BGREEN, buff, &bp); break; case 'Y': /* yellow bg */ safe_str(ANSI_BYELLOW, buff, &bp); break; case 'B': /* blue bg */ safe_str(ANSI_BBLUE, buff, &bp); break; case 'M': /* magenta bg */ safe_str(ANSI_BMAGENTA, buff, &bp); break; case 'C': /* cyan bg */ safe_str(ANSI_BCYAN, buff, &bp); break; case 'W': /* white bg */ safe_str(ANSI_BWHITE, buff, &bp); break; } } return buff; } char *ltr2ansi(c) char c; { static char foo[2]; foo[0] = c; foo[1] = '\0'; return ltrs2ansi(foo); } char *typeansi(it) dbref it; { char *c; switch (Typeof(it)) { case TYPE_PLAYER: c = mudconf.player_ansi; break; case TYPE_ROOM: c = mudconf.room_ansi; break; case TYPE_THING: c = mudconf.thing_ansi; break; case TYPE_ZONE: c = mudconf.zone_ansi; break; case TYPE_EXIT: c = mudconf.exit_ansi; break; default: STARTLOG(LOG_BUGS, "BUG", "OTYPE") c = alloc_mbuf("typeansi.LOG.badtype"); sprintf(c, "Strange object type: object #%d = %d", it, Typeof(it)); log_text(c); free_mbuf(c); ENDLOG c = "f"; } return ltrs2ansi(c); }