Commit dda10c90 authored by Daniel Stone's avatar Daniel Stone
Browse files

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.
parent 5e363500
......@@ -16,7 +16,6 @@ extern Bool screenSaverSuspended;
#endif
extern char *defaultFontPath;
extern char *rgbPath;
extern int monitorResolution;
extern Bool loadableFonts;
extern int defaultColorVisualClass;
......
......@@ -75,9 +75,6 @@ SOFTWARE.
#ifndef COMPILEDDEFAULTFONTPATH
#define COMPILEDDEFAULTFONTPATH "/usr/lib/X11/fonts/misc/"
#endif
#ifndef RGB_DB
#define RGB_DB "/usr/lib/X11/rgb"
#endif
/*
* The following constants contain default values for all of the variables
......
......@@ -109,12 +109,6 @@
/* Support UNIX socket connections */
#undef UNIXCONN
/* Use builtin rgb color database */
#undef USE_RGB_BUILTIN
/* Use rgb.txt directly */
#undef USE_RGB_TXT
/* unaligned word accesses behave as expected */
#undef WORKING_UNALIGNED_INT
......
......@@ -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 */
......@@ -577,7 +577,6 @@ void UseMsg(void)
ErrorF("-c turns off key-click\n");
ErrorF("c # key-click volume (0-100)\n");
ErrorF("-cc int default color visual class\n");
ErrorF("-co file color database file\n");
#ifdef COMMANDLINE_CHALLENGED_OPERATING_SYSTEMS
ErrorF("-config file read options from file\n");
#endif
......@@ -783,13 +782,6 @@ ProcessCommandLine(int argc, char *argv[])
else
UseMsg();
}
else if ( strcmp( argv[i], "-co") == 0)
{
if(++i < argc)
rgbPath = argv[i];
else
UseMsg();
}
else if ( strcmp( argv[i], "-core") == 0)
{
CoreDump = TRUE;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment