nano-devel
[Top][All Lists]
Advanced

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

[PATCH 1/4] rcfile: accept prefix "lit" to make a color brighter without


From: Benno Schulenberg
Subject: [PATCH 1/4] rcfile: accept prefix "lit" to make a color brighter without bolding it
Date: Thu, 11 Jun 2020 20:02:49 +0200

The prefix "bright" will continue to make the color brighter AND make
the typeface bold (if the terminal can do that), but the prefix "lit"
will just make the color brighter (if the terminal can do that).

Prefix "bright" continues to do the same as what it did before, to
not change the appearance of user-defined syntaxes.  And having an
option to change the meaning of "bright"... would be confusing.

The word "lit" was chosen because it is nice and short, sounds better
than "rich" or "hard" or "hot", and gives a reasonable indication that
the affected color is lighter/shinier than the base color.

This partially fulfills https://savannah.gnu.org/bugs/?58503.
---
 src/rcfile.c         | 28 ++++++++++++++++++----------
 syntax/nanorc.nanorc |  4 ++--
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/src/rcfile.c b/src/rcfile.c
index 248c5763..5df2c542 100644
--- a/src/rcfile.c
+++ b/src/rcfile.c
@@ -982,13 +982,20 @@ void parse_includes(char *ptr)
 
 /* Return the short value corresponding to the color named in colorname,
  * and set bright to TRUE if that color is bright. */
-short color_to_short(const char *colorname, bool *bright)
+short color_to_short(const char *colorname, bool *vivid, bool *thick)
 {
        if (strncmp(colorname, "bright", 6) == 0) {
-               *bright = TRUE;
+               *vivid = TRUE;
+               *thick = TRUE;
                colorname += 6;
-       } else
-               *bright = FALSE;
+       } else if (strncmp(colorname, "lit", 3) == 0) {
+               *vivid = TRUE;
+               *thick = FALSE;
+               colorname += 3;
+       } else {
+               *vivid = FALSE;
+               *thick = FALSE;
+       }
 
        if (strcmp(colorname, "green") == 0)
                return COLOR_GREEN;
@@ -1018,13 +1025,13 @@ short color_to_short(const char *colorname, bool 
*bright)
 bool parse_combination(char *combostr, short *fg, short *bg, int *attributes)
 {
        char *comma = strchr(combostr, ',');
-       bool bright;
+       bool vivid, thick;
 
        *attributes = A_NORMAL;
 
        if (comma != NULL) {
-               *bg = color_to_short(comma + 1, &bright);
-               if (bright) {
+               *bg = color_to_short(comma + 1, &vivid, &thick);
+               if (vivid) {
                        jot_error(N_("A background color cannot be bright"));
                        return FALSE;
                }
@@ -1035,11 +1042,12 @@ bool parse_combination(char *combostr, short *fg, short 
*bg, int *attributes)
                *bg = USE_THE_DEFAULT;
 
        if (comma != combostr) {
-               *fg = color_to_short(combostr, &bright);
+               *fg = color_to_short(combostr, &vivid, &thick);
                if (*fg == BAD_COLOR)
                        return FALSE;
-
-               if (bright)
+               if (vivid && !thick && COLORS > 8)
+                       *fg += 8;
+               else if (vivid)
                        *attributes = A_BOLD;
        } else
                *fg = USE_THE_DEFAULT;
diff --git a/syntax/nanorc.nanorc b/syntax/nanorc.nanorc
index b6482540..0b489b4d 100644
--- a/syntax/nanorc.nanorc
+++ b/syntax/nanorc.nanorc
@@ -8,7 +8,7 @@ color brightred ".*"
 
 # Keywords
 color brightgreen 
"^[[:space:]]*(set|unset)[[:space:]]+(afterends|allow_insecure_backup|atblanks|autoindent|backup|backwards|boldtext|breaklonglines|casesensitive|constantshow|cutfromcursor|emptyline|finalnewline|historylog|indicator|jumpyscrolling|linenumbers|locking|morespace|mouse|multibuffer|noconvert|nohelp|nopauses|nonewlines|nowrap|positionlog|preserve|quickblank|quiet|rawsequences|rebinddelete|regexp|saveonexit|showcursor|smarthome|smooth|softwrap|suspendable|tabstospaces|trimblanks|unix|view|wordbounds|zap)\>"
-color yellow 
"^[[:space:]]*set[[:space:]]+((error|function|key|number|selected|status|stripe|title)color)[[:space:]]+(bright)?(white|black|red|blue|green|yellow|magenta|cyan|normal)?(,(white|black|red|blue|green|yellow|magenta|cyan|normal))?\>"
+color yellow 
"^[[:space:]]*set[[:space:]]+((error|function|key|number|selected|status|stripe|title)color)[[:space:]]+(bright|lit)?(white|black|red|blue|green|yellow|magenta|cyan|normal)?(,(white|black|red|blue|green|yellow|magenta|cyan|normal))?\>"
 color brightgreen 
"^[[:space:]]*set[[:space:]]+(backupdir|brackets|errorcolor|functioncolor|keycolor|matchbrackets|numbercolor|operatingdir|punct|quotestr|selectedcolor|speller|statuscolor|stripecolor|titlecolor|whitespace|wordchars)[[:space:]]+"
 color brightgreen 
"^[[:space:]]*set[[:space:]]+(fill[[:space:]]+-?[[:digit:]]+|(guidestripe|tabsize)[[:space:]]+[1-9][0-9]*)\>"
 color brightgreen 
"^[[:space:]]*bind[[:space:]]+((\^([A-Za-z]|[]/@\^_`]|Space)|([Ss][Hh]-)?[Mm]-[A-Za-z]|[Mm]-([]!"#$%&'()*+,./0-9:;<=>?@\^_`{|}~-]|Space))|F([1-9]|1[0-9]|2[0-4])|Ins|Del)[[:space:]]+([a-z]+|".*")[[:space:]]+(main|help|search|replace(with)?|yesno|gotoline|writeout|insert|browser|whereisfile|gotodir|execute|spell|linter|all)([[:space:]]+#|[[:space:]]*$)"
@@ -21,7 +21,7 @@ color green 
"^[[:space:]]*((un)?(bind|set)|include|syntax|header|magic|comment|f
 color brightmagenta "([[:space:]]|(start|end)=)".+"([[:space:]]|$)"
 
 # Colors
-color yellow 
"^[[:space:]]*i?color[[:space:]]*(bright)?(white|black|red|blue|green|yellow|magenta|cyan|normal)?(,(white|black|red|blue|green|yellow|magenta|cyan|normal))?\>"
+color yellow 
"^[[:space:]]*i?color[[:space:]]*(bright|lit)?(white|black|red|blue|green|yellow|magenta|cyan|normal)?(,(white|black|red|blue|green|yellow|magenta|cyan|normal))?\>"
 color magenta "^[[:space:]]*i?color\>" "\<(start|end)="
 
 # Comments
-- 
2.25.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]