1
0
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:
Kugel Fuhr
2025-07-08 20:45:23 +02:00
parent faecedb514
commit da0e3907ec
3 changed files with 28 additions and 8 deletions

View File

@@ -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);
}
}

View File

@@ -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 */
{

View File

@@ -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 */