xcolors.c
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:30k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /* 
  2.  * xcolors.c --
  3.  *
  4.  * This file contains the routines used to map from X color
  5.  * names to RGB and pixel values.
  6.  *
  7.  * Copyright (c) 1996 by Sun Microsystems, Inc.
  8.  *
  9.  * See the file "license.terms" for information on usage and redistribution
  10.  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  11.  *
  12.  * RCS: @(#) $Id: xcolors.c,v 1.5.2.1 2005/09/10 14:54:18 das Exp $
  13.  */
  14. #include <tkInt.h>
  15. /*
  16.  * Define an array that defines the mapping from color names to RGB values.
  17.  * Note that this array must be kept sorted alphabetically so that the
  18.  * binary search used in XParseColor will succeed.
  19.  */
  20. typedef struct {
  21.     char *name;
  22.     unsigned char red;
  23.     unsigned char green;
  24.     unsigned char blue;
  25. } XColorEntry;
  26. static XColorEntry xColors[] = {
  27.      { "alice blue", 240, 248, 255 },
  28.      { "AliceBlue", 240, 248, 255 },
  29.      { "antique white", 250, 235, 215 },
  30.      { "AntiqueWhite", 250, 235, 215 },
  31.      { "AntiqueWhite1", 255, 239, 219 },
  32.      { "AntiqueWhite2", 238, 223, 204 },
  33.      { "AntiqueWhite3", 205, 192, 176 },
  34.      { "AntiqueWhite4", 139, 131, 120 },
  35.      { "aquamarine", 127, 255, 212 },
  36.      { "aquamarine1", 127, 255, 212 },
  37.      { "aquamarine2", 118, 238, 198 },
  38.      { "aquamarine3", 102, 205, 170 },
  39.      { "aquamarine4", 69, 139, 116 },
  40.      { "azure", 240, 255, 255 },
  41.      { "azure1", 240, 255, 255 },
  42.      { "azure2", 224, 238, 238 },
  43.      { "azure3", 193, 205, 205 },
  44.      { "azure4", 131, 139, 139 },
  45.      { "beige", 245, 245, 220 },
  46.      { "bisque", 255, 228, 196 },
  47.      { "bisque1", 255, 228, 196 },
  48.      { "bisque2", 238, 213, 183 },
  49.      { "bisque3", 205, 183, 158 },
  50.      { "bisque4", 139, 125, 107 },
  51.      { "black", 0, 0, 0 },
  52.      { "blanched almond", 255, 235, 205 },
  53.      { "BlanchedAlmond", 255, 235, 205 },
  54.      { "blue", 0, 0, 255 },
  55.      { "blue violet", 138, 43, 226 },
  56.      { "blue1", 0, 0, 255 },
  57.      { "blue2", 0, 0, 238 },
  58.      { "blue3", 0, 0, 205 },
  59.      { "blue4", 0, 0, 139 },
  60.      { "BlueViolet", 138, 43, 226 },
  61.      { "brown", 165, 42, 42 },
  62.      { "brown1", 255, 64, 64 },
  63.      { "brown2", 238, 59, 59 },
  64.      { "brown3", 205, 51, 51 },
  65.      { "brown4", 139, 35, 35 },
  66.      { "burlywood", 222, 184, 135 },
  67.      { "burlywood1", 255, 211, 155 },
  68.      { "burlywood2", 238, 197, 145 },
  69.      { "burlywood3", 205, 170, 125 },
  70.      { "burlywood4", 139, 115, 85 },
  71.      { "cadet blue", 95, 158, 160 },
  72.      { "CadetBlue", 95, 158, 160 },
  73.      { "CadetBlue1", 152, 245, 255 },
  74.      { "CadetBlue2", 142, 229, 238 },
  75.      { "CadetBlue3", 122, 197, 205 },
  76.      { "CadetBlue4", 83, 134, 139 },
  77.      { "chartreuse", 127, 255, 0 },
  78.      { "chartreuse1", 127, 255, 0 },
  79.      { "chartreuse2", 118, 238, 0 },
  80.      { "chartreuse3", 102, 205, 0 },
  81.      { "chartreuse4", 69, 139, 0 },
  82.      { "chocolate", 210, 105, 30 },
  83.      { "chocolate1", 255, 127, 36 },
  84.      { "chocolate2", 238, 118, 33 },
  85.      { "chocolate3", 205, 102, 29 },
  86.      { "chocolate4", 139, 69, 19 },
  87.      { "coral", 255, 127, 80 },
  88.      { "coral1", 255, 114, 86 },
  89.      { "coral2", 238, 106, 80 },
  90.      { "coral3", 205, 91, 69 },
  91.      { "coral4", 139, 62, 47 },
  92.      { "cornflower blue", 100, 149, 237 },
  93.      { "CornflowerBlue", 100, 149, 237 },
  94.      { "cornsilk", 255, 248, 220 },
  95.      { "cornsilk1", 255, 248, 220 },
  96.      { "cornsilk2", 238, 232, 205 },
  97.      { "cornsilk3", 205, 200, 177 },
  98.      { "cornsilk4", 139, 136, 120 },
  99.      { "cyan", 0, 255, 255 },
  100.      { "cyan1", 0, 255, 255 },
  101.      { "cyan2", 0, 238, 238 },
  102.      { "cyan3", 0, 205, 205 },
  103.      { "cyan4", 0, 139, 139 },
  104.      { "dark blue", 0, 0, 139 },
  105.      { "dark cyan", 0, 139, 139 },
  106.      { "dark goldenrod", 184, 134, 11 },
  107.      { "dark gray", 169, 169, 169 },
  108.      { "dark green", 0, 100, 0 },
  109.      { "dark grey", 169, 169, 169 },
  110.      { "dark khaki", 189, 183, 107 },
  111.      { "dark magenta", 139, 0, 139 },
  112.      { "dark olive green", 85, 107, 47 },
  113.      { "dark orange", 255, 140, 0 },
  114.      { "dark orchid", 153, 50, 204 },
  115.      { "dark red", 139, 0, 0 },
  116.      { "dark salmon", 233, 150, 122 },
  117.      { "dark sea green", 143, 188, 143 },
  118.      { "dark slate blue", 72, 61, 139 },
  119.      { "dark slate gray", 47, 79, 79 },
  120.      { "dark slate grey", 47, 79, 79 },
  121.      { "dark turquoise", 0, 206, 209 },
  122.      { "dark violet", 148, 0, 211 },
  123.      { "DarkBlue", 0, 0, 139 },
  124.      { "DarkCyan", 0, 139, 139 },
  125.      { "DarkGoldenrod", 184, 134, 11 },
  126.      { "DarkGoldenrod1", 255, 185, 15 },
  127.      { "DarkGoldenrod2", 238, 173, 14 },
  128.      { "DarkGoldenrod3", 205, 149, 12 },
  129.      { "DarkGoldenrod4", 139, 101, 8 },
  130.      { "DarkGray", 169, 169, 169 },
  131.      { "DarkGreen", 0, 100, 0 },
  132.      { "DarkGrey", 169, 169, 169 },
  133.      { "DarkKhaki", 189, 183, 107 },
  134.      { "DarkMagenta", 139, 0, 139 },
  135.      { "DarkOliveGreen", 85, 107, 47 },
  136.      { "DarkOliveGreen1", 202, 255, 112 },
  137.      { "DarkOliveGreen2", 188, 238, 104 },
  138.      { "DarkOliveGreen3", 162, 205, 90 },
  139.      { "DarkOliveGreen4", 110, 139, 61 },
  140.      { "DarkOrange", 255, 140, 0 },
  141.      { "DarkOrange1", 255, 127, 0 },
  142.      { "DarkOrange2", 238, 118, 0 },
  143.      { "DarkOrange3", 205, 102, 0 },
  144.      { "DarkOrange4", 139, 69, 0 },
  145.      { "DarkOrchid", 153, 50, 204 },
  146.      { "DarkOrchid1", 191, 62, 255 },
  147.      { "DarkOrchid2", 178, 58, 238 },
  148.      { "DarkOrchid3", 154, 50, 205 },
  149.      { "DarkOrchid4", 104, 34, 139 },
  150.      { "DarkRed", 139, 0, 0 },
  151.      { "DarkSalmon", 233, 150, 122 },
  152.      { "DarkSeaGreen", 143, 188, 143 },
  153.      { "DarkSeaGreen1", 193, 255, 193 },
  154.      { "DarkSeaGreen2", 180, 238, 180 },
  155.      { "DarkSeaGreen3", 155, 205, 155 },
  156.      { "DarkSeaGreen4", 105, 139, 105 },
  157.      { "DarkSlateBlue", 72, 61, 139 },
  158.      { "DarkSlateGray", 47, 79, 79 },
  159.      { "DarkSlateGray1", 151, 255, 255 },
  160.      { "DarkSlateGray2", 141, 238, 238 },
  161.      { "DarkSlateGray3", 121, 205, 205 },
  162.      { "DarkSlateGray4", 82, 139, 139 },
  163.      { "DarkSlateGrey", 47, 79, 79 },
  164.      { "DarkTurquoise", 0, 206, 209 },
  165.      { "DarkViolet", 148, 0, 211 },
  166.      { "deep pink", 255, 20, 147 },
  167.      { "deep sky blue", 0, 191, 255 },
  168.      { "DeepPink", 255, 20, 147 },
  169.      { "DeepPink1", 255, 20, 147 },
  170.      { "DeepPink2", 238, 18, 137 },
  171.      { "DeepPink3", 205, 16, 118 },
  172.      { "DeepPink4", 139, 10, 80 },
  173.      { "DeepSkyBlue", 0, 191, 255 },
  174.      { "DeepSkyBlue1", 0, 191, 255 },
  175.      { "DeepSkyBlue2", 0, 178, 238 },
  176.      { "DeepSkyBlue3", 0, 154, 205 },
  177.      { "DeepSkyBlue4", 0, 104, 139 },
  178.      { "dim gray", 105, 105, 105 },
  179.      { "dim grey", 105, 105, 105 },
  180.      { "DimGray", 105, 105, 105 },
  181.      { "DimGrey", 105, 105, 105 },
  182.      { "dodger blue", 30, 144, 255 },
  183.      { "DodgerBlue", 30, 144, 255 },
  184.      { "DodgerBlue1", 30, 144, 255 },
  185.      { "DodgerBlue2", 28, 134, 238 },
  186.      { "DodgerBlue3", 24, 116, 205 },
  187.      { "DodgerBlue4", 16, 78, 139 },
  188.      { "firebrick", 178, 34, 34 },
  189.      { "firebrick1", 255, 48, 48 },
  190.      { "firebrick2", 238, 44, 44 },
  191.      { "firebrick3", 205, 38, 38 },
  192.      { "firebrick4", 139, 26, 26 },
  193.      { "floral white", 255, 250, 240 },
  194.      { "FloralWhite", 255, 250, 240 },
  195.      { "forest green", 34, 139, 34 },
  196.      { "ForestGreen", 34, 139, 34 },
  197.      { "gainsboro", 220, 220, 220 },
  198.      { "ghost white", 248, 248, 255 },
  199.      { "GhostWhite", 248, 248, 255 },
  200.      { "gold", 255, 215, 0 },
  201.      { "gold1", 255, 215, 0 },
  202.      { "gold2", 238, 201, 0 },
  203.      { "gold3", 205, 173, 0 },
  204.      { "gold4", 139, 117, 0 },
  205.      { "goldenrod", 218, 165, 32 },
  206.      { "goldenrod1", 255, 193, 37 },
  207.      { "goldenrod2", 238, 180, 34 },
  208.      { "goldenrod3", 205, 155, 29 },
  209.      { "goldenrod4", 139, 105, 20 },
  210.      { "gray", 190, 190, 190 },
  211.      { "gray0", 0, 0, 0 },
  212.      { "gray1", 3, 3, 3 },
  213.      { "gray10", 26, 26, 26 },
  214.      { "gray100", 255, 255, 255 },
  215.      { "gray11", 28, 28, 28 },
  216.      { "gray12", 31, 31, 31 },
  217.      { "gray13", 33, 33, 33 },
  218.      { "gray14", 36, 36, 36 },
  219.      { "gray15", 38, 38, 38 },
  220.      { "gray16", 41, 41, 41 },
  221.      { "gray17", 43, 43, 43 },
  222.      { "gray18", 46, 46, 46 },
  223.      { "gray19", 48, 48, 48 },
  224.      { "gray2", 5, 5, 5 },
  225.      { "gray20", 51, 51, 51 },
  226.      { "gray21", 54, 54, 54 },
  227.      { "gray22", 56, 56, 56 },
  228.      { "gray23", 59, 59, 59 },
  229.      { "gray24", 61, 61, 61 },
  230.      { "gray25", 64, 64, 64 },
  231.      { "gray26", 66, 66, 66 },
  232.      { "gray27", 69, 69, 69 },
  233.      { "gray28", 71, 71, 71 },
  234.      { "gray29", 74, 74, 74 },
  235.      { "gray3", 8, 8, 8 },
  236.      { "gray30", 77, 77, 77 },
  237.      { "gray31", 79, 79, 79 },
  238.      { "gray32", 82, 82, 82 },
  239.      { "gray33", 84, 84, 84 },
  240.      { "gray34", 87, 87, 87 },
  241.      { "gray35", 89, 89, 89 },
  242.      { "gray36", 92, 92, 92 },
  243.      { "gray37", 94, 94, 94 },
  244.      { "gray38", 97, 97, 97 },
  245.      { "gray39", 99, 99, 99 },
  246.      { "gray4", 10, 10, 10 },
  247.      { "gray40", 102, 102, 102 },
  248.      { "gray41", 105, 105, 105 },
  249.      { "gray42", 107, 107, 107 },
  250.      { "gray43", 110, 110, 110 },
  251.      { "gray44", 112, 112, 112 },
  252.      { "gray45", 115, 115, 115 },
  253.      { "gray46", 117, 117, 117 },
  254.      { "gray47", 120, 120, 120 },
  255.      { "gray48", 122, 122, 122 },
  256.      { "gray49", 125, 125, 125 },
  257.      { "gray5", 13, 13, 13 },
  258.      { "gray50", 127, 127, 127 },
  259.      { "gray51", 130, 130, 130 },
  260.      { "gray52", 133, 133, 133 },
  261.      { "gray53", 135, 135, 135 },
  262.      { "gray54", 138, 138, 138 },
  263.      { "gray55", 140, 140, 140 },
  264.      { "gray56", 143, 143, 143 },
  265.      { "gray57", 145, 145, 145 },
  266.      { "gray58", 148, 148, 148 },
  267.      { "gray59", 150, 150, 150 },
  268.      { "gray6", 15, 15, 15 },
  269.      { "gray60", 153, 153, 153 },
  270.      { "gray61", 156, 156, 156 },
  271.      { "gray62", 158, 158, 158 },
  272.      { "gray63", 161, 161, 161 },
  273.      { "gray64", 163, 163, 163 },
  274.      { "gray65", 166, 166, 166 },
  275.      { "gray66", 168, 168, 168 },
  276.      { "gray67", 171, 171, 171 },
  277.      { "gray68", 173, 173, 173 },
  278.      { "gray69", 176, 176, 176 },
  279.      { "gray7", 18, 18, 18 },
  280.      { "gray70", 179, 179, 179 },
  281.      { "gray71", 181, 181, 181 },
  282.      { "gray72", 184, 184, 184 },
  283.      { "gray73", 186, 186, 186 },
  284.      { "gray74", 189, 189, 189 },
  285.      { "gray75", 191, 191, 191 },
  286.      { "gray76", 194, 194, 194 },
  287.      { "gray77", 196, 196, 196 },
  288.      { "gray78", 199, 199, 199 },
  289.      { "gray79", 201, 201, 201 },
  290.      { "gray8", 20, 20, 20 },
  291.      { "gray80", 204, 204, 204 },
  292.      { "gray81", 207, 207, 207 },
  293.      { "gray82", 209, 209, 209 },
  294.      { "gray83", 212, 212, 212 },
  295.      { "gray84", 214, 214, 214 },
  296.      { "gray85", 217, 217, 217 },
  297.      { "gray86", 219, 219, 219 },
  298.      { "gray87", 222, 222, 222 },
  299.      { "gray88", 224, 224, 224 },
  300.      { "gray89", 227, 227, 227 },
  301.      { "gray9", 23, 23, 23 },
  302.      { "gray90", 229, 229, 229 },
  303.      { "gray91", 232, 232, 232 },
  304.      { "gray92", 235, 235, 235 },
  305.      { "gray93", 237, 237, 237 },
  306.      { "gray94", 240, 240, 240 },
  307.      { "gray95", 242, 242, 242 },
  308.      { "gray96", 245, 245, 245 },
  309.      { "gray97", 247, 247, 247 },
  310.      { "gray98", 250, 250, 250 },
  311.      { "gray99", 252, 252, 252 },
  312.      { "green", 0, 255, 0 },
  313.      { "green yellow", 173, 255, 47 },
  314.      { "green1", 0, 255, 0 },
  315.      { "green2", 0, 238, 0 },
  316.      { "green3", 0, 205, 0 },
  317.      { "green4", 0, 139, 0 },
  318.      { "GreenYellow", 173, 255, 47 },
  319.      { "grey", 190, 190, 190 },
  320.      { "grey0", 0, 0, 0 },
  321.      { "grey1", 3, 3, 3 },
  322.      { "grey10", 26, 26, 26 },
  323.      { "grey100", 255, 255, 255 },
  324.      { "grey11", 28, 28, 28 },
  325.      { "grey12", 31, 31, 31 },
  326.      { "grey13", 33, 33, 33 },
  327.      { "grey14", 36, 36, 36 },
  328.      { "grey15", 38, 38, 38 },
  329.      { "grey16", 41, 41, 41 },
  330.      { "grey17", 43, 43, 43 },
  331.      { "grey18", 46, 46, 46 },
  332.      { "grey19", 48, 48, 48 },
  333.      { "grey2", 5, 5, 5 },
  334.      { "grey20", 51, 51, 51 },
  335.      { "grey21", 54, 54, 54 },
  336.      { "grey22", 56, 56, 56 },
  337.      { "grey23", 59, 59, 59 },
  338.      { "grey24", 61, 61, 61 },
  339.      { "grey25", 64, 64, 64 },
  340.      { "grey26", 66, 66, 66 },
  341.      { "grey27", 69, 69, 69 },
  342.      { "grey28", 71, 71, 71 },
  343.      { "grey29", 74, 74, 74 },
  344.      { "grey3", 8, 8, 8 },
  345.      { "grey30", 77, 77, 77 },
  346.      { "grey31", 79, 79, 79 },
  347.      { "grey32", 82, 82, 82 },
  348.      { "grey33", 84, 84, 84 },
  349.      { "grey34", 87, 87, 87 },
  350.      { "grey35", 89, 89, 89 },
  351.      { "grey36", 92, 92, 92 },
  352.      { "grey37", 94, 94, 94 },
  353.      { "grey38", 97, 97, 97 },
  354.      { "grey39", 99, 99, 99 },
  355.      { "grey4", 10, 10, 10 },
  356.      { "grey40", 102, 102, 102 },
  357.      { "grey41", 105, 105, 105 },
  358.      { "grey42", 107, 107, 107 },
  359.      { "grey43", 110, 110, 110 },
  360.      { "grey44", 112, 112, 112 },
  361.      { "grey45", 115, 115, 115 },
  362.      { "grey46", 117, 117, 117 },
  363.      { "grey47", 120, 120, 120 },
  364.      { "grey48", 122, 122, 122 },
  365.      { "grey49", 125, 125, 125 },
  366.      { "grey5", 13, 13, 13 },
  367.      { "grey50", 127, 127, 127 },
  368.      { "grey51", 130, 130, 130 },
  369.      { "grey52", 133, 133, 133 },
  370.      { "grey53", 135, 135, 135 },
  371.      { "grey54", 138, 138, 138 },
  372.      { "grey55", 140, 140, 140 },
  373.      { "grey56", 143, 143, 143 },
  374.      { "grey57", 145, 145, 145 },
  375.      { "grey58", 148, 148, 148 },
  376.      { "grey59", 150, 150, 150 },
  377.      { "grey6", 15, 15, 15 },
  378.      { "grey60", 153, 153, 153 },
  379.      { "grey61", 156, 156, 156 },
  380.      { "grey62", 158, 158, 158 },
  381.      { "grey63", 161, 161, 161 },
  382.      { "grey64", 163, 163, 163 },
  383.      { "grey65", 166, 166, 166 },
  384.      { "grey66", 168, 168, 168 },
  385.      { "grey67", 171, 171, 171 },
  386.      { "grey68", 173, 173, 173 },
  387.      { "grey69", 176, 176, 176 },
  388.      { "grey7", 18, 18, 18 },
  389.      { "grey70", 179, 179, 179 },
  390.      { "grey71", 181, 181, 181 },
  391.      { "grey72", 184, 184, 184 },
  392.      { "grey73", 186, 186, 186 },
  393.      { "grey74", 189, 189, 189 },
  394.      { "grey75", 191, 191, 191 },
  395.      { "grey76", 194, 194, 194 },
  396.      { "grey77", 196, 196, 196 },
  397.      { "grey78", 199, 199, 199 },
  398.      { "grey79", 201, 201, 201 },
  399.      { "grey8", 20, 20, 20 },
  400.      { "grey80", 204, 204, 204 },
  401.      { "grey81", 207, 207, 207 },
  402.      { "grey82", 209, 209, 209 },
  403.      { "grey83", 212, 212, 212 },
  404.      { "grey84", 214, 214, 214 },
  405.      { "grey85", 217, 217, 217 },
  406.      { "grey86", 219, 219, 219 },
  407.      { "grey87", 222, 222, 222 },
  408.      { "grey88", 224, 224, 224 },
  409.      { "grey89", 227, 227, 227 },
  410.      { "grey9", 23, 23, 23 },
  411.      { "grey90", 229, 229, 229 },
  412.      { "grey91", 232, 232, 232 },
  413.      { "grey92", 235, 235, 235 },
  414.      { "grey93", 237, 237, 237 },
  415.      { "grey94", 240, 240, 240 },
  416.      { "grey95", 242, 242, 242 },
  417.      { "grey96", 245, 245, 245 },
  418.      { "grey97", 247, 247, 247 },
  419.      { "grey98", 250, 250, 250 },
  420.      { "grey99", 252, 252, 252 },
  421.      { "honeydew", 240, 255, 240 },
  422.      { "honeydew1", 240, 255, 240 },
  423.      { "honeydew2", 224, 238, 224 },
  424.      { "honeydew3", 193, 205, 193 },
  425.      { "honeydew4", 131, 139, 131 },
  426.      { "hot pink", 255, 105, 180 },
  427.      { "HotPink", 255, 105, 180 },
  428.      { "HotPink1", 255, 110, 180 },
  429.      { "HotPink2", 238, 106, 167 },
  430.      { "HotPink3", 205, 96, 144 },
  431.      { "HotPink4", 139, 58, 98 },
  432.      { "indian red", 205, 92, 92 },
  433.      { "IndianRed", 205, 92, 92 },
  434.      { "IndianRed1", 255, 106, 106 },
  435.      { "IndianRed2", 238, 99, 99 },
  436.      { "IndianRed3", 205, 85, 85 },
  437.      { "IndianRed4", 139, 58, 58 },
  438.      { "ivory", 255, 255, 240 },
  439.      { "ivory1", 255, 255, 240 },
  440.      { "ivory2", 238, 238, 224 },
  441.      { "ivory3", 205, 205, 193 },
  442.      { "ivory4", 139, 139, 131 },
  443.      { "khaki", 240, 230, 140 },
  444.      { "khaki1", 255, 246, 143 },
  445.      { "khaki2", 238, 230, 133 },
  446.      { "khaki3", 205, 198, 115 },
  447.      { "khaki4", 139, 134, 78 },
  448.      { "lavender", 230, 230, 250 },
  449.      { "lavender blush", 255, 240, 245 },
  450.      { "LavenderBlush", 255, 240, 245 },
  451.      { "LavenderBlush1", 255, 240, 245 },
  452.      { "LavenderBlush2", 238, 224, 229 },
  453.      { "LavenderBlush3", 205, 193, 197 },
  454.      { "LavenderBlush4", 139, 131, 134 },
  455.      { "lawn green", 124, 252, 0 },
  456.      { "LawnGreen", 124, 252, 0 },
  457.      { "lemon chiffon", 255, 250, 205 },
  458.      { "LemonChiffon", 255, 250, 205 },
  459.      { "LemonChiffon1", 255, 250, 205 },
  460.      { "LemonChiffon2", 238, 233, 191 },
  461.      { "LemonChiffon3", 205, 201, 165 },
  462.      { "LemonChiffon4", 139, 137, 112 },
  463.      { "light blue", 173, 216, 230 },
  464.      { "light coral", 240, 128, 128 },
  465.      { "light cyan", 224, 255, 255 },
  466.      { "light goldenrod", 238, 221, 130 },
  467.      { "light goldenrod yellow", 250, 250, 210 },
  468.      { "light gray", 211, 211, 211 },
  469.      { "light green", 144, 238, 144 },
  470.      { "light grey", 211, 211, 211 },
  471.      { "light pink", 255, 182, 193 },
  472.      { "light salmon", 255, 160, 122 },
  473.      { "light sea green", 32, 178, 170 },
  474.      { "light sky blue", 135, 206, 250 },
  475.      { "light slate blue", 132, 112, 255 },
  476.      { "light slate gray", 119, 136, 153 },
  477.      { "light slate grey", 119, 136, 153 },
  478.      { "light steel blue", 176, 196, 222 },
  479.      { "light yellow", 255, 255, 224 },
  480.      { "LightBlue", 173, 216, 230 },
  481.      { "LightBlue1", 191, 239, 255 },
  482.      { "LightBlue2", 178, 223, 238 },
  483.      { "LightBlue3", 154, 192, 205 },
  484.      { "LightBlue4", 104, 131, 139 },
  485.      { "LightCoral", 240, 128, 128 },
  486.      { "LightCyan", 224, 255, 255 },
  487.      { "LightCyan1", 224, 255, 255 },
  488.      { "LightCyan2", 209, 238, 238 },
  489.      { "LightCyan3", 180, 205, 205 },
  490.      { "LightCyan4", 122, 139, 139 },
  491.      { "LightGoldenrod", 238, 221, 130 },
  492.      { "LightGoldenrod1", 255, 236, 139 },
  493.      { "LightGoldenrod2", 238, 220, 130 },
  494.      { "LightGoldenrod3", 205, 190, 112 },
  495.      { "LightGoldenrod4", 139, 129, 76 },
  496.      { "LightGoldenrodYellow", 250, 250, 210 },
  497.      { "LightGray", 211, 211, 211 },
  498.      { "LightGreen", 144, 238, 144 },
  499.      { "LightGrey", 211, 211, 211 },
  500.      { "LightPink", 255, 182, 193 },
  501.      { "LightPink1", 255, 174, 185 },
  502.      { "LightPink2", 238, 162, 173 },
  503.      { "LightPink3", 205, 140, 149 },
  504.      { "LightPink4", 139, 95, 101 },
  505.      { "LightSalmon", 255, 160, 122 },
  506.      { "LightSalmon1", 255, 160, 122 },
  507.      { "LightSalmon2", 238, 149, 114 },
  508.      { "LightSalmon3", 205, 129, 98 },
  509.      { "LightSalmon4", 139, 87, 66 },
  510.      { "LightSeaGreen", 32, 178, 170 },
  511.      { "LightSkyBlue", 135, 206, 250 },
  512.      { "LightSkyBlue1", 176, 226, 255 },
  513.      { "LightSkyBlue2", 164, 211, 238 },
  514.      { "LightSkyBlue3", 141, 182, 205 },
  515.      { "LightSkyBlue4", 96, 123, 139 },
  516.      { "LightSlateBlue", 132, 112, 255 },
  517.      { "LightSlateGray", 119, 136, 153 },
  518.      { "LightSlateGrey", 119, 136, 153 },
  519.      { "LightSteelBlue", 176, 196, 222 },
  520.      { "LightSteelBlue1", 202, 225, 255 },
  521.      { "LightSteelBlue2", 188, 210, 238 },
  522.      { "LightSteelBlue3", 162, 181, 205 },
  523.      { "LightSteelBlue4", 110, 123, 139 },
  524.      { "LightYellow", 255, 255, 224 },
  525.      { "LightYellow1", 255, 255, 224 },
  526.      { "LightYellow2", 238, 238, 209 },
  527.      { "LightYellow3", 205, 205, 180 },
  528.      { "LightYellow4", 139, 139, 122 },
  529.      { "lime green", 50, 205, 50 },
  530.      { "LimeGreen", 50, 205, 50 },
  531.      { "linen", 250, 240, 230 },
  532.      { "magenta", 255, 0, 255 },
  533.      { "magenta1", 255, 0, 255 },
  534.      { "magenta2", 238, 0, 238 },
  535.      { "magenta3", 205, 0, 205 },
  536.      { "magenta4", 139, 0, 139 },
  537.      { "maroon", 176, 48, 96 },
  538.      { "maroon1", 255, 52, 179 },
  539.      { "maroon2", 238, 48, 167 },
  540.      { "maroon3", 205, 41, 144 },
  541.      { "maroon4", 139, 28, 98 },
  542.      { "medium aquamarine", 102, 205, 170 },
  543.      { "medium blue", 0, 0, 205 },
  544.      { "medium orchid", 186, 85, 211 },
  545.      { "medium purple", 147, 112, 219 },
  546.      { "medium sea green", 60, 179, 113 },
  547.      { "medium slate blue", 123, 104, 238 },
  548.      { "medium spring green", 0, 250, 154 },
  549.      { "medium turquoise", 72, 209, 204 },
  550.      { "medium violet red", 199, 21, 133 },
  551.      { "MediumAquamarine", 102, 205, 170 },
  552.      { "MediumBlue", 0, 0, 205 },
  553.      { "MediumOrchid", 186, 85, 211 },
  554.      { "MediumOrchid1", 224, 102, 255 },
  555.      { "MediumOrchid2", 209, 95, 238 },
  556.      { "MediumOrchid3", 180, 82, 205 },
  557.      { "MediumOrchid4", 122, 55, 139 },
  558.      { "MediumPurple", 147, 112, 219 },
  559.      { "MediumPurple1", 171, 130, 255 },
  560.      { "MediumPurple2", 159, 121, 238 },
  561.      { "MediumPurple3", 137, 104, 205 },
  562.      { "MediumPurple4", 93, 71, 139 },
  563.      { "MediumSeaGreen", 60, 179, 113 },
  564.      { "MediumSlateBlue", 123, 104, 238 },
  565.      { "MediumSpringGreen", 0, 250, 154 },
  566.      { "MediumTurquoise", 72, 209, 204 },
  567.      { "MediumVioletRed", 199, 21, 133 },
  568.      { "midnight blue", 25, 25, 112 },
  569.      { "MidnightBlue", 25, 25, 112 },
  570.      { "mint cream", 245, 255, 250 },
  571.      { "MintCream", 245, 255, 250 },
  572.      { "misty rose", 255, 228, 225 },
  573.      { "MistyRose", 255, 228, 225 },
  574.      { "MistyRose1", 255, 228, 225 },
  575.      { "MistyRose2", 238, 213, 210 },
  576.      { "MistyRose3", 205, 183, 181 },
  577.      { "MistyRose4", 139, 125, 123 },
  578.      { "moccasin", 255, 228, 181 },
  579.      { "navajo white", 255, 222, 173 },
  580.      { "NavajoWhite", 255, 222, 173 },
  581.      { "NavajoWhite1", 255, 222, 173 },
  582.      { "NavajoWhite2", 238, 207, 161 },
  583.      { "NavajoWhite3", 205, 179, 139 },
  584.      { "NavajoWhite4", 139, 121, 94 },
  585.      { "navy", 0, 0, 128 },
  586.      { "navy blue", 0, 0, 128 },
  587.      { "NavyBlue", 0, 0, 128 },
  588.      { "old lace", 253, 245, 230 },
  589.      { "OldLace", 253, 245, 230 },
  590.      { "olive drab", 107, 142, 35 },
  591.      { "OliveDrab", 107, 142, 35 },
  592.      { "OliveDrab1", 192, 255, 62 },
  593.      { "OliveDrab2", 179, 238, 58 },
  594.      { "OliveDrab3", 154, 205, 50 },
  595.      { "OliveDrab4", 105, 139, 34 },
  596.      { "orange", 255, 165, 0 },
  597.      { "orange red", 255, 69, 0 },
  598.      { "orange1", 255, 165, 0 },
  599.      { "orange2", 238, 154, 0 },
  600.      { "orange3", 205, 133, 0 },
  601.      { "orange4", 139, 90, 0 },
  602.      { "OrangeRed", 255, 69, 0 },
  603.      { "OrangeRed1", 255, 69, 0 },
  604.      { "OrangeRed2", 238, 64, 0 },
  605.      { "OrangeRed3", 205, 55, 0 },
  606.      { "OrangeRed4", 139, 37, 0 },
  607.      { "orchid", 218, 112, 214 },
  608.      { "orchid1", 255, 131, 250 },
  609.      { "orchid2", 238, 122, 233 },
  610.      { "orchid3", 205, 105, 201 },
  611.      { "orchid4", 139, 71, 137 },
  612.      { "pale goldenrod", 238, 232, 170 },
  613.      { "pale green", 152, 251, 152 },
  614.      { "pale turquoise", 175, 238, 238 },
  615.      { "pale violet red", 219, 112, 147 },
  616.      { "PaleGoldenrod", 238, 232, 170 },
  617.      { "PaleGreen", 152, 251, 152 },
  618.      { "PaleGreen1", 154, 255, 154 },
  619.      { "PaleGreen2", 144, 238, 144 },
  620.      { "PaleGreen3", 124, 205, 124 },
  621.      { "PaleGreen4", 84, 139, 84 },
  622.      { "PaleTurquoise", 175, 238, 238 },
  623.      { "PaleTurquoise1", 187, 255, 255 },
  624.      { "PaleTurquoise2", 174, 238, 238 },
  625.      { "PaleTurquoise3", 150, 205, 205 },
  626.      { "PaleTurquoise4", 102, 139, 139 },
  627.      { "PaleVioletRed", 219, 112, 147 },
  628.      { "PaleVioletRed1", 255, 130, 171 },
  629.      { "PaleVioletRed2", 238, 121, 159 },
  630.      { "PaleVioletRed3", 205, 104, 137 },
  631.      { "PaleVioletRed4", 139, 71, 93 },
  632.      { "papaya whip", 255, 239, 213 },
  633.      { "PapayaWhip", 255, 239, 213 },
  634.      { "peach puff", 255, 218, 185 },
  635.      { "PeachPuff", 255, 218, 185 },
  636.      { "PeachPuff1", 255, 218, 185 },
  637.      { "PeachPuff2", 238, 203, 173 },
  638.      { "PeachPuff3", 205, 175, 149 },
  639.      { "PeachPuff4", 139, 119, 101 },
  640.      { "peru", 205, 133, 63 },
  641.      { "pink", 255, 192, 203 },
  642.      { "pink1", 255, 181, 197 },
  643.      { "pink2", 238, 169, 184 },
  644.      { "pink3", 205, 145, 158 },
  645.      { "pink4", 139, 99, 108 },
  646.      { "plum", 221, 160, 221 },
  647.      { "plum1", 255, 187, 255 },
  648.      { "plum2", 238, 174, 238 },
  649.      { "plum3", 205, 150, 205 },
  650.      { "plum4", 139, 102, 139 },
  651.      { "powder blue", 176, 224, 230 },
  652.      { "PowderBlue", 176, 224, 230 },
  653.      { "purple", 160, 32, 240 },
  654.      { "purple1", 155, 48, 255 },
  655.      { "purple2", 145, 44, 238 },
  656.      { "purple3", 125, 38, 205 },
  657.      { "purple4", 85, 26, 139 },
  658.      { "red", 255, 0, 0 },
  659.      { "red1", 255, 0, 0 },
  660.      { "red2", 238, 0, 0 },
  661.      { "red3", 205, 0, 0 },
  662.      { "red4", 139, 0, 0 },
  663.      { "rosy brown", 188, 143, 143 },
  664.      { "RosyBrown", 188, 143, 143 },
  665.      { "RosyBrown1", 255, 193, 193 },
  666.      { "RosyBrown2", 238, 180, 180 },
  667.      { "RosyBrown3", 205, 155, 155 },
  668.      { "RosyBrown4", 139, 105, 105 },
  669.      { "royal blue", 65, 105, 225 },
  670.      { "RoyalBlue", 65, 105, 225 },
  671.      { "RoyalBlue1", 72, 118, 255 },
  672.      { "RoyalBlue2", 67, 110, 238 },
  673.      { "RoyalBlue3", 58, 95, 205 },
  674.      { "RoyalBlue4", 39, 64, 139 },
  675.      { "saddle brown", 139, 69, 19 },
  676.      { "SaddleBrown", 139, 69, 19 },
  677.      { "salmon", 250, 128, 114 },
  678.      { "salmon1", 255, 140, 105 },
  679.      { "salmon2", 238, 130, 98 },
  680.      { "salmon3", 205, 112, 84 },
  681.      { "salmon4", 139, 76, 57 },
  682.      { "sandy brown", 244, 164, 96 },
  683.      { "SandyBrown", 244, 164, 96 },
  684.      { "sea green", 46, 139, 87 },
  685.      { "SeaGreen", 46, 139, 87 },
  686.      { "SeaGreen1", 84, 255, 159 },
  687.      { "SeaGreen2", 78, 238, 148 },
  688.      { "SeaGreen3", 67, 205, 128 },
  689.      { "SeaGreen4", 46, 139, 87 },
  690.      { "seashell", 255, 245, 238 },
  691.      { "seashell1", 255, 245, 238 },
  692.      { "seashell2", 238, 229, 222 },
  693.      { "seashell3", 205, 197, 191 },
  694.      { "seashell4", 139, 134, 130 },
  695.      { "sienna", 160, 82, 45 },
  696.      { "sienna1", 255, 130, 71 },
  697.      { "sienna2", 238, 121, 66 },
  698.      { "sienna3", 205, 104, 57 },
  699.      { "sienna4", 139, 71, 38 },
  700.      { "sky blue", 135, 206, 235 },
  701.      { "SkyBlue", 135, 206, 235 },
  702.      { "SkyBlue1", 135, 206, 255 },
  703.      { "SkyBlue2", 126, 192, 238 },
  704.      { "SkyBlue3", 108, 166, 205 },
  705.      { "SkyBlue4", 74, 112, 139 },
  706.      { "slate blue", 106, 90, 205 },
  707.      { "slate gray", 112, 128, 144 },
  708.      { "slate grey", 112, 128, 144 },
  709.      { "SlateBlue", 106, 90, 205 },
  710.      { "SlateBlue1", 131, 111, 255 },
  711.      { "SlateBlue2", 122, 103, 238 },
  712.      { "SlateBlue3", 105, 89, 205 },
  713.      { "SlateBlue4", 71, 60, 139 },
  714.      { "SlateGray", 112, 128, 144 },
  715.      { "SlateGray1", 198, 226, 255 },
  716.      { "SlateGray2", 185, 211, 238 },
  717.      { "SlateGray3", 159, 182, 205 },
  718.      { "SlateGray4", 108, 123, 139 },
  719.      { "SlateGrey", 112, 128, 144 },
  720.      { "snow", 255, 250, 250 },
  721.      { "snow1", 255, 250, 250 },
  722.      { "snow2", 238, 233, 233 },
  723.      { "snow3", 205, 201, 201 },
  724.      { "snow4", 139, 137, 137 },
  725.      { "spring green", 0, 255, 127 },
  726.      { "SpringGreen", 0, 255, 127 },
  727.      { "SpringGreen1", 0, 255, 127 },
  728.      { "SpringGreen2", 0, 238, 118 },
  729.      { "SpringGreen3", 0, 205, 102 },
  730.      { "SpringGreen4", 0, 139, 69 },
  731.      { "steel blue", 70, 130, 180 },
  732.      { "SteelBlue", 70, 130, 180 },
  733.      { "SteelBlue1", 99, 184, 255 },
  734.      { "SteelBlue2", 92, 172, 238 },
  735.      { "SteelBlue3", 79, 148, 205 },
  736.      { "SteelBlue4", 54, 100, 139 },
  737.      { "tan", 210, 180, 140 },
  738.      { "tan1", 255, 165, 79 },
  739.      { "tan2", 238, 154, 73 },
  740.      { "tan3", 205, 133, 63 },
  741.      { "tan4", 139, 90, 43 },
  742.      { "thistle", 216, 191, 216 },
  743.      { "thistle1", 255, 225, 255 },
  744.      { "thistle2", 238, 210, 238 },
  745.      { "thistle3", 205, 181, 205 },
  746.      { "thistle4", 139, 123, 139 },
  747.      { "tomato", 255, 99, 71 },
  748.      { "tomato1", 255, 99, 71 },
  749.      { "tomato2", 238, 92, 66 },
  750.      { "tomato3", 205, 79, 57 },
  751.      { "tomato4", 139, 54, 38 },
  752.      { "turquoise", 64, 224, 208 },
  753.      { "turquoise1", 0, 245, 255 },
  754.      { "turquoise2", 0, 229, 238 },
  755.      { "turquoise3", 0, 197, 205 },
  756.      { "turquoise4", 0, 134, 139 },
  757.      { "violet", 238, 130, 238 },
  758.      { "violet red", 208, 32, 144 },
  759.      { "VioletRed", 208, 32, 144 },
  760.      { "VioletRed1", 255, 62, 150 },
  761.      { "VioletRed2", 238, 58, 140 },
  762.      { "VioletRed3", 205, 50, 120 },
  763.      { "VioletRed4", 139, 34, 82 },
  764.      { "wheat", 245, 222, 179 },
  765.      { "wheat1", 255, 231, 186 },
  766.      { "wheat2", 238, 216, 174 },
  767.      { "wheat3", 205, 186, 150 },
  768.      { "wheat4", 139, 126, 102 },
  769.      { "white", 255, 255, 255 },
  770.      { "white smoke", 245, 245, 245 },
  771.      { "WhiteSmoke", 245, 245, 245 },
  772.      { "yellow", 255, 255, 0 },
  773.      { "yellow green", 154, 205, 50 },
  774.      { "yellow1", 255, 255, 0 },
  775.      { "yellow2", 238, 238, 0 },
  776.      { "yellow3", 205, 205, 0 },
  777.      { "yellow4", 139, 139, 0 },
  778.      { "YellowGreen", 154, 205, 50 },
  779.      { NULL, 0, 0, 0 }
  780. };
  781. /*
  782.  * This value will be set to the number of colors in the color table
  783.  * the first time it is needed.
  784.  */
  785. static int numXColors = 0;
  786. /*
  787.  * Forward declarations for functions used only in this file.
  788.  */
  789. static int FindColor _ANSI_ARGS_((const char *name, XColor *colorPtr));
  790. /*
  791.  *----------------------------------------------------------------------
  792.  *
  793.  * FindColor --
  794.  *
  795.  * This routine finds the color entry that corresponds to the
  796.  * specified color.
  797.  *
  798.  * Results:
  799.  * Returns non-zero on success.  The RGB values of the XColor
  800.  * will be initialized to the proper values on success.
  801.  *
  802.  * Side effects:
  803.  * None.
  804.  *
  805.  *----------------------------------------------------------------------
  806.  */
  807. static int
  808. FindColor(name, colorPtr)
  809.     const char *name;
  810.     XColor *colorPtr;
  811. {
  812.     int l, u, r, i = 0;
  813.     /*
  814.      * Count the number of elements in the color array if we haven't
  815.      * done so yet.
  816.      */
  817.     if (numXColors == 0) {
  818. XColorEntry *ePtr;
  819. for (ePtr = xColors; ePtr->name != NULL; ePtr++) {
  820.     numXColors++;
  821. }
  822.     }
  823.     /*
  824.      * Perform a binary search on the sorted array of colors.
  825.      */
  826.     l = 0;
  827.     u = numXColors - 1;
  828.     while (l <= u) {
  829. i = (l + u) / 2;
  830. r = strcasecmp(name, xColors[i].name);
  831. if (r == 0) {
  832.     break;
  833. } else if (r < 0) {
  834.     u = i-1;
  835. } else {
  836.     l = i+1;
  837. }
  838.     }
  839.     if (l > u) {
  840. return 0;
  841.     }
  842.     colorPtr->red = ((xColors[i].red << 8) | xColors[i].red);
  843.     colorPtr->green = ((xColors[i].green << 8) | xColors[i].green);
  844.     colorPtr->blue = ((xColors[i].blue << 8) | xColors[i].blue);
  845.     return 1;
  846. }
  847. /*
  848.  *----------------------------------------------------------------------
  849.  *
  850.  * XParseColor --
  851.  *
  852.  * Partial implementation of X color name parsing interface.
  853.  *
  854.  * Results:
  855.  * Returns non-zero on success.
  856.  *
  857.  * Side effects:
  858.  * None.
  859.  *
  860.  *----------------------------------------------------------------------
  861.  */
  862. Status
  863. XParseColor(display, map, spec, colorPtr)
  864.     Display *display;
  865.     Colormap map;
  866.     const char* spec;
  867.     XColor *colorPtr;
  868. {
  869.     if (spec[0] == '#') {
  870. char fmt[16];
  871. int i, red, green, blue;
  872. if ((i = (int) strlen(spec+1))%3) {
  873.     return 0;
  874. }
  875. i /= 3;
  876. sprintf(fmt, "%%%dx%%%dx%%%dx", i, i, i);
  877. if (sscanf(spec+1, fmt, &red, &green, &blue) != 3) {
  878.     return 0;
  879. }
  880. colorPtr->red = (((unsigned short) red) << (4 * (4 - i)))
  881.     | ((unsigned short) red);
  882. colorPtr->green = (((unsigned short) green) << (4 * (4 - i)))
  883.     | ((unsigned short) green);
  884. colorPtr->blue = (((unsigned short) blue) << (4 * (4 - i)))
  885.     | ((unsigned short) blue);
  886.     } else {
  887. if (!FindColor(spec, colorPtr)) {
  888.     return 0;
  889. }
  890.     }
  891.     colorPtr->pixel = TkpGetPixel(colorPtr);
  892.     colorPtr->flags = DoRed|DoGreen|DoBlue;
  893.     colorPtr->pad = 0;
  894.     return 1;
  895. }