#include "color.h" #include "panic.h" bool itoac(int i, enum AnsiiColor *color) { if (i < 0 || i > 15) return false; *color = i; return true; } bool itovc(int i, enum VGAColor *color) { if ( (i >= 30 && i <= 37) || (i >= 40 && i <= 47) || (i >= 90 && i <= 97) || (i >= 100 && i <= 107) ) { *color = i; return true; } return false; } enum VGAColor atovc(enum AnsiiColor color) { switch(color) { case ANSII_FRONT_BLACK: case ANSII_FRONT_BLACK_EMPH: case ANSII_BACK_BLACK: case ANSII_BACK_BLACK_EMPH: return VGA_BLACK; case ANSII_FRONT_RED: case ANSII_FRONT_RED_EMPH: case ANSII_BACK_RED: case ANSII_BACK_RED_EMPH: return VGA_LIGHT_RED; case ANSII_FRONT_GREEN: case ANSII_FRONT_GREEN_EMPH: case ANSII_BACK_GREEN: case ANSII_BACK_GREEN_EMPH: return VGA_LIGHT_GREEN; case ANSII_FRONT_YELLOW: case ANSII_FRONT_YELLOW_EMPH: case ANSII_BACK_YELLOW: case ANSII_BACK_YELLOW_EMPH: return VGA_LIGHT_BROWN; case ANSII_FRONT_BLUE: case ANSII_FRONT_BLUE_EMPH: case ANSII_BACK_BLUE: case ANSII_BACK_BLUE_EMPH: return VGA_LIGHT_BLUE; case ANSII_FRONT_PURPLE: case ANSII_FRONT_PURPLE_EMPH: case ANSII_BACK_PURPLE: case ANSII_BACK_PURPLE_EMPH: return VGA_LIGHT_MAGENTA; case ANSII_FRONT_CYAN: case ANSII_FRONT_CYAN_EMPH: case ANSII_BACK_CYAN: case ANSII_BACK_CYAN_EMPH: return VGA_LIGHT_CYAN; case ANSII_FRONT_WHITE: case ANSII_FRONT_WHITE_EMPH: case ANSII_BACK_WHITE: case ANSII_BACK_WHITE_EMPH: return VGA_WHITE; } panic("this should not be reached (make gcc quiet)"); }