- int fg, bg;\r
- char clrStr[6] = "\x1B[37m";\r
- \r
- // Verify Arg Count\r
- if(argc < 2)\r
- {\r
- goto usage;\r
- }\r
- \r
- // Check Colour\r
- for(fg=0;fg<8;fg++)\r
- if(strcmp(cCOLOUR_NAMES[fg], argv[1]) == 0)\r
- break;\r
-\r
- // Foreground a valid colour\r
- if(fg == 8) {\r
- Print("Unknown Colour '");Print(argv[1]);Print("'\n");\r
- goto usage;\r
- }\r
- // Set Foreground\r
- clrStr[3] = '0' + fg;\r
- write(_stdout, 6, clrStr);\r
- \r
- // Need to Set Background?\r
- if(argc > 2)\r
- {\r
- for(bg=0;bg<8;bg++)\r
- if(strcmp(cCOLOUR_NAMES[bg], argv[2]) == 0)\r
- break;\r
- \r
- // Valid colour\r
- if(bg == 8)\r
- {\r
- Print("Unknown Colour '");Print(argv[2]);Print("'\n");\r
- goto usage;\r
- }\r
- \r
- clrStr[2] = '4';\r
- clrStr[3] = '0' + bg;\r
- write(_stdout, 6, clrStr);\r
- }\r
- // Return\r
- return;\r
-\r
- // Function Usage (Requested via a Goto (I know it's ugly))\r
-usage:\r
- Print("Usage: colour <foreground> [<background>]\n");\r
- Print("Valid Colours are ");\r
- for(fg=0;fg<8;fg++)\r
- {\r
- Print(cCOLOUR_NAMES[fg]);\r
- write(_stdout, 3, ", ");\r
- }\r
- write(_stdout, 4, "\b\b\n");\r
- return;\r