Remove all traces of external RGB database (and Speedo)

Remove all references to an external RGB database (which hasn't been enabled
for a very long time).  Also get rid of some references to Speedo fonts.
This commit is contained in:
Daniel Stone
2007-11-05 16:28:35 +00:00
parent 5e363500c8
commit dda10c9066
25 changed files with 12 additions and 341 deletions

View File

@@ -49,13 +49,20 @@ SOFTWARE.
#include <dix-config.h>
#endif
#define USE_RGB_BUILTIN 1
#if USE_RGB_BUILTIN
#include <X11/keysym.h>
#include "os.h"
typedef struct _builtinColor {
unsigned char red;
unsigned char green;
unsigned char blue;
unsigned short name;
} BuiltinColor;
/* These have to come after the struct definition because despair. */
#include "oscolor.h"
#define NUM_BUILTIN_COLORS (sizeof (BuiltinColors) / sizeof (BuiltinColors[0]))
static unsigned char
OsToLower (unsigned char a)
{
@@ -90,17 +97,6 @@ OsStrCaseCmp (const unsigned char *s1, const unsigned char *s2, int l2)
return c2 - c1;
}
typedef struct _builtinColor {
unsigned char red;
unsigned char green;
unsigned char blue;
unsigned short name;
} BuiltinColor;
#include "oscolor.h"
#define NUM_BUILTIN_COLORS (sizeof (BuiltinColors) / sizeof (BuiltinColors[0]))
Bool
OsInitColors(void)
{
@@ -141,146 +137,3 @@ OsLookupColor(int screen,
}
return FALSE;
}
#else
/*
* This file builds the server's internal database mapping color names to
* RGB tuples by reading in an rgb.txt file. This is still slightly foolish,
* rgb.txt hasn't changed in years, we should really include a precompiled
* version into the server.
*/
#include <stdio.h>
#include "os.h"
#include "opaque.h"
#define HASHSIZE 63
typedef struct _dbEntry * dbEntryPtr;
typedef struct _dbEntry {
dbEntryPtr link;
unsigned short red;
unsigned short green;
unsigned short blue;
char name[1]; /* some compilers complain if [0] */
} dbEntry;
extern void CopyISOLatin1Lowered(
unsigned char * /*dest*/,
unsigned char * /*source*/,
int /*length*/);
static dbEntryPtr hashTab[HASHSIZE];
static dbEntryPtr
lookup(char *name, int len, Bool create)
{
unsigned int h = 0, g;
dbEntryPtr entry, *prev = NULL;
char *str = name;
if (!(name = (char*)xalloc(len +1))) return NULL;
CopyISOLatin1Lowered((unsigned char *)name, (unsigned char *)str, len);
name[len] = '\0';
for(str = name; *str; str++) {
h = (h << 4) + *str;
if ((g = h) & 0xf0000000) h ^= (g >> 24);
h &= g;
}
h %= HASHSIZE;
if ( (entry = hashTab[h]) )
{
for( ; entry; prev = (dbEntryPtr*)entry, entry = entry->link )
if (! strcmp(name, entry->name) ) break;
}
else
prev = &(hashTab[h]);
if (!entry && create && (entry = (dbEntryPtr)xalloc(sizeof(dbEntry) +len)))
{
*prev = entry;
entry->link = NULL;
strcpy( entry->name, name );
}
xfree(name);
return entry;
}
Bool
OsInitColors(void)
{
FILE *rgb;
char *path;
char line[BUFSIZ];
char name[BUFSIZ];
int red, green, blue, lineno = 0;
dbEntryPtr entry;
static Bool was_here = FALSE;
if (!was_here)
{
path = (char*)xalloc(strlen(rgbPath) +5);
strcpy(path, rgbPath);
strcat(path, ".txt");
if (!(rgb = fopen(path, "r")))
{
ErrorF( "Couldn't open RGB_DB '%s'\n", rgbPath );
xfree(path);
return FALSE;
}
while(fgets(line, sizeof(line), rgb))
{
lineno++;
if (sscanf(line,"%d %d %d %[^\n]\n", &red, &green, &blue, name) == 4)
{
if (red >= 0 && red <= 0xff &&
green >= 0 && green <= 0xff &&
blue >= 0 && blue <= 0xff)
{
if ((entry = lookup(name, strlen(name), TRUE)))
{
entry->red = (red * 65535) / 255;
entry->green = (green * 65535) / 255;
entry->blue = (blue * 65535) / 255;
}
}
else
ErrorF("Value out of range: %s:%d\n", path, lineno);
}
else if (*line && *line != '#' && *line != '!')
ErrorF("Syntax Error: %s:%d\n", path, lineno);
}
fclose(rgb);
xfree(path);
was_here = TRUE;
}
return TRUE;
}
Bool
OsLookupColor(int screen, char *name, unsigned int len,
unsigned short *pred, unsigned short *pgreen, unsigned short *pblue)
{
dbEntryPtr entry;
if ((entry = lookup(name, len, FALSE)))
{
*pred = entry->red;
*pgreen = entry->green;
*pblue = entry->blue;
return TRUE;
}
return FALSE;
}
#endif /* USE_RGB_BUILTIN */