wileymud-1.187b/
wileymud-1.187b/attic/
wileymud-1.187b/attic/bin/
wileymud-1.187b/attic/lib/
wileymud-1.187b/attic/lib/adm/
wileymud-1.187b/attic/lib/man/
wileymud-1.187b/attic/lib/new-wld/
wileymud-1.187b/attic/lib/new-wld/default/
wileymud-1.187b/attic/lib/old/
wileymud-1.187b/attic/lib/wld/
wileymud-1.187b/attic/public_html/
wileymud-1.187b/attic/public_html/gfx/
wileymud-1.187b/attic/src/bin/
wileymud-1.187b/attic/src/etc/
wileymud-1.187b/attic/src/libauth-4.0-p5/
wileymud-1.187b/attic/src/sedna/
wileymud-1.187b/backups/
wileymud-1.187b/bin/
wileymud-1.187b/docs/
wileymud-1.187b/etc/
wileymud-1.187b/lib/
wileymud-1.187b/lib/adm/
wileymud-1.187b/lib/boards/
wileymud-1.187b/lib/log/
wileymud-1.187b/lib/man/
wileymud-1.187b/lib/ply/
wileymud-1.187b/lib/ply/a/
wileymud-1.187b/lib/ply/b/
wileymud-1.187b/lib/ply/c/
wileymud-1.187b/lib/ply/d/
wileymud-1.187b/lib/ply/g/
wileymud-1.187b/lib/ply/k/
wileymud-1.187b/lib/ply/m/
wileymud-1.187b/lib/ply/s/
wileymud-1.187b/lib/ply/t/
wileymud-1.187b/public_html/gfx/
wileymud-1.187b/src/bin/
wileymud-1.187b/src/convert/attic/
wileymud-1.187b/src/convert/obj/
wileymud-1.187b/src/convert/perl/
wileymud-1.187b/src/convert/perl/MudConvert/
wileymud-1.187b/src/convert/perl/MudConvert/DUMP/
wileymud-1.187b/src/convert/perl/MudConvert/Report/
wileymud-1.187b/src/convert/perl/MudConvert/WileyMUD/
wileymud-1.187b/src/convert/perl/output/
wileymud-1.187b/src/convert/perl/output/DUMP/
wileymud-1.187b/src/convert/perl/output/Report/
wileymud-1.187b/src/convert/perl/output/WileyMUD/
wileymud-1.187b/src/etc/
wileymud-1.187b/src/etc/init.d/
wileymud-1.187b/src/etc/rc.d/
wileymud-1.187b/src/etc/rc.d/init.d/
wileymud-1.187b/src/lib/
wileymud-1.187b/src/lib/adm/
wileymud-1.187b/src/lib/boards/
wileymud-1.187b/src/lib/log/
wileymud-1.187b/src/lib/man/
wileymud-1.187b/src/lib/ply/
wileymud-1.187b/src/lib/ply/a/
wileymud-1.187b/src/lib/ply/b/
wileymud-1.187b/src/lib/ply/c/
wileymud-1.187b/src/lib/ply/d/
wileymud-1.187b/src/lib/ply/e/
wileymud-1.187b/src/lib/ply/f/
wileymud-1.187b/src/lib/ply/g/
wileymud-1.187b/src/lib/ply/h/
wileymud-1.187b/src/lib/ply/i/
wileymud-1.187b/src/lib/ply/j/
wileymud-1.187b/src/lib/ply/k/
wileymud-1.187b/src/lib/ply/l/
wileymud-1.187b/src/lib/ply/m/
wileymud-1.187b/src/lib/ply/n/
wileymud-1.187b/src/lib/ply/o/
wileymud-1.187b/src/lib/ply/p/
wileymud-1.187b/src/lib/ply/q/
wileymud-1.187b/src/lib/ply/r/
wileymud-1.187b/src/lib/ply/s/
wileymud-1.187b/src/lib/ply/t/
wileymud-1.187b/src/lib/ply/u/
wileymud-1.187b/src/lib/ply/v/
wileymud-1.187b/src/lib/ply/w/
wileymud-1.187b/src/lib/ply/x/
wileymud-1.187b/src/lib/ply/y/
wileymud-1.187b/src/lib/ply/z/
wileymud-1.187b/src/obj/
wileymud-1.187b/src/utils/
wileymud-1.187b/src/utils/mobmaker/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <ctype.h>
#include <time.h>
#define _COLOUR_C
#include "colour.h"

const struct colour_data colour_table[] =
{
  {"\x1b[30m", "$R$0", "black", 0},
  {"\x1b[34m", "$R$1", "blue", 1},
  {"\x1b[32m", "$R$2", "green", 2},
  {"\x1b[36m", "$R$3", "cyan", 3},
  {"\x1b[31m", "$R$4", "red", 4},
  {"\x1b[35m", "$R$5", "purple", 5},
  {"\x1b[33m", "$R$6", "brown", 6},
  {"\x1b[37m", "$R$7", "grey", 7},
  {"\x1b[30;1m", "$B$0", "dark_grey", 8},
  {"\x1b[34;1m", "$B$1", "light_blue", 9},
  {"\x1b[32;1m", "$B$2", "light_green", 10},
  {"\x1b[36;1m", "$B$3", "light_cyan", 11},
  {"\x1b[31;1m", "$B$4", "light_red", 12},
  {"\x1b[35;1m", "$B$5", "magenta", 13},
  {"\x1b[33;1m", "$B$6", "yellow", 14},
  {"\x1b[37;1m", "$B$7", "white", 15},
  {"\x1b[1m", "$B", "bold", 16},
  {"\x1b[5m", "$F", "flashing", 17},
  {"\x1b[7m", "$I", "inverse", 18},
  {"\x1b[0m", "$R", "normal", 19}
};

/*
 * Take a string like <[3m<[1mhi and make it <[3m<[1mHi
 * Thanx to Arcane@max.tiac.net from TIACMUD
 * Changes made by Locke.
 */
char *ansi_uppercase(char *txt)
{
  char *str;

  str = txt;

  while (*str) {
    if (*str == ESC)
      str++;
    else
      break;
    if (*str == '[')
      str++;
    else
      break;
    while (isdigit(*str))
      str++;
    if (*str == 'm')
      str++;
    else
      break;
  }

  *str = toupper(*str);
  return txt;
}

void ansi_colour(const char *txt, CHAR_DATA *ch)
{
  if (txt != NULL && ch->desc != NULL) {
    if (!IS_SET(ch->act2, PLR_ANSI) && !IS_SET(ch->act2, PLR_VT100))
      return;
    else if (IS_SET(ch->act2, PLR_VT100) && !IS_SET(ch->act2, PLR_ANSI)) {
      if (!str_cmp(txt, GREEN)
	  || !str_cmp(txt, RED)
	  || !str_cmp(txt, BLUE)
	  || !str_cmp(txt, BLACK)
	  || !str_cmp(txt, CYAN)
	  || !str_cmp(txt, GREY)
	  || !str_cmp(txt, YELLOW)
	  || !str_cmp(txt, PURPLE))
	return;
    }
    write_to_buffer(ch->desc, txt, strlen(txt));
    return;
  }
}