Tk Source Code

Check-in [26bdfc04]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:rfe-3503317: XParseColor speedup
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-4-branch
Files: files | file ages | folders
SHA1: 26bdfc04b7db0b934c0a29d65e466e65eb5327bc
User & Date: jan.nijtmans 2012-03-18 21:00:37
Context
2012-03-21
22:17
[Bug 2809525] Abort on overlong color name check-in: 46289902 user: jan.nijtmans tags: core-8-4-branch
2012-03-19
14:26
experiment: use web colors in stead of X11 colors (win only) check-in: 79468fd3 user: jan.nijtmans tags: jn-web-colors
2012-03-18
21:02
rfe-3503317: XParseColor speedup check-in: 5559e494 user: jan.nijtmans tags: core-8-5-branch
21:00
rfe-3503317: XParseColor speedup check-in: 26bdfc04 user: jan.nijtmans tags: core-8-4-branch
16:45
test output in Xorg rgb.txt format Closed-Leaf check-in: 588cd445 user: jan.nijtmans tags: rfe-3503317
2012-03-15
20:45
workaround for _strtoi64 determination on win64 (autoconf-2.13 issue) check-in: 11cf61f5 user: jan.nijtmans tags: core-8-4-branch
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to ChangeLog.







1
2
3
4
5
6
7






2012-03-04  Jan Nijtmans  <[email protected]>

	* unix/tcl.m4:    Patch from the cygwin folks
	* unix/configure: (re-generated)

2012-02-28  Donal K. Fellows  <[email protected]>

>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
11
12
13
2012-03-18  Jan Nijtmans  <[email protected]>

	* xlib/xcolors.c:   [RFE 3503317]: XParseColor speedup
	* xlib/rgb.txt:     List of all colors accepted by Tk in Xorg format
	* tests/color.test: Added test case for all colors in rgb.txt

2012-03-04  Jan Nijtmans  <[email protected]>

	* unix/tcl.m4:    Patch from the cygwin folks
	* unix/configure: (re-generated)

2012-02-28  Donal K. Fellows  <[email protected]>

Changes to tests/color.test.

71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Given a list of red, green, and blue intensities, scale them
# down to a 0-255 range.
#
# Arguments:
# vals -	List of intensities.

proc c255 {vals} {
    list [expr [lindex $vals 0]/256] [expr [lindex $vals 1]/256] \
	    [expr [lindex $vals 2]/256]
}

# colorsFree --
#
# Returns 1 if there appear to be free colormap entries in a window,
# 0 otherwise.
#







|
|







71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Given a list of red, green, and blue intensities, scale them
# down to a 0-255 range.
#
# Arguments:
# vals -	List of intensities.

proc c255 {vals} {
    list [expr {[lindex $vals 0]/256}] [expr {[lindex $vals 1]/256}] \
	    [expr {[lindex $vals 2]/256}]
}

# colorsFree --
#
# Returns 1 if there appear to be free colormap entries in a window,
# 0 otherwise.
#
150
151
152
153
154
155
156













157
158
159
160
161
162
163
    button .t.b -foreground $x -text Second
    pack .t.b -side top
    lappend result [testcolor purple]
    button .b2 -foreground $x -text Third
    pack .b2 -side top
    lappend result [testcolor purple]
} {{{1 1}} {{1 1} {1 0}} {{1 0} {2 1}}}














test color-2.1 {Tk_GetColor procedure} colorsFree {
    c255 [winfo rgb .t #FF0000]
} {255 0 0}
test color-2.2 {Tk_GetColor procedure} colorsFree {
    list [catch {winfo rgb .t noname} msg] $msg
} {1 {unknown color name "noname"}}







>
>
>
>
>
>
>
>
>
>
>
>
>







150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
    button .t.b -foreground $x -text Second
    pack .t.b -side top
    lappend result [testcolor purple]
    button .b2 -foreground $x -text Third
    pack .b2 -side top
    lappend result [testcolor purple]
} {{{1 1}} {{1 1} {1 0}} {{1 0} {2 1}}}
test color-1.5 {Color table} nonPortable {
    set fd [open ../xlib/rgb.txt]
    set result {}
    while {[gets $fd line] != -1} {
    	if {[string index $line 0] == "!"} continue
	set rgb [c255 [winfo rgb . [lrange $line 3 end]]]
	if {$rgb != [lrange $line 0 2] } {
		append result $line\n
	}
	
    }
    return $result
} {}

