[vte] lib: Use an enum for the SGR codes



commit a7c9e797fecf9ea1bbad1c076564ca6ea13c4572
Author: Christian Persch <chpe src gnome org>
Date:   Tue Mar 27 19:40:13 2018 +0200

    lib: Use an enum for the SGR codes

 src/vteinternal.hh |   41 ++++++++++++++++++++++++++++++++
 src/vteseq.cc      |   66 ++++++++++++++++++++++++++--------------------------
 2 files changed, 74 insertions(+), 33 deletions(-)
---
diff --git a/src/vteinternal.hh b/src/vteinternal.hh
index 4b0f77f..98f3fda 100644
--- a/src/vteinternal.hh
+++ b/src/vteinternal.hh
@@ -75,6 +75,47 @@ enum {
         VTE_XTERM_WM_TITLE_STACK_POP = 23,
 };
 
+enum {
+        VTE_SGR_SET_BOLD                     =   1,
+        VTE_SGR_SET_DIM                      =   2,
+        VTE_SGR_SET_ITALIC                   =   3,
+        VTE_SGR_SET_UNDERLINE                =   4,
+        VTE_SGR_SET_BLINK                    =   5,
+        VTE_SGR_SET_REVERSE                  =   7,
+        VTE_SGR_SET_INVISIBLE                =   8,
+        VTE_SGR_SET_STRIKETHROUGH            =   9,
+        VTE_SGR_SET_UNDERLINE_DOUBLE         =  21,
+        VTE_SGR_SET_FORE_LEGACY_START        =  30,
+        VTE_SGR_SET_FORE_LEGACY_END          =  37,
+        VTE_SGR_SET_FORE_SPEC                =  38,
+        VTE_SGR_SET_BACK_LEGACY_START        =  40,
+        VTE_SGR_SET_BACK_LEGACY_END          =  47,
+        VTE_SGR_SET_BACK_SPEC                =  48,
+        VTE_SGR_SET_OVERLINE                 =  53,
+        VTE_SGR_SET_DECO_SPEC                =  58,
+        VTE_SGR_SET_FORE_LEGACY_BRIGHT_START =  90,
+        VTE_SGR_SET_FORE_LEGACY_BRIGHT_END   =  97,
+        VTE_SGR_SET_BACK_LEGACY_BRIGHT_START = 100,
+        VTE_SGR_SET_BACK_LEGACY_BRIGHT_END   = 107,
+        VTE_SGR_RESET_ALL                    =   0,
+        VTE_SGR_RESET_BOLD_AND_DIM           =  22,
+        VTE_SGR_RESET_ITALIC                 =  23,
+        VTE_SGR_RESET_UNDERLINE              =  24,
+        VTE_SGR_RESET_BLINK                  =  25,
+        VTE_SGR_RESET_REVERSE                =  27,
+        VTE_SGR_RESET_INVISIBLE              =  28,
+        VTE_SGR_RESET_STRIKETHROUGH          =  29,
+        VTE_SGR_RESET_FORE                   =  39,
+        VTE_SGR_RESET_BACK                   =  49,
+        VTE_SGR_RESET_OVERLINE               =  55,
+        VTE_SGR_RESET_DECO                   =  59,
+};
+
+enum {
+        VTE_SGR_COLOR_SPEC_RGB    = 2,
+        VTE_SGR_COLOR_SPEC_LEGACY = 5
+};
+
 struct vte_regex_and_flags {
         VteRegex *regex;
         guint32 match_flags;
diff --git a/src/vteseq.cc b/src/vteseq.cc
index ba30243..22cca8c 100644
--- a/src/vteseq.cc
+++ b/src/vteseq.cc
@@ -1128,7 +1128,7 @@ VteTerminalPrivate::seq_parse_sgr_color(vte::parser::Sequence const& seq,
         if (seq.param_nonfinal(idx)) {
                 /* Colon version */
                 switch (seq.param(++idx)) {
-                case 2: {
+                case VTE_SGR_COLOR_SPEC_RGB: {
                         auto const n = seq.next(idx) - idx;
                         if (n < 4)
                                 return false;
@@ -1149,7 +1149,7 @@ VteTerminalPrivate::seq_parse_sgr_color(vte::parser::Sequence const& seq,
                         color = VTE_RGB_COLOR(redbits, greenbits, bluebits, red, green, blue);
                         return true;
                 }
-                case 5: {
+                case VTE_SGR_COLOR_SPEC_LEGACY: {
                         auto const n = seq.next(idx) - idx;
                         if (n < 2)
                                 return false;
@@ -1167,7 +1167,7 @@ VteTerminalPrivate::seq_parse_sgr_color(vte::parser::Sequence const& seq,
 
                 idx = seq.next(idx);
                 switch (seq.param(idx)) {
-                case 2: {
+                case VTE_SGR_COLOR_SPEC_RGB: {
                         /* Consume 3 more parameters */
                         idx = seq.next(idx);
                         int red = seq.param(idx);
@@ -1184,7 +1184,7 @@ VteTerminalPrivate::seq_parse_sgr_color(vte::parser::Sequence const& seq,
                         color = VTE_RGB_COLOR(redbits, greenbits, bluebits, red, green, blue);
                         return true;
                 }
-                case 5: {
+                case VTE_SGR_COLOR_SPEC_LEGACY: {
                         /* Consume 1 more parameter */
                         idx = seq.next(idx);
                         int v = seq.param(idx);
@@ -4965,19 +4965,19 @@ VteTerminalPrivate::SGR(vte::parser::Sequence const& seq)
                 auto const param = seq.param(i);
                 switch (param) {
                 case -1:
-                case 0:
+                case VTE_SGR_RESET_ALL:
                         reset_default_attributes(false);
                         break;
-                case 1:
+                case VTE_SGR_SET_BOLD:
                         m_defaults.attr.set_bold(true);
                         break;
-                case 2:
+                case VTE_SGR_SET_DIM:
                         m_defaults.attr.set_dim(true);
                         break;
-                case 3:
+                case VTE_SGR_SET_ITALIC:
                         m_defaults.attr.set_italic(true);
                         break;
-                case 4: {
+                case VTE_SGR_SET_UNDERLINE: {
                         unsigned int v = 1;
                         /* If we have a subparameter, get it */
                         if (seq.param_nonfinal(i)) {
@@ -4986,89 +4986,89 @@ VteTerminalPrivate::SGR(vte::parser::Sequence const& seq)
                         m_defaults.attr.set_underline(v);
                         break;
                 }
-                case 5:
+                case VTE_SGR_SET_BLINK:
                         m_defaults.attr.set_blink(true);
                         break;
-                case 7:
+                case VTE_SGR_SET_REVERSE:
                         m_defaults.attr.set_reverse(true);
                         break;
-                case 8:
+                case VTE_SGR_SET_INVISIBLE:
                         m_defaults.attr.set_invisible(true);
                         break;
-                case 9:
+                case VTE_SGR_SET_STRIKETHROUGH:
                         m_defaults.attr.set_strikethrough(true);
                         break;
-                case 21:
+                case VTE_SGR_SET_UNDERLINE_DOUBLE:
                         m_defaults.attr.set_underline(2);
                         break;
-                case 22: /* ECMA 48. */
+                case VTE_SGR_RESET_BOLD_AND_DIM:
                         m_defaults.attr.unset(VTE_ATTR_BOLD_MASK | VTE_ATTR_DIM_MASK);
                         break;
-                case 23:
+                case VTE_SGR_RESET_ITALIC:
                         m_defaults.attr.set_italic(false);
                         break;
-                case 24:
+                case VTE_SGR_RESET_UNDERLINE:
                         m_defaults.attr.set_underline(0);
                         break;
-                case 25:
+                case VTE_SGR_RESET_BLINK:
                         m_defaults.attr.set_blink(false);
                         break;
-                case 27:
+                case VTE_SGR_RESET_REVERSE:
                         m_defaults.attr.set_reverse(false);
                         break;
-                case 28:
+                case VTE_SGR_RESET_INVISIBLE:
                         m_defaults.attr.set_invisible(false);
                         break;
-                case 29:
+                case VTE_SGR_RESET_STRIKETHROUGH:
                         m_defaults.attr.set_strikethrough(false);
                         break;
-                case 30 ... 37:
+                case VTE_SGR_SET_FORE_LEGACY_START ... VTE_SGR_SET_FORE_LEGACY_END:
                         m_defaults.attr.set_fore(VTE_LEGACY_COLORS_OFFSET + (param - 30));
                         break;
-                case 38: {
+                case VTE_SGR_SET_FORE_SPEC: {
                         uint32_t fore;
                         if (G_LIKELY((seq_parse_sgr_color<8, 8, 8>(seq, i, fore))))
                                 m_defaults.attr.set_fore(fore);
                         break;
                 }
-                case 39:
+                case VTE_SGR_RESET_FORE:
                         /* default foreground */
                         m_defaults.attr.set_fore(VTE_DEFAULT_FG);
                         break;
-                case 40 ... 47:
+                case VTE_SGR_SET_BACK_LEGACY_START ... VTE_SGR_SET_BACK_LEGACY_END:
                         m_defaults.attr.set_back(VTE_LEGACY_COLORS_OFFSET + (param - 40));
                         break;
-                case 48: {
+                case VTE_SGR_SET_BACK_SPEC: {
                         uint32_t back;
                         if (G_LIKELY((seq_parse_sgr_color<8, 8, 8>(seq, i, back))))
                                 m_defaults.attr.set_back(back);
                         break;
                 }
-                case 49:
+                case VTE_SGR_RESET_BACK:
                         /* default background */
                         m_defaults.attr.set_back(VTE_DEFAULT_BG);
                         break;
-                case 53:
+                case VTE_SGR_SET_OVERLINE:
                         m_defaults.attr.set_overline(true);
                         break;
-                case 55:
+                case VTE_SGR_RESET_OVERLINE:
                         m_defaults.attr.set_overline(false);
                         break;
-                case 58: {
+                case VTE_SGR_SET_DECO_SPEC: {
                         uint32_t deco;
                         if (G_LIKELY((seq_parse_sgr_color<4, 5, 4>(seq, i, deco))))
                                 m_defaults.attr.set_deco(deco);
                         break;
                 }
-                case 59:
+                case VTE_SGR_RESET_DECO:
                         /* default decoration color, that is, same as the cell's foreground */
                         m_defaults.attr.set_deco(VTE_DEFAULT_FG);
                         break;
-                case 90 ... 97:
+                case VTE_SGR_SET_FORE_LEGACY_BRIGHT_START ... VTE_SGR_SET_FORE_LEGACY_BRIGHT_END:
                         m_defaults.attr.set_fore(VTE_LEGACY_COLORS_OFFSET + (param - 90) +
                                                  VTE_COLOR_BRIGHT_OFFSET);
                         break;
-                case 100 ... 107:
+                case VTE_SGR_SET_BACK_LEGACY_BRIGHT_START ... VTE_SGR_SET_BACK_LEGACY_BRIGHT_END:
                         m_defaults.attr.set_back(VTE_LEGACY_COLORS_OFFSET + (param - 100) +
                                                  VTE_COLOR_BRIGHT_OFFSET);
                         break;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]