changeset 45716:4dd143567eea

(color-name-rgb-alist): Use 16-bit RGB values instead of 8-bit, for consistency with the rest of emacs. (tty-color-canonicalize): Only copy COLOR if we need to change it. (tty-color-approximate): Scale values from `color-name-rgb-alist' appropriately. Return the whole color description, rather than just the RGB values. (tty-color-standard-values): New function. Code mostly taken from `tty-color-translate'. (tty-color-translate, tty-color-values): Use `tty-color-desc' to do all the work. (tty-color-desc): Do color lookup here instead of calling `tty-color-translate' and `tty-color-by-index'; this is now the main place to do it.
author Miles Bader <miles@gnu.org>
date Sun, 09 Jun 2002 12:53:53 +0000
parents 9f0d0f0a1a7e
children 778b745792dd
files lisp/term/tty-colors.el
diffstat 1 files changed, 760 insertions(+), 756 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/term/tty-colors.el	Sun Jun 09 02:27:43 2002 +0000
+++ b/lisp/term/tty-colors.el	Sun Jun 09 12:53:53 2002 +0000
@@ -1,6 +1,6 @@
 ;;; tty-colors.el --- color support for character terminals
 
-;; Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii <eliz@is.elta.co.il>
 ;; Maintainer: FSF
@@ -80,665 +80,670 @@
 ;; names such as "lightred" or "lightblue", because they will have
 ;; different effect on different displays.  Instead, use "red1" and
 ;; "blue1", respectively.