test color-2.1 {Tk_GetColor procedure} colorsFree {
    c255 [winfo rgb .t #FF0000]
} {255 0 0}
test color-2.2 {Tk_GetColor procedure} colorsFree {
    list [catch {winfo rgb .t noname} msg] $msg
} {1 {unknown color name "noname"}}

Added xlib/rgb.txt.





































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
!
240 248 255		aliceBlue
250 235 215		antiqueWhite
255 239 219		antiqueWhite1
238 223 204		antiqueWhite2
205 192 176		antiqueWhite3
139 131 120		antiqueWhite4
127 255 212		aquamarine
127 255 212		aquamarine1
118 238 198		aquamarine2
102 205 170		aquamarine3
 69 139 116		aquamarine4
240 255 255		azure
240 255 255		azure1
224 238 238		azure2
193 205 205		azure3
131 139 139		azure4
245 245 220		beige
255 228 196		bisque
255 228 196		bisque1
238 213 183		bisque2
205 183 158		bisque3
139 125 107		bisque4
  0   0   0		black
255 235 205		blanchedAlmond
  0   0 255		blue
  0   0 255		blue1
  0   0 238		blue2
  0   0 205		blue3
  0   0 139		blue4
138  43 226		blueViolet
165  42  42		brown
255  64  64		brown1
238  59  59		brown2
205  51  51		brown3
139  35  35		brown4
222 184 135		burlywood
255 211 155		burlywood1
238 197 145		burlywood2
205 170 125		burlywood3
139 115  85		burlywood4
 95 158 160		cadetBlue
152 245 255		cadetBlue1
142 229 238		cadetBlue2
122 197 205		cadetBlue3
 83 134 139		cadetBlue4
127 255   0		chartreuse
127 255   0		chartreuse1
118 238   0		chartreuse2
102 205   0		chartreuse3
 69 139   0		chartreuse4
210 105  30		chocolate
255 127  36		chocolate1
238 118  33		chocolate2
205 102  29		chocolate3
139  69  19		chocolate4
255 127  80		coral
255 114  86		coral1
238 106  80		coral2
205  91  69		coral3
139  62  47		coral4
100 149 237		cornflowerBlue
255 248 220		cornsilk
255 248 220		cornsilk1
238 232 205		cornsilk2
205 200 177		cornsilk3
139 136 120		cornsilk4
  0 255 255		cyan
  0 255 255		cyan1
  0 238 238		cyan2
  0 205 205		cyan3
  0 139 139		cyan4
  0   0 139		darkBlue
  0 139 139		darkCyan
184 134  11		darkGoldenrod
255 185  15		darkGoldenrod1
238 173  14		darkGoldenrod2
205 149  12		darkGoldenrod3
139 101   8		darkGoldenrod4
169 169 169		darkGray
  0 100   0		darkGreen
169 169 169		darkGrey
189 183 107		darkKhaki
139   0 139		darkMagenta
 85 107  47		darkOliveGreen
202 255 112		darkOliveGreen1
188 238 104		darkOliveGreen2
162 205  90		darkOliveGreen3
110 139  61		darkOliveGreen4
255 140   0		darkOrange
255 127   0		darkOrange1
238 118   0		darkOrange2
205 102   0		darkOrange3
139  69   0		darkOrange4
153  50 204		darkOrchid
191  62 255		darkOrchid1
178  58 238		darkOrchid2
154  50 205		darkOrchid3
104  34 139		darkOrchid4
139   0   0		darkRed
233 150 122		darkSalmon
143 188 143		darkSeaGreen
193 255 193		darkSeaGreen1
180 238 180		darkSeaGreen2
155 205 155		darkSeaGreen3
105 139 105		darkSeaGreen4
 72  61 139		darkSlateBlue
 47  79  79		darkSlateGray
151 255 255		darkSlateGray1
141 238 238		darkSlateGray2
121 205 205		darkSlateGray3
 82 139 139		darkSlateGray4
 47  79  79		darkSlateGrey
  0 206 209		darkTurquoise
148   0 211		darkViolet
255  20 147		deepPink
255  20 147		deepPink1
238  18 137		deepPink2
205  16 118		deepPink3
139  10  80		deepPink4
  0 191 255		deepSkyBlue
  0 191 255		deepSkyBlue1
  0 178 238		deepSkyBlue2
  0 154 205		deepSkyBlue3
  0 104 139		deepSkyBlue4
105 105 105		dimGray
105 105 105		dimGrey
 30 144 255		dodgerBlue
 30 144 255		dodgerBlue1
 28 134 238		dodgerBlue2
 24 116 205		dodgerBlue3
 16  78 139		dodgerBlue4
178  34  34		firebrick
255  48  48		firebrick1
238  44  44		firebrick2
205  38  38		firebrick3
139  26  26		firebrick4
255 250 240		floralWhite
 34 139  34		forestGreen
220 220 220		gainsboro
248 248 255		ghostWhite
255 215   0		gold
255 215   0		gold1
238 201   0		gold2
205 173   0		gold3
139 117   0		gold4
218 165  32		goldenrod
255 193  37		goldenrod1
238 180  34		goldenrod2
205 155  29		goldenrod3
139 105  20		goldenrod4
190 190 190		gray
  3   3   3		gray1
  5   5   5		gray2
  8   8   8		gray3
 10  10  10		gray4
 13  13  13		gray5
 15  15  15		gray6
 18  18  18		gray7
 20  20  20		gray8
 23  23  23		gray9
 26  26  26		gray10
 28  28  28		gray11
 31  31  31		gray12
 33  33  33		gray13
 36  36  36		gray14
 38  38  38		gray15
 41  41  41		gray16
 43  43  43		gray17
 46  46  46		gray18
 48  48  48		gray19
 51  51  51		gray20
 54  54  54		gray21
 56  56  56		gray22
 59  59  59		gray23
 61  61  61		gray24
 64  64  64		gray25
 66  66  66		gray26
 69  69  69		gray27
 71  71  71		gray28
 74  74  74		gray29
 77  77  77		gray30
 79  79  79		gray31
 82  82  82		gray32
 84  84  84		gray33
 87  87  87		gray34
 89  89  89		gray35
 92  92  92		gray36
 94  94  94		gray37
 97  97  97		gray38
 99  99  99		gray39
102 102 102		gray40
105 105 105		gray41
107 107 107		gray42
110 110 110		gray43
112 112 112		gray44
115 115 115		gray45
117 117 117		gray46
120 120 120		gray47
122 122 122		gray48
125 125 125		gray49
127 127 127		gray50
130 130 130		gray51
133 133 133		gray52
135 135 135		gray53
138 138 138		gray54
140 140 140		gray55
143 143 143		gray56
145 145 145		gray57
148 148 148		gray58
150 150 150		gray59
153 153 153		gray60
156 156 156		gray61
158 158 158		gray62
161 161 161		gray63
163 163 163		gray64
166 166 166		gray65
168 168 168		gray66
171 171 171		gray67
173 173 173		gray68
176 176 176		gray69
179 179 179		gray70
181 181 181		gray71
184 184 184		gray72
186 186 186		gray73
189 189 189		gray74
191 191 191		gray75
194 194 194		gray76
196 196 196		gray77
199 199 199		gray78
201 201 201		gray79
204 204 204		gray80
207 207 207		gray81
209 209 209		gray82
212 212 212		gray83
214 214 214		gray84
217 217 217		gray85
219 219 219		gray86
222 222 222		gray87
224 224 224		gray88
227 227 227		gray89
229 229 229		gray90
232 232 232		gray91
235 235 235		gray92
237 237 237		gray93
240 240 240		gray94
242 242 242		gray95
245 245 245		gray96
247 247 247		gray97
250 250 250		gray98
252 252 252		gray99
255 255 255		gray100
  0   0   0		gray0
  0 255   0		green
  0 255   0		green1
  0 238   0		green2
  0 205   0		green3
  0 139   0		green4
173 255  47		greenYellow
190 190 190		grey
  3   3   3		grey1
  5   5   5		grey2
  8   8   8		grey3
 10  10  10		grey4
 13  13  13		grey5
 15  15  15		grey6
 18  18  18		grey7
 20  20  20		grey8
 23  23  23		grey9
 26  26  26		grey10
 28  28  28		grey11
 31  31  31		grey12
 33  33  33		grey13
 36  36  36		grey14
 38  38  38		grey15
 41  41  41		grey16
 43  43  43		grey17
 46  46  46		grey18
 48  48  48		grey19
 51  51  51		grey20
 54  54  54		grey21
 56  56  56		grey22
 59  59  59		grey23
 61  61  61		grey24
 64  64  64		grey25
 66  66  66		grey26
 69  69  69		grey27
 71  71  71		grey28
 74  74  74		grey29
 77  77  77		grey30
 79  79  79		grey31
 82  82  82		grey32
 84  84  84		grey33
 87  87  87		grey34
 89  89  89		grey35
 92  92  92		grey36
 94  94  94		grey37
 97  97  97		grey38
 99  99  99		grey39
102 102 102		grey40
105 105 105		grey41
107 107 107		grey42
110 110 110		grey43
112 112 112		grey44
115 115 115		grey45
117 117 117		grey46
120 120 120		grey47
122 122 122		grey48
125 125 125		grey49
127 127 127		grey50
130 130 130		grey51
133 133 133		grey52
135 135 135		grey53
138 138 138		grey54
140 140 140		grey55
143 143 143		grey56
145 145 145		grey57
148 148 148		grey58
150 150 150		grey59
153 153 153		grey60
156 156 156		grey61
158 158 158		grey62
161 161 161		grey63
163 163 163		grey64
166 166 166		grey65
168 168 168		grey66
171 171 171		grey67
173 173 173		grey68
176 176 176		grey69
179 179 179		grey70
181 181 181		grey71
184 184 184		grey72
186 186 186		grey73
189 189 189		grey74
191 191 191		grey75
194 194 194		grey76
196 196 196		grey77
199 199 199		grey78
201 201 201		grey79
204 204 204		grey80
207 207 207		grey81
209 209 209		grey82
212 212 212		grey83
214 214 214		grey84
217 217 217		grey85
219 219 219		grey86
222 222 222		grey87
224 224 224		grey88
227 227 227		grey89
229 229 229		grey90
232 232 232		grey91
235 235 235		grey92
237 237 237		grey93
240 240 240		grey94
242 242 242		grey95
245 245 245		grey96
247 247 247		grey97
250 250 250		grey98
252 252 252		grey99
255 255 255		grey100
  0   0   0		grey0
240 255 240		honeydew
240 255 240		honeydew1
224 238 224		honeydew2
193 205 193		honeydew3
131 139 131		honeydew4
255 105 180		hotPink
255 110 180		hotPink1
238 106 167		hotPink2
205  96 144		hotPink3
139  58  98		hotPink4
205  92  92		indianRed
255 106 106		indianRed1
238  99  99		indianRed2
205  85  85		indianRed3
139  58  58		indianRed4
255 255 240		ivory
255 255 240		ivory1
238 238 224		ivory2
205 205 193		ivory3
139 139 131		ivory4
240 230 140		khaki
255 246 143		khaki1
238 230 133		khaki2
205 198 115		khaki3
139 134  78		khaki4
230 230 250		lavender
255 240 245		lavenderBlush
255 240 245		lavenderBlush1
238 224 229		lavenderBlush2
205 193 197		lavenderBlush3
139 131 134		lavenderBlush4
124 252   0		lawnGreen
255 250 205		lemonChiffon
255 250 205		lemonChiffon1
238 233 191		lemonChiffon2
205 201 165		lemonChiffon3
139 137 112		lemonChiffon4
173 216 230		lightBlue
191 239 255		lightBlue1
178 223 238		lightBlue2
154 192 205		lightBlue3
104 131 139		lightBlue4
240 128 128		lightCoral
224 255 255		lightCyan
224 255 255		lightCyan1
209 238 238		lightCyan2
180 205 205		lightCyan3
122 139 139		lightCyan4
238 221 130		lightGoldenrod
255 236 139		lightGoldenrod1
238 220 130		lightGoldenrod2
205 190 112		lightGoldenrod3
139 129  76		lightGoldenrod4
250 250 210		lightGoldenrodYellow
211 211 211		lightGray
144 238 144		lightGreen
211 211 211		lightGrey
255 182 193		lightPink
255 174 185		lightPink1
238 162 173		lightPink2
205 140 149		lightPink3
139  95 101		lightPink4
255 160 122		lightSalmon
255 160 122		lightSalmon1
238 149 114		lightSalmon2
205 129  98		lightSalmon3
139  87  66		lightSalmon4
 32 178 170		lightSeaGreen
135 206 250		lightSkyBlue
176 226 255		lightSkyBlue1
164 211 238		lightSkyBlue2
141 182 205		lightSkyBlue3
 96 123 139		lightSkyBlue4
132 112 255		lightSlateBlue
119 136 153		lightSlateGray
119 136 153		lightSlateGrey
176 196 222		lightSteelBlue
202 225 255		lightSteelBlue1
188 210 238		lightSteelBlue2
162 181 205		lightSteelBlue3
110 123 139		lightSteelBlue4
255 255 224		lightYellow
255 255 224		lightYellow1
238 238 209		lightYellow2
205 205 180		lightYellow3
139 139 122		lightYellow4
 50 205  50		limeGreen
250 240 230		linen
255   0 255		magenta
255   0 255		magenta1
238   0 238		magenta2
205   0 205		magenta3
139   0 139		magenta4
176  48  96		maroon
255  52 179		maroon1
238  48 167		maroon2
205  41 144		maroon3
139  28  98		maroon4
102 205 170		mediumAquamarine
  0   0 205		mediumBlue
186  85 211		mediumOrchid
224 102 255		mediumOrchid1
209  95 238		mediumOrchid2
180  82 205		mediumOrchid3
122  55 139		mediumOrchid4
147 112 219		mediumPurple
171 130 255		mediumPurple1
159 121 238		mediumPurple2
137 104 205		mediumPurple3
 93  71 139		mediumPurple4
 60 179 113		mediumSeaGreen
123 104 238		mediumSlateBlue
  0 250 154		mediumSpringGreen
 72 209 204		mediumTurquoise
199  21 133		mediumVioletRed
 25  25 112		midnightBlue
245 255 250		mintCream
255 228 225		mistyRose
255 228 225		mistyRose1
238 213 210		mistyRose2
205 183 181		mistyRose3
139 125 123		mistyRose4
255 228 181		moccasin
255 222 173		navajoWhite
255 222 173		navajoWhite1
238 207 161		navajoWhite2
205 179 139		navajoWhite3
139 121  94		navajoWhite4
  0   0 128		navy
  0   0 128		navyBlue
253 245 230		oldLace
107 142  35		oliveDrab
192 255  62		oliveDrab1
179 238  58		oliveDrab2
154 205  50		oliveDrab3
105 139  34		oliveDrab4
255 165   0		orange
255 165   0		orange1
238 154   0		orange2
205 133   0		orange3
139  90   0		orange4
255  69   0		orangeRed
255  69   0		orangeRed1
238  64   0		orangeRed2
205  55   0		orangeRed3
139  37   0		orangeRed4
218 112 214		orchid
255 131 250		orchid1
238 122 233		orchid2
205 105 201		orchid3
139  71 137		orchid4
238 232 170		paleGoldenrod
152 251 152		paleGreen
154 255 154		paleGreen1
144 238 144		paleGreen2
124 205 124		paleGreen3
 84 139  84		paleGreen4
175 238 238		paleTurquoise
187 255 255		paleTurquoise1
174 238 238		paleTurquoise2
150 205 205		paleTurquoise3
102 139 139		paleTurquoise4
219 112 147		paleVioletRed
255 130 171		paleVioletRed1
238 121 159		paleVioletRed2
205 104 137		paleVioletRed3
139  71  93		paleVioletRed4
255 239 213		papayaWhip
255 218 185		peachPuff
255 218 185		peachPuff1
238 203 173		peachPuff2
205 175 149		peachPuff3
139 119 101		peachPuff4
205 133  63		peru
255 192 203		pink
255 181 197		pink1
238 169 184		pink2
205 145 158		pink3
139  99 108		pink4
221 160 221		plum
255 187 255		plum1
238 174 238		plum2
205 150 205		plum3
139 102 139		plum4
176 224 230		powderBlue
160  32 240		purple
155  48 255		purple1
145  44 238		purple2
125  38 205		purple3
 85  26 139		purple4
255   0   0		red
255   0   0		red1
238   0   0		red2
205   0   0		red3
139   0   0		red4
188 143 143		rosyBrown
255 193 193		rosyBrown1
238 180 180		rosyBrown2
205 155 155		rosyBrown3
139 105 105		rosyBrown4
 65 105 225		royalBlue
 72 118 255		royalBlue1
 67 110 238		royalBlue2
 58  95 205		royalBlue3
 39  64 139		royalBlue4
139  69  19		saddleBrown
250 128 114		salmon
255 140 105		salmon1
238 130  98		salmon2
205 112  84		salmon3
139  76  57		salmon4
244 164  96		sandyBrown
 46 139  87		seaGreen
 84 255 159		seaGreen1
 78 238 148		seaGreen2
 67 205 128		seaGreen3
 46 139  87		seaGreen4
255 245 238		seashell
255 245 238		seashell1
238 229 222		seashell2
205 197 191		seashell3
139 134 130		seashell4
160  82  45		sienna
255 130  71		sienna1
238 121  66		sienna2
205 104  57		sienna3
139  71  38		sienna4
135 206 235		skyBlue
135 206 255		skyBlue1
126 192 238		skyBlue2
108 166 205		skyBlue3
 74 112 139		skyBlue4
106  90 205		slateBlue
131 111 255		slateBlue1
122 103 238		slateBlue2
105  89 205		slateBlue3
 71  60 139		slateBlue4
112 128 144		slateGray
198 226 255		slateGray1
185 211 238		slateGray2
159 182 205		slateGray3
108 123 139		slateGray4
112 128 144		slateGrey
255 250 250		snow
255 250 250		snow1
238 233 233		snow2
205 201 201		snow3
139 137 137		snow4
  0 255 127		springGreen
  0 255 127		springGreen1
  0 238 118		springGreen2
  0 205 102		springGreen3
  0 139  69		springGreen4
 70 130 180		steelBlue
 99 184 255		steelBlue1
 92 172 238		steelBlue2
 79 148 205		steelBlue3
 54 100 139		steelBlue4
210 180 140		tan
255 165  79		tan1
238 154  73		tan2
205 133  63		tan3
139  90  43		tan4
216 191 216		thistle
255 225 255		thistle1
238 210 238		thistle2
205 181 205		thistle3
139 123 139		thistle4
255  99  71		tomato
255  99  71		tomato1
238  92  66		tomato2
205  79  57		tomato3
139  54  38		tomato4
 64 224 208		turquoise
  0 245 255		turquoise1
  0 229 238		turquoise2
  0 197 205		turquoise3
  0 134 139		turquoise4
238 130 238		violet
208  32 144		violetRed
255  62 150		violetRed1
238  58 140		violetRed2
205  50 120		violetRed3
139  34  82		violetRed4
245 222 179		wheat
255 231 186		wheat1
238 216 174		wheat2
205 186 150		wheat3
139 126 102		wheat4
255 255 255		white
245 245 245		whiteSmoke
255 255   0		yellow
255 255   0		yellow1
238 238   0		yellow2
205 205   0		yellow3
139 139   0		yellow4
154 205  50		yellowGreen

Changes to xlib/xcolors.c.

1
2
3
4
5
6
7

8
9
10
11
12
13
14
15
16

17
18
19

20
21
22
23
24
25
26

27
28
29

30

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179

180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468

469
470
471

472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556


557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585

586
587
588
589
590
591
592

593
594

595
596
597
598
599
600
601
602
603
604
605
606
607

608
609
610
611
612
613
614
615
616
617
618
619
620
621


622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657



658
659
660
661
662
663
664
665
666
667
668
669




670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706

707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734

735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757

758
759
760
761
762


763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805


806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
/*
 * xcolors.c --
 *
 *	This file contains the routines used to map from X color names to RGB
 *	and pixel values.
 *
 * Copyright (c) 1996 by Sun Microsystems, Inc.

 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tkInt.h"

/*
 * Forward declarations for functions used only in this file.

 */

static int	FindColor(const char *name, XColor *colorPtr);


/*
 * Define an array that defines the mapping from color names to RGB values.
 * Note that this array must be kept sorted alphabetically so that the binary
 * search used in XParseColor will succeed.
 */


typedef struct {
    const char *name;
    unsigned char red, green, blue;

} XColorEntry;


static const XColorEntry xColors[] = {
     { "alice blue", 240, 248, 255 },
     { "AliceBlue", 240, 248, 255 },
     { "antique white", 250, 235, 215 },
     { "AntiqueWhite", 250, 235, 215 },
     { "AntiqueWhite1", 255, 239, 219 },
     { "AntiqueWhite2", 238, 223, 204 },
     { "AntiqueWhite3", 205, 192, 176 },
     { "AntiqueWhite4", 139, 131, 120 },
     { "aquamarine", 127, 255, 212 },
     { "aquamarine1", 127, 255, 212 },
     { "aquamarine2", 118, 238, 198 },
     { "aquamarine3", 102, 205, 170 },
     { "aquamarine4", 69, 139, 116 },
     { "azure", 240, 255, 255 },
     { "azure1", 240, 255, 255 },
     { "azure2", 224, 238, 238 },
     { "azure3", 193, 205, 205 },
     { "azure4", 131, 139, 139 },
     { "beige", 245, 245, 220 },
     { "bisque", 255, 228, 196 },
     { "bisque1", 255, 228, 196 },
     { "bisque2", 238, 213, 183 },
     { "bisque3", 205, 183, 158 },
     { "bisque4", 139, 125, 107 },
     { "black", 0, 0, 0 },
     { "blanched almond", 255, 235, 205 },
     { "BlanchedAlmond", 255, 235, 205 },
     { "blue", 0, 0, 255 },
     { "blue violet", 138, 43, 226 },
     { "blue1", 0, 0, 255 },
     { "blue2", 0, 0, 238 },
     { "blue3", 0, 0, 205 },
     { "blue4", 0, 0, 139 },
     { "BlueViolet", 138, 43, 226 },
     { "brown", 165, 42, 42 },
     { "brown1", 255, 64, 64 },
     { "brown2", 238, 59, 59 },
     { "brown3", 205, 51, 51 },
     { "brown4", 139, 35, 35 },
     { "burlywood", 222, 184, 135 },

     { "burlywood1", 255, 211, 155 },
     { "burlywood2", 238, 197, 145 },
     { "burlywood3", 205, 170, 125 },
     { "burlywood4", 139, 115, 85 },
     { "cadet blue", 95, 158, 160 },
     { "CadetBlue", 95, 158, 160 },
     { "CadetBlue1", 152, 245, 255 },
     { "CadetBlue2", 142, 229, 238 },
     { "CadetBlue3", 122, 197, 205 },
     { "CadetBlue4", 83, 134, 139 },
     { "chartreuse", 127, 255, 0 },
     { "chartreuse1", 127, 255, 0 },
     { "chartreuse2", 118, 238, 0 },
     { "chartreuse3", 102, 205, 0 },
     { "chartreuse4", 69, 139, 0 },
     { "chocolate", 210, 105, 30 },
     { "chocolate1", 255, 127, 36 },
     { "chocolate2", 238, 118, 33 },
     { "chocolate3", 205, 102, 29 },
     { "chocolate4", 139, 69, 19 },
     { "coral", 255, 127, 80 },
     { "coral1", 255, 114, 86 },
     { "coral2", 238, 106, 80 },
     { "coral3", 205, 91, 69 },
     { "coral4", 139, 62, 47 },
     { "cornflower blue", 100, 149, 237 },
     { "CornflowerBlue", 100, 149, 237 },
     { "cornsilk", 255, 248, 220 },
     { "cornsilk1", 255, 248, 220 },
     { "cornsilk2", 238, 232, 205 },
     { "cornsilk3", 205, 200, 177 },
     { "cornsilk4", 139, 136, 120 },
     { "cyan", 0, 255, 255 },
     { "cyan1", 0, 255, 255 },
     { "cyan2", 0, 238, 238 },
     { "cyan3", 0, 205, 205 },
     { "cyan4", 0, 139, 139 },
     { "dark blue", 0, 0, 139 },
     { "dark cyan", 0, 139, 139 },
     { "dark goldenrod", 184, 134, 11 },
     { "dark gray", 169, 169, 169 },
     { "dark green", 0, 100, 0 },
     { "dark grey", 169, 169, 169 },
     { "dark khaki", 189, 183, 107 },
     { "dark magenta", 139, 0, 139 },
     { "dark olive green", 85, 107, 47 },
     { "dark orange", 255, 140, 0 },
     { "dark orchid", 153, 50, 204 },
     { "dark red", 139, 0, 0 },
     { "dark salmon", 233, 150, 122 },
     { "dark sea green", 143, 188, 143 },
     { "dark slate blue", 72, 61, 139 },
     { "dark slate gray", 47, 79, 79 },
     { "dark slate grey", 47, 79, 79 },
     { "dark turquoise", 0, 206, 209 },
     { "dark violet", 148, 0, 211 },
     { "DarkBlue", 0, 0, 139 },
     { "DarkCyan", 0, 139, 139 },
     { "DarkGoldenrod", 184, 134, 11 },
     { "DarkGoldenrod1", 255, 185, 15 },
     { "DarkGoldenrod2", 238, 173, 14 },
     { "DarkGoldenrod3", 205, 149, 12 },
     { "DarkGoldenrod4", 139, 101, 8 },
     { "DarkGray", 169, 169, 169 },
     { "DarkGreen", 0, 100, 0 },
     { "DarkGrey", 169, 169, 169 },
     { "DarkKhaki", 189, 183, 107 },
     { "DarkMagenta", 139, 0, 139 },
     { "DarkOliveGreen", 85, 107, 47 },
     { "DarkOliveGreen1", 202, 255, 112 },
     { "DarkOliveGreen2", 188, 238, 104 },
     { "DarkOliveGreen3", 162, 205, 90 },
     { "DarkOliveGreen4", 110, 139, 61 },
     { "DarkOrange", 255, 140, 0 },
     { "DarkOrange1", 255, 127, 0 },
     { "DarkOrange2", 238, 118, 0 },
     { "DarkOrange3", 205, 102, 0 },
     { "DarkOrange4", 139, 69, 0 },
     { "DarkOrchid", 153, 50, 204 },
     { "DarkOrchid1", 191, 62, 255 },
     { "DarkOrchid2", 178, 58, 238 },
     { "DarkOrchid3", 154, 50, 205 },
     { "DarkOrchid4", 104, 34, 139 },
     { "DarkRed", 139, 0, 0 },
     { "DarkSalmon", 233, 150, 122 },
     { "DarkSeaGreen", 143, 188, 143 },
     { "DarkSeaGreen1", 193, 255, 193 },
     { "DarkSeaGreen2", 180, 238, 180 },
     { "DarkSeaGreen3", 155, 205, 155 },
     { "DarkSeaGreen4", 105, 139, 105 },
     { "DarkSlateBlue", 72, 61, 139 },
     { "DarkSlateGray", 47, 79, 79 },
     { "DarkSlateGray1", 151, 255, 255 },
     { "DarkSlateGray2", 141, 238, 238 },
     { "DarkSlateGray3", 121, 205, 205 },
     { "DarkSlateGray4", 82, 139, 139 },
     { "DarkSlateGrey", 47, 79, 79 },
     { "DarkTurquoise", 0, 206, 209 },
     { "DarkViolet", 148, 0, 211 },
     { "deep pink", 255, 20, 147 },
     { "deep sky blue", 0, 191, 255 },
     { "DeepPink", 255, 20, 147 },
     { "DeepPink1", 255, 20, 147 },
     { "DeepPink2", 238, 18, 137 },
     { "DeepPink3", 205, 16, 118 },
     { "DeepPink4", 139, 10, 80 },
     { "DeepSkyBlue", 0, 191, 255 },

     { "DeepSkyBlue1", 0, 191, 255 },
     { "DeepSkyBlue2", 0, 178, 238 },
     { "DeepSkyBlue3", 0, 154, 205 },
     { "DeepSkyBlue4", 0, 104, 139 },
     { "dim gray", 105, 105, 105 },
     { "dim grey", 105, 105, 105 },
     { "DimGray", 105, 105, 105 },
     { "DimGrey", 105, 105, 105 },
     { "dodger blue", 30, 144, 255 },
     { "DodgerBlue", 30, 144, 255 },
     { "DodgerBlue1", 30, 144, 255 },
     { "DodgerBlue2", 28, 134, 238 },
     { "DodgerBlue3", 24, 116, 205 },
     { "DodgerBlue4", 16, 78, 139 },
     { "firebrick", 178, 34, 34 },
     { "firebrick1", 255, 48, 48 },
     { "firebrick2", 238, 44, 44 },
     { "firebrick3", 205, 38, 38 },
     { "firebrick4", 139, 26, 26 },
     { "floral white", 255, 250, 240 },
     { "FloralWhite", 255, 250, 240 },
     { "forest green", 34, 139, 34 },
     { "ForestGreen", 34, 139, 34 },
     { "gainsboro", 220, 220, 220 },
     { "ghost white", 248, 248, 255 },
     { "GhostWhite", 248, 248, 255 },
     { "gold", 255, 215, 0 },
     { "gold1", 255, 215, 0 },
     { "gold2", 238, 201, 0 },
     { "gold3", 205, 173, 0 },
     { "gold4", 139, 117, 0 },
     { "goldenrod", 218, 165, 32 },
     { "goldenrod1", 255, 193, 37 },
     { "goldenrod2", 238, 180, 34 },
     { "goldenrod3", 205, 155, 29 },
     { "goldenrod4", 139, 105, 20 },
     { "gray", 190, 190, 190 },
     { "gray0", 0, 0, 0 },
     { "gray1", 3, 3, 3 },
     { "gray10", 26, 26, 26 },
     { "gray100", 255, 255, 255 },
     { "gray11", 28, 28, 28 },
     { "gray12", 31, 31, 31 },
     { "gray13", 33, 33, 33 },
     { "gray14", 36, 36, 36 },
     { "gray15", 38, 38, 38 },
     { "gray16", 41, 41, 41 },
     { "gray17", 43, 43, 43 },
     { "gray18", 46, 46, 46 },
     { "gray19", 48, 48, 48 },
     { "gray2", 5, 5, 5 },
     { "gray20", 51, 51, 51 },
     { "gray21", 54, 54, 54 },
     { "gray22", 56, 56, 56 },
     { "gray23", 59, 59, 59 },
     { "gray24", 61, 61, 61 },
     { "gray25", 64, 64, 64 },
     { "gray26", 66, 66, 66 },
     { "gray27", 69, 69, 69 },
     { "gray28", 71, 71, 71 },
     { "gray29", 74, 74, 74 },
     { "gray3", 8, 8, 8 },
     { "gray30", 77, 77, 77 },
     { "gray31", 79, 79, 79 },
     { "gray32", 82, 82, 82 },
     { "gray33", 84, 84, 84 },
     { "gray34", 87, 87, 87 },
     { "gray35", 89, 89, 89 },
     { "gray36", 92, 92, 92 },
     { "gray37", 94, 94, 94 },
     { "gray38", 97, 97, 97 },
     { "gray39", 99, 99, 99 },
     { "gray4", 10, 10, 10 },
     { "gray40", 102, 102, 102 },
     { "gray41", 105, 105, 105 },
     { "gray42", 107, 107, 107 },
     { "gray43", 110, 110, 110 },
     { "gray44", 112, 112, 112 },
     { "gray45", 115, 115, 115 },
     { "gray46", 117, 117, 117 },
     { "gray47", 120, 120, 120 },
     { "gray48", 122, 122, 122 },
     { "gray49", 125, 125, 125 },
     { "gray5", 13, 13, 13 },
     { "gray50", 127, 127, 127 },
     { "gray51", 130, 130, 130 },
     { "gray52", 133, 133, 133 },
     { "gray53", 135, 135, 135 },
     { "gray54", 138, 138, 138 },
     { "gray55", 140, 140, 140 },
     { "gray56", 143, 143, 143 },
     { "gray57", 145, 145, 145 },
     { "gray58", 148, 148, 148 },
     { "gray59", 150, 150, 150 },
     { "gray6", 15, 15, 15 },
     { "gray60", 153, 153, 153 },
     { "gray61", 156, 156, 156 },
     { "gray62", 158, 158, 158 },
     { "gray63", 161, 161, 161 },
     { "gray64", 163, 163, 163 },
     { "gray65", 166, 166, 166 },
     { "gray66", 168, 168, 168 },
     { "gray67", 171, 171, 171 },
     { "gray68", 173, 173, 173 },
     { "gray69", 176, 176, 176 },
     { "gray7", 18, 18, 18 },
     { "gray70", 179, 179, 179 },
     { "gray71", 181, 181, 181 },
     { "gray72", 184, 184, 184 },
     { "gray73", 186, 186, 186 },
     { "gray74", 189, 189, 189 },
     { "gray75", 191, 191, 191 },
     { "gray76", 194, 194, 194 },
     { "gray77", 196, 196, 196 },
     { "gray78", 199, 199, 199 },
     { "gray79", 201, 201, 201 },
     { "gray8", 20, 20, 20 },
     { "gray80", 204, 204, 204 },
     { "gray81", 207, 207, 207 },
     { "gray82", 209, 209, 209 },
     { "gray83", 212, 212, 212 },
     { "gray84", 214, 214, 214 },
     { "gray85", 217, 217, 217 },
     { "gray86", 219, 219, 219 },
     { "gray87", 222, 222, 222 },
     { "gray88", 224, 224, 224 },
     { "gray89", 227, 227, 227 },
     { "gray9", 23, 23, 23 },
     { "gray90", 229, 229, 229 },
     { "gray91", 232, 232, 232 },
     { "gray92", 235, 235, 235 },
     { "gray93", 237, 237, 237 },
     { "gray94", 240, 240, 240 },
     { "gray95", 242, 242, 242 },
     { "gray96", 245, 245, 245 },
     { "gray97", 247, 247, 247 },
     { "gray98", 250, 250, 250 },
     { "gray99", 252, 252, 252 },
     { "green", 0, 255, 0 },
     { "green yellow", 173, 255, 47 },
     { "green1", 0, 255, 0 },
     { "green2", 0, 238, 0 },
     { "green3", 0, 205, 0 },
     { "green4", 0, 139, 0 },
     { "GreenYellow", 173, 255, 47 },
     { "grey", 190, 190, 190 },
     { "grey0", 0, 0, 0 },
     { "grey1", 3, 3, 3 },
     { "grey10", 26, 26, 26 },
     { "grey100", 255, 255, 255 },
     { "grey11", 28, 28, 28 },
     { "grey12", 31, 31, 31 },
     { "grey13", 33, 33, 33 },
     { "grey14", 36, 36, 36 },
     { "grey15", 38, 38, 38 },
     { "grey16", 41, 41, 41 },
     { "grey17", 43, 43, 43 },
     { "grey18", 46, 46, 46 },
     { "grey19", 48, 48, 48 },
     { "grey2", 5, 5, 5 },
     { "grey20", 51, 51, 51 },
     { "grey21", 54, 54, 54 },
     { "grey22", 56, 56, 56 },
     { "grey23", 59, 59, 59 },
     { "grey24", 61, 61, 61 },
     { "grey25", 64, 64, 64 },
     { "grey26", 66, 66, 66 },
     { "grey27", 69, 69, 69 },
     { "grey28", 71, 71, 71 },
     { "grey29", 74, 74, 74 },
     { "grey3", 8, 8, 8 },
     { "grey30", 77, 77, 77 },
     { "grey31", 79, 79, 79 },
     { "grey32", 82, 82, 82 },
     { "grey33", 84, 84, 84 },
     { "grey34", 87, 87, 87 },
     { "grey35", 89, 89, 89 },
     { "grey36", 92, 92, 92 },
     { "grey37", 94, 94, 94 },
     { "grey38", 97, 97, 97 },
     { "grey39", 99, 99, 99 },
     { "grey4", 10, 10, 10 },
     { "grey40", 102, 102, 102 },
     { "grey41", 105, 105, 105 },
     { "grey42", 107, 107, 107 },
     { "grey43", 110, 110, 110 },
     { "grey44", 112, 112, 112 },
     { "grey45", 115, 115, 115 },
     { "grey46", 117, 117, 117 },
     { "grey47", 120, 120, 120 },
     { "grey48", 122, 122, 122 },
     { "grey49", 125, 125, 125 },
     { "grey5", 13, 13, 13 },
     { "grey50", 127, 127, 127 },
     { "grey51", 130, 130, 130 },
     { "grey52", 133, 133, 133 },
     { "grey53", 135, 135, 135 },
     { "grey54", 138, 138, 138 },
     { "grey55", 140, 140, 140 },
     { "grey56", 143, 143, 143 },
     { "grey57", 145, 145, 145 },
     { "grey58", 148, 148, 148 },
     { "grey59", 150, 150, 150 },
     { "grey6", 15, 15, 15 },
     { "grey60", 153, 153, 153 },
     { "grey61", 156, 156, 156 },
     { "grey62", 158, 158, 158 },
     { "grey63", 161, 161, 161 },
     { "grey64", 163, 163, 163 },
     { "grey65", 166, 166, 166 },
     { "grey66", 168, 168, 168 },
     { "grey67", 171, 171, 171 },
     { "grey68", 173, 173, 173 },
     { "grey69", 176, 176, 176 },
     { "grey7", 18, 18, 18 },
     { "grey70", 179, 179, 179 },
     { "grey71", 181, 181, 181 },
     { "grey72", 184, 184, 184 },
     { "grey73", 186, 186, 186 },
     { "grey74", 189, 189, 189 },
     { "grey75", 191, 191, 191 },
     { "grey76", 194, 194, 194 },
     { "grey77", 196, 196, 196 },
     { "grey78", 199, 199, 199 },
     { "grey79", 201, 201, 201 },
     { "grey8", 20, 20, 20 },
     { "grey80", 204, 204, 204 },
     { "grey81", 207, 207, 207 },
     { "grey82", 209, 209, 209 },
     { "grey83", 212, 212, 212 },
     { "grey84", 214, 214, 214 },
     { "grey85", 217, 217, 217 },
     { "grey86", 219, 219, 219 },
     { "grey87", 222, 222, 222 },
     { "grey88", 224, 224, 224 },
     { "grey89", 227, 227, 227 },
     { "grey9", 23, 23, 23 },
     { "grey90", 229, 229, 229 },
     { "grey91", 232, 232, 232 },
     { "grey92", 235, 235, 235 },
     { "grey93", 237, 237, 237 },
     { "grey94", 240, 240, 240 },
     { "grey95", 242, 242, 242 },
     { "grey96", 245, 245, 245 },
     { "grey97", 247, 247, 247 },
     { "grey98", 250, 250, 250 },
     { "grey99", 252, 252, 252 },
     { "honeydew", 240, 255, 240 },
     { "honeydew1", 240, 255, 240 },
     { "honeydew2", 224, 238, 224 },
     { "honeydew3", 193, 205, 193 },
     { "honeydew4", 131, 139, 131 },
     { "hot pink", 255, 105, 180 },
     { "HotPink", 255, 105, 180 },
     { "HotPink1", 255, 110, 180 },
     { "HotPink2", 238, 106, 167 },
     { "HotPink3", 205, 96, 144 },
     { "HotPink4", 139, 58, 98 },
     { "indian red", 205, 92, 92 },
     { "IndianRed", 205, 92, 92 },
     { "IndianRed1", 255, 106, 106 },
     { "IndianRed2", 238, 99, 99 },
     { "IndianRed3", 205, 85, 85 },
     { "IndianRed4", 139, 58, 58 },
     { "ivory", 255, 255, 240 },
     { "ivory1", 255, 255, 240 },
     { "ivory2", 238, 238, 224 },
     { "ivory3", 205, 205, 193 },
     { "ivory4", 139, 139, 131 },
     { "khaki", 240, 230, 140 },
     { "khaki1", 255, 246, 143 },
     { "khaki2", 238, 230, 133 },
     { "khaki3", 205, 198, 115 },
     { "khaki4", 139, 134, 78 },
     { "lavender", 230, 230, 250 },
     { "lavender blush", 255, 240, 245 },
     { "LavenderBlush", 255, 240, 245 },
     { "LavenderBlush1", 255, 240, 245 },
     { "LavenderBlush2", 238, 224, 229 },
     { "LavenderBlush3", 205, 193, 197 },
     { "LavenderBlush4", 139, 131, 134 },
     { "lawn green", 124, 252, 0 },
     { "LawnGreen", 124, 252, 0 },
     { "lemon chiffon", 255, 250, 205 },
     { "LemonChiffon", 255, 250, 205 },
     { "LemonChiffon1", 255, 250, 205 },
     { "LemonChiffon2", 238, 233, 191 },
     { "LemonChiffon3", 205, 201, 165 },
     { "LemonChiffon4", 139, 137, 112 },

     { "light blue", 173, 216, 230 },
     { "light coral", 240, 128, 128 },
     { "light cyan", 224, 255, 255 },

     { "light goldenrod", 238, 221, 130 },
     { "light goldenrod yellow", 250, 250, 210 },
     { "light gray", 211, 211, 211 },
     { "light green", 144, 238, 144 },
     { "light grey", 211, 211, 211 },
     { "light pink", 255, 182, 193 },
     { "light salmon", 255, 160, 122 },
     { "light sea green", 32, 178, 170 },
     { "light sky blue", 135, 206, 250 },
     { "light slate blue", 132, 112, 255 },
     { "light slate gray", 119, 136, 153 },
     { "light slate grey", 119, 136, 153 },
     { "light steel blue", 176, 196, 222 },
     { "light yellow", 255, 255, 224 },
     { "LightBlue", 173, 216, 230 },
     { "LightBlue1", 191, 239, 255 },
     { "LightBlue2", 178, 223, 238 },
     { "LightBlue3", 154, 192, 205 },
     { "LightBlue4", 104, 131, 139 },
     { "LightCoral", 240, 128, 128 },
     { "LightCyan", 224, 255, 255 },
     { "LightCyan1", 224, 255, 255 },
     { "LightCyan2", 209, 238, 238 },
     { "LightCyan3", 180, 205, 205 },
     { "LightCyan4", 122, 139, 139 },
     { "LightGoldenrod", 238, 221, 130 },
     { "LightGoldenrod1", 255, 236, 139 },
     { "LightGoldenrod2", 238, 220, 130 },
     { "LightGoldenrod3", 205, 190, 112 },
     { "LightGoldenrod4", 139, 129, 76 },
     { "LightGoldenrodYellow", 250, 250, 210 },
     { "LightGray", 211, 211, 211 },
     { "LightGreen", 144, 238, 144 },
     { "LightGrey", 211, 211, 211 },
     { "LightPink", 255, 182, 193 },
     { "LightPink1", 255, 174, 185 },
     { "LightPink2", 238, 162, 173 },
     { "LightPink3", 205, 140, 149 },
     { "LightPink4", 139, 95, 101 },
     { "LightSalmon", 255, 160, 122 },
     { "LightSalmon1", 255, 160, 122 },
     { "LightSalmon2", 238, 149, 114 },
     { "LightSalmon3", 205, 129, 98 },
     { "LightSalmon4", 139, 87, 66 },
     { "LightSeaGreen", 32, 178, 170 },
     { "LightSkyBlue", 135, 206, 250 },
     { "LightSkyBlue1", 176, 226, 255 },
     { "LightSkyBlue2", 164, 211, 238 },
     { "LightSkyBlue3", 141, 182, 205 },
     { "LightSkyBlue4", 96, 123, 139 },
     { "LightSlateBlue", 132, 112, 255 },
     { "LightSlateGray", 119, 136, 153 },
     { "LightSlateGrey", 119, 136, 153 },
     { "LightSteelBlue", 176, 196, 222 },
     { "LightSteelBlue1", 202, 225, 255 },
     { "LightSteelBlue2", 188, 210, 238 },
     { "LightSteelBlue3", 162, 181, 205 },
     { "LightSteelBlue4", 110, 123, 139 },
     { "LightYellow", 255, 255, 224 },
     { "LightYellow1", 255, 255, 224 },
     { "LightYellow2", 238, 238, 209 },
     { "LightYellow3", 205, 205, 180 },
     { "LightYellow4", 139, 139, 122 },
     { "lime green", 50, 205, 50 },
     { "LimeGreen", 50, 205, 50 },
     { "linen", 250, 240, 230 },
     { "magenta", 255, 0, 255 },
     { "magenta1", 255, 0, 255 },
     { "magenta2", 238, 0, 238 },
     { "magenta3", 205, 0, 205 },
     { "magenta4", 139, 0, 139 },
     { "maroon", 176, 48, 96 },
     { "maroon1", 255, 52, 179 },
     { "maroon2", 238, 48, 167 },
     { "maroon3", 205, 41, 144 },
     { "maroon4", 139, 28, 98 },
     { "medium aquamarine", 102, 205, 170 },
     { "medium blue", 0, 0, 205 },
     { "medium orchid", 186, 85, 211 },
     { "medium purple", 147, 112, 219 },
     { "medium sea green", 60, 179, 113 },
     { "medium slate blue", 123, 104, 238 },
     { "medium spring green", 0, 250, 154 },
     { "medium turquoise", 72, 209, 204 },
     { "medium violet red", 199, 21, 133 },


     { "MediumAquamarine", 102, 205, 170 },
     { "MediumBlue", 0, 0, 205 },
     { "MediumOrchid", 186, 85, 211 },
     { "MediumOrchid1", 224, 102, 255 },
     { "MediumOrchid2", 209, 95, 238 },
     { "MediumOrchid3", 180, 82, 205 },
     { "MediumOrchid4", 122, 55, 139 },
     { "MediumPurple", 147, 112, 219 },
     { "MediumPurple1", 171, 130, 255 },
     { "MediumPurple2", 159, 121, 238 },
     { "MediumPurple3", 137, 104, 205 },
     { "MediumPurple4", 93, 71, 139 },
     { "MediumSeaGreen", 60, 179, 113 },
     { "MediumSlateBlue", 123, 104, 238 },
     { "MediumSpringGreen", 0, 250, 154 },
     { "MediumTurquoise", 72, 209, 204 },
     { "MediumVioletRed", 199, 21, 133 },
     { "midnight blue", 25, 25, 112 },
     { "MidnightBlue", 25, 25, 112 },
     { "mint cream", 245, 255, 250 },
     { "MintCream", 245, 255, 250 },
     { "misty rose", 255, 228, 225 },
     { "MistyRose", 255, 228, 225 },
     { "MistyRose1", 255, 228, 225 },
     { "MistyRose2", 238, 213, 210 },
     { "MistyRose3", 205, 183, 181 },
     { "MistyRose4", 139, 125, 123 },
     { "moccasin", 255, 228, 181 },
     { "navajo white", 255, 222, 173 },

     { "NavajoWhite", 255, 222, 173 },
     { "NavajoWhite1", 255, 222, 173 },
     { "NavajoWhite2", 238, 207, 161 },
     { "NavajoWhite3", 205, 179, 139 },
     { "NavajoWhite4", 139, 121, 94 },
     { "navy", 0, 0, 128 },
     { "navy blue", 0, 0, 128 },

     { "NavyBlue", 0, 0, 128 },
     { "old lace", 253, 245, 230 },

     { "OldLace", 253, 245, 230 },
     { "olive drab", 107, 142, 35 },
     { "OliveDrab", 107, 142, 35 },
     { "OliveDrab1", 192, 255, 62 },
     { "OliveDrab2", 179, 238, 58 },
     { "OliveDrab3", 154, 205, 50 },
     { "OliveDrab4", 105, 139, 34 },
     { "orange", 255, 165, 0 },
     { "orange red", 255, 69, 0 },
     { "orange1", 255, 165, 0 },
     { "orange2", 238, 154, 0 },
     { "orange3", 205, 133, 0 },
     { "orange4", 139, 90, 0 },

     { "OrangeRed", 255, 69, 0 },
     { "OrangeRed1", 255, 69, 0 },
     { "OrangeRed2", 238, 64, 0 },
     { "OrangeRed3", 205, 55, 0 },
     { "OrangeRed4", 139, 37, 0 },
     { "orchid", 218, 112, 214 },
     { "orchid1", 255, 131, 250 },
     { "orchid2", 238, 122, 233 },
     { "orchid3", 205, 105, 201 },
     { "orchid4", 139, 71, 137 },
     { "pale goldenrod", 238, 232, 170 },
     { "pale green", 152, 251, 152 },
     { "pale turquoise", 175, 238, 238 },
     { "pale violet red", 219, 112, 147 },


     { "PaleGoldenrod", 238, 232, 170 },
     { "PaleGreen", 152, 251, 152 },
     { "PaleGreen1", 154, 255, 154 },
     { "PaleGreen2", 144, 238, 144 },
     { "PaleGreen3", 124, 205, 124 },
     { "PaleGreen4", 84, 139, 84 },
     { "PaleTurquoise", 175, 238, 238 },
     { "PaleTurquoise1", 187, 255, 255 },
     { "PaleTurquoise2", 174, 238, 238 },
     { "PaleTurquoise3", 150, 205, 205 },
     { "PaleTurquoise4", 102, 139, 139 },
     { "PaleVioletRed", 219, 112, 147 },
     { "PaleVioletRed1", 255, 130, 171 },
     { "PaleVioletRed2", 238, 121, 159 },
     { "PaleVioletRed3", 205, 104, 137 },
     { "PaleVioletRed4", 139, 71, 93 },
     { "papaya whip", 255, 239, 213 },
     { "PapayaWhip", 255, 239, 213 },
     { "peach puff", 255, 218, 185 },
     { "PeachPuff", 255, 218, 185 },
     { "PeachPuff1", 255, 218, 185 },
     { "PeachPuff2", 238, 203, 173 },
     { "PeachPuff3", 205, 175, 149 },
     { "PeachPuff4", 139, 119, 101 },
     { "peru", 205, 133, 63 },
     { "pink", 255, 192, 203 },
     { "pink1", 255, 181, 197 },
     { "pink2", 238, 169, 184 },
     { "pink3", 205, 145, 158 },
     { "pink4", 139, 99, 108 },
     { "plum", 221, 160, 221 },
     { "plum1", 255, 187, 255 },
     { "plum2", 238, 174, 238 },
     { "plum3", 205, 150, 205 },
     { "plum4", 139, 102, 139 },
     { "powder blue", 176, 224, 230 },



     { "PowderBlue", 176, 224, 230 },
     { "purple", 160, 32, 240 },
     { "purple1", 155, 48, 255 },
     { "purple2", 145, 44, 238 },
     { "purple3", 125, 38, 205 },
     { "purple4", 85, 26, 139 },
     { "red", 255, 0, 0 },
     { "red1", 255, 0, 0 },
     { "red2", 238, 0, 0 },
     { "red3", 205, 0, 0 },
     { "red4", 139, 0, 0 },
     { "rosy brown", 188, 143, 143 },




     { "RosyBrown", 188, 143, 143 },
     { "RosyBrown1", 255, 193, 193 },
     { "RosyBrown2", 238, 180, 180 },
     { "RosyBrown3", 205, 155, 155 },
     { "RosyBrown4", 139, 105, 105 },
     { "royal blue", 65, 105, 225 },
     { "RoyalBlue", 65, 105, 225 },
     { "RoyalBlue1", 72, 118, 255 },
     { "RoyalBlue2", 67, 110, 238 },
     { "RoyalBlue3", 58, 95, 205 },
     { "RoyalBlue4", 39, 64, 139 },
     { "saddle brown", 139, 69, 19 },
     { "SaddleBrown", 139, 69, 19 },
     { "salmon", 250, 128, 114 },
     { "salmon1", 255, 140, 105 },
     { "salmon2", 238, 130, 98 },
     { "salmon3", 205, 112, 84 },
     { "salmon4", 139, 76, 57 },
     { "sandy brown", 244, 164, 96 },
     { "SandyBrown", 244, 164, 96 },
     { "sea green", 46, 139, 87 },
     { "SeaGreen", 46, 139, 87 },
     { "SeaGreen1", 84, 255, 159 },
     { "SeaGreen2", 78, 238, 148 },
     { "SeaGreen3", 67, 205, 128 },
     { "SeaGreen4", 46, 139, 87 },
     { "seashell", 255, 245, 238 },
     { "seashell1", 255, 245, 238 },
     { "seashell2", 238, 229, 222 },
     { "seashell3", 205, 197, 191 },
     { "seashell4", 139, 134, 130 },
     { "sienna", 160, 82, 45 },
     { "sienna1", 255, 130, 71 },
     { "sienna2", 238, 121, 66 },
     { "sienna3", 205, 104, 57 },
     { "sienna4", 139, 71, 38 },
     { "sky blue", 135, 206, 235 },

     { "SkyBlue", 135, 206, 235 },
     { "SkyBlue1", 135, 206, 255 },
     { "SkyBlue2", 126, 192, 238 },
     { "SkyBlue3", 108, 166, 205 },
     { "SkyBlue4", 74, 112, 139 },
     { "slate blue", 106, 90, 205 },
     { "slate gray", 112, 128, 144 },
     { "slate grey", 112, 128, 144 },
     { "SlateBlue", 106, 90, 205 },
     { "SlateBlue1", 131, 111, 255 },
     { "SlateBlue2", 122, 103, 238 },
     { "SlateBlue3", 105, 89, 205 },
     { "SlateBlue4", 71, 60, 139 },
     { "SlateGray", 112, 128, 144 },
     { "SlateGray1", 198, 226, 255 },
     { "SlateGray2", 185, 211, 238 },
     { "SlateGray3", 159, 182, 205 },
     { "SlateGray4", 108, 123, 139 },
     { "SlateGrey", 112, 128, 144 },
     { "snow", 255, 250, 250 },
     { "snow1", 255, 250, 250 },
     { "snow2", 238, 233, 233 },
     { "snow3", 205, 201, 201 },
     { "snow4", 139, 137, 137 },
     { "spring green", 0, 255, 127 },
     { "SpringGreen", 0, 255, 127 },
     { "SpringGreen1", 0, 255, 127 },
     { "SpringGreen2", 0, 238, 118 },

     { "SpringGreen3", 0, 205, 102 },
     { "SpringGreen4", 0, 139, 69 },
     { "steel blue", 70, 130, 180 },
     { "SteelBlue", 70, 130, 180 },
     { "SteelBlue1", 99, 184, 255 },
     { "SteelBlue2", 92, 172, 238 },
     { "SteelBlue3", 79, 148, 205 },
     { "SteelBlue4", 54, 100, 139 },
     { "tan", 210, 180, 140 },
     { "tan1", 255, 165, 79 },
     { "tan2", 238, 154, 73 },
     { "tan3", 205, 133, 63 },
     { "tan4", 139, 90, 43 },
     { "thistle", 216, 191, 216 },
     { "thistle1", 255, 225, 255 },
     { "thistle2", 238, 210, 238 },
     { "thistle3", 205, 181, 205 },
     { "thistle4", 139, 123, 139 },
     { "tomato", 255, 99, 71 },
     { "tomato1", 255, 99, 71 },
     { "tomato2", 238, 92, 66 },
     { "tomato3", 205, 79, 57 },
     { "tomato4", 139, 54, 38 },

     { "turquoise", 64, 224, 208 },
     { "turquoise1", 0, 245, 255 },
     { "turquoise2", 0, 229, 238 },
     { "turquoise3", 0, 197, 205 },
     { "turquoise4", 0, 134, 139 },


     { "violet", 238, 130, 238 },
     { "violet red", 208, 32, 144 },
     { "VioletRed", 208, 32, 144 },
     { "VioletRed1", 255, 62, 150 },
     { "VioletRed2", 238, 58, 140 },
     { "VioletRed3", 205, 50, 120 },
     { "VioletRed4", 139, 34, 82 },
     { "wheat", 245, 222, 179 },
     { "wheat1", 255, 231, 186 },
     { "wheat2", 238, 216, 174 },
     { "wheat3", 205, 186, 150 },
     { "wheat4", 139, 126, 102 },
     { "white", 255, 255, 255 },
     { "white smoke", 245, 245, 245 },
     { "WhiteSmoke", 245, 245, 245 },
     { "yellow", 255, 255, 0 },
     { "yellow green", 154, 205, 50 },
     { "yellow1", 255, 255, 0 },
     { "yellow2", 238, 238, 0 },
     { "yellow3", 205, 205, 0 },
     { "yellow4", 139, 139, 0 },
     { "YellowGreen", 154, 205, 50 },
};

/*
 *----------------------------------------------------------------------
 *
 * FindColor --
 *
 *	This routine finds the color entry that corresponds to the specified
 *	color.
 *
 * Results:
 *	Returns non-zero on success. The RGB values of the XColor will be
 *	initialized to the proper values on success.
 *
 * Side effects:
 *	None.
 *
 *----------------------------------------------------------------------
 */

static int


FindColor(
    const char *name,
    XColor *colorPtr)
{
    int l, u, r, i = 0;

    /*
     * Perform a binary search on the sorted array of colors.
     */

    l = 0;
    u = sizeof(xColors)/sizeof(xColors[0]) - 1;
    while (l <= u) {
	i = (l + u) / 2;
	r = strcasecmp(name, xColors[i].name);
	if (r == 0) {
	    break;
	} else if (r < 0) {
	    u = i-1;
	} else {
	    l = i+1;
	}
    }
    if (l > u) {
	return 0;
    }
    colorPtr->red = ((xColors[i].red << 8) | xColors[i].red);
    colorPtr->green = ((xColors[i].green << 8) | xColors[i].green);
    colorPtr->blue = ((xColors[i].blue << 8) | xColors[i].blue);
    return 1;
}

/*
 *----------------------------------------------------------------------
 *
 * XParseColor --
 *
 *	Partial implementation of X color name parsing interface.







>








|
>

|
<
>
|


|
|
<
|
>
|
|
|
>
|
>
|
<
<
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
>
|
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
<
|
>
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
|
|
|
|
|
|
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
|
<
<
<
<
>
|
<
<
>
|
|
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
<
<
<
<
|
<
<
<
<
|
|
<
<
<
<
|
|
|
|
<
<
<
<
<
|
<
<
<
<
|
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
>
>
|
|
|
<
<
<
<
|
<
<
<
<
|
|
|
|
|
<
|
<
|
<
<
<
<
|
<
|
<
>
|
<
<
<
<
<
<
>
|
<
>
|
<
|
<
<
<
<
<
<
<
<
<
<
>
|
<
<
<
<
<
<
<
<
<
<
<
<
<
>
>
|
|
<
<
<
<
|
<
<
<
<
|
<
<
<
<
<
|
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
>
>
>
|
<
<
<
<
<
<
<
<
<
<
<
>
>
>
>
|
<
<
<
<
<
<
<
<
<
<
<
<
<
|
|
|
|
<
|
<
|
<
<
<
<
|
<
<
<
<
<
<
<
<
<
<
>
|
<
<
<
<
<
<
<
|
<
<
<
<
|
<
<
<
<
|
<
<
<
<
<
<
<
<
<
>
|
|
|
|
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
<
<
<
>
|
<
<
<
<
>
>
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
|
<
>
>
|
<
|
<
<
|
<
<
<
|
<
<
<
<
<
<
<
<
<
<
<
|
<
<
<
<
<
<
<
<
<







1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

21
22
23
24
25
26

27
28
29
30
31
32
33
34
35


36
37





































38
39









40



























































































41
42
43

44
45
46
47
48
49
50
51
52
53
54
55
56









57
58
59
60
61
62
63
64
65
66
67
68














69
70
71
72
73
74
75
76
77
78
79
80







































81
82
83
84
85
86
87
88
89
90
91
92







































93
94
95
96
97
98
99
100
101
102
103
104
105
106





































107
108
109
110
111
112
113
114
115
116
117
118
119






































































120

121




122
123


124
125
126
127
128





























129
130




131




132
133




134
135
136
137





138




139
140
















141


142
143
144
145
146




147




148
149
150
151
152

153

154




155

156

157
158






159
160

161
162

163










164
165













166
167
168
169




170




171





172

173
















174
175
176
177











178
179
180
181
182













183
184
185
186

187

188




189










190
191







192




193




194









195
196
197
198
199









200









201
202




203
204
205






















206



207













208

209
210
211

212


213



214











215









216
217
218
219
220
221
222
/*
 * xcolors.c --
 *
 *	This file contains the routines used to map from X color names to RGB
 *	and pixel values.
 *
 * Copyright (c) 1996 by Sun Microsystems, Inc.
 * Copyright (c) 2012 by Jan Nijtmans
 *
 * See the file "license.terms" for information on usage and redistribution of
 * this file, and for a DISCLAIMER OF ALL WARRANTIES.
 */

#include "tkInt.h"

/*
 * Index array. For each of the characters 'a'-'y', this table gives the first color
 * starting with that character in the xColors table.
 */
static int az[] = {0, 4, 12, 19, 43, 43, 46, 56, 58, 60, 60, 61, 84, 99,

	102, 107, 118, 118, 121, 134, 138, 138, 140, 143, 143, 145};

/*
 * Define an array that defines the mapping from color names to RGB values.
 * Note that this array must be kept sorted alphabetically so that the
 * binary search used in XParseColor will succeed.

 *
 * Each color definition consists of exactly 32 characters, and starts with
 * the color name, but without its first character (that character can be
 * reproduced from the az index array). The last byte holds the number
 * of additional color variants. For example "azure1" up to "azure4" are
 * handled by the same table entry as "azure". From the last byte backwards,
 * each group of 3 bytes contain the rgb values of the main color and
 * the available variants.
 *


 * The colors gray and grey have more than 8 variants. gray1 up to gray8
 * are handled by this table, above that is handled especially.





































 */










typedef char elem[32];




























































































static const elem xColors[] = {
    /* Colors starting with 'a' */

    "liceBlue\0                   \360\370\377\0",
    "ntiqueWhite\0    \213\203\170\315\300\260\356\337\314\377\357\333\372\353\327\4",
    "quamarine\0      \105\213\164\146\315\252\166\356\306\177\377\324\177\377\324\4",
    "zure\0           \203\213\213\301\315\315\340\356\356\360\377\377\360\377\377\4",
    /* Colors starting with 'b' */
    "eige\0                       \365\365\334\0",
    "isque\0          \213\175\153\315\267\236\356\325\267\377\344\304\377\344\304\4",
    "lack\0                       \000\000\000\0",
    "lanchedAlmond\0              \377\353\315\0",
    "lue\0            \000\000\213\000\000\315\000\000\356\000\000\377\000\000\377\4",
    "lueViolet\0                  \212\053\342\0",
    "rown\0           \213\043\043\315\063\063\356\073\073\377\100\100\245\052\052\4",
    "urlywood\0       \213\163\125\315\252\175\356\305\221\377\323\233\336\270\207\4",









    /* Colors starting with 'c' */
    "adetBlue\0       \123\206\213\172\305\315\216\345\356\230\365\377\137\236\240\4",
    "hartreuse\0      \105\213\000\146\315\000\166\356\000\177\377\000\177\377\000\4",
    "hocolate\0       \213\105\023\315\146\035\356\166\041\377\177\044\322\151\036\4",
    "oral\0           \213\076\057\315\133\105\356\152\120\377\162\126\377\177\120\4",
    "ornflowerBlue\0              \144\225\355\0",
    "ornsilk\0        \213\210\170\315\310\261\356\350\315\377\370\334\377\370\334\4",
    "yan\0            \000\213\213\000\315\315\000\356\356\000\377\377\000\377\377\4",
    /* Colors starting with 'd' */
    "arkBlue\0                    \000\000\213\0",
    "arkCyan\0                    \000\213\213\0",
    "arkGoldenrod\0   \213\145\010\315\225\014\356\255\016\377\271\017\270\206\013\4",














    "arkGray\0                    \251\251\251\0",
    "arkGreen\0                   \000\144\000\0",
    "arkGrey\0                    \251\251\251\0",
    "arkKhaki\0                   \275\267\153\0",
    "arkMagenta\0                 \213\000\213\0",
    "arkOliveGreen\0  \156\213\075\242\315\132\274\356\150\312\377\160\125\153\057\4",
    "arkOrange\0      \213\105\000\315\146\000\356\166\000\377\177\000\377\214\000\4",
    "arkOrchid\0      \150\042\213\232\062\315\262\072\356\277\076\377\231\062\314\4",
    "arkRed\0                     \213\000\000\0",
    "arkSalmon\0                  \351\226\172\0",
    "arkSeaGreen\0    \151\213\151\233\315\233\264\356\264\301\377\301\217\274\217\4",
    "arkSlateBlue\0               \110\075\213\0",







































    "arkSlateGray\0   \122\213\213\171\315\315\215\356\356\227\377\377\057\117\117\4",
    "arkSlateGrey\0               \057\117\117\0",
    "arkTurquoise\0               \000\316\321\0",
    "arkViolet\0                  \224\000\323\0",
    "eepPink\0        \213\012\120\315\020\166\356\022\211\377\024\223\377\024\223\4",
    "eepSkyBlue\0     \000\150\213\000\232\315\000\262\356\000\277\377\000\277\377\4",
    "imGray\0                     \151\151\151\0",
    "imGrey\0                     \151\151\151\0",
    "odgerBlue\0      \020\116\213\030\164\315\034\206\356\036\220\377\036\220\377\4",
    /* Colors starting with 'e' */
    /* Colors starting with 'f' */
    "irebrick\0       \213\032\032\315\046\046\356\054\054\377\060\060\262\042\042\4",







































    "loralWhite\0                 \377\372\360\0",
    "orestGreen\0                 \042\213\042\0",
    /* Colors starting with 'g' */
    "ainsboro\0                   \334\334\334\0",
    "hostWhite\0                  \370\370\377\0",
    "old\0            \213\165\000\315\255\000\356\311\000\377\327\000\377\327\000\4",
    "oldenrod\0       \213\151\024\315\233\035\356\264\042\377\301\045\332\245\040\4",
    "ray\0\024\024\024\022\022\022\017\017\017\015\015\015\012\012\012"
	    "\010\010\010\005\005\005\003\003\003\276\276\276\10",
    "ray0\0                       \000\000\000\0",
    "reen\0           \000\213\000\000\315\000\000\356\000\000\377\000\000\377\000\4",
    "reenYellow\0                 \255\377\057\0",
    "rey\0\024\024\024\022\022\022\017\017\017\015\015\015\012\012\012"
	    "\010\010\010\005\005\005\003\003\003\276\276\276\10",





































    "rey0\0                       \000\000\000\0",
    /* Colors starting with 'h' */
    "oneydew\0        \203\213\203\301\315\301\340\356\340\360\377\360\360\377\360\4",
    "otPink\0         \213\072\142\315\140\220\356\152\247\377\156\264\377\151\264\4",
    /* Colors starting with 'i' */
    "ndianRed\0       \213\072\072\315\125\125\356\143\143\377\152\152\315\134\134\4",
    "vory\0           \213\213\203\315\315\301\356\356\340\377\377\360\377\377\360\4",
    /* Colors starting with 'j' */
    /* Colors starting with 'k' */
    "haki\0           \213\206\116\315\306\163\356\346\205\377\366\217\360\346\214\4",
    /* Colors starting with 'l' */
    "avender\0                    \346\346\372\0",
    "avenderBlush\0   \213\203\206\315\301\305\356\340\345\377\360\365\377\360\365\4",






































































    "awnGreen\0                   \174\374\000\0",

    "emonChiffon\0    \213\211\160\315\311\245\356\351\277\377\372\315\377\372\315\4",




    "ightBlue\0       \150\203\213\232\300\315\262\337\356\277\357\377\255\330\346\4",
    "ightCoral\0                  \360\200\200\0",


    "ightCyan\0       \172\213\213\264\315\315\321\356\356\340\377\377\340\377\377\4",
    "ightGoldenrod\0  \213\201\114\315\276\160\356\334\202\377\354\213\356\335\202\4",
    "ightGoldenrodYellow\0        \372\372\322\0",
    "ightGray\0                   \323\323\323\0",
    "ightGreen\0                  \220\356\220\0",





























    "ightGrey\0                   \323\323\323\0",
    "ightPink\0       \213\137\145\315\214\225\356\242\255\377\256\271\377\266\301\4",




    "ightSalmon\0     \213\127\102\315\201\142\356\225\162\377\240\172\377\240\172\4",




    "ightSeaGreen\0               \040\262\252\0",
    "ightSkyBlue\0    \140\173\213\215\266\315\244\323\356\260\342\377\207\316\372\4",




    "ightSlateBlue\0              \204\160\377\0",
    "ightSlateGray\0              \167\210\231\0",
    "ightSlateGrey\0              \167\210\231\0",
    "ightSteelBlue\0  \156\173\213\242\265\315\274\322\356\312\341\377\260\304\336\4",





    "ightYellow\0     \213\213\172\315\315\264\356\356\321\377\377\340\377\377\340\4",




    "imeGreen\0                   \062\315\062\0",
    "inen\0                       \372\360\346\0",
















    /* Colors starting with 'm' */


    "agenta\0         \213\000\213\315\000\315\356\000\356\377\000\377\377\000\377\4",
    "aroon\0          \213\034\142\315\051\220\356\060\247\377\064\263\260\060\140\4",
    "ediumAquamarine\0            \146\315\252\0",
    "ediumBlue\0                  \000\000\315\0",
    "ediumOrchid\0    \172\067\213\264\122\315\321\137\356\340\146\377\272\125\323\4",




    "ediumPurple\0    \135\107\213\211\150\315\237\171\356\253\202\377\223\160\333\4",




    "ediumSeaGreen\0              \074\263\161\0",
    "ediumSlateBlue\0             \173\150\356\0",
    "ediumSpringGreen\0           \000\372\232\0",
    "ediumTurquoise\0             \110\321\314\0",
    "ediumVioletRed\0             \307\025\205\0",

    "idnightBlue\0                \031\031\160\0",

    "intCream\0                   \365\377\372\0",




    "istyRose\0       \213\175\173\315\267\265\356\325\322\377\344\341\377\344\341\4",

    "occasin\0                    \377\344\265\0",

    /* Colors starting with 'n' */
    "avajoWhite\0     \213\171\136\315\263\213\356\317\241\377\336\255\377\336\255\4",






    "avy\0                        \000\000\200\0",
    "avyBlue\0                    \000\000\200\0",

    /* Colors starting with 'o' */
    "ldLace\0                     \375\365\346\0",

    "liveDrab\0       \151\213\042\232\315\062\263\356\072\300\377\076\153\216\043\4",










    "range\0          \213\132\000\315\205\000\356\232\000\377\245\000\377\245\000\4",
    "rangeRed\0       \213\045\000\315\067\000\356\100\000\377\105\000\377\105\000\4",













    "rchid\0          \213\107\211\315\151\311\356\172\351\377\203\372\332\160\326\4",
    /* Colors starting with 'p' */
    "aleGoldenrod\0               \356\350\252\0",
    "aleGreen\0       \124\213\124\174\315\174\220\356\220\232\377\232\230\373\230\4",




    "aleTurquoise\0   \146\213\213\226\315\315\256\356\356\273\377\377\257\356\356\4",




    "aleVioletRed\0   \213\107\135\315\150\211\356\171\237\377\202\253\333\160\223\4",





    "apayaWhip\0                  \377\357\325\0",

    "eachPuff\0       \213\167\145\315\257\225\356\313\255\377\332\271\377\332\271\4",
















    "eru\0                        \315\205\077\0",
    "ink\0            \213\143\154\315\221\236\356\251\270\377\265\305\377\300\313\4",
    "lum\0            \213\146\213\315\226\315\356\256\356\377\273\377\335\240\335\4",
    "owderBlue\0                  \260\340\346\0",











    "urple\0          \125\032\213\175\046\315\221\054\356\233\060\377\240\040\360\4",
    /* Colors starting with 'q' */
    /* Colors starting with 'r' */
    "ed\0             \213\000\000\315\000\000\356\000\000\377\000\000\377\000\000\4",
    "osyBrown\0       \213\151\151\315\233\233\356\264\264\377\301\301\274\217\217\4",













    "oyalBlue\0       \047\100\213\072\137\315\103\156\356\110\166\377\101\151\341\4",
    /* Colors starting with 's' */
    "addleBrown\0                 \213\105\023\0",
    "almon\0          \213\114\071\315\160\124\356\202\142\377\214\151\372\200\162\4",

    "andyBrown\0                  \364\244\140\0",

    "eaGreen\0        \056\213\127\103\315\200\116\356\224\124\377\237\056\213\127\4",




    "eashell\0        \213\206\202\315\305\277\356\345\336\377\365\356\377\365\356\4",










    "ienna\0          \213\107\046\315\150\071\356\171\102\377\202\107\240\122\055\4",
    "kyBlue\0         \112\160\213\154\246\315\176\300\356\207\316\377\207\316\353\4",







    "lateBlue\0       \107\074\213\151\131\315\172\147\356\203\157\377\152\132\315\4",




    "lateGray\0       \154\173\213\237\266\315\271\323\356\306\342\377\160\200\220\4",




    "lateGrey\0                   \160\200\220\0",









    "now\0            \213\211\211\315\311\311\356\351\351\377\372\372\377\372\372\4",
    "pringGreen\0     \000\213\105\000\315\146\000\356\166\000\377\177\000\377\177\4",
    "teelBlue\0       \066\144\213\117\224\315\134\254\356\143\270\377\106\202\264\4",
    /* Colors starting with 't' */
    "an\0             \213\132\053\315\205\077\356\232\111\377\245\117\322\264\214\4",









    "histle\0         \213\173\213\315\265\315\356\322\356\377\341\377\330\277\330\4",









    "omato\0          \213\066\046\315\117\071\356\134\102\377\143\107\377\143\107\4",
    "urquoise\0       \000\206\213\000\305\315\000\345\356\000\365\377\100\340\320\4",




    /* Colors starting with 'u' */
    /* Colors starting with 'v' */
    "iolet\0                      \356\202\356\0",






















    "ioletRed\0       \213\042\122\315\062\170\356\072\214\377\076\226\320\040\220\4",



    /* Colors starting with 'w' */













    "heat\0           \213\176\146\315\272\226\356\330\256\377\347\272\365\336\263\4",

    "hite\0                       \377\377\377\0",
    "hiteSmoke\0                  \365\365\365\0",
    /* Colors starting with 'x' */

    /* Colors starting with 'y' */


    "ellow\0          \213\213\000\315\315\000\356\356\000\377\377\000\377\377\000\4",



    "ellowGreen\0                 \232\315\062\0"











};










/*
 *----------------------------------------------------------------------
 *
 * XParseColor --
 *
 *	Partial implementation of X color name parsing interface.
876
877
878
879
880
881
882















































883
884
885
886
887
888
889
    return result;
}
#   endif
#else
#   define _strtoi64 strtoll
#endif
















































Status
XParseColor(
    Display *display,
    Colormap map,
    const char *spec,
    XColor *colorPtr)
{







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
    return result;
}
#   endif
#else
#   define _strtoi64 strtoll
#endif

static int colorcmp(const char *spec, const char *pname, int *special) {
    int r;
    int c, d;
    int notequal = 0;
    int num = 0;
    do {
	d = *pname++;
	c = (*spec == ' ');
	if (c) {
	    spec++;
	}
	if ((unsigned)(d - 'A') <= (unsigned)('Z' - 'A')) {
	    d += 'a' - 'A';
	} else if (c) {
	    /* A space doesn't match a lowercase, but we don't know
	     * yet whether we should return a negative or positive
	     * number. That depends on what follows. */
	    notequal = 1;
	}
	c = *spec++;
	if ((unsigned)(c - 'A') <= (unsigned)('Z' - 'A')) {
	    c += 'a' - 'A';
	} else if (((unsigned)(c - '1') <= (unsigned)('9' - '1'))) {
	    if (d == '0') {
	    	d += 10;
	    } else if (!d) {
		num = c - '0';
		while ((unsigned)((c = *spec++) - '0') <= (unsigned)('9' - '0')) {
		    num = num * 10 + c - '0';
		}
	    }
	}
	r = c - d;
    } while(!r && d);
    if (!r && notequal) {
	/* Strings are equal, but difference in spacings only. We should still
	 * report not-equal, so "burly wood" is not a valid color */
	r = 1;
    }
    *special = num;
    return r;
}

