package dk.socketmud.util;
public class Colour
{
public static String escape(String s)
{
StringBuffer buf = new StringBuffer();
char[] c = s.toCharArray();
int len = s.length();
int i = 0;
while (i < len)
{
switch (c[i])
{
default:
buf.append(c[i++]);
break;
case '#':
i++;
switch (c[i++])
{
default:
buf.append('#');
i--;
break;
case '#':
buf.append('#');
break;
case 'u': // underline
buf.append((char) 27);
buf.append('[');
buf.append('4');
buf.append('m');
break;
case 'n': // clear ansi colour
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append('m');
break;
case 'd': // dark
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('0');
buf.append('m');
break;
case 'D': // bold dark
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('0');
buf.append('m');
break;
case 'r': // red
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('1');
buf.append('m');
break;
case 'R': // bold red
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('1');
buf.append('m');
break;
case 'g': // green
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('2');
buf.append('m');
break;
case 'G': // bold green
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('2');
buf.append('m');
break;
case 'y': // yellow
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('3');
buf.append('m');
break;
case 'Y': // bold yellow
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('3');
buf.append('m');
break;
case 'b': // blue
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('4');
buf.append('m');
break;
case 'B': // bold blue
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('4');
buf.append('m');
break;
case 'p': // pink
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('5');
buf.append('m');
break;
case 'P': // bold pink
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('5');
buf.append('m');
break;
case 'c': // cyan
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('6');
buf.append('m');
break;
case 'C': // bold cyan
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('6');
buf.append('m');
break;
case 'w': // white
buf.append((char) 27);
buf.append('[');
buf.append('0');
buf.append(';');
buf.append('3');
buf.append('7');
buf.append('m');
break;
case 'W': // bold white
buf.append((char) 27);
buf.append('[');
buf.append('1');
buf.append(';');
buf.append('3');
buf.append('7');
buf.append('m');
break;
}
break;
}
}
return buf.toString();
}
}