mirror of
https://github.com/cc65/cc65.git
synced 2026-01-26 13:16:42 +00:00
Move the code to parse color strings into the CP_Parse() function and use it.
This commit is contained in:
@@ -504,14 +504,11 @@ static void OptBinIncludeDir (const char* Opt attribute ((unused)), const char*
|
||||
static void OptColor(const char* Opt, const char* Arg)
|
||||
/* Handle the --color option */
|
||||
{
|
||||
if (strcmp (Arg, "off") == 0 || strcmp (Arg, "false") == 0) {
|
||||
CP_SetColorMode (CM_OFF);
|
||||
} else if (strcmp (Arg, "auto") == 0) {
|
||||
CP_SetColorMode (CM_AUTO);
|
||||
} else if (strcmp (Arg, "on") == 0 || strcmp (Arg, "true") == 0) {
|
||||
CP_SetColorMode (CM_ON);
|
||||
} else {
|
||||
ColorMode Mode = CP_Parse (Arg);
|
||||
if (Mode == CM_INVALID) {
|
||||
AbEnd ("Invalid argument to %s: %s", Opt, Arg);
|
||||
} else {
|
||||
CP_SetColorMode (Mode);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#if !defined(_WIN32)
|
||||
# include <unistd.h>
|
||||
#else
|
||||
@@ -153,6 +154,23 @@ void CP_Init (void)
|
||||
|
||||
|
||||
|
||||
ColorMode CP_Parse (const char* Mode)
|
||||
/* Parse the given string which is assumed to be one of the color modes.
|
||||
* Return the matching enum or CM_INVALID if there was no match.
|
||||
*/
|
||||
{
|
||||
if (strcmp (Mode, "off") == 0 || strcmp (Mode, "false") == 0) {
|
||||
return CM_OFF;
|
||||
} else if (strcmp (Mode, "auto") == 0) {
|
||||
return CM_AUTO;
|
||||
} else if (strcmp (Mode, "on") == 0 || strcmp (Mode, "true") == 0) {
|
||||
return CM_ON;
|
||||
} else {
|
||||
return CM_INVALID;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int CP_IsTTY (void)
|
||||
/* Return true if console output goes to a tty */
|
||||
{
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
|
||||
/* Color mode for the program */
|
||||
enum ColorMode { CM_OFF, CM_AUTO, CM_ON };
|
||||
enum ColorMode { CM_INVALID = -1, CM_OFF, CM_AUTO, CM_ON };
|
||||
typedef enum ColorMode ColorMode;
|
||||
|
||||
/* Colors */
|
||||
@@ -96,6 +96,11 @@ void CP_Init (void);
|
||||
** data from this module.
|
||||
**/
|
||||
|
||||
ColorMode CP_Parse (const char* Mode);
|
||||
/* Parse the given string which is assumed to be one of the color modes.
|
||||
** Return the matching enum or CM_INVALID if there was no match.
|
||||
*/
|
||||
|
||||
int CP_IsTTY (void);
|
||||
/* Return true if console output goes to a tty */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user