#define RED(p) ((unsigned char)(p)[0])
#define GREEN(p) ((unsigned char)(p)[1])
#define BLUE(p) ((unsigned char)(p)[2])

Status
XParseColor(
    Display *display,
    Colormap map,
    const char *spec,
    XColor *colorPtr)
{
912
913
914
915
916
917
918















919










920
921

922

















923
924
925
926
927
928











































929
930
931
932
933
934
935
	    colorPtr->green = (unsigned short) (value >> 16);
	    colorPtr->blue = (unsigned short) value;
	    break;
	default:
	    return 0;
	}
    } else {















	if (!FindColor(spec, colorPtr)) {










	    return 0;
	}

    }

















    colorPtr->pixel = TkpGetPixel(colorPtr);
    colorPtr->flags = DoRed|DoGreen|DoBlue;
    colorPtr->pad = 0;
    return 1;
}












































/*
 * Local Variables:
 * mode: c
 * c-basic-offset: 4
 * fill-column: 78
 * End:
 */







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
|
|
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>






>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
	    colorPtr->green = (unsigned short) (value >> 16);
	    colorPtr->blue = (unsigned short) value;
	    break;
	default:
	    return 0;
	}
    } else {
	int size, num;
	const elem *p;
	const char *q;
	/*
	 * Perform a binary search on the sorted array of colors.
	 * size = current size of search range
	 * p    = pointer to current element being considered.
	 */
	int r = (spec[0] - 'A') & 0xdf;
	if (r > (sizeof(az)/sizeof(az[0] - 1))) {
	    return 0;
	}
	size = az[r + 1] - az[r];
	p = &xColors[(az[r + 1] + az[r]) >> 1];
	r = colorcmp(spec + 1, *p, &num);

	while (r != 0) {
	    if (r < 0) {
		size = (size >> 1);
		p -= ((size + 1) >> 1);
	    } else {
		--size;
		size = (size >> 1);
		p += ((size + 2) >> 1);
	    }
	    if (!size) {
		return 0;
	    }
	    r = colorcmp(spec + 1, *p, &num);
	}
	if (num > (*p)[31]) {
	    if (((*p)[31] != 8) || num > 100)
	    	return 0;
	    num = (num * 255 + 50) / 100;
	    if ((num == 230) || (num == 128)) {
	    	/* Those two entries have a deviation i.r.t the table */
		num--;
	    }
	    num |= (num << 8);
	    colorPtr->red = colorPtr->green = colorPtr->blue = num;
	} else {
	    q = *p + 28 - num * 3;
	    colorPtr->red = ((RED(q) << 8) | RED(q));
	    colorPtr->green = ((GREEN(q) << 8) | GREEN(q));
	    colorPtr->blue = ((BLUE(q) << 8) | BLUE(q));
	}
    }
    colorPtr->pixel = TkpGetPixel(colorPtr);
    colorPtr->flags = DoRed|DoGreen|DoBlue;
    colorPtr->pad = 0;
    return 1;
}


