summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2003-11-17 19:04:09 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2003-11-17 19:04:09 +0000
commit0f6b1c585b189fb23bea774522926e19c3c22331 (patch)
tree37e0d7ff48847066016b4c9ec6350e495509fa3b
parent5d0007c9b0fe41464e713f961b3510117971d8fe (diff)
merge XFree86 4.3.0.1 to -CURRENT
-rw-r--r--xrdb.c395
-rw-r--r--xrdb.man9
2 files changed, 231 insertions, 173 deletions
diff --git a/xrdb.c b/xrdb.c
index b8de0ba..fd2707f 100644
--- a/xrdb.c
+++ b/xrdb.c
@@ -30,6 +30,7 @@
* used in advertising or publicity pertaining to distribution of the software
* without specific, written prior permission.
*/
+/* $XFree86: xc/programs/xrdb/xrdb.c,v 3.16 2002/05/31 18:46:14 dawes Exp $ */
/*
* this program is used to load, or dump the resource manager database
@@ -44,23 +45,22 @@
#include <X11/Xutil.h>
#include <X11/Xatom.h>
#include <X11/Xos.h>
+#include <X11/Xmu/SysUtil.h>
#include <stdio.h>
#include <ctype.h>
#include <errno.h>
-
-#if defined(X_NOT_STDC_ENV) && !defined(__EMX__)
-extern int errno;
-#endif
-
-
-#if NeedVarargsPrototypes
-# include <stdarg.h>
-#endif
+#include <stdlib.h>
+#include <stdarg.h>
#define SCREEN_RESOURCES "SCREEN_RESOURCES"
#ifndef CPP
+#ifdef __UNIXOS2__
+/* expected to be in path */
+#define CPP "cpp"
+#else
#define CPP "/usr/lib/cpp"
+#endif /* __UNIXOS2__ */
#endif /* CPP */
#define INIT_BUFFER_SIZE 10000
@@ -96,6 +96,13 @@ typedef struct _Entries {
int room, used;
} Entries;
+/* dynamically allocated strings */
+#define CHUNK_SIZE 4096
+typedef struct _String {
+ char *val;
+ int room, used;
+} String;
+
char *ProgramName;
Bool quiet = False;
char tmpname[32];
@@ -112,26 +119,27 @@ char *editFile = NULL;
char *cpp_program = CPP;
char *backup_suffix = BACKUP_SUFFIX;
Bool dont_execute = False;
-char defines[4096];
+String defines;
int defines_base;
-char *cmd_defines[512];
+#define MAX_CMD_DEFINES 512
+char *cmd_defines[MAX_CMD_DEFINES];
int num_cmd_defines = 0;
-char includes[4096];
+String includes;
Display *dpy;
Buffer buffer;
Entries newDB;
-#if !defined(sgi) && !defined(WIN32)
-extern FILE *popen();
-#endif
-
-#if NeedVarargsPrototypes
-extern fatal(char *, ...);
-#endif
+static void fatal(char *, ...);
+static void addstring ( String *arg, const char *s );
+static void FormatEntries ( Buffer *buffer, Entries *entries );
+static void StoreProperty ( Display *dpy, Window root, Atom res_prop );
+static void Process ( int scrno, Bool doScreen, Bool execute );
+static void ShuffleEntries ( Entries *db, Entries *dbs, int num );
+static void ReProcess ( int scrno, Bool doScreen );
#if defined(USG) && !defined(CRAY) && !defined(MOTOROLA)
-int rename (from, to)
- char *from, *to;
+static int
+rename(char *from, char *to)
{
(void) unlink (to);
if (link (from, to) == 0) {
@@ -143,24 +151,24 @@ int rename (from, to)
}
#endif
-void InitBuffer(b)
- Buffer *b;
+static void
+InitBuffer(Buffer *b)
{
b->room = INIT_BUFFER_SIZE;
b->used = 0;
b->buff = (char *)malloc(INIT_BUFFER_SIZE*sizeof(char));
}
-void FreeBuffer(b)
- Buffer *b;
+#ifdef notyet
+static void
+FreeBuffer(Buffer *b)
{
free(b->buff);
}
+#endif
-void AppendToBuffer(b, str, len)
- register Buffer *b;
- char *str;
- register int len;
+static void
+AppendToBuffer(Buffer *b, char *str, int len)
{
while (b->used + len > b->room) {
b->buff = (char *)realloc(b->buff, 2*b->room*(sizeof(char)));
@@ -170,16 +178,16 @@ void AppendToBuffer(b, str, len)
b->used += len;
}
-void InitEntries(e)
- Entries *e;
+static void
+InitEntries(Entries *e)
{
e->room = INIT_ENTRY_SIZE;
e->used = 0;
e->entry = (Entry *)malloc(INIT_ENTRY_SIZE*sizeof(Entry));
}
-void FreeEntries(e)
- Entries *e;
+static void
+FreeEntries(Entries *e)
{
register int i;
@@ -192,9 +200,8 @@ void FreeEntries(e)
free((char *)e->entry);
}
-void AddEntry(e, entry)
- register Entries *e;
- Entry *entry;
+static void
+AddEntry(Entries *e, Entry *entry)
{
register int n;
@@ -225,15 +232,14 @@ void AddEntry(e, entry)
}
-int CompareEntries(e1, e2)
- Entry *e1, *e2;
+static int
+CompareEntries(const void *e1, const void *e2)
{
- return strcmp(e1->tag, e2->tag);
+ return strcmp(((Entry *)e1)->tag, ((Entry *)e2)->tag);
}
-void AppendEntryToBuffer(buffer, entry)
- register Buffer *buffer;
- Entry *entry;
+static void
+AppendEntryToBuffer(Buffer *buffer, Entry *entry)
{
AppendToBuffer(buffer, entry->tag, strlen(entry->tag));
AppendToBuffer(buffer, ":\t", 2);
@@ -245,10 +251,8 @@ void AppendEntryToBuffer(buffer, entry)
* Return the position of the first unescaped occurrence of dest in string.
* If lines is non-null, return the number of newlines skipped over.
*/
-char *FindFirst(string, dest, lines)
- register char *string;
- register char dest;
- register int *lines; /* RETURN */
+static char *
+FindFirst(char *string, char dest, int *lines)
{
if (lines)
*lines = 0;
@@ -266,10 +270,8 @@ char *FindFirst(string, dest, lines)
}
}
-void GetEntries(entries, buff, bequiet)
- register Entries *entries;
- Buffer *buff;
- int bequiet;
+static void
+GetEntries(Entries *entries, Buffer *buff, int bequiet)
{
register char *line, *colon, *temp, *str;
Entry entry;
@@ -336,9 +338,8 @@ void GetEntries(entries, buff, bequiet)
}
}
-GetEntriesString(entries, str)
- register Entries *entries;
- char *str;
+static void
+GetEntriesString(Entries *entries, char *str)
{
Buffer buff;
@@ -349,9 +350,8 @@ GetEntriesString(entries, str)
}
}
-void ReadFile(buffer, input)
- register Buffer *buffer;
- FILE *input;
+static void
+ReadFile(Buffer *buffer, FILE *input)
{
char buf[BUFSIZ + 1];
register int bytes;
@@ -373,36 +373,36 @@ void ReadFile(buffer, input)
AppendToBuffer(buffer, "", 1);
}
-AddDef(buff, title, value)
- char *buff, *title, *value;
+static void
+AddDef(String *buff, char *title, char *value)
{
#ifdef PATHETICCPP
if (need_real_defines) {
- strcat(buff, "\n#define ");
- strcat(buff, title);
+ addstring(buff, "\n#define ");
+ addstring(buff, title);
if (value && (value[0] != '\0')) {
- strcat(buff, " ");
- strcat(buff, value);
+ addstring(buff, " ");
+ addstring(buff, value);
}
return;
}
#endif
- if (buff[0]) {
+ if (buff->used) {
if (oper == OPSYMBOLS)
- strcat(buff, "\n-D");
+ addstring(buff, "\n-D");
else
- strcat(buff, " -D");
+ addstring(buff, " -D");
} else
- strcat(buff, "-D");
- strcat(buff, title);
+ addstring(buff, "-D");
+ addstring(buff, title);
if (value && (value[0] != '\0')) {
- strcat(buff, "=");
- strcat(buff, value);
+ addstring(buff, "=");
+ addstring(buff, value);
}
}
-AddDefQ(buff, title, value)
- char *buff, *title, *value;
+static void
+AddDefQ(String *buff, char *title, char *value)
{
#ifdef PATHETICCPP
if (need_real_defines)
@@ -411,29 +411,28 @@ AddDefQ(buff, title, value)
#endif
if (value && (value[0] != '\0')) {
AddDef(buff, title, "\"");
- strcat(buff, value);
- strcat(buff, "\"");
+ addstring(buff, value);
+ addstring(buff, "\"");
} else
AddDef(buff, title, NULL);
}
-AddNum(buff, title, value)
- char *buff, *title;
- int value;
+static void
+AddNum(String *buff, char *title, int value)
{
char num[20];
sprintf(num, "%d", value);
AddDef(buff, title, num);
}
-AddSimpleDef(buff, title)
- char *buff, *title;
+static void
+AddSimpleDef(String *buff, char *title)
{
AddDef(buff, title, (char *)NULL);
}
-AddDefTok(buff, prefix, title)
- char *buff, *prefix, *title;
+static void
+AddDefTok(String *buff, char *prefix, char *title)
{
char *s;
char name[512];
@@ -448,28 +447,28 @@ AddDefTok(buff, prefix, title)
AddSimpleDef(buff, name);
}
-AddUndef(buff, title)
- char *buff, *title;
+static void
+AddUndef(String *buff, char *title)
{
#ifdef PATHETICCPP
if (need_real_defines) {
- strcat(buff, "\n#undef ");
- strcat(buff, title);
+ addstring(buff, "\n#undef ");
+ addstring(buff, title);
return;
}
#endif
- if (buff[0]) {
+ if (buff->used) {
if (oper == OPSYMBOLS)
- strcat(buff, "\n-U");
+ addstring(buff, "\n-U");
else
- strcat(buff, " -U");
+ addstring(buff, " -U");
} else
- strcat(buff, "-U");
- strcat(buff, title);
+ addstring(buff, "-U");
+ addstring(buff, title);
}
-DoCmdDefines(buff)
- char *buff;
+static void
+DoCmdDefines(String *buff)
{
int i;
char *arg, *val;
@@ -489,18 +488,15 @@ DoCmdDefines(buff)
}
}
-int Resolution(pixels, mm)
- int pixels, mm;
+static int
+Resolution(int pixels, int mm)
{
return ((pixels * 100000 / mm) + 50) / 100;
}
-void
-DoDisplayDefines(display, defs, host)
- Display *display;
- register char *defs;
- char *host;
+static void
+DoDisplayDefines(Display *display, String *defs, char *host)
{
#define MAXHOSTNAME 255
char client[MAXHOSTNAME], server[MAXHOSTNAME], *colon;
@@ -545,11 +541,8 @@ char *ClassNames[] = {
"DirectColor"
};
-void
-DoScreenDefines(display, scrno, defs)
- Display *display;
- int scrno;
- register char *defs;
+static void
+DoScreenDefines(Display *display, int scrno, String *defs)
{
Screen *screen;
Visual *visual;
@@ -594,9 +587,8 @@ DoScreenDefines(display, scrno, defs)
XFree((char *)vinfos);
}
-Entry *FindEntry(db, b)
- register Entries *db;
- Buffer *b;
+static Entry *
+FindEntry(Entries *db, Buffer *b)
{
int i;
register Entry *e;
@@ -626,9 +618,8 @@ Entry *FindEntry(db, b)
return NULL;
}
-void EditFile(new, in, out)
- register Entries *new;
- FILE *in, *out;
+static void
+EditFile(Entries *new, FILE *in, FILE *out)
{
Buffer b;
char buff[BUFSIZ];
@@ -661,7 +652,8 @@ cleanup:
}
}
-void Syntax ()
+static void
+Syntax (void)
{
fprintf (stderr,
"usage: %s [-options ...] [filename]\n\n",
@@ -721,10 +713,8 @@ void Syntax ()
* whether or not the given string is an abbreviation of the arg.
*/
-Bool isabbreviation (arg, s, minslen)
- char *arg;
- char *s;
- int minslen;
+static Bool
+isabbreviation(char *arg, char *s, int minslen)
{
int arglen;
int slen;
@@ -745,9 +735,28 @@ Bool isabbreviation (arg, s, minslen)
return (False);
}
-main (argc, argv)
- int argc;
- char **argv;
+static void
+addstring(String *arg, const char *s)
+{
+ if(arg->used + strlen(s) + 1 >= arg->room) {
+ if(arg->val)
+ arg->val = (char *)realloc(arg->val, arg->room + CHUNK_SIZE);
+ else
+ arg->val = (char *)malloc(arg->room + CHUNK_SIZE);
+ if(arg->val == NULL)
+ fatal("%s: Not enough memory\n", ProgramName);
+ arg->room += CHUNK_SIZE;
+ }
+ if(arg->used)
+ strcat(arg->val, s);
+ else
+ strcpy(arg->val, s);
+ arg->used += strlen(s);
+}
+
+
+int
+main(int argc, char *argv[])
{
int i;
char *displayname = NULL;
@@ -758,8 +767,10 @@ main (argc, argv)
ProgramName = argv[0];
- defines[0] = '\0';
- includes[0] = '\0';
+ defines.room = defines.used = includes.room = includes.used = 0;
+
+ /* initialize the includes String struct */
+ addstring(&includes, "");
/* needs to be replaced with XrmParseCommand */
@@ -837,11 +848,15 @@ main (argc, argv)
quiet = True;
continue;
} else if (arg[1] == 'I') {
- strcat(includes, " ");
- strcat(includes, arg);
+ addstring(&includes, " ");
+ addstring(&includes, arg);
continue;
} else if (arg[1] == 'U' || arg[1] == 'D') {
- cmd_defines[num_cmd_defines++] = arg;
+ if (num_cmd_defines < MAX_CMD_DEFINES) {
+ cmd_defines[num_cmd_defines++] = arg;
+ } else {
+ fatal("%s: Too many -U/-D arguments\n", ProgramName);
+ }
continue;
}
Syntax ();
@@ -852,7 +867,7 @@ main (argc, argv)
} /* end for */
#ifndef WIN32
- while ((i = open("/dev/null", 0)) < 3)
+ while ((i = open("/dev/null", O_RDONLY)) < 3)
; /* make sure later freopen won't clobber things */
(void) close(i);
#endif
@@ -872,8 +887,15 @@ main (argc, argv)
strcpy(tmpname2, "xrdbD_XXXXXX");
strcpy(tmpname3, "\\temp\\xrdbD_XXXXXX");
#else
+#ifdef __UNIXOS2__
+ { char *tmpdir=getenv("TMP");
+ if (!tmpdir) tmpdir="/";
+ sprintf(tmpname2, "%s/xrdbD_XXXXXX",tmpdir);
+ }
+#else
strcpy(tmpname2, "/tmp/xrdbD_XXXXXX");
#endif
+#endif
(void) mktemp(tmpname2);
}
#endif
@@ -886,24 +908,40 @@ main (argc, argv)
(whichResources == RALL || whichResources == RSCREENS)
#endif
) {
+ char inputbuf[1024];
#ifdef WIN32
strcpy(tmpname, "\\temp\\xrdb_XXXXXX");
#else
+#ifdef __UNIXOS2__
+ { char *tmpdir=getenv("TMP");
+ if (!tmpdir) tmpdir="/";
+ sprintf(tmpname, "%s/xrdb_XXXXXX",tmpdir);
+ }
+#else
strcpy(tmpname, "/tmp/xrdb_XXXXXX");
#endif
+#endif
+#ifndef HAS_MKSTEMP
(void) mktemp(tmpname);
filename = tmpname;
fp = fopen(filename, "w");
+#else
+ {
+ int fd = mkstemp(tmpname);
+ filename = tmpname;
+ fp = fdopen(fd, "w");
+ }
+#endif /* MKSTEMP */
if (!fp)
fatal("%s: Failed to open temp file: %s\n", ProgramName,
filename);
- while ((i = getc(stdin)) != EOF)
- putc(i, fp);
+ while (fgets(inputbuf, sizeof(inputbuf), stdin) != NULL)
+ fputs(inputbuf, fp);
fclose(fp);
}
- DoDisplayDefines(dpy, defines, displayname);
- defines_base = strlen(defines);
+ DoDisplayDefines(dpy, &defines, displayname);
+ defines_base = defines.used;
need_newline = (oper == OPQUERY || oper == OPSYMBOLS ||
(dont_execute && oper != OPREMOVE));
InitBuffer(&buffer);
@@ -978,9 +1016,9 @@ main (argc, argv)
exit (0);
}
-void FormatEntries(buffer, entries)
- register Buffer *buffer;
- register Entries *entries;
+
+static void
+FormatEntries(Buffer *buffer, Entries *entries)
{
register int i;
@@ -988,17 +1026,16 @@ void FormatEntries(buffer, entries)
if (!entries->used)
return;
if (oper == OPMERGE)
- qsort(entries->entry, entries->used, sizeof(Entry), CompareEntries);
+ qsort(entries->entry, entries->used, sizeof(Entry),
+ CompareEntries);
for (i = 0; i < entries->used; i++) {
if (entries->entry[i].usable)
AppendEntryToBuffer(buffer, &entries->entry[i]);
}
}
-StoreProperty(dpy, root, res_prop)
- Display *dpy;
- Window root;
- Atom res_prop;
+static void
+StoreProperty(Display *dpy, Window root, Atom res_prop)
{
int len = buffer.used;
int mode = PropModeReplace;
@@ -1019,22 +1056,21 @@ StoreProperty(dpy, root, res_prop)
XUngrabServer(dpy);
}
-Process(scrno, doScreen, execute)
- int scrno;
- Bool doScreen;
- Bool execute;
+static void
+Process(int scrno, Bool doScreen, Bool execute)
{
char *xdefs;
Window root;
Atom res_prop;
FILE *input, *output;
- char cmd[BUFSIZ];
+ char *cmd;
- defines[defines_base] = '\0';
+ defines.val[defines_base] = '\0';
+ defines.used = defines_base;
buffer.used = 0;
InitEntries(&newDB);
- DoScreenDefines(dpy, scrno, defines);
- DoCmdDefines(defines);
+ DoScreenDefines(dpy, scrno, &defines);
+ DoCmdDefines(&defines);
if (doScreen) {
xdefs = XScreenResourceString (ScreenOfDisplay(dpy, scrno));
root = RootWindow(dpy, scrno);
@@ -1045,7 +1081,7 @@ Process(scrno, doScreen, execute)
res_prop = XA_RESOURCE_MANAGER;
}
if (oper == OPSYMBOLS) {
- printf ("%s\n", defines);
+ printf ("%s\n", defines.val);
} else if (oper == OPQUERY) {
if (xdefs)
printf ("%s", xdefs); /* fputs broken in SunOS 4.0 */
@@ -1058,8 +1094,15 @@ Process(scrno, doScreen, execute)
input = fopen(editFile, "r");
strcpy(template, editFile);
strcat(template, "XXXXXX");
+#ifndef HAS_MKSTEMP
(void) mktemp(template);
output = fopen(template, "w");
+#else
+ {
+ int fd = mkstemp(template);
+ output = fdopen(fd, "w");
+ }
+#endif
if (!output)
fatal("%s: can't open temporary file '%s'\n", ProgramName, template);
GetEntriesString(&newDB, xdefs);
@@ -1095,26 +1138,37 @@ Process(scrno, doScreen, execute)
#ifdef WIN32
if (!(input = fopen(tmpname2, "w")))
fatal("%s: can't open file '%s'\n", ProgramName, tmpname2);
- fputs(defines, input);
+ fputs(defines.val, input);
fprintf(input, "\n#include \"%s\"\n", filename);
fclose(input);
(void) mktemp(tmpname3);
- sprintf(cmd, "%s%s %s > %s", cpp_program, includes,
+ if((cmd = (char *)
+ malloc(strlen(cpp_program) + strlen(includes.val) +
+ 1 + strlen(tmpname2) + 3 + strlen(tmpname3) + 1)) ==
+ NULL)
+ fatal("%s: Out of memory\n", ProgramName);
+ sprintf(cmd, "%s%s %s > %s", cpp_program, includes.val,
tmpname2, tmpname3);
if (system(cmd) < 0)
fatal("%s: cannot run '%s'\n", ProgramName, cmd);
+ free(cmd);
if (!(input = fopen(tmpname3, "r")))
fatal("%s: can't open file '%s'\n", ProgramName, tmpname3);
#else
if (!freopen(tmpname2, "w+", stdin))
fatal("%s: can't open file '%s'\n", ProgramName, tmpname2);
- fputs(defines, stdin);
+ fputs(defines.val, stdin);
fprintf(stdin, "\n#include \"%s\"\n", filename);
fflush(stdin);
fseek(stdin, 0, 0);
- sprintf(cmd, "%s%s", cpp_program, includes);
+ if((cmd = (char *)
+ malloc(strlen(cpp_program) + strlen(includes.val) + 1)) ==
+ NULL)
+ fatal("%s: Out of memory\n", ProgramName);
+ sprintf(cmd, "%s%s", cpp_program, includes.val);
if (!(input = popen(cmd, "r")))
fatal("%s: cannot run '%s'\n", ProgramName, cmd);
+ free(cmd);
#endif
} else {
#endif
@@ -1125,16 +1179,31 @@ Process(scrno, doScreen, execute)
if (cpp_program) {
#ifdef WIN32
(void) mktemp(tmpname3);
- sprintf(cmd, "%s%s %s %s > %s", cpp_program, includes, defines,
+ if((cmd = (char *)
+ malloc(strlen(cpp_program) + strlen(includes.val) +
+ 1 + strlen(defines.val) + 1 +
+ strlen(filename ? filename : "") + 3 +
+ strlen(tmpname3) + 1)) ==
+ NULL)
+ fatal("%s: Out of memory\n", ProgramName);
+ sprintf(cmd, "%s%s %s %s > %s", cpp_program,
+ includes.val, defines.val,
filename ? filename : "", tmpname3);
if (system(cmd) < 0)
fatal("%s: cannot run '%s'\n", ProgramName, cmd);
+ free(cmd);
if (!(input = fopen(tmpname3, "r")))
fatal("%s: can't open file '%s'\n", ProgramName, tmpname3);
#else
- sprintf(cmd, "%s%s %s", cpp_program, includes, defines);
+ if((cmd = (char *)
+ malloc(strlen(cpp_program) + strlen(includes.val) + 1 +
+ strlen(defines.val) + 1)) ==
+ NULL)
+ fatal("%s: Out of memory\n", ProgramName);
+ sprintf(cmd, "%s%s %s", cpp_program, includes.val, defines.val);
if (!(input = popen(cmd, "r")))
fatal("%s: cannot run '%s'\n", ProgramName, cmd);
+ free(cmd);
#endif
} else {
input = stdin;
@@ -1179,10 +1248,8 @@ Process(scrno, doScreen, execute)
XFree(xdefs);
}
-ShuffleEntries(db, dbs, num)
- Entries *db;
- Entries *dbs;
- int num;
+static void
+ShuffleEntries(Entries *db, Entries *dbs, int num)
{
int *hits;
register int i, j, k;
@@ -1218,9 +1285,8 @@ ShuffleEntries(db, dbs, num)
free((char *)hits);
}
-ReProcess(scrno, doScreen)
- int scrno;
- Bool doScreen;
+static void
+ReProcess(int scrno, Bool doScreen)
{
Window root;
Atom res_prop;
@@ -1247,26 +1313,15 @@ ReProcess(scrno, doScreen)
FreeEntries(&newDB);
}
-#if NeedVarargsPrototypes
+static void
fatal(char *msg, ...)
-#else
-fatal(msg, x1, x2, x3, x4, x5, x6)
- char *msg;
- int x1, x2, x3, x4, x5, x6;
-#endif
{
-#if NeedVarargsPrototypes
va_list args;
-#endif
- if (errno)
+ if (errno != 0)
perror(ProgramName);
-#if NeedVarargsPrototypes
va_start(args, msg);
vfprintf(stderr, msg, args);
va_end(args);
-#else
- (void) fprintf(stderr, msg, x1, x2, x3, x4, x5, x6);
-#endif
exit(1);
}
diff --git a/xrdb.man b/xrdb.man
index c6959c4..279ea3a 100644
--- a/xrdb.man
+++ b/xrdb.man
@@ -23,7 +23,10 @@
.\" not be used in advertising or otherwise to promote the sale, use or
.\" other dealings in this Software without prior written authorization
.\" from The Open Group.
-.TH XRDB 1 "Release 6.4" "X Version 11"
+.\"
+.\" $XFree86: xc/programs/xrdb/xrdb.man,v 1.8 2001/12/14 20:02:14 dawes Exp $
+.\"
+.TH XRDB 1 __xorgversion__
.SH NAME
xrdb - X server resource database utility
.SH SYNOPSIS
@@ -169,7 +172,7 @@ This option (or any unsupported option) will cause a brief description of
the allowable options and parameters to be printed.
.TP 8
.B \-display \fIdisplay\fP
-This option specifies the X server to be used; see \fIX(1)\fP.
+This option specifies the X server to be used; see \fIX(__miscmansuffix__)\fP.
It also specifies the screen to use for the \fI-screen\fP option,
and it specifies the screen from which preprocessor symbols are
derived for the \fI-global\fP option.
@@ -288,7 +291,7 @@ a directory to search for files that are referenced with
.SH FILES
Generalizes \fI~/.Xdefaults\fP files.
.SH "SEE ALSO"
-X(1), Xlib Resource Manager documentation, Xt resource documentation
+X(__miscmansuffix__), Xlib Resource Manager documentation, Xt resource documentation
.SH ENVIRONMENT
.TP 8
.B DISPLAY