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

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