+;;
+;; Note: the RGB values below are in the range 0-65535, but are derived
+;; from the standard 8-bit X definitions (so the upper and lower bytes
+;; of each value are actually identical).
+;;
 (defvar color-name-rgb-alist
-  '(("snow"		255 250 250)
-    ("ghostwhite"	248 248 255)
-    ("whitesmoke"	245 245 245)
-    ("gainsboro"	220 220 220)
-    ("floralwhite"	255 250 240)
-    ("oldlace"		253 245 230)
-    ("linen"		250 240 230)
-    ("antiquewhite"	250 235 215)
-    ("papayawhip"	255 239 213)
-    ("blanchedalmond"	255 235 205)
-    ("bisque"		255 228 196)
-    ("peachpuff"	255 218 185)
-    ("navajowhite"	255 222 173)
-    ("moccasin"		255 228 181)
-    ("cornsilk"		255 248 220)
-    ("ivory"		255 255 240)
-    ("lemonchiffon"	255 250 205)
-    ("seashell"		255 245 238)
-    ("honeydew"		240 255 240)
-    ("mintcream"	245 255 250)
-    ("azure"		240 255 255)
-    ("aliceblue"	240 248 255)
-    ("lavender"		230 230 250)
-    ("lavenderblush"	255 240 245)
-    ("mistyrose"	255 228 225)
-    ("white"		255 255 255)
-    ("black"		0 0 0)
-    ("darkslategray"	47 79 79)
-    ("darkslategrey"	47 79 79)
-    ("dimgray"		105 105 105)
-    ("dimgrey"		105 105 105)
-    ("slategray"	112 128 144)
-    ("slategrey"	112 128 144)
-    ("lightslategray"	119 136 153)
-    ("lightslategrey"	119 136 153)
-    ("gray"		190 190 190)
-    ("grey"		190 190 190)
-    ("lightgrey"	211 211 211)
-    ("lightgray"	211 211 211)
-    ("midnightblue"	25 25 112)
-    ("navy"		0 0 128)
-    ("navyblue"		0 0 128)
-    ("cornflowerblue"	100 149 237)
-    ("darkslateblue"	72 61 139)
-    ("slateblue"	106 90 205)
-    ("mediumslateblue"	123 104 238)
-    ("lightslateblue"	132 112 255)
-    ("mediumblue"	0 0 205)
-    ("royalblue"	65 105 225)
-    ("blue"		0 0 255)
-    ("dodgerblue"	30 144 255)
-    ("deepskyblue"	0 191 255)
-    ("skyblue"		135 206 235)
-    ("lightskyblue"	135 206 250)
-    ("steelblue"	70 130 180)
-    ("lightsteelblue"	176 196 222)
-    ("lightblue"	173 216 230)
-    ("powderblue"	176 224 230)
-    ("paleturquoise"	175 238 238)
-    ("darkturquoise"	0 206 209)
-    ("mediumturquoise"	72 209 204)
-    ("turquoise"	64 224 208)
-    ("cyan"		0 255 255)
-    ("lightcyan"	224 255 255)
-    ("cadetblue"	95 158 160)
-    ("mediumaquamarine"	102 205 170)
-    ("aquamarine"	127 255 212)
-    ("darkgreen"	0 100 0)
-    ("darkolivegreen"	85 107 47)
-    ("darkseagreen"	143 188 143)
-    ("seagreen"		46 139 87)
-    ("mediumseagreen"	60 179 113)
-    ("lightseagreen"	32 178 170)
-    ("palegreen"	152 251 152)
-    ("springgreen"	0 255 127)
-    ("lawngreen"	124 252 0)
-    ("green"		0 255 0)
-    ("chartreuse"	127 255 0)
-    ("mediumspringgreen"	0 250 154)
-    ("greenyellow"	173 255 47)
-    ("limegreen"	50 205 50)
-    ("yellowgreen"	154 205 50)
-    ("forestgreen"	34 139 34)
-    ("olivedrab"	107 142 35)
-    ("darkkhaki"	189 183 107)
-    ("khaki"		240 230 140)
-    ("palegoldenrod"	238 232 170)
-    ("lightgoldenrodyellow"	250 250 210)
-    ("lightyellow"	255 255 224)
-    ("yellow"		255 255 0)
-    ("gold"		255 215 0)
-    ("lightgoldenrod"	238 221 130)
-    ("goldenrod"	218 165 32)
-    ("darkgoldenrod"	184 134 11)
-    ("rosybrown"	188 143 143)
-    ("indianred"	205 92 92)
-    ("saddlebrown"	139 69 19)
-    ("sienna"		160 82 45)
-    ("peru"		205 133 63)
-    ("burlywood"	222 184 135)
-    ("beige"		245 245 220)
-    ("wheat"		245 222 179)
-    ("sandybrown"	244 164 96)
-    ("tan"		210 180 140)
-    ("chocolate"	210 105 30)
-    ("firebrick"	178 34 34)
-    ("brown"		165 42 42)
-    ("darksalmon"	233 150 122)
-    ("salmon"		250 128 114)
-    ("lightsalmon"	255 160 122)
-    ("orange"		255 165 0)
-    ("darkorange"	255 140 0)
-    ("coral"		255 127 80)
-    ("lightcoral"	240 128 128)
-    ("tomato"		255 99 71)
-    ("orangered"	255 69 0)
-    ("red"		255 0 0)
-    ("hotpink"		255 105 180)
-    ("deeppink"		255 20 147)
-    ("pink"		255 192 203)
-    ("lightpink"	255 182 193)
-    ("palevioletred"	219 112 147)
-    ("maroon"		176 48 96)
-    ("mediumvioletred"	199 21 133)
-    ("violetred"	208 32 144)
-    ("magenta"		255 0 255)
-    ("violet"		238 130 238)
-    ("plum"		221 160 221)
-    ("orchid"		218 112 214)
-    ("mediumorchid"	186 85 211)
-    ("darkorchid"	153 50 204)
-    ("darkviolet"	148 0 211)
-    ("blueviolet"	138 43 226)
-    ("purple"		160 32 240)
-    ("mediumpurple"	147 112 219)
-    ("thistle"		216 191 216)
-    ("snow1"		255 250 250)
-    ("snow2"		238 233 233)
-    ("snow3"		205 201 201)
-    ("snow4"		139 137 137)
-    ("seashell1"	255 245 238)
-    ("seashell2"	238 229 222)
-    ("seashell3"	205 197 191)
-    ("seashell4"	139 134 130)
-    ("antiquewhite1"	255 239 219)
-    ("antiquewhite2"	238 223 204)
-    ("antiquewhite3"	205 192 176)
-    ("antiquewhite4"	139 131 120)
-    ("bisque1"		255 228 196)
-    ("bisque2"		238 213 183)
-    ("bisque3"		205 183 158)
-    ("bisque4"		139 125 107)
-    ("peachpuff1"	255 218 185)
-    ("peachpuff2"	238 203 173)
-    ("peachpuff3"	205 175 149)
-    ("peachpuff4"	139 119 101)
-    ("navajowhite1"	255 222 173)
-    ("navajowhite2"	238 207 161)
-    ("navajowhite3"	205 179 139)
-    ("navajowhite4"	139 121 94)
-    ("lemonchiffon1"	255 250 205)
-    ("lemonchiffon2"	238 233 191)
-    ("lemonchiffon3"	205 201 165)
-    ("lemonchiffon4"	139 137 112)
-    ("cornsilk1"	255 248 220)
-    ("cornsilk2"	238 232 205)
-    ("cornsilk3"	205 200 177)
-    ("cornsilk4"	139 136 120)
-    ("ivory1"		255 255 240)
-    ("ivory2"		238 238 224)
-    ("ivory3"		205 205 193)
-    ("ivory4"		139 139 131)
-    ("honeydew1"	240 255 240)
-    ("honeydew2"	224 238 224)
-    ("honeydew3"	193 205 193)
-    ("honeydew4"	131 139 131)
-    ("lavenderblush1"	255 240 245)
-    ("lavenderblush2"	238 224 229)
-    ("lavenderblush3"	205 193 197)
-    ("lavenderblush4"	139 131 134)
-    ("mistyrose1"	255 228 225)
-    ("mistyrose2"	238 213 210)
-    ("mistyrose3"	205 183 181)
-    ("mistyrose4"	139 125 123)
-    ("azure1"		240 255 255)
-    ("azure2"		224 238 238)
-    ("azure3"		193 205 205)
-    ("azure4"		131 139 139)
-    ("slateblue1"	131 111 255)
-    ("slateblue2"	122 103 238)
-    ("slateblue3"	105 89 205)
-    ("slateblue4"	71 60 139)
-    ("royalblue1"	72 118 255)
-    ("royalblue2"	67 110 238)
-    ("royalblue3"	58 95 205)
-    ("royalblue4"	39 64 139)
-    ("blue1"		0 0 255)
-    ("blue2"		0 0 238)
-    ("blue3"		0 0 205)
-    ("blue4"		0 0 139)
-    ("dodgerblue1"	30 144 255)
-    ("dodgerblue2"	28 134 238)
-    ("dodgerblue3"	24 116 205)
-    ("dodgerblue4"	16 78 139)
-    ("steelblue1"	99 184 255)
-    ("steelblue2"	92 172 238)
-    ("steelblue3"	79 148 205)
-    ("steelblue4"	54 100 139)
-    ("deepskyblue1"	0 191 255)
-    ("deepskyblue2"	0 178 238)
-    ("deepskyblue3"	0 154 205)
-    ("deepskyblue4"	0 104 139)
-    ("skyblue1"		135 206 255)
-    ("skyblue2"		126 192 238)
-    ("skyblue3"		108 166 205)
-    ("skyblue4"		74 112 139)
-    ("lightskyblue1"	176 226 255)
-    ("lightskyblue2"	164 211 238)
-    ("lightskyblue3"	141 182 205)
-    ("lightskyblue4"	96 123 139)
-    ("slategray1"	198 226 255)
-    ("slategray2"	185 211 238)
-    ("slategray3"	159 182 205)
-    ("slategray4"	108 123 139)
-    ("lightsteelblue1"	202 225 255)
-    ("lightsteelblue2"	188 210 238)
-    ("lightsteelblue3"	162 181 205)
-    ("lightsteelblue4"	110 123 139)
-    ("lightblue1"	191 239 255)
-    ("lightblue2"	178 223 238)
-    ("lightblue3"	154 192 205)
-    ("lightblue4"	104 131 139)
-    ("lightcyan1"	224 255 255)
-    ("lightcyan2"	209 238 238)
-    ("lightcyan3"	180 205 205)
-    ("lightcyan4"	122 139 139)
-    ("paleturquoise1"	187 255 255)
-    ("paleturquoise2"	174 238 238)
-    ("paleturquoise3"	150 205 205)
-    ("paleturquoise4"	102 139 139)
-    ("cadetblue1"	152 245 255)
-    ("cadetblue2"	142 229 238)
-    ("cadetblue3"	122 197 205)
-    ("cadetblue4"	83 134 139)
-    ("turquoise1"	0 245 255)
-    ("turquoise2"	0 229 238)
-    ("turquoise3"	0 197 205)
-    ("turquoise4"	0 134 139)
-    ("cyan1"		0 255 255)
-    ("cyan2"		0 238 238)
-    ("cyan3"		0 205 205)
-    ("cyan4"		0 139 139)
-    ("darkslategray1"	151 255 255)
-    ("darkslategray2"	141 238 238)
-    ("darkslategray3"	121 205 205)
-    ("darkslategray4"	82 139 139)
-    ("aquamarine1"	127 255 212)
-    ("aquamarine2"	118 238 198)
-    ("aquamarine3"	102 205 170)
-    ("aquamarine4"	69 139 116)
-    ("darkseagreen1"	193 255 193)
-    ("darkseagreen2"	180 238 180)
-    ("darkseagreen3"	155 205 155)
-    ("darkseagreen4"	105 139 105)
-    ("seagreen1"	84 255 159)
-    ("seagreen2"	78 238 148)
-    ("seagreen3"	67 205 128)
-    ("seagreen4"	46 139 87)
-    ("palegreen1"	154 255 154)
-    ("palegreen2"	144 238 144)
-    ("palegreen3"	124 205 124)
-    ("palegreen4"	84 139 84)
-    ("springgreen1"	0 255 127)
-    ("springgreen2"	0 238 118)
-    ("springgreen3"	0 205 102)
-    ("springgreen4"	0 139 69)
-    ("green1"		0 255 0)
-    ("green2"		0 238 0)
-    ("green3"		0 205 0)
-    ("green4"		0 139 0)
-    ("chartreuse1"	127 255 0)
-    ("chartreuse2"	118 238 0)
-    ("chartreuse3"	102 205 0)
-    ("chartreuse4"	69 139 0)
-    ("olivedrab1"	192 255 62)
-    ("olivedrab2"	179 238 58)
-    ("olivedrab3"	154 205 50)
-    ("olivedrab4"	105 139 34)
-    ("darkolivegreen1"	202 255 112)
-    ("darkolivegreen2"	188 238 104)
-    ("darkolivegreen3"	162 205 90)
-    ("darkolivegreen4"	110 139 61)
-    ("khaki1"		255 246 143)
-    ("khaki2"		238 230 133)
-    ("khaki3"		205 198 115)
-    ("khaki4"		139 134 78)
-    ("lightgoldenrod1"	255 236 139)
-    ("lightgoldenrod2"	238 220 130)
-    ("lightgoldenrod3"	205 190 112)
-    ("lightgoldenrod4"	139 129 76)
-    ("lightyellow1"	255 255 224)
-    ("lightyellow2"	238 238 209)
-    ("lightyellow3"	205 205 180)
-    ("lightyellow4"	139 139 122)
-    ("yellow1"		255 255 0)
-    ("yellow2"		238 238 0)
-    ("yellow3"		205 205 0)
-    ("yellow4"		139 139 0)
-    ("gold1"		255 215 0)
-    ("gold2"		238 201 0)
-    ("gold3"		205 173 0)
-    ("gold4"		139 117 0)
-    ("goldenrod1"	255 193 37)
-    ("goldenrod2"	238 180 34)
-    ("goldenrod3"	205 155 29)
-    ("goldenrod4"	139 105 20)
-    ("darkgoldenrod1"	255 185 15)
-    ("darkgoldenrod2"	238 173 14)
-    ("darkgoldenrod3"	205 149 12)
-    ("darkgoldenrod4"	139 101 8)
-    ("rosybrown1"	255 193 193)
-    ("rosybrown2"	238 180 180)
-    ("rosybrown3"	205 155 155)
-    ("rosybrown4"	139 105 105)
-    ("indianred1"	255 106 106)
-    ("indianred2"	238 99 99)
-    ("indianred3"	205 85 85)
-    ("indianred4"	139 58 58)
-    ("sienna1"		255 130 71)
-    ("sienna2"		238 121 66)
-    ("sienna3"		205 104 57)
-    ("sienna4"		139 71 38)
-    ("burlywood1"	255 211 155)
-    ("burlywood2"	238 197 145)
-    ("burlywood3"	205 170 125)
-    ("burlywood4"	139 115 85)
-    ("wheat1"		255 231 186)
-    ("wheat2"		238 216 174)
-    ("wheat3"		205 186 150)
-    ("wheat4"		139 126 102)
-    ("tan1"		255 165 79)
-    ("tan2"		238 154 73)
-    ("tan3"		205 133 63)
-    ("tan4"		139 90 43)
-    ("chocolate1"	255 127 36)
-    ("chocolate2"	238 118 33)
-    ("chocolate3"	205 102 29)
-    ("chocolate4"	139 69 19)
-    ("firebrick1"	255 48 48)
-    ("firebrick2"	238 44 44)
-    ("firebrick3"	205 38 38)
-    ("firebrick4"	139 26 26)
-    ("brown1"		255 64 64)
-    ("brown2"		238 59 59)
-    ("brown3"		205 51 51)
-    ("brown4"		139 35 35)
-    ("salmon1"		255 140 105)
-    ("salmon2"		238 130 98)
-    ("salmon3"		205 112 84)
-    ("salmon4"		139 76 57)
-    ("lightsalmon1"	255 160 122)
-    ("lightsalmon2"	238 149 114)
-    ("lightsalmon3"	205 129 98)
-    ("lightsalmon4"	139 87 66)
-    ("orange1"		255 165 0)
-    ("orange2"		238 154 0)
-    ("orange3"		205 133 0)
-    ("orange4"		139 90 0)
-    ("darkorange1"	255 127 0)
-    ("darkorange2"	238 118 0)
-    ("darkorange3"	205 102 0)
-    ("darkorange4"	139 69 0)
-    ("coral1"		255 114 86)
-    ("coral2"		238 106 80)
-    ("coral3"		205 91 69)
-    ("coral4"		139 62 47)
-    ("tomato1"		255 99 71)
-    ("tomato2"		238 92 66)
-    ("tomato3"		205 79 57)
-    ("tomato4"		139 54 38)
-    ("orangered1"	255 69 0)
-    ("orangered2"	238 64 0)
-    ("orangered3"	205 55 0)
-    ("orangered4"	139 37 0)
-    ("red1"		255 0 0)
-    ("red2"		238 0 0)
-    ("red3"		205 0 0)
-    ("red4"		139 0 0)
-    ("deeppink1"	255 20 147)
-    ("deeppink2"	238 18 137)
-    ("deeppink3"	205 16 118)
-    ("deeppink4"	139 10 80)
-    ("hotpink1"		255 110 180)
-    ("hotpink2"		238 106 167)
-    ("hotpink3"		205 96 144)
-    ("hotpink4"		139 58 98)
-    ("pink1"		255 181 197)
-    ("pink2"		238 169 184)
-    ("pink3"		205 145 158)
-    ("pink4"		139 99 108)
-    ("lightpink1"	255 174 185)
-    ("lightpink2"	238 162 173)
-    ("lightpink3"	205 140 149)
-    ("lightpink4"	139 95 101)
-    ("palevioletred1"	255 130 171)
-    ("palevioletred2"	238 121 159)
-    ("palevioletred3"	205 104 137)
-    ("palevioletred4"	139 71 93)
-    ("maroon1"		255 52 179)
-    ("maroon2"		238 48 167)
-    ("maroon3"		205 41 144)
-    ("maroon4"		139 28 98)
-    ("violetred1"	255 62 150)
-    ("violetred2"	238 58 140)
-    ("violetred3"	205 50 120)
-    ("violetred4"	139 34 82)
-    ("magenta1"		255 0 255)
-    ("magenta2"		238 0 238)
-    ("magenta3"		205 0 205)
-    ("magenta4"		139 0 139)
-    ("orchid1"		255 131 250)
-    ("orchid2"		238 122 233)
-    ("orchid3"		205 105 201)
-    ("orchid4"		139 71 137)
-    ("plum1"		255 187 255)
-    ("plum2"		238 174 238)
-    ("plum3"		205 150 205)
-    ("plum4"		139 102 139)
-    ("mediumorchid1"	224 102 255)
-    ("mediumorchid2"	209 95 238)
-    ("mediumorchid3"	180 82 205)
-    ("mediumorchid4"	122 55 139)
-    ("darkorchid1"	191 62 255)
-    ("darkorchid2"	178 58 238)
-    ("darkorchid3"	154 50 205)
-    ("darkorchid4"	104 34 139)
-    ("purple1"		155 48 255)
-    ("purple2"		145 44 238)
-    ("purple3"		125 38 205)
-    ("purple4"		85 26 139)
-    ("mediumpurple1"	171 130 255)
-    ("mediumpurple2"	159 121 238)
-    ("mediumpurple3"	137 104 205)
-    ("mediumpurple4"	93 71 139)
-    ("thistle1"		255 225 255)
-    ("thistle2"		238 210 238)
-    ("thistle3"		205 181 205)
-    ("thistle4"		139 123 139)
-    ("gray0"		0 0 0)
-    ("grey0"		0 0 0)
-    ("gray1"		3 3 3)
-    ("grey1"		3 3 3)
-    ("gray2"		5 5 5)
-    ("grey2"		5 5 5)
-    ("gray3"		8 8 8)
-    ("grey3"		8 8 8)
-    ("gray4"		10 10 10)
-    ("grey4"		10 10 10)
-    ("gray5"		13 13 13)
-    ("grey5"		13 13 13)
-    ("gray6"		15 15 15)
-    ("grey6"		15 15 15)
-    ("gray7"		18 18 18)
-    ("grey7"		18 18 18)
-    ("gray8"		20 20 20)
-    ("grey8"		20 20 20)
-    ("gray9"		23 23 23)
-    ("grey9"		23 23 23)
-    ("gray10"		26 26 26)
-    ("grey10"		26 26 26)
-    ("gray11"		28 28 28)
-    ("grey11"		28 28 28)
-    ("gray12"		31 31 31)
-    ("grey12"		31 31 31)
-    ("gray13"		33 33 33)
-    ("grey13"		33 33 33)
-    ("gray14"		36 36 36)
-    ("grey14"		36 36 36)
-    ("gray15"		38 38 38)
-    ("grey15"		38 38 38)
-    ("gray16"		41 41 41)
-    ("grey16"		41 41 41)
-    ("gray17"		43 43 43)
-    ("grey17"		43 43 43)
-    ("gray18"		46 46 46)
-    ("grey18"		46 46 46)
-    ("gray19"		48 48 48)
-    ("grey19"		48 48 48)
-    ("gray20"		51 51 51)
-    ("grey20"		51 51 51)
-    ("gray21"		54 54 54)
-    ("grey21"		54 54 54)
-    ("gray22"		56 56 56)
-    ("grey22"		56 56 56)
-    ("gray23"		59 59 59)
-    ("grey23"		59 59 59)
-    ("gray24"		61 61 61)
-    ("grey24"		61 61 61)
-    ("gray25"		64 64 64)
-    ("grey25"		64 64 64)
-    ("gray26"		66 66 66)
-    ("grey26"		66 66 66)
-    ("gray27"		69 69 69)
-    ("grey27"		69 69 69)
-    ("gray28"		71 71 71)
-    ("grey28"		71 71 71)
-    ("gray29"		74 74 74)
-    ("grey29"		74 74 74)
-    ("gray30"		77 77 77)
-    ("grey30"		77 77 77)
-    ("gray31"		79 79 79)
-    ("grey31"		79 79 79)
-    ("gray32"		82 82 82)
-    ("grey32"		82 82 82)
-    ("gray33"		84 84 84)
-    ("grey33"		84 84 84)
-    ("gray34"		87 87 87)
-    ("grey34"		87 87 87)
-    ("gray35"		89 89 89)
-    ("grey35"		89 89 89)
-    ("gray36"		92 92 92)
-    ("grey36"		92 92 92)
-    ("gray37"		94 94 94)
-    ("grey37"		94 94 94)
-    ("gray38"		97 97 97)
-    ("grey38"		97 97 97)
-    ("gray39"		99 99 99)
-    ("grey39"		99 99 99)
-    ("gray40"		102 102 102)
-    ("grey40"		102 102 102)
-    ("gray41"		105 105 105)
-    ("grey41"		105 105 105)
-    ("gray42"		107 107 107)
-    ("grey42"		107 107 107)
-    ("gray43"		110 110 110)
-    ("grey43"		110 110 110)
-    ("gray44"		112 112 112)
-    ("grey44"		112 112 112)
-    ("gray45"		115 115 115)
-    ("grey45"		115 115 115)
-    ("gray46"		117 117 117)
-    ("grey46"		117 117 117)
-    ("gray47"		120 120 120)
-    ("grey47"		120 120 120)
-    ("gray48"		122 122 122)
-    ("grey48"		122 122 122)
-    ("gray49"		125 125 125)
-    ("grey49"		125 125 125)
-    ("gray50"		127 127 127)
-    ("grey50"		127 127 127)
-    ("gray51"		130 130 130)
-    ("grey51"		130 130 130)
-    ("gray52"		133 133 133)
-    ("grey52"		133 133 133)
-    ("gray53"		135 135 135)
-    ("grey53"		135 135 135)
-    ("gray54"		138 138 138)
-    ("grey54"		138 138 138)
-    ("gray55"		140 140 140)
-    ("grey55"		140 140 140)
-    ("gray56"		143 143 143)
-    ("grey56"		143 143 143)
-    ("gray57"		145 145 145)
-    ("grey57"		145 145 145)
-    ("gray58"		148 148 148)
-    ("grey58"		148 148 148)
-    ("gray59"		150 150 150)
-    ("grey59"		150 150 150)
-    ("gray60"		153 153 153)
-    ("grey60"		153 153 153)
-    ("gray61"		156 156 156)
-    ("grey61"		156 156 156)
-    ("gray62"		158 158 158)
-    ("grey62"		158 158 158)
-    ("gray63"		161 161 161)
-    ("grey63"		161 161 161)
-    ("gray64"		163 163 163)
-    ("grey64"		163 163 163)
-    ("gray65"		166 166 166)
-    ("grey65"		166 166 166)
-    ("gray66"		168 168 168)
-    ("grey66"		168 168 168)
-    ("gray67"		171 171 171)
-    ("grey67"		171 171 171)
-    ("gray68"		173 173 173)
-    ("grey68"		173 173 173)
-    ("gray69"		176 176 176)
-    ("grey69"		176 176 176)
-    ("gray70"		179 179 179)
-    ("grey70"		179 179 179)
-    ("gray71"		181 181 181)
-    ("grey71"		181 181 181)
-    ("gray72"		184 184 184)
-    ("grey72"		184 184 184)
-    ("gray73"		186 186 186)
-    ("grey73"		186 186 186)
-    ("gray74"		189 189 189)
-    ("grey74"		189 189 189)
-    ("gray75"		191 191 191)
-    ("grey75"		191 191 191)
-    ("gray76"		194 194 194)
-    ("grey76"		194 194 194)
-    ("gray77"		196 196 196)
-    ("grey77"		196 196 196)
-    ("gray78"		199 199 199)
-    ("grey78"		199 199 199)
-    ("gray79"		201 201 201)
-    ("grey79"		201 201 201)
-    ("gray80"		204 204 204)
-    ("grey80"		204 204 204)
-    ("gray81"		207 207 207)
-    ("grey81"		207 207 207)
-    ("gray82"		209 209 209)
-    ("grey82"		209 209 209)
-    ("gray83"		212 212 212)
-    ("grey83"		212 212 212)
-    ("gray84"		214 214 214)
-    ("grey84"		214 214 214)
-    ("gray85"		217 217 217)
-    ("grey85"		217 217 217)
-    ("gray86"		219 219 219)
-    ("grey86"		219 219 219)
-    ("gray87"		222 222 222)
-    ("grey87"		222 222 222)
-    ("gray88"		224 224 224)
-    ("grey88"		224 224 224)
-    ("gray89"		227 227 227)
-    ("grey89"		227 227 227)
-    ("gray90"		229 229 229)
-    ("grey90"		229 229 229)
-    ("gray91"		232 232 232)
-    ("grey91"		232 232 232)
-    ("gray92"		235 235 235)
-    ("grey92"		235 235 235)
-    ("gray93"		237 237 237)
-    ("grey93"		237 237 237)
-    ("gray94"		240 240 240)
-    ("grey94"		240 240 240)
-    ("gray95"		242 242 242)
-    ("grey95"		242 242 242)
-    ("gray96"		245 245 245)
-    ("grey96"		245 245 245)
-    ("gray97"		247 247 247)
-    ("grey97"		247 247 247)
-    ("gray98"		250 250 250)
-    ("grey98"		250 250 250)
-    ("gray99"		252 252 252)
-    ("grey99"		252 252 252)
-    ("gray100"		255 255 255)
-    ("grey100"		255 255 255)
-    ("darkgrey"		169 169 169)
-    ("darkgray"		169 169 169)
-    ("darkblue"		0 0 139)
-    ("darkcyan"		0 139 139) ; no "lightmagenta", see the comment above
-    ("darkmagenta"	139 0 139)
-    ("darkred"		139 0 0)  ; but no "lightred", see the comment above
-    ("lightgreen"	144 238 144))
-  "An alist of X color names and associated 8-bit RGB values.")
+  '(("snow"		65535 64250 64250)
+    ("ghostwhite"	63736 63736 65535)
+    ("whitesmoke"	62965 62965 62965)
+    ("gainsboro"	56540 56540 56540)
+    ("floralwhite"	65535 64250 61680)
+    ("oldlace"		65021 62965 59110)
+    ("linen"		64250 61680 59110)
+    ("antiquewhite"	64250 60395 55255)
+    ("papayawhip"	65535 61423 54741)
+    ("blanchedalmond"	65535 60395 52685)
+    ("bisque"		65535 58596 50372)
+    ("peachpuff"	65535 56026 47545)
+    ("navajowhite"	65535 57054 44461)
+    ("moccasin"		65535 58596 46517)
+    ("cornsilk"		65535 63736 56540)
+    ("ivory"		65535 65535 61680)
+    ("lemonchiffon"	65535 64250 52685)
+    ("seashell"		65535 62965 61166)
+    ("honeydew"		61680 65535 61680)
+    ("mintcream"	62965 65535 64250)
+    ("azure"		61680 65535 65535)
+    ("aliceblue"	61680 63736 65535)
+    ("lavender"		59110 59110 64250)
+    ("lavenderblush"	65535 61680 62965)
+    ("mistyrose"	65535 58596 57825)
+    ("white"		65535 65535 65535)
+    ("black"		    0     0     0)
+    ("darkslategray"	12079 20303 20303)
+    ("darkslategrey"	12079 20303 20303)
+    ("dimgray"		26985 26985 26985)
+    ("dimgrey"		26985 26985 26985)
+    ("slategray"	28784 32896 37008)
+    ("slategrey"	28784 32896 37008)
+    ("lightslategray"	30583 34952 39321)
+    ("lightslategrey"	30583 34952 39321)
+    ("gray"		48830 48830 48830)
+    ("grey"		48830 48830 48830)
+    ("lightgrey"	54227 54227 54227)
+    ("lightgray"	54227 54227 54227)
+    ("midnightblue"	 6425  6425 28784)
+    ("navy"		    0     0 32896)
+    ("navyblue"		    0     0 32896)
+    ("cornflowerblue"	25700 38293 60909)
+    ("darkslateblue"	18504 15677 35723)
+    ("slateblue"	27242 23130 52685)
+    ("mediumslateblue"	31611 26728 61166)
+    ("lightslateblue"	33924 28784 65535)
+    ("mediumblue"	    0     0 52685)
+    ("royalblue"	16705 26985 57825)
+    ("blue"		    0     0 65535)
+    ("dodgerblue"	 7710 37008 65535)
+    ("deepskyblue"	    0 49087 65535)
+    ("skyblue"		34695 52942 60395)
+    ("lightskyblue"	34695 52942 64250)
+    ("steelblue"	17990 33410 46260)
+    ("lightsteelblue"	45232 50372 57054)
+    ("lightblue"	44461 55512 59110)
+    ("powderblue"	45232 57568 59110)
+    ("paleturquoise"	44975 61166 61166)
+    ("darkturquoise"	    0 52942 53713)
+    ("mediumturquoise"	18504 53713 52428)
+    ("turquoise"	16448 57568 53456)
+    ("cyan"		    0 65535 65535)
+    ("lightcyan"	57568 65535 65535)
+    ("cadetblue"	24415 40606 41120)
+    ("mediumaquamarine"	26214 52685 43690)
+    ("aquamarine"	32639 65535 54484)
+    ("darkgreen"	    0 25700     0)
+    ("darkolivegreen"	21845 27499 12079)
+    ("darkseagreen"	36751 48316 36751)
+    ("seagreen"		11822 35723 22359)
+    ("mediumseagreen"	15420 46003 29041)
+    ("lightseagreen"	 8224 45746 43690)
+    ("palegreen"	39064 64507 39064)
+    ("springgreen"	    0 65535 32639)
+    ("lawngreen"	31868 64764     0)
+    ("green"		    0 65535     0)
+    ("chartreuse"	32639 65535     0)
+    ("mediumspringgreen"    0 64250 39578)
+    ("greenyellow"	44461 65535 12079)
+    ("limegreen"	12850 52685 12850)
+    ("yellowgreen"	39578 52685 12850)
+    ("forestgreen"	 8738 35723  8738)
+    ("olivedrab"	27499 36494  8995)
+    ("darkkhaki"	48573 47031 27499)
+    ("khaki"		61680 59110 35980)
+    ("palegoldenrod"	61166 59624 43690)
+    ("lightgoldenrodyellow" 64250 64250 53970)
+    ("lightyellow"	65535 65535 57568)
+    ("yellow"		65535 65535     0)
+    ("gold"		65535 55255     0)
+    ("lightgoldenrod"	61166 56797 33410)
+    ("goldenrod"	56026 42405  8224)
+    ("darkgoldenrod"	47288 34438  2827)
+    ("rosybrown"	48316 36751 36751)
+    ("indianred"	52685 23644 23644)
+    ("saddlebrown"	35723 17733  4883)
+    ("sienna"		41120 21074 11565)
+    ("peru"		52685 34181 16191)
+    ("burlywood"	57054 47288 34695)
+    ("beige"		62965 62965 56540)
+    ("wheat"		62965 57054 46003)
+    ("sandybrown"	62708 42148 24672)
+    ("tan"		53970 46260 35980)
+    ("chocolate"	53970 26985  7710)
+    ("firebrick"	45746  8738  8738)
+    ("brown"		42405 10794 10794)
+    ("darksalmon"	59881 38550 31354)
+    ("salmon"		64250 32896 29298)
+    ("lightsalmon"	65535 41120 31354)
+    ("orange"		65535 42405     0)
+    ("darkorange"	65535 35980     0)
+    ("coral"		65535 32639 20560)
+    ("lightcoral"	61680 32896 32896)
+    ("tomato"		65535 25443 18247)
+    ("orangered"	65535 17733     0)
+    ("red"		65535     0     0)
+    ("hotpink"		65535 26985 46260)
+    ("deeppink"		65535  5140 37779)
+    ("pink"		65535 49344 52171)
+    ("lightpink"	65535 46774 49601)
+    ("palevioletred"	56283 28784 37779)
+    ("maroon"		45232 12336 24672)
+    ("mediumvioletred"	51143  5397 34181)
+    ("violetred"	53456  8224 37008)
+    ("magenta"		65535     0 65535)
+    ("violet"		61166 33410 61166)
+    ("plum"		56797 41120 56797)
+    ("orchid"		56026 28784 54998)
+    ("mediumorchid"	47802 21845 54227)
+    ("darkorchid"	39321 12850 52428)
+    ("darkviolet"	38036     0 54227)
+    ("blueviolet"	35466 11051 58082)
+    ("purple"		41120  8224 61680)
+    ("mediumpurple"	37779 28784 56283)
+    ("thistle"		55512 49087 55512)
+    ("snow1"		65535 64250 64250)
+    ("snow2"		61166 59881 59881)
+    ("snow3"		52685 51657 51657)
+    ("snow4"		35723 35209 35209)
+    ("seashell1"	65535 62965 61166)
+    ("seashell2"	61166 58853 57054)
+    ("seashell3"	52685 50629 49087)
+    ("seashell4"	35723 34438 33410)
+    ("antiquewhite1"	65535 61423 56283)
+    ("antiquewhite2"	61166 57311 52428)
+    ("antiquewhite3"	52685 49344 45232)
+    ("antiquewhite4"	35723 33667 30840)
+    ("bisque1"		65535 58596 50372)
+    ("bisque2"		61166 54741 47031)
+    ("bisque3"		52685 47031 40606)
+    ("bisque4"		35723 32125 27499)
+    ("peachpuff1"	65535 56026 47545)
+    ("peachpuff2"	61166 52171 44461)
+    ("peachpuff3"	52685 44975 38293)
+    ("peachpuff4"	35723 30583 25957)
+    ("navajowhite1"	65535 57054 44461)
+    ("navajowhite2"	61166 53199 41377)
+    ("navajowhite3"	52685 46003 35723)
+    ("navajowhite4"	35723 31097 24158)
+    ("lemonchiffon1"	65535 64250 52685)
+    ("lemonchiffon2"	61166 59881 49087)
+    ("lemonchiffon3"	52685 51657 42405)
+    ("lemonchiffon4"	35723 35209 28784)
+    ("cornsilk1"	65535 63736 56540)
+    ("cornsilk2"	61166 59624 52685)
+    ("cornsilk3"	52685 51400 45489)
+    ("cornsilk4"	35723 34952 30840)
+    ("ivory1"		65535 65535 61680)
+    ("ivory2"		61166 61166 57568)
+    ("ivory3"		52685 52685 49601)
+    ("ivory4"		35723 35723 33667)
+    ("honeydew1"	61680 65535 61680)
+    ("honeydew2"	57568 61166 57568)
+    ("honeydew3"	49601 52685 49601)
+    ("honeydew4"	33667 35723 33667)
+    ("lavenderblush1"	65535 61680 62965)
+    ("lavenderblush2"	61166 57568 58853)
+    ("lavenderblush3"	52685 49601 50629)
+    ("lavenderblush4"	35723 33667 34438)
+    ("mistyrose1"	65535 58596 57825)
+    ("mistyrose2"	61166 54741 53970)
+    ("mistyrose3"	52685 47031 46517)
+    ("mistyrose4"	35723 32125 31611)
+    ("azure1"		61680 65535 65535)
+    ("azure2"		57568 61166 61166)
+    ("azure3"		49601 52685 52685)
+    ("azure4"		33667 35723 35723)
+    ("slateblue1"	33667 28527 65535)
+    ("slateblue2"	31354 26471 61166)
+    ("slateblue3"	26985 22873 52685)
+    ("slateblue4"	18247 15420 35723)
+    ("royalblue1"	18504 30326 65535)
+    ("royalblue2"	17219 28270 61166)
+    ("royalblue3"	14906 24415 52685)
+    ("royalblue4"	10023 16448 35723)
+    ("blue1"		    0     0 65535)
+    ("blue2"		    0     0 61166)
+    ("blue3"		    0     0 52685)
+    ("blue4"		    0     0 35723)
+    ("dodgerblue1"	 7710 37008 65535)
+    ("dodgerblue2"	 7196 34438 61166)
+    ("dodgerblue3"	 6168 29812 52685)
+    ("dodgerblue4"	 4112 20046 35723)
+    ("steelblue1"	25443 47288 65535)
+    ("steelblue2"	23644 44204 61166)
+    ("steelblue3"	20303 38036 52685)
+    ("steelblue4"	13878 25700 35723)
+    ("deepskyblue1"	    0 49087 65535)
+    ("deepskyblue2"	    0 45746 61166)
+    ("deepskyblue3"	    0 39578 52685)
+    ("deepskyblue4"	    0 26728 35723)
+    ("skyblue1"		34695 52942 65535)
+    ("skyblue2"		32382 49344 61166)
+    ("skyblue3"		27756 42662 52685)
+    ("skyblue4"		19018 28784 35723)
+    ("lightskyblue1"	45232 58082 65535)
+    ("lightskyblue2"	42148 54227 61166)
+    ("lightskyblue3"	36237 46774 52685)
+    ("lightskyblue4"	24672 31611 35723)
+    ("slategray1"	50886 58082 65535)
+    ("slategray2"	47545 54227 61166)
+    ("slategray3"	40863 46774 52685)
+    ("slategray4"	27756 31611 35723)
+    ("lightsteelblue1"	51914 57825 65535)
+    ("lightsteelblue2"	48316 53970 61166)
+    ("lightsteelblue3"	41634 46517 52685)
+    ("lightsteelblue4"	28270 31611 35723)
+    ("lightblue1"	49087 61423 65535)
+    ("lightblue2"	45746 57311 61166)
+    ("lightblue3"	39578 49344 52685)
+    ("lightblue4"	26728 33667 35723)
+    ("lightcyan1"	57568 65535 65535)
+    ("lightcyan2"	53713 61166 61166)
+    ("lightcyan3"	46260 52685 52685)
+    ("lightcyan4"	31354 35723 35723)
+    ("paleturquoise1"	48059 65535 65535)
+    ("paleturquoise2"	44718 61166 61166)
+    ("paleturquoise3"	38550 52685 52685)
+    ("paleturquoise4"	26214 35723 35723)
+    ("cadetblue1"	39064 62965 65535)
+    ("cadetblue2"	36494 58853 61166)
+    ("cadetblue3"	31354 50629 52685)
+    ("cadetblue4"	21331 34438 35723)
+    ("turquoise1"	    0 62965 65535)
+    ("turquoise2"	    0 58853 61166)
+    ("turquoise3"	    0 50629 52685)
+    ("turquoise4"	    0 34438 35723)
+    ("cyan1"		    0 65535 65535)
+    ("cyan2"		    0 61166 61166)
+    ("cyan3"		    0 52685 52685)
+    ("cyan4"		    0 35723 35723)
+    ("darkslategray1"	38807 65535 65535)
+    ("darkslategray2"	36237 61166 61166)
+    ("darkslategray3"	31097 52685 52685)
+    ("darkslategray4"	21074 35723 35723)
+    ("aquamarine1"	32639 65535 54484)
+    ("aquamarine2"	30326 61166 50886)
+    ("aquamarine3"	26214 52685 43690)
+    ("aquamarine4"	17733 35723 29812)
+    ("darkseagreen1"	49601 65535 49601)
+    ("darkseagreen2"	46260 61166 46260)
+    ("darkseagreen3"	39835 52685 39835)
+    ("darkseagreen4"	26985 35723 26985)
+    ("seagreen1"	21588 65535 40863)
+    ("seagreen2"	20046 61166 38036)
+    ("seagreen3"	17219 52685 32896)
+    ("seagreen4"	11822 35723 22359)
+    ("palegreen1"	39578 65535 39578)
+    ("palegreen2"	37008 61166 37008)
+    ("palegreen3"	31868 52685 31868)
+    ("palegreen4"	21588 35723 21588)
+    ("springgreen1"	    0 65535 32639)
+    ("springgreen2"	    0 61166 30326)
+    ("springgreen3"	    0 52685 26214)
+    ("springgreen4"	    0 35723 17733)
+    ("green1"		    0 65535     0)
+    ("green2"		    0 61166     0)
+    ("green3"		    0 52685     0)
+    ("green4"		    0 35723     0)
+    ("chartreuse1"	32639 65535     0)
+    ("chartreuse2"	30326 61166     0)
+    ("chartreuse3"	26214 52685     0)
+    ("chartreuse4"	17733 35723     0)
+    ("olivedrab1"	49344 65535 15934)
+    ("olivedrab2"	46003 61166 14906)
+    ("olivedrab3"	39578 52685 12850)
+    ("olivedrab4"	26985 35723  8738)
+    ("darkolivegreen1"	51914 65535 28784)
+    ("darkolivegreen2"	48316 61166 26728)
+    ("darkolivegreen3"	41634 52685 23130)
+    ("darkolivegreen4"	28270 35723 15677)
+    ("khaki1"		65535 63222 36751)
+    ("khaki2"		61166 59110 34181)
+    ("khaki3"		52685 50886 29555)
+    ("khaki4"		35723 34438 20046)
+    ("lightgoldenrod1"	65535 60652 35723)
+    ("lightgoldenrod2"	61166 56540 33410)
+    ("lightgoldenrod3"	52685 48830 28784)
+    ("lightgoldenrod4"	35723 33153 19532)
+    ("lightyellow1"	65535 65535 57568)
+    ("lightyellow2"	61166 61166 53713)
+    ("lightyellow3"	52685 52685 46260)
+    ("lightyellow4"	35723 35723 31354)
+    ("yellow1"		65535 65535     0)
+    ("yellow2"		61166 61166     0)
+    ("yellow3"		52685 52685     0)
+    ("yellow4"		35723 35723     0)
+    ("gold1"		65535 55255     0)
+    ("gold2"		61166 51657     0)
+    ("gold3"		52685 44461     0)
+    ("gold4"		35723 30069     0)
+    ("goldenrod1"	65535 49601  9509)
+    ("goldenrod2"	61166 46260  8738)
+    ("goldenrod3"	52685 39835  7453)
+    ("goldenrod4"	35723 26985  5140)
+    ("darkgoldenrod1"	65535 47545  3855)
+    ("darkgoldenrod2"	61166 44461  3598)
+    ("darkgoldenrod3"	52685 38293  3084)
+    ("darkgoldenrod4"	35723 25957  2056)
+    ("rosybrown1"	65535 49601 49601)
+    ("rosybrown2"	61166 46260 46260)
+    ("rosybrown3"	52685 39835 39835)
+    ("rosybrown4"	35723 26985 26985)
+    ("indianred1"	65535 27242 27242)
+    ("indianred2"	61166 25443 25443)
+    ("indianred3"	52685 21845 21845)
+    ("indianred4"	35723 14906 14906)
+    ("sienna1"		65535 33410 18247)
+    ("sienna2"		61166 31097 16962)
+    ("sienna3"		52685 26728 14649)
+    ("sienna4"		35723 18247  9766)
+    ("burlywood1"	65535 54227 39835)
+    ("burlywood2"	61166 50629 37265)
+    ("burlywood3"	52685 43690 32125)
+    ("burlywood4"	35723 29555 21845)
+    ("wheat1"		65535 59367 47802)
+    ("wheat2"		61166 55512 44718)
+    ("wheat3"		52685 47802 38550)
+    ("wheat4"		35723 32382 26214)
+    ("tan1"		65535 42405 20303)
+    ("tan2"		61166 39578 18761)
+    ("tan3"		52685 34181 16191)
+    ("tan4"		35723 23130 11051)
+    ("chocolate1"	65535 32639  9252)
+    ("chocolate2"	61166 30326  8481)
+    ("chocolate3"	52685 26214  7453)
+    ("chocolate4"	35723 17733  4883)
+    ("firebrick1"	65535 12336 12336)
+    ("firebrick2"	61166 11308 11308)
+    ("firebrick3"	52685  9766  9766)
+    ("firebrick4"	35723  6682  6682)
+    ("brown1"		65535 16448 16448)
+    ("brown2"		61166 15163 15163)
+    ("brown3"		52685 13107 13107)
+    ("brown4"		35723  8995  8995)
+    ("salmon1"		65535 35980 26985)
+    ("salmon2"		61166 33410 25186)
+    ("salmon3"		52685 28784 21588)
+    ("salmon4"		35723 19532 14649)
+    ("lightsalmon1"	65535 41120 31354)
+    ("lightsalmon2"	61166 38293 29298)
+    ("lightsalmon3"	52685 33153 25186)
+    ("lightsalmon4"	35723 22359 16962)
+    ("orange1"		65535 42405     0)
+    ("orange2"		61166 39578     0)
+    ("orange3"		52685 34181     0)
+    ("orange4"		35723 23130     0)
+    ("darkorange1"	65535 32639     0)
+    ("darkorange2"	61166 30326     0)
+    ("darkorange3"	52685 26214     0)
+    ("darkorange4"	35723 17733     0)
+    ("coral1"		65535 29298 22102)
+    ("coral2"		61166 27242 20560)
+    ("coral3"		52685 23387 17733)
+    ("coral4"		35723 15934 12079)
+    ("tomato1"		65535 25443 18247)
+    ("tomato2"		61166 23644 16962)
+    ("tomato3"		52685 20303 14649)
+    ("tomato4"		35723 13878  9766)
+    ("orangered1"	65535 17733     0)
+    ("orangered2"	61166 16448     0)
+    ("orangered3"	52685 14135     0)
+    ("orangered4"	35723  9509     0)
+    ("red1"		65535     0     0)
+    ("red2"		61166     0     0)
+    ("red3"		52685     0     0)
+    ("red4"		35723     0     0)
+    ("deeppink1"	65535  5140 37779)
+    ("deeppink2"	61166  4626 35209)
+    ("deeppink3"	52685  4112 30326)
+    ("deeppink4"	35723  2570 20560)
+    ("hotpink1"		65535 28270 46260)
+    ("hotpink2"		61166 27242 42919)
+    ("hotpink3"		52685 24672 37008)
+    ("hotpink4"		35723 14906 25186)
+    ("pink1"		65535 46517 50629)
+    ("pink2"		61166 43433 47288)
+    ("pink3"		52685 37265 40606)
+    ("pink4"		35723 25443 27756)
+    ("lightpink1"	65535 44718 47545)
+    ("lightpink2"	61166 41634 44461)
+    ("lightpink3"	52685 35980 38293)
+    ("lightpink4"	35723 24415 25957)
+    ("palevioletred1"	65535 33410 43947)
+    ("palevioletred2"	61166 31097 40863)
+    ("palevioletred3"	52685 26728 35209)
+    ("palevioletred4"	35723 18247 23901)
+    ("maroon1"		65535 13364 46003)
+    ("maroon2"		61166 12336 42919)
+    ("maroon3"		52685 10537 37008)
+    ("maroon4"		35723  7196 25186)
+    ("violetred1"	65535 15934 38550)
+    ("violetred2"	61166 14906 35980)
+    ("violetred3"	52685 12850 30840)
+    ("violetred4"	35723  8738 21074)
+    ("magenta1"		65535     0 65535)
+    ("magenta2"		61166     0 61166)
+    ("magenta3"		52685     0 52685)
+    ("magenta4"		35723     0 35723)
+    ("orchid1"		65535 33667 64250)
+    ("orchid2"		61166 31354 59881)
+    ("orchid3"		52685 26985 51657)
+    ("orchid4"		35723 18247 35209)
+    ("plum1"		65535 48059 65535)
+    ("plum2"		61166 44718 61166)
+    ("plum3"		52685 38550 52685)
+    ("plum4"		35723 26214 35723)
+    ("mediumorchid1"	57568 26214 65535)
+    ("mediumorchid2"	53713 24415 61166)
+    ("mediumorchid3"	46260 21074 52685)
+    ("mediumorchid4"	31354 14135 35723)
+    ("darkorchid1"	49087 15934 65535)
+    ("darkorchid2"	45746 14906 61166)
+    ("darkorchid3"	39578 12850 52685)
+    ("darkorchid4"	26728  8738 35723)
+    ("purple1"		39835 12336 65535)
+    ("purple2"		37265 11308 61166)
+    ("purple3"		32125  9766 52685)
+    ("purple4"		21845  6682 35723)
+    ("mediumpurple1"	43947 33410 65535)
+    ("mediumpurple2"	40863 31097 61166)
+    ("mediumpurple3"	35209 26728 52685)
+    ("mediumpurple4"	23901 18247 35723)
+    ("thistle1"		65535 57825 65535)
+    ("thistle2"		61166 53970 61166)
+    ("thistle3"		52685 46517 52685)
+    ("thistle4"		35723 31611 35723)
+    ("gray0"		    0     0     0)
+    ("grey0"		    0     0     0)
+    ("gray1"		  771   771   771)
+    ("grey1"		  771   771   771)
+    ("gray2"		 1285  1285  1285)
+    ("grey2"		 1285  1285  1285)
+    ("gray3"		 2056  2056  2056)
+    ("grey3"		 2056  2056  2056)
+    ("gray4"		 2570  2570  2570)
+    ("grey4"		 2570  2570  2570)
+    ("gray5"		 3341  3341  3341)
+    ("grey5"		 3341  3341  3341)
+    ("gray6"		 3855  3855  3855)
+    ("grey6"		 3855  3855  3855)
+    ("gray7"		 4626  4626  4626)
+    ("grey7"		 4626  4626  4626)
+    ("gray8"		 5140  5140  5140)
+    ("grey8"		 5140  5140  5140)
+    ("gray9"		 5911  5911  5911)
+    ("grey9"		 5911  5911  5911)
+    ("gray10"		 6682  6682  6682)
+    ("grey10"		 6682  6682  6682)
+    ("gray11"		 7196  7196  7196)
+    ("grey11"		 7196  7196  7196)
+    ("gray12"		 7967  7967  7967)
+    ("grey12"		 7967  7967  7967)
+    ("gray13"		 8481  8481  8481)
+    ("grey13"		 8481  8481  8481)
+    ("gray14"		 9252  9252  9252)
+    ("grey14"		 9252  9252  9252)
+    ("gray15"		 9766  9766  9766)
+    ("grey15"		 9766  9766  9766)
+    ("gray16"		10537 10537 10537)
+    ("grey16"		10537 10537 10537)
+    ("gray17"		11051 11051 11051)
+    ("grey17"		11051 11051 11051)
+    ("gray18"		11822 11822 11822)
+    ("grey18"		11822 11822 11822)
+    ("gray19"		12336 12336 12336)
+    ("grey19"		12336 12336 12336)
+    ("gray20"		13107 13107 13107)
+    ("grey20"		13107 13107 13107)
+    ("gray21"		13878 13878 13878)
+    ("grey21"		13878 13878 13878)
+    ("gray22"		14392 14392 14392)
+    ("grey22"		14392 14392 14392)
+    ("gray23"		15163 15163 15163)
+    ("grey23"		15163 15163 15163)
+    ("gray24"		15677 15677 15677)
+    ("grey24"		15677 15677 15677)
+    ("gray25"		16448 16448 16448)
+    ("grey25"		16448 16448 16448)
+    ("gray26"		16962 16962 16962)
+    ("grey26"		16962 16962 16962)
+    ("gray27"		17733 17733 17733)
+    ("grey27"		17733 17733 17733)
+    ("gray28"		18247 18247 18247)
+    ("grey28"		18247 18247 18247)
+    ("gray29"		19018 19018 19018)
+    ("grey29"		19018 19018 19018)
+    ("gray30"		19789 19789 19789)
+    ("grey30"		19789 19789 19789)
+    ("gray31"		20303 20303 20303)
+    ("grey31"		20303 20303 20303)
+    ("gray32"		21074 21074 21074)
+    ("grey32"		21074 21074 21074)
+    ("gray33"		21588 21588 21588)
+    ("grey33"		21588 21588 21588)
+    ("gray34"		22359 22359 22359)
+    ("grey34"		22359 22359 22359)
+    ("gray35"		22873 22873 22873)
+    ("grey35"		22873 22873 22873)
+    ("gray36"		23644 23644 23644)
+    ("grey36"		23644 23644 23644)
+    ("gray37"		24158 24158 24158)
+    ("grey37"		24158 24158 24158)
+    ("gray38"		24929 24929 24929)
+    ("grey38"		24929 24929 24929)
+    ("gray39"		25443 25443 25443)
+    ("grey39"		25443 25443 25443)
+    ("gray40"		26214 26214 26214)
+    ("grey40"		26214 26214 26214)
+    ("gray41"		26985 26985 26985)
+    ("grey41"		26985 26985 26985)
+    ("gray42"		27499 27499 27499)
+    ("grey42"		27499 27499 27499)
+    ("gray43"		28270 28270 28270)
+    ("grey43"		28270 28270 28270)
+    ("gray44"		28784 28784 28784)
+    ("grey44"		28784 28784 28784)
+    ("gray45"		29555 29555 29555)
+    ("grey45"		29555 29555 29555)
+    ("gray46"		30069 30069 30069)
+    ("grey46"		30069 30069 30069)
+    ("gray47"		30840 30840 30840)
+    ("grey47"		30840 30840 30840)
+    ("gray48"		31354 31354 31354)
+    ("grey48"		31354 31354 31354)
+    ("gray49"		32125 32125 32125)
+    ("grey49"		32125 32125 32125)
+    ("gray50"		32639 32639 32639)
+    ("grey50"		32639 32639 32639)
+    ("gray51"		33410 33410 33410)
+    ("grey51"		33410 33410 33410)
+    ("gray52"		34181 34181 34181)
+    ("grey52"		34181 34181 34181)
+    ("gray53"		34695 34695 34695)
+    ("grey53"		34695 34695 34695)
+    ("gray54"		35466 35466 35466)
+    ("grey54"		35466 35466 35466)
+    ("gray55"		35980 35980 35980)
+    ("grey55"		35980 35980 35980)
+    ("gray56"		36751 36751 36751)
+    ("grey56"		36751 36751 36751)
+    ("gray57"		37265 37265 37265)
+    ("grey57"		37265 37265 37265)
+    ("gray58"		38036 38036 38036)
+    ("grey58"		38036 38036 38036)
+    ("gray59"		38550 38550 38550)
+    ("grey59"		38550 38550 38550)
+    ("gray60"		39321 39321 39321)
+    ("grey60"		39321 39321 39321)
+    ("gray61"		40092 40092 40092)
+    ("grey61"		40092 40092 40092)
+    ("gray62"		40606 40606 40606)
+    ("grey62"		40606 40606 40606)
+    ("gray63"		41377 41377 41377)
+    ("grey63"		41377 41377 41377)
+    ("gray64"		41891 41891 41891)
+    ("grey64"		41891 41891 41891)
+    ("gray65"		42662 42662 42662)
+    ("grey65"		42662 42662 42662)
+    ("gray66"		43176 43176 43176)
+    ("grey66"		43176 43176 43176)
+    ("gray67"		43947 43947 43947)
+    ("grey67"		43947 43947 43947)
+    ("gray68"		44461 44461 44461)
+    ("grey68"		44461 44461 44461)
+    ("gray69"		45232 45232 45232)
+    ("grey69"		45232 45232 45232)
+    ("gray70"		46003 46003 46003)
+    ("grey70"		46003 46003 46003)
+    ("gray71"		46517 46517 46517)
+    ("grey71"		46517 46517 46517)
+    ("gray72"		47288 47288 47288)
+    ("grey72"		47288 47288 47288)
+    ("gray73"		47802 47802 47802)
+    ("grey73"		47802 47802 47802)
+    ("gray74"		48573 48573 48573)
+    ("grey74"		48573 48573 48573)
+    ("gray75"		49087 49087 49087)
+    ("grey75"		49087 49087 49087)
+    ("gray76"		49858 49858 49858)
+    ("grey76"		49858 49858 49858)
+    ("gray77"		50372 50372 50372)
+    ("grey77"		50372 50372 50372)
+    ("gray78"		51143 51143 51143)
+    ("grey78"		51143 51143 51143)
+    ("gray79"		51657 51657 51657)
+    ("grey79"		51657 51657 51657)
+    ("gray80"		52428 52428 52428)
+    ("grey80"		52428 52428 52428)
+    ("gray81"		53199 53199 53199)
+    ("grey81"		53199 53199 53199)
+    ("gray82"		53713 53713 53713)
+    ("grey82"		53713 53713 53713)
+    ("gray83"		54484 54484 54484)
+    ("grey83"		54484 54484 54484)
+    ("gray84"		54998 54998 54998)
+    ("grey84"		54998 54998 54998)
+    ("gray85"		55769 55769 55769)
+    ("grey85"		55769 55769 55769)
+    ("gray86"		56283 56283 56283)
+    ("grey86"		56283 56283 56283)
+    ("gray87"		57054 57054 57054)
+    ("grey87"		57054 57054 57054)
+    ("gray88"		57568 57568 57568)
+    ("grey88"		57568 57568 57568)
+    ("gray89"		58339 58339 58339)
+    ("grey89"		58339 58339 58339)
+    ("gray90"		58853 58853 58853)
+    ("grey90"		58853 58853 58853)
+    ("gray91"		59624 59624 59624)
+    ("grey91"		59624 59624 59624)
+    ("gray92"		60395 60395 60395)
+    ("grey92"		60395 60395 60395)
+    ("gray93"		60909 60909 60909)
+    ("grey93"		60909 60909 60909)
+    ("gray94"		61680 61680 61680)
+    ("grey94"		61680 61680 61680)
+    ("gray95"		62194 62194 62194)
+    ("grey95"		62194 62194 62194)
+    ("gray96"		62965 62965 62965)
+    ("grey96"		62965 62965 62965)
+    ("gray97"		63479 63479 63479)
+    ("grey97"		63479 63479 63479)
+    ("gray98"		64250 64250 64250)
+    ("grey98"		64250 64250 64250)
+    ("gray99"		64764 64764 64764)
+    ("grey99"		64764 64764 64764)
+    ("gray100"		65535 65535 65535)
+    ("grey100"		65535 65535 65535)
+    ("darkgrey"		43433 43433 43433)
+    ("darkgray"		43433 43433 43433)
+    ("darkblue"		    0     0 35723)
+    ("darkcyan"		    0 35723 35723) ; no "lightmagenta", see comment above
+    ("darkmagenta"	35723     0 35723)
+    ("darkred"		35723     0     0)  ; but no "lightred", see comment above
+    ("lightgreen"	37008 61166 37008))
+  "An alist of X color names and associated 16-bit RGB values.")
 
 (defvar tty-standard-colors
   '(("black"	0     0     0     0)
@@ -821,10 +826,10 @@
 (defun tty-color-canonicalize (color)
   "Return COLOR in canonical form.
 A canonicalized color name is all-lower case, with any blanks removed."
-  (let ((color (downcase color)))
-    (while (string-match " +" color)
-      (setq color (replace-match "" nil nil color)))
-    color))
+  (let ((case-fold-search nil))
+    (if (string-match "[A-Z ]" color)
+	(replace-regexp-in-string " +" "" (downcase color))
+      color)))
 
 (defun tty-color-define (name index &optional rgb frame)
   "Specify a tty color by its NAME, terminal INDEX and RGB values.
@@ -861,24 +866,29 @@
 (defun tty-color-approximate (rgb &optional frame)
   "Given a list of 3 rgb values in RGB, find the color in `tty-color-alist'
 which is the best approximation in the 3-dimensional RGB space,
-and return the index associated with the approximating color.
-Each value of the RGB triplet has to be scaled to the 0..255 range.
+and return its description.
+
+Value is a list of the form \(NAME INDEX R G B\).  Note that the returned
+NAME is not necessarily the same string as the argument COLOR, because
+the latter might need to be approximated if it is not supported directly.
+
+Each value of the RGB triplet should be in the range 0..65535 range.
 FRAME defaults to the selected frame."
   (let* ((color-list (tty-color-alist frame))
 	 (candidate (car color-list))
 	 (best-distance 195076)	;; 3 * 255^2 + 15
+	 (r (ash (car rgb) -8))
+	 (g (ash (cadr rgb) -8))
+	 (b (ash (nth 2 rgb) -8))
 	 best-color)
     (while candidate
-      (let* ((try-rgb (cddr candidate))
-	     (r (car rgb))
-	     (g (cadr rgb))
-	     (b (nth 2 rgb))
-	     ;; If the approximated color is not close enough to the
-	     ;; gray diagonal of the RGB cube, favor non-gray colors.
-	     ;; (The number 0.065 is an empirical ad-hoc'ery.)
-	     (favor-non-gray (>= (tty-color-off-gray-diag r g b) 0.065))
-	     try-r try-g try-b
-	     dif-r dif-g dif-b dist)
+      (let ((try-rgb (cddr candidate))
+	    ;; If the approximated color is not close enough to the
+	    ;; gray diagonal of the RGB cube, favor non-gray colors.
+	    ;; (The number 0.065 is an empirical ad-hoc'ery.)
+	    (favor-non-gray (>= (tty-color-off-gray-diag r g b) 0.065))
+	    try-r try-g try-b
+	    dif-r dif-g dif-b dist)
 	;; If the RGB values of the candidate color are unknown, we
 	;; never consider it for approximating another color.
 	(if try-rgb
@@ -886,9 +896,9 @@
 	      (setq try-r (lsh (car try-rgb) -8)
 		    try-g (lsh (cadr try-rgb) -8)
 		    try-b (lsh (nth 2 try-rgb) -8))
-	      (setq dif-r (- (car rgb) try-r)
-		    dif-g (- (cadr rgb) try-g)
-		    dif-b (- (nth 2 rgb) try-b))
+	      (setq dif-r (- r try-r)
+		    dif-g (- g try-g)
+		    dif-b (- b try-b))
 	      (setq dist (+ (* dif-r dif-r) (* dif-g dif-g) (* dif-b dif-b)))
 	      (if (and (< dist best-distance)
 		       ;; The candidate color is on the gray diagonal
@@ -899,7 +909,68 @@
 			best-color candidate)))))
       (setq color-list (cdr color-list))
       (setq candidate (car color-list)))
-    (cadr best-color)))
+    best-color))
+
+(defun tty-color-standard-values (color)
+"Return standard RGB values of the color COLOR.
+
+The result is a list of integer RGB values--(RED GREEN BLUE).
+These values range from 0 to 65535; white is (65535 65535 65535).
+
+The returned value reflects the standard X definition of COLOR,
+regardless of whether the terminal can display it, so the return value
+should be the same regardless of what display is being used."
+  (let ((len (length color)))
+    (cond ((and (>= len 4) ;; X-style "#XXYYZZ" color spec
+		(eq (aref color 0) ?#)
+		(member (aref color 1)
+			'(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9
+			     ?a ?b ?c ?d ?e ?f)))
+	   ;; Translate the string "#XXYYZZ" into a list
+	   ;; of numbers (XX YY ZZ).  If the primary colors
+	   ;; are specified with less than 4 hex digits,
+	   ;; the used digits represent the most significant
+	   ;; bits of the value (e.g. #XYZ = #X000Y000Z000).
+	   (let* ((ndig (/ (- len 1) 3))
+		  (i1 1)
+		  (i2 (+ i1 ndig))
+		  (i3 (+ i2 ndig)))
+	     (list
+	      (lsh
+	       (string-to-number (substring color i1 i2) 16)
+	       (* 4 (- 4 ndig)))
+	      (lsh
+	       (string-to-number (substring color i2 i3) 16)
+	       (* 4 (- 4 ndig)))
+	      (lsh
+	       (string-to-number (substring color i3) 16)
+	       (* 4 (- 4 ndig))))))
+	  ((and (>= len 9) ;; X-style RGB:xx/yy/zz color spec
+		(string= (substring color 0 4) "rgb:"))
+	   ;; Translate the string "RGB:XX/YY/ZZ" into a list
+	   ;; of numbers (XX YY ZZ).  If fewer than 4 hex
+	   ;; digits are used, they represent the fraction
+	   ;; of the maximum value (RGB:X/Y/Z = #XXXXYYYYZZZZ).
+	   (let* ((ndig (/ (- len 3) 3))
+		  (maxval (1- (ash 1 (* 4 (- ndig 1)))))
+		  (i1 4)
+		  (i2 (+ i1 ndig))
+		  (i3 (+ i2 ndig)))
+	     (list
+	      (/ (* (string-to-number
+		     (substring color i1 (- i2 1)) 16)
+		    255)
+		 maxval)
+	      (/ (* (string-to-number
+		     (substring color i2 (- i3 1)) 16)
+		    255)
+		 maxval)
+	      (/ (* (string-to-number
+		     (substring color i3) 16)
+		    255)
+		 maxval))))
+	  (t
+	   (cdr (assoc color color-name-rgb-alist))))))
 
 (defun tty-color-translate (color &optional frame)
   "Given a color COLOR, return the index of the corresponding TTY color.
@@ -918,65 +989,7 @@
 name of a color in `color-name-rgb-alist', the returned value is nil.
 
 If FRAME is unspecified or nil, it defaults to the selected frame."
-  (and (stringp color)
-       (let* ((color (tty-color-canonicalize color))
-	      (idx (cadr (assoc color (tty-color-alist frame)))))
-	 (or idx
-	     (let* ((len (length color))
-		    (maxval 256)
-		    (rgb
-		     (cond
-		      ((and (>= len 4)  ;; X-style "#XXYYZZ" color spec
-			    (eq (aref color 0) ?#)
-			    (member (aref color 1)
-				    '(?0 ?1 ?2 ?3 ?4 ?5 ?6 ?7 ?8 ?9
-					 ?a ?b ?c ?d ?e ?f)))
-		       ;; Translate the string "#XXYYZZ" into a list
-		       ;; of numbers (XX YY ZZ).  If the primary colors
-		       ;; are specified with less than 4 hex digits,
-		       ;; the used digits represent the most significant
-		       ;; bits of the value (e.g. #XYZ = #X000Y000Z000).
-		       (let* ((ndig (/ (- len 1) 3))
-			      (i1 1)
-			      (i2 (+ i1 ndig))
-			      (i3 (+ i2 ndig)))
-			 (list
-			  (lsh
-			   (string-to-number (substring color i1 i2) 16)
-			   (* 4 (- 2 ndig)))
-			  (lsh
-			   (string-to-number (substring color i2 i3) 16)
-			   (* 4 (- 2 ndig)))
-			  (lsh
-			   (string-to-number (substring color i3) 16)
-			   (* 4 (- 2 ndig))))))
-		      ((and (>= len 9)  ;; X-style RGB:xx/yy/zz color spec
-			    (string= (substring color 0 4) "rgb:"))
-		       ;; Translate the string "RGB:XX/YY/ZZ" into a list
-		       ;; of numbers (XX YY ZZ).  If fewer than 4 hex
-		       ;; digits are used, they represent the fraction
-		       ;; of the maximum value (RGB:X/Y/Z = #XXXXYYYYZZZZ).
-		       (let* ((ndig (/ (- len 3) 3))
-			      (maxval (1- (expt 16 (- ndig 1))))
-			      (i1 4)
-			      (i2 (+ i1 ndig))
-			      (i3 (+ i2 ndig)))
-			 (list
-			  (/ (* (string-to-number
-				 (substring color i1 (- i2 1)) 16)
-				255)
-			     maxval)
-			  (/ (* (string-to-number
-				 (substring color i2 (- i3 1)) 16)
-				255)
-			     maxval)
-			  (/ (* (string-to-number
-				 (substring color i3) 16)
-				255)
-			     maxval))))
-		      (t
-		       (cdr (assoc color color-name-rgb-alist))))))
-	       (and rgb (tty-color-approximate rgb frame)))))))
+  (cadr (tty-color-desc color frame)))
 
 (defun tty-color-by-index (idx &optional frame)
   "Given a numeric index of a tty color, return its description.
@@ -1001,27 +1014,18 @@
 The value is a list of integer RGB values--\(RED GREEN BLUE\).
 These values range from 0 to 65535; white is (65535 65535 65535).
 If FRAME is omitted or nil, use the selected frame."
-  (let* ((frame (or frame (selected-frame)))
-	 (color (tty-color-canonicalize color))
-	 (supported (assoc color (tty-color-alist frame))))
-    (or (and supported (cddr supported)) ; full spec in tty-color-alist
-	(and supported	; no RGB values in tty-color-alist: use X RGB values
-	     (assoc color color-name-rgb-alist)
-	     (cddr
-	      (tty-color-by-index
-	       (tty-color-approximate
-		(cdr (assoc color color-name-rgb-alist)) frame) frame)))
-	(cddr (tty-color-by-index (tty-color-translate color frame) frame)))))
+  (cddr (tty-color-desc color frame)))
 
 (defun tty-color-desc (color &optional frame)
   "Return the description of the color COLOR for a character terminal.
-
-FRAME, if unspecified or nil, defaults to the selected frame.
-Value is a list of the form \(NAME INDEX R G B\).  Note that the returned
-NAME is not necessarily the same string as the argument COLOR, because
-the latter might need to be approximated if it is not supported directly."
-  (let ((idx (tty-color-translate color frame)))
-    (tty-color-by-index idx frame)))
+Value is a list of the form \(NAME INDEX R G B\).  The returned NAME or
+RGB value may not be the same as the argument COLOR, because the latter
+might need to be approximated if it is not supported directly."
+  (and (stringp color)
+       (let ((color (tty-color-canonicalize color)))
+	  (or (assoc color (tty-color-alist frame))
+	      (let ((rgb (tty-color-standard-values color)))
+		(and rgb (tty-color-approximate rgb frame)))))))
 
 (defun tty-color-gray-shades (&optional display)
   "Return the number of gray colors supported by DISPLAY's terminal.