#include const char *Adjust_Name[] = { [AUTOADJUST] = "Auto", [LEFT] = "left", [RIGHT] = "right", [CENTER] = "center" }; const char Adjust_Char[] = "alrc"; const char *FloatFormat_Name[] = { [FLT_NO_FORMAT] = "NO_FORMAT", [FLT_DECIMAL] = "decimal", [FLT_SCIENTIFIC] = "scientific", [FLT_COMPACT] = "compact", [FLT_HEXACT] = "hexact" }; const char FloatFormat_Char[] = "Ndsch"; const char *ColorAspect_Name[] = { [FOREGROUND] = "foreground", [BACKGROUND] = "background" }; const ColorNum DefaultCN[] = { [FOREGROUND] = 0, [BACKGROUND] = 16, [NUM_COLOR_ASPECTS] = 255 }; /* clearstyle -- zero out a style */ void clearstyle(Style* s) { s->precision = NO_PRECISION; for (ColorAspect ca = FOREGROUND; ca < NUM_COLOR_ASPECTS; ++ca) s->aspect[ca] = NO_COLOR_SET; s->adjust = AUTOADJUST; s->fform = FLT_NO_FORMAT; s->shadowed = false; s->shadowed_set = false; s->transparent = false; s->transparent_set = false; s->dim = false; s->dim_set = false; s->bold = false; s->bold_set = false; s->italic = false; s->italic_set = false; s->underline = false; s->underline_set = false; } /* style_equal -- return true if styles are equal */ bool style_equal(Style l, Style r) { if (l.precision != r.precision) return false; for (ColorAspect ca = FOREGROUND; ca < NUM_COLOR_ASPECTS; ++ca) if (l.aspect[ca] != r.aspect[ca]) return false; if (l.adjust != r.adjust) return false; if (l.fform != r.fform) return false; if (l.shadowed_set != r.shadowed_set) return false; if (l.shadowed_set && (l.shadowed != r.shadowed)) return false; if (l.transparent_set != r.transparent_set) return false; if (l.transparent_set && (l.transparent != r.transparent)) return false; if (l.dim_set != r.dim_set) return false; if (l.dim_set && (l.dim != r.dim)) return false; if (l.bold_set != r.bold_set) return false; if (l.bold_set && (l.bold != r.bold)) return false; if (l.italic_set != r.italic_set) return false; if (l.italic_set && (l.italic != r.italic)) return false; if (l.underline_set != r.underline_set) return false; if (l.underline_set && (l.underline != r.underline)) return false; return true; }