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)
|
static void OptColor(const char* Opt, const char* Arg)
|
||||||
/* Handle the --color option */
|
/* Handle the --color option */
|
||||||
{
|
{
|
||||||
if (strcmp (Arg, "off") == 0 || strcmp (Arg, "false") == 0) {
|
ColorMode Mode = CP_Parse (Arg);
|
||||||
CP_SetColorMode (CM_OFF);
|
if (Mode == CM_INVALID) {
|
||||||
} 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 {
|
|
||||||
AbEnd ("Invalid argument to %s: %s", Opt, Arg);
|
AbEnd ("Invalid argument to %s: %s", Opt, Arg);
|
||||||
|
} else {
|
||||||
|
CP_SetColorMode (Mode);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#if !defined(_WIN32)
|
#if !defined(_WIN32)
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
#else
|
#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)
|
int CP_IsTTY (void)
|
||||||
/* Return true if console output goes to a tty */
|
/* Return true if console output goes to a tty */
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -48,7 +48,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Color mode for the program */
|
/* 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;
|
typedef enum ColorMode ColorMode;
|
||||||
|
|
||||||
/* Colors */
|
/* Colors */
|
||||||
@@ -96,6 +96,11 @@ void CP_Init (void);
|
|||||||
** data from this module.
|
** 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);
|
int CP_IsTTY (void);
|
||||||
/* Return true if console output goes to a tty */
|
/* Return true if console output goes to a tty */
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user