]> granicus.if.org Git - nethack/commitdiff
Make status hilites use same color string matching as menucolors
authorPasi Kallinen <paxed@alt.org>
Wed, 13 Jan 2016 18:24:40 +0000 (20:24 +0200)
committerPasi Kallinen <paxed@alt.org>
Wed, 13 Jan 2016 18:27:21 +0000 (20:27 +0200)
doc/fixes36.1
include/extern.h
src/botl.c
src/options.c

index eb93efc7335cd8ba36d746b34b2f11daf932df9e..4f2e0807f4f5aec98091d2c1ebe7e26666f5ee60 100644 (file)
@@ -111,6 +111,7 @@ do allow globs with same curse/bless state to merge even when that state is
 fix pile mark after killing a monster carrying a potion which is destroyed
 only list known blank scrolls and known blank spellbooks as likely candidates
        when choosing an item to write on for applied magic marker
+make status hilites use same color names as menucolors
 
 
 Platform- and/or Interface-Specific Fixes
index f45ca4b303a90d3f18c4f5c53a9333a00e1742ae..d0789f2057ba312a06c324c3fd6e13964417f508 100644 (file)
@@ -1659,6 +1659,7 @@ E struct symparse *FDECL(match_sym, (char *));
 E void NDECL(set_playmode);
 E int FDECL(sym_val, (char *));
 E const char *FDECL(clr2colorname, (int));
+E int FDECL(match_str2clr, (char *));
 E boolean FDECL(add_menu_coloring, (char *));
 E boolean FDECL(get_menu_coloring, (char *, int *, int *));
 E void NDECL(free_menu_coloring);
index 261686a8745d014c02ddf0008cb0835b827cdf2e..29aaf383945db0cf32cf28d86ac810a0a2fffe33 100644 (file)
@@ -1214,21 +1214,10 @@ boolean from_configfile;
         } else if (strcmpi(how, "normal") == 0) {
             normal[i] = TRUE;
         } else {
-            int k;
-            char colorname[BUFSZ];
-            for (k = 0; k < CLR_MAX; ++k) {
-                /* we have to make a copy to change space to dash */
-                (void) strcpy(colorname, c_obj_colors[k]);
-                for (tmp = index(colorname, ' '); tmp;
-                     tmp = index(colorname, ' '))
-                    *tmp = '-';
-                if (strcmpi(how, colorname) == 0) {
-                    coloridx[i] = k;
-                    break;
-                }
-            }
+            int k = match_str2clr(how);
             if (k >= CLR_MAX)
                 return FALSE;
+            coloridx[i] = k;
         }
     }
 
index 7d6ddc357a3a140705dd74b902c6070d3d7a6133..d1869576f1df3323a29c0b9f927457fddf8ecd23 100644 (file)
@@ -1274,6 +1274,26 @@ int clr;
     return (char *) 0;
 }
 
+int
+match_str2clr(str)
+char *str;
+{
+    int i, c = NO_COLOR;
+
+    /* allow "lightblue", "light blue", and "light-blue" to match "light blue"
+       (also junk like "_l i-gh_t---b l u e" but we won't worry about that);
+       also copes with trailing space; mungspaces removed any leading space */
+    for (i = 0; i < SIZE(colornames); i++)
+        if (colornames[i].name
+            && fuzzymatch(str, colornames[i].name, " -_", TRUE)) {
+            c = colornames[i].color;
+            break;
+        }
+    if (i == SIZE(colornames) && (*str >= '0' && *str <= '9'))
+        c = atoi(str);
+    return c;
+}
+
 const char *
 attr2attrname(attr)
 int attr;
@@ -1563,19 +1583,8 @@ char *str;
     if ((amp = index(tmps, '&')) != 0)
         *amp = '\0';
 
-    /* allow "lightblue", "light blue", and "light-blue" to match "light blue"
-       (also junk like "_l i-gh_t---b l u e" but we won't worry about that);
-       also copes with trailing space; mungspaces removed any leading space */
-    for (i = 0; i < SIZE(colornames); i++)
-        if (colornames[i].name
-            && fuzzymatch(tmps, colornames[i].name, " -_", TRUE)) {
-            c = colornames[i].color;
-            break;
-        }
-    if (i == SIZE(colornames) && (*tmps >= '0' && *tmps <= '9'))
-        c = atoi(tmps);
-
-    if (c > 15)
+    c = match_str2clr(tmps);
+    if (c >= CLR_MAX)
         return FALSE;
 
     if (amp) {