#if 0
int main() {
    XColor color;
    char buf[32];
    int charindex;
    int i, result;
    int repeat = 1;
    int num, maxnum;
    char *end;

    while (repeat--) {
	buf[0] = 'a';
	charindex = 1;
	for (i = 0; i < sizeof(xColors)/sizeof(xColors[0]); ++i) {
	    while (i >= az[charindex]) {
		++charindex;
		++(buf[0]);
	    }
	    strcpy(buf + 1, xColors[i]);
	    end = buf + strlen(buf);
	    num = 0;
	    result = XParseColor(0, 0, buf, &color);
	    printf("%3d %3d %3d\t\t%s\n", color.red >> 8, color.green >> 8, color.blue >> 8, buf);
	    maxnum = xColors[i][31];
	    if (maxnum == 8) maxnum = 100;
	    while (result && ++num <= maxnum) {
	    	sprintf(end, "%d", num);
		result = XParseColor(0, 0, buf, &color);
		printf("%3d %3d %3d\t\t%s\n", color.red >> 8, color.green >> 8, color.blue >> 8, buf);
	    }
	    if (!result) {
		break;
	    }
	}
    }
    if (!result) {
	printf("NOT OK: %s\n", buf);
    } else {
	printf("OK\n");
    }
}
#endif
/*
 * Local Variables:
 * mode: c
 * c-basic-offset: 4
 * fill-column: 78
 * End:
 */