summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-base')
-rw-r--r--x11-base/xfree/files/4.0.2/glibc-2.2.2-ClockP.diff10
-rw-r--r--x11-base/xfree/files/4.0.2/xfree-4.0.2-r3.diff3881
-rw-r--r--x11-base/xfree/xfree-4.0.2-r3.ebuild74
3 files changed, 3965 insertions, 0 deletions
diff --git a/x11-base/xfree/files/4.0.2/glibc-2.2.2-ClockP.diff b/x11-base/xfree/files/4.0.2/glibc-2.2.2-ClockP.diff
new file mode 100644
index 000000000000..34f6f048a589
--- /dev/null
+++ b/x11-base/xfree/files/4.0.2/glibc-2.2.2-ClockP.diff
@@ -0,0 +1,10 @@
+--- xc/programs/xclock/ClockP.h~ Tue Nov 7 00:05:41 2000
++++ xc/programs/xclock/ClockP.h Tue Feb 20 00:58:10 2001
+@@ -52,6 +52,7 @@
+
+ #include <X11/Xos.h> /* Needed for struct tm. */
+ #include "Clock.h"
++#include <time.h>
+ #include <X11/Xaw/SimpleP.h>
+
+ #define SEG_BUFF_SIZE 128
diff --git a/x11-base/xfree/files/4.0.2/xfree-4.0.2-r3.diff b/x11-base/xfree/files/4.0.2/xfree-4.0.2-r3.diff
new file mode 100644
index 000000000000..f29cc59936d4
--- /dev/null
+++ b/x11-base/xfree/files/4.0.2/xfree-4.0.2-r3.diff
@@ -0,0 +1,3881 @@
+Index: config/cf/FreeBSD.cf
+===================================================================
+RCS file: /cvs/xc/config/cf/FreeBSD.cf,v
+retrieving revision 3.101
+retrieving revision 3.101.2.1
+diff -U3 -r3.101 -r3.101.2.1
+--- config/cf/FreeBSD.cf 2000/12/04 18:49:09 3.101
++++ config/cf/FreeBSD.cf 2001/01/22 19:49:12 3.101.2.1
+@@ -2,7 +2,7 @@
+ XCOMM
+ XCOMM
+ XCOMM
+-XCOMM platform: $XFree86: xc/config/cf/FreeBSD.cf,v 3.101 2000/12/04 18:49:09 dawes Exp $
++XCOMM platform: $XFree86: xc/config/cf/FreeBSD.cf,v 3.101.2.1 2001/01/22 19:49:12 dawes Exp $
+
+ #ifndef UseElfFormat
+ #define UseElfFormat DefaultToElfFormat
+@@ -59,6 +59,12 @@
+ #define HasNCurses YES
+ #define HasVarRun YES
+ #define HasVarDb YES
++
++#if (OSMajorVersion > 1)
++#define InstallXloadSetGID NO
++#else
++#define InstallXloadSetGID YES
++#endif
+
+ #define AvoidNullMakeCommand YES
+ #define StripInstalledPrograms YES
+Index: config/cf/Imake.rules
+===================================================================
+RCS file: /cvs/xc/config/cf/Imake.rules,v
+retrieving revision 3.86
+retrieving revision 3.86.2.1
+diff -U3 -r3.86 -r3.86.2.1
+--- config/cf/Imake.rules 2000/12/12 17:05:30 3.86
++++ config/cf/Imake.rules 2001/01/27 20:08:17 3.86.2.1
+@@ -5,7 +5,7 @@
+ XCOMM
+ XCOMM
+ XCOMM
+-XCOMM rules: $XFree86: xc/config/cf/Imake.rules,v 3.86 2000/12/12 17:05:30 dawes Exp $
++XCOMM rules: $XFree86: xc/config/cf/Imake.rules,v 3.86.2.1 2001/01/27 20:08:17 herrb Exp $
+
+ /*
+ * MACHINE-INDEPENDENT RULES; DO NOT MODIFY
+@@ -1217,7 +1217,7 @@
+ InstallHtmlManPageAliases(file,aliases,$(MANSUFFIX)) @@\
+ @@\
+ install.man:: @@\
+- @(TMP=/tmp/tmp.$$$$; \ @@\
++ @(TMP=#tmp.$$$$; \ @@\
+ RemoveFile($${TMP}); \ @@\
+ echo .so `basename destdir`/file.$(MANSUFFIX) > $${TMP}; \ @@\
+ for i in aliases; do (set -x; \ @@\
+@@ -1258,7 +1258,7 @@
+ InstallHtmlManPageAliases(file,aliases,suffix) @@\
+ @@\
+ install.man:: @@\
+- @(TMP=/tmp/tmp.$$$$; \ @@\
++ @(TMP=#tmp.$$$$; \ @@\
+ RemoveFile($${TMP}); \ @@\
+ echo .so `basename destdir`/file.suffix > $${TMP}; \ @@\
+ for i in aliases; do (set -x; \ @@\
+Index: config/cf/NetBSD.cf
+===================================================================
+RCS file: /cvs/xc/config/cf/NetBSD.cf,v
+retrieving revision 3.87
+retrieving revision 3.87.2.2
+diff -U3 -r3.87 -r3.87.2.2
+--- config/cf/NetBSD.cf 2000/12/03 16:14:08 3.87
++++ config/cf/NetBSD.cf 2001/02/11 21:51:42 3.87.2.2
+@@ -2,7 +2,7 @@
+
+
+
+-XCOMM platform: $XFree86: xc/config/cf/NetBSD.cf,v 3.87 2000/12/03 16:14:08 herrb Exp $
++XCOMM platform: $XFree86: xc/config/cf/NetBSD.cf,v 3.87.2.2 2001/02/11 21:51:42 herrb Exp $
+
+
+ #ifndef OSName
+@@ -67,10 +67,19 @@
+ (OSMajorVersion == 1 && OSMinorVersion < 2)))
+ #define HasMkstemp YES
+ #endif
++/* But the standalone mktemp doesn't exist before NetBSD 1.5*/
++#if (OSMajorVersion == 0 || (OSMajorVersion == 1 && OSMinorVersion <= 4))
++# define HasMktemp NO
++#else
++# define HasMktemp YES
++#endif
++
+ #define HasUsableFileMmap YES
+
+ #define HasVarRun YES
+ #define HasVarDb YES
++
++#define InstallXloadSetGID NO
+
+ /* Defines for using the GNU pth thread library -- experimental */
+
+Index: config/cf/OpenBSD.cf
+===================================================================
+RCS file: /cvs/xc/config/cf/OpenBSD.cf,v
+retrieving revision 3.44
+retrieving revision 3.44.2.2
+diff -U3 -r3.44 -r3.44.2.2
+--- config/cf/OpenBSD.cf 2000/12/02 20:15:03 3.44
++++ config/cf/OpenBSD.cf 2001/02/11 18:03:47 3.44.2.2
+@@ -1,4 +1,4 @@
+-XCOMM platform: $XFree86: xc/config/cf/OpenBSD.cf,v 3.44 2000/12/02 20:15:03 herrb Exp $
++XCOMM platform: $XFree86: xc/config/cf/OpenBSD.cf,v 3.44.2.2 2001/02/11 18:03:47 herrb Exp $
+ XCOMM
+
+ #ifndef OSName
+@@ -72,6 +72,8 @@
+ #define HasVarRun YES
+ #define HasVarDb YES
+
++#define InstallXloadSetGID NO
++
+ #ifndef HasLibPthread
+ #define HasLibPthread NO
+ #endif
+@@ -147,7 +149,7 @@
+ # define LdPostLib /**/
+ # define ServerExtraDefines GccGasOption XFree86ServerDefines
+ # ifndef XFree86ConsoleDefines
+-# define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT
++# define XFree86ConsoleDefines -DPCCONS_SUPPORT -DWSCONS_SUPPORT -DPCVT_SUPPORT
+ # endif
+ #endif
+
+@@ -424,8 +426,10 @@
+ # endif
+
+ /* Support for USB Mices */
+-# if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 6)
+-# define UsbMouseSupport YES
++# ifndef UsbMouseSupport
++# if OSMajorVersion > 2 || (OSMajorVersion == 2 && OSMinorVersion >= 6)
++# define UsbMouseSupport YES
++# endif
+ # endif
+
+ /*
+Index: config/cf/X11.tmpl
+===================================================================
+RCS file: /cvs/xc/config/cf/X11.tmpl,v
+retrieving revision 1.93
+retrieving revision 1.93.2.1
+diff -U3 -r1.93 -r1.93.2.1
+--- config/cf/X11.tmpl 2000/12/15 18:18:04 1.93
++++ config/cf/X11.tmpl 2001/01/22 19:49:17 1.93.2.1
+@@ -5,7 +5,7 @@
+ XCOMM
+ XCOMM
+ XCOMM
+-XCOMM $XFree86: xc/config/cf/X11.tmpl,v 1.93 2000/12/15 18:18:04 keithp Exp $
++XCOMM $XFree86: xc/config/cf/X11.tmpl,v 1.93.2.1 2001/01/22 19:49:17 dawes Exp $
+
+ /***************************************************************************
+ * *
+@@ -339,6 +339,9 @@
+ #ifndef InstallXtermSetUID
+ #define InstallXtermSetUID YES /* xterm needs to be set uid */
+ #endif
++#ifndef InstallXloadSetGID
++#define InstallXloadSetGID YES /* xload often needs set gid kmem */
++#endif
+ #ifndef InstallXinitConfig
+ #define InstallXinitConfig NO /* install sample xinit config */
+ #endif
+@@ -358,6 +361,12 @@
+ #ifndef InstallAppDefFiles
+ #define InstallAppDefFiles YES /* install application defaults */
+ #endif
++#ifndef UseConfDirForAppDefaults
++#define UseConfDirForAppDefaults YES
++#endif
++#ifndef UseConfDirForXkb
++#define UseConfDirForXkb YES
++#endif
+ #ifndef CompressAllFonts
+ #define CompressAllFonts NO
+ #endif
+@@ -2347,6 +2356,7 @@
+ * if the InstallAppDefFiles configuration parameter is set.
+ */
+ #ifndef InstallAppDefaultsLong
++#if UseConfDirForAppDefaults
+ #if InstallAppDefFiles
+ #define InstallAppDefaultsLong(file,class) @@\
+ LinkConfDirectory(app-defaults,.,app-defaults,.) @@\
+@@ -2356,6 +2366,15 @@
+ LinkConfDirectory(app-defaults,.,app-defaults,.) @@\
+ InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
+ #endif /* InstallAppDefFiles */
++#else /* UseConfDirForAppDefaults */
++#if InstallAppDefFiles
++#define InstallAppDefaultsLong(file,class) @@\
++InstallNamedTarget(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
++#else
++#define InstallAppDefaultsLong(file,class) @@\
++InstallNamedTargetNoClobber(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
++#endif /* InstallAppDefFiles */
++#endif /* UseConfDirForAppDefaults */
+ #endif /* InstallAppDefaultsLong */
+
+ /*
+Index: config/cf/linux.cf
+===================================================================
+RCS file: /cvs/xc/config/cf/linux.cf,v
+retrieving revision 3.157
+retrieving revision 3.157.2.1
+diff -U3 -r3.157 -r3.157.2.1
+--- config/cf/linux.cf 2000/12/14 17:00:46 3.157
++++ config/cf/linux.cf 2001/01/22 19:49:19 3.157.2.1
+@@ -4,7 +4,7 @@
+
+
+
+-XCOMM platform: $XFree86: xc/config/cf/linux.cf,v 3.157 2000/12/14 17:00:46 dawes Exp $
++XCOMM platform: $XFree86: xc/config/cf/linux.cf,v 3.157.2.1 2001/01/22 19:49:19 dawes Exp $
+
+ #ifndef LinuxElfDefault
+ # define LinuxElfDefault YES
+@@ -215,6 +215,10 @@
+ # ifndef HasLibCrypt
+ # define HasLibCrypt NO
+ # endif
++#endif
++
++#ifndef InstallXloadSetGID
++#define InstallXloadSetGID NO
+ #endif
+
+ /* <linux/input.h> support mainly for USB support */
+Index: config/cf/osf1.cf
+===================================================================
+RCS file: /cvs/xc/config/cf/osf1.cf,v
+retrieving revision 3.6
+retrieving revision 3.6.8.1
+diff -U3 -r3.6 -r3.6.8.1
+--- config/cf/osf1.cf 1997/06/11 12:24:18 3.6
++++ config/cf/osf1.cf 2001/01/22 19:49:23 3.6.8.1
+@@ -35,6 +35,9 @@
+ #define ShLibDir /usr/shlib
+ #define SharedLibPex NO /* losing, no shared -lm */
+ #endif
++
++#define InstallXloadSetGID NO
++
+ #define ThreadedX ModernOSF1
+
+ #if ThreadedX
+Index: config/cf/xf86site.def
+===================================================================
+RCS file: /cvs/xc/config/cf/xf86site.def,v
+retrieving revision 3.170
+retrieving revision 3.170.2.1
+diff -U3 -r3.170 -r3.170.2.1
+--- config/cf/xf86site.def 2000/12/14 16:38:45 3.170
++++ config/cf/xf86site.def 2001/02/11 21:51:44 3.170.2.1
+@@ -1,4 +1,4 @@
+-XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.170 2000/12/14 16:38:45 dawes Exp $
++XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.170.2.1 2001/02/11 21:51:44 herrb Exp $
+ /******************************************************************************/
+ /*
+ * This file is to provide a quick method for most people to change the
+@@ -748,4 +748,9 @@
+ #define X86EMU_LIBPATH /usr/local/lib
+ */
+
+-
++/*
++ * By default, gccmakedep uses mktemp for security reasons.
++ * Uncomment this, if your system lacks mktemp.
++ *
++#define HasMktemp NO
++ */
+Index: config/cf/xfree86.cf
+===================================================================
+RCS file: /cvs/xc/config/cf/xfree86.cf,v
+retrieving revision 3.338
+retrieving revision 3.338.2.1
+diff -U3 -r3.338 -r3.338.2.1
+--- config/cf/xfree86.cf 2000/12/14 16:59:06 3.338
++++ config/cf/xfree86.cf 2001/02/11 21:51:43 3.338.2.1
+@@ -1,4 +1,4 @@
+-XCOMM $XFree86: xc/config/cf/xfree86.cf,v 3.338 2000/12/14 16:59:06 dawes Exp $
++XCOMM $XFree86: xc/config/cf/xfree86.cf,v 3.338.2.1 2001/02/11 21:51:43 herrb Exp $
+ /*
+ * This configuration file contains all of the configuration
+ * information for the XFree86 based X Servers.
+@@ -1287,6 +1287,10 @@
+ # ifndef Has3DNowSupport
+ # define Has3DNowSupport NO
+ # endif
++#endif
++
++#ifndef HasMktemp
++#define HasMktemp YES
+ #endif
+
+ #include <xf86.rules>
+Index: config/util/Imakefile
+===================================================================
+RCS file: /cvs/xc/config/util/Imakefile,v
+retrieving revision 3.29
+retrieving revision 3.29.2.1
+diff -U3 -r3.29 -r3.29.2.1
+--- config/util/Imakefile 2000/12/06 15:35:01 3.29
++++ config/util/Imakefile 2001/02/11 21:51:46 3.29.2.1
+@@ -1,5 +1,5 @@
+ XCOMM $XConsortium: Imakefile /main/16 1996/11/13 14:43:28 lehors $
+-XCOMM $XFree86: xc/config/util/Imakefile,v 3.29 2000/12/06 15:35:01 eich Exp $
++XCOMM $XFree86: xc/config/util/Imakefile,v 3.29.2.1 2001/02/11 21:51:46 herrb Exp $
+
+ #if UseCCMakeDepend
+ MDEP_PROG = makedepend
+@@ -18,6 +18,10 @@
+ LNDIR_PROG = ProgramTargetName(lndir)
+ #endif
+
++#if HasMktemp
++MKTEMPDEFINE = -DHAS_MKTEMP
++#endif
++
+ #if BuildRman
+ RMAN_PROG = ProgramTargetName(rman)
+ #endif
+@@ -64,10 +68,10 @@
+ #endif
+
+ CppScriptTarget(xmkmf,xmkmf.cpp,-DCONFIGDIRSPEC='"'"-I$(CONFIGDIR)"'"',$(ICONFIGFILES))
+-CppScriptTarget(makedepend,mdepend.cpp,-DPREPROC='"'"$(PREPROCESSCMD_MKDEPEND)"'"',$(ICONFIGFILES))
++CppScriptTarget(makedepend,mdepend.cpp,$(MKTEMPDEFINE) -DPREPROC='"'"$(PREPROCESSCMD_MKDEPEND)"'"',$(ICONFIGFILES))
+ CppScriptTarget(mergelib,mergelib.cpp,"-DARCMD=$(AR)" "-DRANLIB=$(RANLIB)",$(ICONFIGFILES))
+ #ifndef OS2Architecture
+-CppScriptTarget(gccmakedep,gccmdep.cpp,-DCCCMD='"'"$(GCCCMD)"'"' -DRMCMD='"'"$(RM)"'"' -DLNCMD='"'"$(LN)"'"' -DMVCMD='"'"$(MV)"'"',$(ICONFIGFILES))
++CppScriptTarget(gccmakedep,gccmdep.cpp,$(MKTEMPDEFINE) -DCCCMD='"'"$(GCCCMD)"'"' -DRMCMD='"'"$(RM)"'"' -DLNCMD='"'"$(LN)"'"' -DMVCMD='"'"$(MV)"'"',$(ICONFIGFILES))
+ #endif
+
+ #ifndef OpenBSDArchitecture
+Index: config/util/gccmdep.cpp
+===================================================================
+RCS file: /cvs/xc/config/util/gccmdep.cpp,v
+retrieving revision 3.5
+retrieving revision 3.5.2.1
+diff -U3 -r3.5 -r3.5.2.1
+--- config/util/gccmdep.cpp 2000/11/14 21:59:21 3.5
++++ config/util/gccmdep.cpp 2001/01/27 20:07:33 3.5.2.1
+@@ -3,7 +3,7 @@
+ XCOMM
+ XCOMM makedepend which uses 'gcc -M'
+ XCOMM
+-XCOMM $XFree86: xc/config/util/gccmdep.cpp,v 3.5 2000/11/14 21:59:21 dawes Exp $
++XCOMM $XFree86: xc/config/util/gccmdep.cpp,v 3.5.2.1 2001/01/27 20:07:33 herrb Exp $
+ XCOMM
+ XCOMM Based on mdepend.cpp and code supplied by Hongjiu Lu <hjl@nynexst.com>
+ XCOMM
+@@ -14,6 +14,18 @@
+ LN=LNCMD
+ MV=MVCMD
+
++XCOMM Security: if $tmp exists exit immediately
++rm -f ${TMP}
++if [ -e ${TMP} ] ; then
++ echo "$0: ${TMP} exists already, exit." 1>&2
++ exit 1;
++fi
++#if defined(HAS_MKTEMP)
++if [ -n "`type -p mktemp`" ] ; then
++ TMP="`mktemp ${TMP}.XXXXXX`" || exit 1
++fi
++#endif
++
+ trap "$RM ${TMP}*; exit 1" 1 2 15
+ trap "$RM ${TMP}*; exit 0" 1 2 13
+
+@@ -33,7 +45,7 @@
+ -D*|-I*)
+ args="$args '$1'"
+ ;;
+- -g|-O*)
++ -g|-O)
+ ;;
+ *)
+ if [ "$endmarker"x = x ]; then
+Index: config/util/mdepend.cpp
+===================================================================
+RCS file: /cvs/xc/config/util/mdepend.cpp,v
+retrieving revision 3.3
+retrieving revision 3.3.2.1
+diff -U3 -r3.3 -r3.3.2.1
+--- config/util/mdepend.cpp 2000/08/08 03:16:26 3.3
++++ config/util/mdepend.cpp 2001/02/11 21:51:47 3.3.2.1
+@@ -22,7 +22,7 @@
+ XCOMM USG users will probably have to change "silent" to "-s" instead of
+ XCOMM "-" (at least, that is what the documentation implies).
+ XCOMM
+-XCOMM $XFree86: xc/config/util/mdepend.cpp,v 3.3 2000/08/08 03:16:26 dawes Exp $
++XCOMM $XFree86: xc/config/util/mdepend.cpp,v 3.3.2.1 2001/02/11 21:51:47 herrb Exp $
+ XCOMM
+
+ CC=PREPROC
+@@ -35,6 +35,18 @@
+ TMPMAKEFILE=${TMP}c
+ MAGICLINE=${TMP}d
+ ARGS=${TMP}e
++
++XCOMM Security: if $tmp exists exit immediately
++rm -f ${TMP}
++if [ -e ${TMP} ] ; then
++ echo "$0: ${TMP} exists already, exit." 1>&2
++ exit 1;
++fi
++#if defined(HAS_MKTEMP)
++if [ -n "`type -p mktemp`" ] ; then
++ TMP="`mktemp ${TMP}.XXXXXX`" || exit 1
++fi
++#endif
+
+ trap "rm -f ${TMP}*; exit 1" 1 2 15
+ trap "rm -f ${TMP}*; exit 0" 1 2 13
+Index: extras/rman/rman.c
+===================================================================
+RCS file: /cvs/xc/extras/rman/rman.c,v
+retrieving revision 1.12
+retrieving revision 1.12.2.1
+diff -U3 -r1.12 -r1.12.2.1
+--- extras/rman/rman.c 2000/12/01 18:48:08 1.12
++++ extras/rman/rman.c 2000/12/21 19:01:07 1.12.2.1
+@@ -16,7 +16,7 @@
+ source interpretation added September 24, 1996
+ renamed PolyglotMan due to lawsuit by Rosetta, Inc. August 8, 1997
+ */
+-/* $XFree86: xc/extras/rman/rman.c,v 1.12 2000/12/01 18:48:08 dawes Exp $ */
++/* $XFree86: xc/extras/rman/rman.c,v 1.12.2.1 2000/12/21 19:01:07 dawes Exp $ */
+
+
+ /* TO DO ****
+@@ -474,12 +474,14 @@
+ {
+ char *p0;
+ static char *nonhref = "\">'";
++ static char *punct = ".,:;)]}?!";
+
+ while (*p==' ') p++;
+ if (strincmp(p,"http",4)==0) {
+ href="%s"; manrefname = p;
+ p+=4;
+ while (*p && !isspace(*p) && !strchr(nonhref,*p)) p++;
++ while (strchr(punct, *(p - 1))) p--;
+ } else {
+ href = manRef;
+
+Index: lib/Xaw/AsciiSrc.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/AsciiSrc.c,v
+retrieving revision 1.25
+retrieving revision 1.25.2.1
+diff -U3 -r1.25 -r1.25.2.1
+--- lib/Xaw/AsciiSrc.c 2000/11/28 17:25:09 1.25
++++ lib/Xaw/AsciiSrc.c 2001/01/27 20:06:11 1.25.2.1
+@@ -22,7 +22,7 @@
+
+ */
+
+-/* $XFree86: xc/lib/Xaw/AsciiSrc.c,v 1.25 2000/11/28 17:25:09 dawes Exp $ */
++/* $XFree86: xc/lib/Xaw/AsciiSrc.c,v 1.25.2.1 2001/01/27 20:06:11 herrb Exp $ */
+
+ /*
+ * AsciiSrc.c - AsciiSrc object. (For use with the text widget).
+@@ -1456,7 +1456,7 @@
+ open_mode = O_WRONLY | O_CREAT | O_EXCL;
+ fdopen_mode = "w";
+ }
+- else
++ else {
+ /* O_NOFOLLOW is a FreeBSD & Linux extension */
+ #ifdef O_NOFOLLOW
+ open_mode = O_RDWR | O_NOFOLLOW;
+@@ -1464,6 +1464,7 @@
+ open_mode = O_RDWR; /* unsafe; subject to race conditions */
+ #endif /* O_NOFOLLOW */
+ fdopen_mode = "r+";
++ }
+ break;
+ default:
+ XtErrorMsg("badMode", "asciiSourceCreate", "XawError",
+Index: lib/Xaw/Form.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/Form.c,v
+retrieving revision 1.18
+retrieving revision 1.18.2.1
+diff -U3 -r1.18 -r1.18.2.1
+--- lib/Xaw/Form.c 2000/10/26 17:57:49 1.18
++++ lib/Xaw/Form.c 2001/02/09 20:45:08 1.18.2.1
+@@ -1,4 +1,4 @@
+-/* $TOG: Form.c /main/54 1998/05/14 14:55:45 kaleb $ */
++/* $Xorg: Form.c,v 1.3 2000/08/17 19:45:32 cpqbld Exp $ */
+
+ /***********************************************************
+
+@@ -43,7 +43,7 @@
+
+ ******************************************************************/
+
+-/* $XFree86: xc/lib/Xaw/Form.c,v 1.18 2000/10/26 17:57:49 dawes Exp $ */
++/* $XFree86: xc/lib/Xaw/Form.c,v 1.18.2.1 2001/02/09 20:45:08 paulo Exp $ */
+
+ #include <X11/IntrinsicP.h>
+ #include <X11/StringDefs.h>
+@@ -582,6 +582,11 @@
+ always_resize_children =
+ ChangeFormGeometry((Widget)fw, False, maxx, maxy, NULL, NULL);
+
++#ifdef OLDXAW
++ fw->form.old_width = fw->core.width;
++ fw->form.old_height = fw->core.height;
++#endif
++
+ if (force_relayout)
+ ret_val = True;
+ else
+@@ -656,7 +661,6 @@
+ static void
+ LayoutChild(Widget w)
+ {
+- FormWidget fw = (FormWidget)XtParent(w);
+ FormConstraints form = (FormConstraints)w->core.constraints;
+ Widget ref;
+
+@@ -684,22 +688,16 @@
+ form->form.new_y = form->form.dy;
+ if ((ref = form->form.horiz_base) != NULL) {
+ FormConstraints ref_form = (FormConstraints)ref->core.constraints;
+- Dimension width;
+
+ LayoutChild(ref);
+- width = fw->form.old_width ?
+- ref_form->form.virtual_width : XtWidth(ref);
+- form->form.new_x += ref_form->form.new_x + width +
++ form->form.new_x += ref_form->form.new_x + XtWidth(ref) +
+ (XtBorderWidth(ref) << 1);
+ }
+ if ((ref = form->form.vert_base) != NULL) {
+ FormConstraints ref_form = (FormConstraints)ref->core.constraints;
+- Dimension height;
+
+ LayoutChild(ref);
+- height = fw->form.old_height ?
+- ref_form->form.virtual_height : XtHeight(ref);
+- form->form.new_y += ref_form->form.new_y + height +
++ form->form.new_y += ref_form->form.new_y + XtHeight(ref) +
+ (XtBorderWidth(ref) << 1);
+ }
+
+@@ -891,8 +889,6 @@
+ * The window will be updated when no_refigure is set back
+ * to False
+ */
+- form->form.virtual_width = XtWidth(w);
+- form->form.virtual_height = XtHeight(w);
+ form->form.deferred_resize = True;
+ ret_val = XtGeometryDone;
+ }
+@@ -902,6 +898,8 @@
+ /*
+ * Resets everything.
+ */
++ fw->form.old_width = XtWidth(fw);
++ fw->form.old_height = XtHeight(fw);
+ for (childP = children; childP - children < num_children; childP++) {
+ Widget nw = *childP;
+
+@@ -916,8 +914,6 @@
+ nform->form.virtual_height = XtHeight(nw);
+ }
+ }
+- fw->form.old_width = XtWidth(fw);
+- fw->form.old_height = XtHeight(fw);
+ }
+ else {
+ XtWidth(w) = old_width;
+@@ -1022,23 +1018,21 @@
+ (*((FormWidgetClass)w->core.widget_class)->form_class.layout)
+ (fw, XtWidth(w), XtHeight(w), True);
+
+- if (!fw->form.old_width || !fw->form.old_height) {
+- fw->form.old_width = XtWidth(w);
+- fw->form.old_height = XtHeight(w);
+- for (children = childP = fw->composite.children;
+- childP - children < num_children;
+- childP++) {
+- child = *childP;
+- if (!XtIsManaged(child))
+- continue;
+- form = (FormConstraints)child->core.constraints;
++ fw->form.old_width = XtWidth(w);
++ fw->form.old_height = XtHeight(w);
++ for (children = childP = fw->composite.children;
++ childP - children < num_children;
++ childP++) {
++ child = *childP;
++ if (!XtIsManaged(child))
++ continue;
++ form = (FormConstraints)child->core.constraints;
+ #ifndef OLDXAW
+- form->form.virtual_x = XtX(child);
+- form->form.virtual_y = XtY(child);
++ form->form.virtual_x = XtX(child);
++ form->form.virtual_y = XtY(child);
+ #endif
+- form->form.virtual_width = XtWidth(child);
+- form->form.virtual_height = XtHeight(child);
+- }
++ form->form.virtual_width = XtWidth(child);
++ form->form.virtual_height = XtHeight(child);
+ }
+ }
+
+Index: lib/Xaw/MultiSrc.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/MultiSrc.c,v
+retrieving revision 1.19
+retrieving revision 1.19.2.1
+diff -U3 -r1.19 -r1.19.2.1
+--- lib/Xaw/MultiSrc.c 1999/07/19 13:36:02 1.19
++++ lib/Xaw/MultiSrc.c 2001/01/27 20:06:56 1.19.2.1
+@@ -27,7 +27,7 @@
+ *
+ * Much code taken from X11R3 String and Disk Sources.
+ */
+-/* $XFree86: xc/lib/Xaw/MultiSrc.c,v 1.19 1999/07/19 13:36:02 dawes Exp $ */
++/* $XFree86: xc/lib/Xaw/MultiSrc.c,v 1.19.2.1 2001/01/27 20:06:56 herrb Exp $ */
+
+ /*
+
+@@ -67,6 +67,10 @@
+ #include "XawI18n.h"
+ #include "Private.h"
+
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
++
+ #define MAGIC_VALUE ((XawTextPosition)-1)
+ #define streq(a, b) (strcmp((a), (b)) == 0)
+
+@@ -1158,7 +1162,9 @@
+ static FILE *
+ InitStringOrFile(MultiSrcObject src, Bool newString)
+ {
+- char *open_mode = NULL;
++ mode_t open_mode;
++ const char *fdopen_mode = NULL;
++ int fd;
+ FILE *file;
+ char fileName[TMPSIZ];
+ Display *d = XtDisplayOfObject((Widget)src);
+@@ -1208,7 +1214,8 @@
+ XtErrorMsg("NoFile", "multiSourceCreate", "XawError",
+ "Creating a read only disk widget and no file specified.",
+ NULL, 0);
+- open_mode = "r";
++ open_mode = O_RDONLY;
++ fdopen_mode = "r";
+ break;
+ case XawtextAppend:
+ case XawtextEdit:
+@@ -1218,10 +1225,18 @@
+
+ (void)tmpnam((char *)src->multi_src.string);
+ src->multi_src.is_tempfile = True;
+- open_mode = "w";
++ open_mode = O_WRONLY | O_CREAT | O_EXCL;
++ fdopen_mode = "w";
+ }
+- else
+- open_mode = "r+";
++ else {
++/* O_NOFOLLOW is a BSD & Linux extension */
++#ifdef O_NOFOLLOW
++ open_mode = O_RDWR | O_NOFOLLOW;
++#else
++ open_mode = O_RDWR; /* unsafe; subject to race conditions */
++#endif
++ fdopen_mode = "r+";
++ }
+ break;
+ default:
+ XtErrorMsg("badMode", "multiSourceCreate", "XawError",
+@@ -1243,12 +1258,14 @@
+ }
+
+ if (!src->multi_src.is_tempfile) {
+- if ((file = fopen((char *)src->multi_src.string, open_mode)) != NULL) {
+- (void)fseek(file, 0, 2);
+- src->multi_src.length = ftell(file);
+- return file;
++ if ((fd = open((char *)src->multi_src.string, open_mode, 0666)) != 0) {
++ if ((file = fdopen(fd, fdopen_mode)) != NULL) {
++ (void)fseek(file, 0, SEEK_END);
++ src->multi_src.length = (XawTextPosition)ftell(file);
++ return(file);
++ }
+ }
+- else {
++ {
+ String params[2];
+ Cardinal num_params = 2;
+
+@@ -1258,7 +1275,7 @@
+ "openError", "multiSourceCreate", "XawWarning",
+ "Cannot open file %s; %s", params, &num_params);
+ }
+- }
++ }
+ src->multi_src.length = 0;
+ return (NULL);
+ }
+Index: lib/Xaw/Pixmap.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/Pixmap.c,v
+retrieving revision 3.15
+retrieving revision 3.15.2.1
+diff -U3 -r3.15 -r3.15.2.1
+--- lib/Xaw/Pixmap.c 2000/09/26 15:56:54 3.15
++++ lib/Xaw/Pixmap.c 2001/02/09 20:45:09 3.15.2.1
+@@ -25,7 +25,7 @@
+ * XFree86 Project.
+ */
+
+-/* $XFree86: xc/lib/Xaw/Pixmap.c,v 3.15 2000/09/26 15:56:54 tsi Exp $ */
++/* $XFree86: xc/lib/Xaw/Pixmap.c,v 3.15.2.1 2001/02/09 20:45:09 paulo Exp $ */
+
+ #include <string.h>
+ #include <stdio.h>
+@@ -437,7 +437,7 @@
+ cache = (XawCache **)bsearch(screen, xaw->elems,
+ xaw->num_elems, sizeof(XtPointer),
+ bcmp_long);
+- if (!cache)
++ if (!cache || !(*cache)->num_elems)
+ return (NULL);
+ if (flags == FIND_SCREEN)
+ return (*cache);
+@@ -446,7 +446,7 @@
+ cache = (XawCache **)bsearch((void *)colormap, (*cache)->elems,
+ (*cache)->num_elems, sizeof(XtPointer),
+ bcmp_long);
+- if (!cache)
++ if (!cache || !(*cache)->num_elems)
+ return (NULL);
+ if (flags == FIND_COLORMAP)
+ return (*cache);
+@@ -456,7 +456,7 @@
+ (*cache)->num_elems, sizeof(XtPointer),
+ bcmp_long);
+
+- if (!cache)
++ if (!cache || !(*cache)->num_elems)
+ return (NULL);
+ return (*cache);
+ }
+Index: lib/Xaw/Text.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/Text.c,v
+retrieving revision 3.40
+retrieving revision 3.40.2.1
+diff -U3 -r3.40 -r3.40.2.1
+--- lib/Xaw/Text.c 2000/12/07 20:26:12 3.40
++++ lib/Xaw/Text.c 2001/02/09 20:45:09 3.40.2.1
+@@ -1,4 +1,4 @@
+-/* $TOG: Text.c /main/201 1998/06/24 11:53:44 kaleb $ */
++/* $Xorg: Text.c,v 1.3 2000/08/17 19:45:40 cpqbld Exp $ */
+
+ /***********************************************************
+
+@@ -70,7 +70,7 @@
+ * XFree86 Project.
+ */
+
+-/* $XFree86: xc/lib/Xaw/Text.c,v 3.40 2000/12/07 20:26:12 dawes Exp $ */
++/* $XFree86: xc/lib/Xaw/Text.c,v 3.40.2.1 2001/02/09 20:45:09 paulo Exp $ */
+
+ #include <stdio.h>
+ #include <X11/IntrinsicP.h>
+@@ -805,6 +805,7 @@
+ XtRealizeWidget(vbar);
+ XtMapWidget(vbar);
+ }
++ XtSetKeyboardFocus(vbar, (Widget)ctx);
+ }
+
+ /*
+@@ -863,6 +864,7 @@
+ XtRealizeWidget(hbar);
+ XtMapWidget(hbar);
+ }
++ XtSetKeyboardFocus(hbar, (Widget)ctx);
+ }
+
+ /*
+Index: lib/Xaw/TextAction.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/TextAction.c,v
+retrieving revision 3.35
+retrieving revision 3.35.2.1
+diff -U3 -r3.35 -r3.35.2.1
+--- lib/Xaw/TextAction.c 2000/12/07 20:26:12 3.35
++++ lib/Xaw/TextAction.c 2001/02/09 20:45:09 3.35.2.1
+@@ -21,7 +21,7 @@
+ in this Software without prior written authorization from The Open Group.
+
+ */
+-/* $XFree86: xc/lib/Xaw/TextAction.c,v 3.35 2000/12/07 20:26:12 dawes Exp $ */
++/* $XFree86: xc/lib/Xaw/TextAction.c,v 3.35.2.1 2001/02/09 20:45:09 paulo Exp $ */
+
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -2835,12 +2835,23 @@
+ EndAction((TextWidget)w);
+ }
+
++/* This is kind of a hack, but, only one text widget can have focus at
++ * a time on one display. There is a problem in the implementation of the
++ * text widget, the scrollbars can not be adressed via editres, since they
++ * are not children of a subclass of composite.
++ * The focus variable is required to make sure only one text window will
++ * show a block cursor at one time.
++ */
++struct _focus { Display *display; Widget widget; };
++static struct _focus *focus;
++static Cardinal num_focus;
+ /*ARGSUSED*/
+ static void
+ TextFocusIn(Widget w, XEvent *event, String *p, Cardinal *n)
+ {
+ TextWidget ctx = (TextWidget)w;
+ Bool display_caret = ctx->text.display_caret;
++ int i;
+
+ if (event->xfocus.detail == NotifyPointer)
+ return;
+@@ -2853,6 +2864,25 @@
+ ctx->text.hasfocus = TRUE;
+ if (display_caret)
+ EndAction(ctx);
++
++ for (i = 0; i < num_focus; i++)
++ if (focus[i].display == XtDisplay(w))
++ break;
++ if (i >= num_focus) {
++ focus = (struct _focus*)
++ XtRealloc((XtPointer)focus, sizeof(struct _focus) * (num_focus + 1));
++ i = num_focus;
++ focus[i].widget = w;
++ focus[i].display = XtDisplay(w);
++ num_focus++;
++ }
++ if (focus[i].widget != w) {
++ Widget old = focus[i].widget;
++
++ focus[i].widget = w;
++ if (old != NULL)
++ TextFocusOut(old, event, p, n);
++ }
+ }
+
+ /*ARGSUSED*/
+@@ -2861,8 +2891,24 @@
+ {
+ TextWidget ctx = (TextWidget)w;
+ Bool display_caret = ctx->text.display_caret;
++ Widget shell;
++ Window window;
++ int i, revert;
++
++ shell = w;
++ while (shell) {
++ if (XtIsShell(shell))
++ break;
++ shell = XtParent(shell);
++ }
+
+- if (event->xfocus.detail == NotifyPointer)
++ for (i = 0; i < num_focus; i++)
++ if (focus[i].display == XtDisplay(w))
++ break;
++ XGetInputFocus(XtDisplay(w), &window, &revert);
++ if ((XtWindow(shell) == window &&
++ (i < num_focus && focus[i].widget == w))
++ || event->xfocus.detail == NotifyPointer)
+ return;
+
+ /* Let the input method know focus has left.*/
+@@ -3110,6 +3156,8 @@
+ FD_ZERO(&fds);
+ FD_SET(ConnectionNumber(XtDisplay(w)), &fds);
+ (void)select(FD_SETSIZE, &fds, NULL, NULL, &tmval);
++ if (tmval.tv_usec != 500000)
++ usleep(40000);
+
+ StartAction(ctx, NULL);
+ #ifndef OLDXAW
+@@ -3342,8 +3390,9 @@
+ return;
+ }
+ else {
+- mult = mult * 10 + params[0][0] - '0';
+- ctx->text.mult = ctx->text.mult * 10 + params[0][0] - '0';
++ mult = mult * 10 + (params[0][0] - '0') * (mult < 0 ? -1 : 1);
++ ctx->text.mult = ctx->text.mult * 10 + (params[0][0] - '0') *
++ (mult < 0 ? -1 : 1);
+ }
+ if (mult != ctx->text.mult || mult >= 32767) { /* checks for overflow */
+ XBell(XtDisplay(w), 0);
+Index: lib/Xaw/TextPop.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/TextPop.c,v
+retrieving revision 1.16
+retrieving revision 1.16.2.1
+diff -U3 -r1.16 -r1.16.2.1
+--- lib/Xaw/TextPop.c 2000/05/18 16:29:52 1.16
++++ lib/Xaw/TextPop.c 2001/02/09 20:45:10 1.16.2.1
+@@ -22,7 +22,7 @@
+
+ */
+
+-/* $XFree86: xc/lib/Xaw/TextPop.c,v 1.16 2000/05/18 16:29:52 dawes Exp $ */
++/* $XFree86: xc/lib/Xaw/TextPop.c,v 1.16.2.1 2001/02/09 20:45:10 paulo Exp $ */
+
+ /*
+ * This file is broken up into three sections one dealing with
+@@ -837,7 +837,7 @@
+ static Bool
+ DoSearch(struct SearchAndReplace *search)
+ {
+- char msg[BUFSIZ];
++ char msg[37];
+ Widget tw = XtParent(search->search_popup);
+ XawTextPosition pos;
+ XawTextScanDirection dir;
+@@ -875,11 +875,27 @@
+ GetString to get a tame version */
+
+ if (pos == XawTextSearchError) {
+- (void)XmuSnprintf(msg, sizeof(msg),
+- "Could not find string ``%s''.",
+- GetString(search->search_text));
++ char *ptr;
++ int len;
++
++ ptr = GetString(search->search_text);
++ len = strlen(ptr);
++ (void)XmuSnprintf(msg, sizeof(msg), "%s", ptr);
++
++ ptr = strchr(msg, '\n');
++ if (ptr != NULL || sizeof(msg) - 1 < len) {
++ if (ptr != NULL)
++ len = ptr - msg + 4;
++ else
++ len = strlen(msg);
++
++ if (len < 4)
++ strcpy(msg, "...");
++ else
++ strcpy(msg + len - 4, "...");
++ }
+ XawTextUnsetSelection(tw);
+- SetSearchLabels(search, msg, "", True);
++ SetSearchLabels(search, "Could not find string", msg, True);
+
+ return (False);
+ }
+@@ -1019,15 +1035,26 @@
+
+ if (new_pos == XawTextSearchError) {
+ if (count == 0) {
+- char msg[BUFSIZ];
+-
+- /* The Raw string in find.ptr may be WC I can't use here,
+- so I call GetString to get a tame version */
+-
+- (void)XmuSnprintf(msg, sizeof(msg),
+- "Error: Could not find string ``%s''",
+- GetString(search->search_text));
+- SetSearchLabels(search, msg, "", True);
++ char msg[37];
++ char *ptr;
++ int len;
++
++ ptr = GetString(search->search_text);
++ len = strlen(ptr);
++ (void)XmuSnprintf(msg, sizeof(msg), "%s", ptr);
++ ptr = strchr(msg, '\n');
++ if (ptr != NULL || sizeof(msg) - 1 < len) {
++ if (ptr != NULL)
++ len = ptr - msg + 4;
++ else
++ len = strlen(msg);
++
++ if (len < 4)
++ strcpy(msg, "...");
++ else
++ strcpy(msg + len - 4, "...");
++ }
++ SetSearchLabels(search, "Could not find string", msg, True);
+
+ if (redisplay) {
+ XawTextSetInsertionPoint(tw, ipos);
+@@ -1047,7 +1074,7 @@
+ XawTextGetSelectionPos(tw, &pos, &end_pos);
+
+ if (search->selection_changed) {
+- SetSearchLabels(search, "Selection has been modified, aborting.",
++ SetSearchLabels(search, "Selection modified, aborting.",
+ "", True);
+ if (redisplay) {
+ XawTextSetInsertionPoint(tw, ipos);
+@@ -1067,11 +1094,7 @@
+ }
+
+ if (XawTextReplace(tw, pos, end_pos, &replace) != XawEditDone) {
+- char msg[BUFSIZ];
+-
+- (void)XmuSnprintf(msg, sizeof(msg),
+- "'%s' with '%s'", find.ptr, replace.ptr);
+- SetSearchLabels(search, "Error while replacing", msg, True);
++ SetSearchLabels(search, "Error while replacing.", "", True);
+ if (redisplay) {
+ XawTextSetInsertionPoint(tw, ipos);
+ XawTextEnableRedisplay(tw);
+Index: lib/Xaw/TextSrc.c
+===================================================================
+RCS file: /cvs/xc/lib/Xaw/TextSrc.c,v
+retrieving revision 1.25
+retrieving revision 1.25.2.1
+diff -U3 -r1.25 -r1.25.2.1
+--- lib/Xaw/TextSrc.c 2000/09/26 15:56:55 1.25
++++ lib/Xaw/TextSrc.c 2001/02/09 20:45:10 1.25.2.1
+@@ -21,7 +21,7 @@
+
+ */
+
+-/* $XFree86: xc/lib/Xaw/TextSrc.c,v 1.25 2000/09/26 15:56:55 tsi Exp $ */
++/* $XFree86: xc/lib/Xaw/TextSrc.c,v 1.25.2.1 2001/02/09 20:45:10 paulo Exp $ */
+
+ /*
+ * Author: Chris Peterson, MIT X Consortium.
+@@ -1022,9 +1022,9 @@
+ XtFree((XtPointer)entity);
+ if (entity == anchor->entities) {
+ if ((anchor->entities = enext) == NULL) {
++ eprev = NULL;
+ anchor = XawTextSourceRemoveAnchor(w, anchor);
+ entity = anchor ? anchor->entities : NULL;
+- eprev = NULL;
+ }
+ else
+ eprev = entity = enext;
+@@ -1053,6 +1053,7 @@
+ XtFree((XtPointer)entity);
+ anchor->cache = NULL;
+ if (entity == anchor->entities) {
++ eprev = NULL;
+ if ((anchor->entities = enext) == NULL) {
+ if (i == 0)
+ ++i;
+@@ -1069,7 +1070,6 @@
+ break;
+ }
+ anchor = src->textSrc.anchors[i];
+- eprev = NULL;
+ entity = anchor->entities;
+ continue;
+ }
+Index: programs/Xserver/dix/events.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/dix/events.c,v
+retrieving revision 3.35
+retrieving revision 3.35.2.1
+diff -U3 -r3.35 -r3.35.2.1
+--- programs/Xserver/dix/events.c 2000/10/22 21:12:09 3.35
++++ programs/Xserver/dix/events.c 2001/02/09 20:45:14 3.35.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.35 2000/10/22 21:12:09 mvojkovi Exp $ */
++/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.35.2.1 2001/02/09 20:45:14 paulo Exp $ */
+ /************************************************************
+
+ Copyright 1987, 1998 The Open Group
+@@ -2783,6 +2783,44 @@
+ if (deactivateGrab)
+ (*keybd->DeactivateGrab)(keybd);
+ }
++
++#ifdef XKB
++/* This function is used to set the key pressed or key released state -
++ this is only used when the pressing of keys does not cause
++ CoreProcessKeyEvent to be called, as in for example Mouse Keys.
++*/
++void
++FixKeyState (xE, keybd)
++ register xEvent *xE;
++ register DeviceIntPtr keybd;
++{
++ int key, bit;
++ register BYTE *kptr;
++ register KeyClassPtr keyc = keybd->key;
++
++ key = xE->u.u.detail;
++ kptr = &keyc->down[key >> 3];
++ bit = 1 << (key & 7);
++#ifdef DEBUG
++ if ((xkbDebugFlags&0x4)&&
++ ((xE->u.u.type==KeyPress)||(xE->u.u.type==KeyRelease))) {
++ ErrorF("FixKeyState: Key %d %s\n",key,
++ (xE->u.u.type==KeyPress?"down":"up"));
++ }
++#endif
++ switch (xE->u.u.type)
++ {
++ case KeyPress:
++ *kptr |= bit;
++ break;
++ case KeyRelease:
++ *kptr &= ~bit;
++ break;
++ default:
++ FatalError("Impossible keyboard event");
++ }
++}
++#endif
+
+ void
+ #ifdef XKB
+Index: programs/Xserver/hw/xfree86/CHANGELOG
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/CHANGELOG,v
+retrieving revision 3.1485
+retrieving revision 3.1485.2.15
+diff -U3 -r3.1485 -r3.1485.2.15
+--- programs/Xserver/hw/xfree86/CHANGELOG 2000/12/18 15:55:33 3.1485
++++ programs/Xserver/hw/xfree86/CHANGELOG 2001/02/15 16:01:33 3.1485.2.15
+@@ -1,3 +1,51 @@
++XFree86 4.0.2a (?? February 2001)
++1231. Add missing Rage 128 PD chip support (Ishikawa Mutsumi).
++1230. Work around compiler-generated call to memcpy in the sis driver
++ (David Dawes).
++1229. Fix the neomagic driver so that it saves/restores the palette (#4452,
++ Ken Hornstein).
++1228. Fix a palette saving bug in the vgahw module (#4452, Ken Hornstein).
++1227. [SECURITY] complete fix for /tmp race in gccmakedep and makedepend.
++ (Branden Robinson).
++1226. Add support for wsmouse protocol under OpenBSD/i386 (Matthieu Herrb).
++1225. [SECURITY] fix possible buffer overflow (NOT on stack) in xdm
++ xdmcp code (patch69 from Red Hat SRPMS).
++1224. Make acceleration work on the Trident Cyber9388 (Alan Hourihane).
++1223. Make some changes to the clock selection for trident driver
++ (Alan Hourihane).
++1222. Ensure Video is unavailable when no acceleration available in the
++ trident driver (Alan Hourihane).
++1221. Allow xf86ClaimPciSlot to be called with a NULL GDevPtr, as it was
++ previously (Alan Hourihane).
++1220. Correct some problems with xedit c-mode. Fix geometry management
++ incompatibilites with Xaw 6 in the Form widget.
++ Fix problem in libxf86config when comparing float and double and
++ small fix to xf86cfg when converting a HorizSync or VertRefresh
++ specification string to format used internally by libxf86config.
++ Adds dvorak keyboard and fixes Ukranian in rules/xfree86.lst.
++ Fix problems in the xkb interface of xf86cfg and fix autorepeat with
++ MouseKeys, based on patches and suggestion of Stephen Montgomery-Smith
++ (Paulo César Pereira de Andrade).
++1219. Undo s3virge changes in 4.0.2 for Xv support on ViRGE chipsets since
++ they caused problems with plain ViRGE cards. Xv is still supported
++ for the ViRGE DX (#4414, 4430, Kevin Brosius).
++1218. Fix incorrect driverName fields in the cyrix, i810 and sis drivers.
++ This was causing 'XFree86 -configure' to get the driver name wrong.
++ Also fix the documentation of this field in the DESIGN doc (David Dawes).
++1217. [SECURITY] Fix temp files vulnerabilites in xman on systems with
++ mkstemp(). (Matthieu Herrb).
++1216. [SECURITY] Fix temp vulnerabilities in Xaw/MultiSrc.c using the technique
++ in patch #4279 (Branden Robinson). Fix temp file vulnerability in
++ gccmakedep based on report from Alan Cox. Fix temp file vulnerability
++ in Imake.rules, InstallManPageAliases (Matthieu Herrb).
++1215. Fix Neomagic 2200 screen corruption (Egbert Eich).
++1214. Add an imake control for determining when xload should be installed
++ set-gid (David Dawes).
++1213. Add some imake controls for installing Xkb and app-defaults files
++ in the traditional location rather than under /etc/X11 (Red Hat does
++ that) (David Dawes).
++1212. Misc bindist updates.
++
+ XFree86 4.0.2 (18 December 2000)
+ 1211. Fix a problem introduced recently when using the "ps/2" protocol for
+ mice on FreeBSD (David Dawes).
+@@ -12114,4 +12162,4 @@
+ XFree86 3.0 (26 April 1994)
+
+
+-$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.1485 2000/12/18 15:55:33 dawes Exp $
++$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.1485.2.15 2001/02/15 16:01:33 martin Exp $
+Index: programs/Xserver/hw/xfree86/common/xf86Bus.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v
+retrieving revision 1.56
+retrieving revision 1.56.2.1
+diff -U3 -r1.56 -r1.56.2.1
+--- programs/Xserver/hw/xfree86/common/xf86Bus.c 2000/12/06 15:35:07 1.56
++++ programs/Xserver/hw/xfree86/common/xf86Bus.c 2001/02/10 10:23:53 1.56.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.56 2000/12/06 15:35:07 eich Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.56.2.1 2001/02/10 10:23:53 alanh Exp $ */
+ /*
+ * Copyright (c) 1997-1999 by The XFree86 Project, Inc.
+ */
+@@ -443,7 +443,8 @@
+ pEnt->chipset = xf86Entities[entityIndex]->chipset;
+ pEnt->resources = xf86Entities[entityIndex]->resources;
+ pEnt->driver = xf86Entities[entityIndex]->driver;
+- if (xf86Entities[entityIndex]->devices[0]) {
++ if ( (xf86Entities[entityIndex]->devices) &&
++ (xf86Entities[entityIndex]->devices[0]) ) {
+ for (i = 0; i < xf86Entities[entityIndex]->numInstances; i++)
+ if (xf86Entities[entityIndex]->devices[i]->screen == 0)
+ break;
+@@ -469,7 +470,8 @@
+ int i;
+
+ /* We might not use AddDevtoEntity */
+- if (!xf86Entities[entityIndex]->devices[0])
++ if ( (!xf86Entities[entityIndex]->devices) ||
++ (!xf86Entities[entityIndex]->devices[0]) )
+ return NULL;
+
+ if (entityIndex >= xf86NumEntities ||
+Index: programs/Xserver/hw/xfree86/common/xf86Configure.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v
+retrieving revision 3.49
+retrieving revision 3.49.2.1
+diff -U3 -r3.49 -r3.49.2.1
+--- programs/Xserver/hw/xfree86/common/xf86Configure.c 2000/12/12 18:23:50 3.49
++++ programs/Xserver/hw/xfree86/common/xf86Configure.c 2001/02/11 18:03:48 3.49.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.49 2000/12/12 18:23:50 tsi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.49.2.1 2001/02/11 18:03:48 herrb Exp $ */
+ /*
+ * Copyright 2000 by Alan Hourihane, Sychdyn, North Wales.
+ *
+@@ -286,6 +286,14 @@
+ path[len] = '\0';
+ if (strstr(path, "psaux") != NULL)
+ DFLT_MOUSE_PROTO = "PS/2";
++ }
++#endif
++#ifdef WSCONS_SUPPORT
++ fd = open("/dev/wsmouse0", 0);
++ if (fd > 0) {
++ DFLT_MOUSE_DEV = "/dev/wsmouse0";
++ DFLT_MOUSE_PROTO = "wsmouse";
++ close(fd);
+ }
+ #endif
+
+Index: programs/Xserver/hw/xfree86/common/xf86PciInfo.h
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v
+retrieving revision 1.83
+retrieving revision 1.83.2.1
+diff -U3 -r1.83 -r1.83.2.1
+--- programs/Xserver/hw/xfree86/common/xf86PciInfo.h 2000/12/07 21:34:20 1.83
++++ programs/Xserver/hw/xfree86/common/xf86PciInfo.h 2001/02/15 16:01:40 1.83.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.83 2000/12/07 21:34:20 mvojkovi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.83.2.1 2001/02/15 16:01:40 martin Exp $ */
+ /*
+ * PCI Probe
+ *
+@@ -231,6 +231,7 @@
+ #define PCI_CHIP_MACH64LS 0x4C53
+ #define PCI_CHIP_RAGE128MF 0x4D46
+ #define PCI_CHIP_RAGE128ML 0x4D4C
++#define PCI_CHIP_RAGE128PD 0x5044
+ #define PCI_CHIP_RAGE128PF 0x5046
+ #define PCI_CHIP_RAGE128PR 0x5052
+ #define PCI_CHIP_RADEON_QD 0x5144
+@@ -796,6 +797,7 @@
+ {PCI_CHIP_MACH64LS, "Mach64 LS",0},
+ {PCI_CHIP_RAGE128MF, "Rage 128 Mobility MF",0},
+ {PCI_CHIP_RAGE128ML, "Rage 128 Mobility ML",0},
++ {PCI_CHIP_RAGE128PD, "Rage 128 Pro PD",0},
+ {PCI_CHIP_RAGE128PF, "Rage 128 Pro PF",0},
+ {PCI_CHIP_RAGE128PR, "Rage 128 Pro PR",0},
+ {PCI_CHIP_RADEON_QD, "Radeon QD",0},
+Index: programs/Xserver/hw/xfree86/common/xf86pciBus.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v
+retrieving revision 3.28
+retrieving revision 3.28.2.1
+diff -U3 -r3.28 -r3.28.2.1
+--- programs/Xserver/hw/xfree86/common/xf86pciBus.c 2000/12/08 20:13:35 3.28
++++ programs/Xserver/hw/xfree86/common/xf86pciBus.c 2001/02/10 10:23:55 3.28.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.28 2000/12/08 20:13:35 eich Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.28.2.1 2001/02/10 10:23:55 alanh Exp $ */
+
+ /*
+ * Copyright (c) 1997-1999 by The XFree86 Project, Inc.
+@@ -2343,7 +2343,8 @@
+ p->pciBusId.func = func;
+ p->active = active;
+ p->inUse = FALSE;
+- xf86AddDevToEntity(num, dev);
++ if (dev)
++ xf86AddDevToEntity(num, dev);
+ /* Here we initialize the access structure */
+ p->access = xnfcalloc(1,sizeof(EntityAccessRec));
+ while (ppaccp && *ppaccp) {
+Index: programs/Xserver/hw/xfree86/doc/BugReport
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/doc/Attic/BugReport,v
+retrieving revision 1.3
+retrieving revision 1.3.2.1
+diff -U3 -r1.3 -r1.3.2.1
+--- programs/Xserver/hw/xfree86/doc/BugReport 2000/08/03 12:24:02 1.3
++++ programs/Xserver/hw/xfree86/doc/BugReport 2000/12/19 18:13:35 1.3.2.1
+@@ -5,7 +5,7 @@
+
+ VERSION:
+
+-4.0.1a
++4.0.2
+
+ VIDEO DRIVER:
+
+@@ -54,4 +54,4 @@
+
+
+
+-$XFree86: xc/programs/Xserver/hw/xfree86/doc/BugReport,v 1.3 2000/08/03 12:24:02 dawes Exp $
++$XFree86: xc/programs/Xserver/hw/xfree86/doc/BugReport,v 1.3.2.1 2000/12/19 18:13:35 dawes Exp $
+Index: programs/Xserver/hw/xfree86/doc/DESIGN
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/doc/DESIGN,v
+retrieving revision 1.33
+retrieving revision 1.33.2.1
+diff -U3 -r1.33 -r1.33.2.1
+--- programs/Xserver/hw/xfree86/doc/DESIGN 2000/12/04 19:47:21 1.33
++++ programs/Xserver/hw/xfree86/doc/DESIGN 2001/02/09 03:26:01 1.33.2.1
+@@ -408,12 +408,12 @@
+ points required during the early phase of InitOutput(). xf86AddDriver() adds
+ it to the global xf86DriverList[] array.
+
+-The DriverRec contains the driver's version, a short descriptive message, the
+-Identify(), Probe() and AvailableOptions() function entry points as well as a
+-pointer to the driver's module (as returned from the loader when the driver
+-was loaded) and a reference count which keeps track of how many screens are
+-using the driver. The entry driver entry points are those required prior to
+-the driver allocating and filling in its ScrnInfoRec.
++The DriverRec contains the driver canonical name, the Identify(), Probe() and
++AvailableOptions() function entry points as well as a pointer to the driver's
++module (as returned from the loader when the driver was loaded) and a refer-
++ence count which keeps track of how many screens are using the driver. The
++entry driver entry points are those required prior to the driver allocating
++and filling in its ScrnInfoRec.
+
+ For a static server, the xf86DriverList[] array is initialised at build time,
+ and the loading of modules is not done.
+@@ -5368,7 +5368,7 @@
+
+ DriverRec ZZZ = {
+ VERSION,
+- "unaccelerated driver for ZZZ Zzzzzy cards",
++ ZZZ_DRIVER_NAME,
+ ZZZIdentify,
+ ZZZProbe,
+ ZZZAvailableOptions,
+@@ -6302,7 +6302,7 @@
+ ZZZFreeRec(xf86Screens[scrnIndex]);
+ }
+
+- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.39 2000/12/04 18:49:54 dawes Exp $
++ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.39.2.1 2001/02/08 19:31:03 dawes Exp $
+
+
+-$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.33 2000/12/04 19:47:21 dawes Exp $
++$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.33.2.1 2001/02/09 03:26:01 dawes Exp $
+Index: programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -U3 -r1.39 -r1.39.2.1
+--- programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml 2000/12/04 18:49:54 1.39
++++ programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml 2001/02/08 19:31:03 1.39.2.1
+@@ -36,7 +36,7 @@
+
+
+ <ident>
+-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.39 2000/12/04 18:49:54 dawes Exp $
++$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.39.2.1 2001/02/08 19:31:03 dawes Exp $
+ </ident>
+
+
+@@ -517,8 +517,8 @@
+ &s.code;InitOutput()&e.code;. &s.code;xf86AddDriver()&e.code; adds
+ it to the global &s.code;xf86DriverList[]&e.code; array.
+
+- The &s.code;DriverRec&e.code; contains the driver's version, a short
+- descriptive message, the &s.code;Identify()&e.code;,
++ The &s.code;DriverRec&e.code; contains the driver canonical name,
++ the &s.code;Identify()&e.code;,
+ &s.code;Probe()&e.code; and &s.code;AvailableOptions()&e.code;
+ function entry points as well as a pointer
+ to the driver's module (as returned from the loader when the driver
+@@ -6336,7 +6336,7 @@
+ <code>
+ DriverRec ZZZ = {
+ VERSION,
+- "unaccelerated driver for ZZZ Zzzzzy cards",
++ ZZZ_DRIVER_NAME,
+ ZZZIdentify,
+ ZZZProbe,
+ ZZZAvailableOptions,
+Index: programs/Xserver/hw/xfree86/doc/sgml/README.sgml
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v
+retrieving revision 3.110
+retrieving revision 3.110.2.1
+diff -U3 -r3.110 -r3.110.2.1
+--- programs/Xserver/hw/xfree86/doc/sgml/README.sgml 2000/12/15 16:11:57 3.110
++++ programs/Xserver/hw/xfree86/doc/sgml/README.sgml 2001/02/09 04:25:04 3.110.2.1
+@@ -15,7 +15,7 @@
+ <date>15 December 2000
+
+ <ident>
+-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.110 2000/12/15 16:11:57 dawes Exp $
++$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.110.2.1 2001/02/09 04:25:04 dawes Exp $
+ </ident>
+
+ <abstract>
+@@ -31,8 +31,22 @@
+ <sect>What is XFree86 &relvers;?
+ <p>
+
+-XFree86 &relvers; is the third full release in the <![ %earlyrel; [new]]>
+-XFree86 4 series.
++<![ %updaterel [
++XFree86 &relvers; is the &whichupdaterel; update to &fullrelvers;,
++the &whichfullrel; full release in the <![ %earlyrel; [new]]> XFree86
++4 series.
++
++Update releases are taken from a stable/maintenance branch. They are
++designed to be installed on top of the full release that they are
++updating. They contain fixes for serious problems, most commonly
++fixes for security issues, fixes for driver bugs, and fixes that improve
++stability.
++]]>
++
++<![ %fullrel [
++XFree86 &relvers; is the &whichfullrel; full release in the <![ %earlyrel;
++[new]]> XFree86 4 series.
++]]>
+
+ <p>
+ XFree86 release 4 is a major re-design of the basic architectural
+@@ -47,9 +61,10 @@
+ The road to XFree86 release 4 began as an architectural concept in mid
+ 1997, with the serious framework being implemented in code the beginning
+ of 1998. There were several snapshots on the road to 4.0 which are now
+-part of the 4.0 base release. The &relvers; version is an upgrade to
++part of the 4.0 base release.
++<![ %fullrel [The &relvers; version is an upgrade to
+ &prevrelvers;, which include more hardware ports, code enhancements and
+-bug fixes.
++bug fixes.]]>
+
+ Release 4 also included the long-awaited integration of the DRI (Direct
+ Rendering Infrastructure). This upgrade into the code base gives
+@@ -194,114 +209,135 @@
+ <htmlurl name="Installation Document" url="Install.html">. Information about
+ obtaining the release in source form is given below.
+ ]]>
++
++<![ %updaterel; [
++The source for version &relvers; is available as a patch relative to
++&prevrelvers;.
++The patch file is <tt>&prevrelvers;-&relvers;.diff.gz</tt>.
++
++The patch
++should be applied to a clean &prevrelvers; source tree, working from
++the directory containing the <tt>xc/</tt> directory. The patch should
++be applied by running:
+
+-The source for version &relvers; is split into three tarballs:
+-<tt>X&srcvers;src-1.tgz</tt>, <tt>X&srcvers;src-2.tgz</tt>,
+-<tt>X&srcvers;src-3.tgz</tt>. The first contains everything except the
++<tscreen><verb>
++gzip -d &lt; &prevrelvers;-&relvers;.diff.gz | patch -p0 -E
++</verb></tscreen>
++
++Information about getting the source for &prevrelvers can be found in the
++README file for that version, which can be found on the
++<url name="XFree86 web site" url="http://www.xfree86.org/pub/XFree86/&prevrelvers;/README.html">.
++.
++]]>
++
++<![ %fullrel [
++The source for version &fullrelvers; is split into three tarballs:
++<tt>X&fullsrcvers;src-1.tgz</tt>, <tt>X&fullsrcvers;src-2.tgz</tt>,
++<tt>X&fullsrcvers;src-3.tgz</tt>. The first contains everything except the
+ fonts and general X11 documentation. It is sufficient for building
+ XFree86 is you already have a set of fonts. The second contains the
+ fonts and the source for the general X11 documentation. The third
+ contains the general X11 documentation in hardcopy format.
+
+ <![ %onediff; [
+-A source patch relative to version &prevrelvers; is also available.
+-The patch file is <tt>&prevrelvers;-&relvers;.diff.gz</tt>.
++A source patch relative to version &prevfullrelvers; is also available.
++The patch file is <tt>&prevfullrelvers;-&fullrelvers;.diff.gz</tt>.
+ <![ %difftar; [
+ There is also a tarball that contains some files that have components that
+-can't be included in a diff. It is <tt>&relvers;.tgz</tt>.
++can't be included in a diff. It is <tt>&fullrelvers;.tgz</tt>.
+ ]]>
+ The patch
+-should be applied to a clean &prevrelvers; source tree, working from
++should be applied to a clean &prevfullrelvers; source tree, working from
+ the directory containing the <tt>xc/</tt> directory. The patch should
+ be applied by running:
+
+ <tscreen><verb>
+-gzip -d &lt; &prevrelvers;-&relvers;.diff.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff.gz | patch -p0 -E
+ </verb></tscreen>
+ <![ %difftar; [
+ <tscreen><verb>
+-gzip -d &lt; &relvers;.tgz | tar vxf -
++gzip -d &lt; &fullrelvers;.tgz | tar vxf -
+ </verb></tscreen>
+ ]]>
+ ]]>
+
+ <![ %twodiffs; [
+-A source patch relative to version &prevrelvers; is also available.
++A source patch relative to version &prevfullrelvers; is also available.
+ Because of its size, it is split into two parts.
+-The patch files are <tt>&prevrelvers;-&relvers;.diff1.gz</tt> and
+-<tt>&prevrelvers;-&relvers;.diff2.gz</tt>.
++The patch files are <tt>&prevfullrelvers;-&fullrelvers;.diff1.gz</tt> and
++<tt>&prevfullrelvers;-&fullrelvers;.diff2.gz</tt>.
+ <![ %difftar; [
+ There is also a tarball that contains some files that have components that
+-can't be included in a diff. It is <tt>&relvers;.tgz</tt>.
++can't be included in a diff. It is <tt>&fullrelvers;.tgz</tt>.
+ ]]>
+ These patches should
+-be applied to a clean &prevrelvers; source tree, working from the directory
++be applied to a clean &prevfullrelvers; source tree, working from the directory
+ containing the <tt>xc/</tt> directory. The patches should be applied by
+ running:
+
+ <tscreen><verb>
+-gzip -d &lt; &prevrelvers;-&relvers;.diff1.gz | patch -p0 -E
+-gzip -d &lt; &prevrelvers;-&relvers;.diff2.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff1.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff2.gz | patch -p0 -E
+ </verb></tscreen>
+ <![ %difftar; [
+ <tscreen><verb>
+-gzip -d &lt; &relvers;.tgz | tar vxf -
++gzip -d &lt; &fullrelvers;.tgz | tar vxf -
+ </verb></tscreen>
+ ]]>
+ ]]>
+
+ <![ %threediffs; [
+-A source patch relative to version &prevrelvers; is also available.
++A source patch relative to version &prevfullrelvers; is also available.
+ Because of its size, it is split into three parts.
+-The patch files are <tt>&prevrelvers;-&relvers;.diff1.gz</tt>,
+-<tt>&prevrelvers;-&relvers;.diff2.gz</tt> and
+-<tt>&prevrelvers;-&relvers;.diff3.gz</tt>.
++The patch files are <tt>&prevfullrelvers;-&fullrelvers;.diff1.gz</tt>,
++<tt>&prevfullrelvers;-&fullrelvers;.diff2.gz</tt> and
++<tt>&prevfullrelvers;-&fullrelvers;.diff3.gz</tt>.
+ <![ %difftar; [
+ There is also a tarball that contains some files that have components that
+-can't be included in a diff. It is <tt>&relvers;.tgz</tt>.
++can't be included in a diff. It is <tt>&fullrelvers;.tgz</tt>.
+ ]]>
+ These patches should
+-be applied to a clean &prevrelvers; source tree, working from the directory
++be applied to a clean &prevfullrelvers; source tree, working from the directory
+ containing the <tt>xc/</tt> directory. The patches should be applied by
+ running:
+
+ <tscreen><verb>
+-gzip -d &lt; &prevrelvers;-&relvers;.diff1.gz | patch -p0 -E
+-gzip -d &lt; &prevrelvers;-&relvers;.diff2.gz | patch -p0 -E
+-gzip -d &lt; &prevrelvers;-&relvers;.diff3.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff1.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff2.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff3.gz | patch -p0 -E
+ </verb></tscreen>
+ <![ %difftar; [
+ <tscreen><verb>
+-gzip -d &lt; &relvers;.tgz | tar vxf -
++gzip -d &lt; &fullrelvers;.tgz | tar vxf -
+ </verb></tscreen>
+ ]]>
+ ]]>
+
+ <![ %fourdiffs; [
+-A source patch relative to version &prevrelvers; is also available.
++A source patch relative to version &prevfullrelvers; is also available.
+ Because of its size, it is split into four parts.
+-The patch files are <tt>&prevrelvers;-&relvers;.diff1.gz</tt>,
+-<tt>&prevrelvers;-&relvers;.diff2.gz</tt>,
+-<tt>&prevrelvers;-&relvers;.diff3.gz</tt> and
+-<tt>&prevrelvers;-&relvers;.diff4.gz</tt>.
++The patch files are <tt>&prevfullrelvers;-&fullrelvers;.diff1.gz</tt>,
++<tt>&prevfullrelvers;-&fullrelvers;.diff2.gz</tt>,
++<tt>&prevfullrelvers;-&fullrelvers;.diff3.gz</tt> and
++<tt>&prevfullrelvers;-&fullrelvers;.diff4.gz</tt>.
+ <![ %difftar; [
+ There is also a tarball that contains some files that have components that
+-can't be included in a diff. It is <tt>&relvers;.tgz</tt>.
++can't be included in a diff. It is <tt>&fullrelvers;.tgz</tt>.
+ ]]>
+ These patches should
+-be applied to a clean &prevrelvers; source tree, working from the directory
++be applied to a clean &prevfullrelvers; source tree, working from the directory
+ containing the <tt>xc/</tt> directory. The patches should be applied by
+ running:
+
+ <tscreen><verb>
+-gzip -d &lt; &prevrelvers;-&relvers;.diff1.gz | patch -p0 -E
+-gzip -d &lt; &prevrelvers;-&relvers;.diff2.gz | patch -p0 -E
+-gzip -d &lt; &prevrelvers;-&relvers;.diff3.gz | patch -p0 -E
+-gzip -d &lt; &prevrelvers;-&relvers;.diff4.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff1.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff2.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff3.gz | patch -p0 -E
++gzip -d &lt; &prevfullrelvers;-&fullrelvers;.diff4.gz | patch -p0 -E
+ </verb></tscreen>
+ <![ %difftar; [
+ <tscreen><verb>
+-gzip -d &lt; &relvers;.tgz | tar vxf -
++gzip -d &lt; &fullrelvers;.tgz | tar vxf -
+ </verb></tscreen>
+ ]]>
+ ]]>
+@@ -311,6 +347,7 @@
+
+ To format the XFree86 documentation use the latest version of our doctools
+ package available as <tt>doctools-&doctoolsvers;.tgz</tt>.
++]]> <!-- fullrel -->
+
+ <sect>Reporting Bugs
+ <p>
+Index: programs/Xserver/hw/xfree86/doc/sgml/defs.ent
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v
+retrieving revision 1.15
+retrieving revision 1.15.2.1
+diff -U3 -r1.15 -r1.15.2.1
+--- programs/Xserver/hw/xfree86/doc/sgml/defs.ent 2000/12/08 19:10:25 1.15
++++ programs/Xserver/hw/xfree86/doc/sgml/defs.ent 2001/02/09 04:25:04 1.15.2.1
+@@ -1,12 +1,19 @@
+-<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.15 2000/12/08 19:10:25 dawes Exp $ -->
++<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.15.2.1 2001/02/09 04:25:04 dawes Exp $ -->
+
+ <!-- shared entity definitions for the XFree86 documentation -->
+
+ <!-- XFree86 version string -->
+-<!ENTITY relvers CDATA "4.0.2">
+-<!ENTITY prevrelvers CDATA "4.0.1">
+-<!ENTITY srcvers CDATA "402">
+-<!ENTITY prevsrcvers CDATA "401">
++<!ENTITY relvers CDATA "4.0.3">
++<!ENTITY prevrelvers CDATA "4.0.2">
++<!ENTITY fullrelvers CDATA "4.0.2">
++<!ENTITY prevfullrelvers CDATA "4.0.1">
++<!ENTITY srcvers CDATA "403">
++<!ENTITY prevsrcvers CDATA "402">
++<!ENTITY fullsrcvers CDATA "402">
++<!ENTITY prevfullsrcvers CDATA "401">
++<!ENTITY whichfullrel CDATA "third">
++<!ENTITY whichupdaterel CDATA "first">
++
+ <!-- Version of the most recent 3.3.x release -->
+ <!ENTITY legacyvers CDATA "3.3.6">
+
+@@ -25,4 +32,6 @@
+ <!ENTITY % firstrel 'IGNORE'>
+ <!ENTITY % earlyrel 'INCLUDE'>
+ <!ENTITY % laterrel 'INCLUDE'>
++<!ENTITY % fullrel 'IGNORE'>
++<!ENTITY % updaterel 'INCLUDE'>
+
+Index: programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v
+retrieving revision 1.13
+retrieving revision 1.13.2.1
+diff -U3 -r1.13 -r1.13.2.1
+--- programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c 2000/12/08 19:15:33 1.13
++++ programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c 2001/02/15 16:01:41 1.13.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v 1.13 2000/12/08 19:15:33 martin Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v 1.13.2.1 2001/02/15 16:01:41 martin Exp $ */
+ /*
+ * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+ * Precision Insight, Inc., Cedar Park, Texas, and
+@@ -891,6 +891,7 @@
+ case PCI_CHIP_RAGE128RG:
+ case PCI_CHIP_RAGE128RK:
+ case PCI_CHIP_RAGE128RL:
++ case PCI_CHIP_RAGE128PD:
+ case PCI_CHIP_RAGE128PF:
+ default: info->HasPanelRegs = FALSE; break;
+ }
+@@ -989,6 +990,7 @@
+ } else {
+ switch (info->Chipset) {
+ case PCI_CHIP_RAGE128LE:
++ case PCI_CHIP_RAGE128PD:
+ case PCI_CHIP_RAGE128RE:
+ case PCI_CHIP_RAGE128RK: info->IsPCI = TRUE; break;
+ case PCI_CHIP_RAGE128LF:
+Index: programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c,v
+retrieving revision 1.6
+retrieving revision 1.6.2.1
+diff -U3 -r1.6 -r1.6.2.1
+--- programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c 2000/12/13 02:45:00 1.6
++++ programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c 2001/02/15 16:01:41 1.6.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c,v 1.6 2000/12/13 02:45:00 tsi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.c,v 1.6.2.1 2001/02/15 16:01:41 martin Exp $ */
+ /*
+ * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario,
+ * Precision Insight, Inc., Cedar Park, Texas, and
+@@ -54,6 +54,7 @@
+ { PCI_CHIP_RAGE128RG, "ATI Rage 128 RG (AGP)" },
+ { PCI_CHIP_RAGE128RK, "ATI Rage 128 RK (PCI)" },
+ { PCI_CHIP_RAGE128RL, "ATI Rage 128 RL (AGP)" },
++ { PCI_CHIP_RAGE128PD, "ATI Rage 128 Pro PD (AGP)" },
+ { PCI_CHIP_RAGE128PF, "ATI Rage 128 Pro PF (AGP)" },
+ { PCI_CHIP_RAGE128LE, "ATI Rage 128 Mobility LE (PCI)" },
+ { PCI_CHIP_RAGE128LF, "ATI Rage 128 Mobility LF (AGP)" },
+@@ -68,6 +69,7 @@
+ { PCI_CHIP_RAGE128RG, PCI_CHIP_RAGE128RG, RES_SHARED_VGA },
+ { PCI_CHIP_RAGE128RK, PCI_CHIP_RAGE128RK, RES_SHARED_VGA },
+ { PCI_CHIP_RAGE128RL, PCI_CHIP_RAGE128RL, RES_SHARED_VGA },
++ { PCI_CHIP_RAGE128PD, PCI_CHIP_RAGE128PD, RES_SHARED_VGA },
+ { PCI_CHIP_RAGE128PF, PCI_CHIP_RAGE128PF, RES_SHARED_VGA },
+ { PCI_CHIP_RAGE128LE, PCI_CHIP_RAGE128LE, RES_SHARED_VGA },
+ { PCI_CHIP_RAGE128LF, PCI_CHIP_RAGE128LF, RES_SHARED_VGA },
+Index: programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v
+retrieving revision 1.14
+retrieving revision 1.14.2.1
+diff -U3 -r1.14 -r1.14.2.1
+--- programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c 2000/12/02 15:30:37 1.14
++++ programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c 2001/02/08 19:31:07 1.14.2.1
+@@ -26,7 +26,7 @@
+ * Dirk H. Hohndel (hohndel@suse.de),
+ * Portions: the GGI project & confidential CYRIX databooks.
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.14 2000/12/02 15:30:37 tsi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.14.2.1 2001/02/08 19:31:07 dawes Exp $ */
+
+ #include "fb.h"
+ #include "mibank.h"
+@@ -112,7 +112,7 @@
+
+ DriverRec CYRIX = {
+ VERSION,
+- "accelerated driver for Cyrix integrated processors",
++ CYRIX_DRIVER_NAME,
+ CYRIXIdentify,
+ CYRIXProbe,
+ CYRIXAvailableOptions,
+Index: programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v
+retrieving revision 1.39
+retrieving revision 1.39.2.1
+diff -U3 -r1.39 -r1.39.2.1
+--- programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c 2000/12/02 15:30:42 1.39
++++ programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c 2001/02/08 19:31:09 1.39.2.1
+@@ -25,7 +25,7 @@
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ **************************************************************************/
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.39 2000/12/02 15:30:42 tsi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.39.2.1 2001/02/08 19:31:09 dawes Exp $ */
+
+ /*
+ * Authors:
+@@ -92,7 +92,7 @@
+
+ DriverRec I810 = {
+ I810_VERSION,
+- "Accelerated driver for Intel i810 cards",
++ I810_DRIVER_NAME,
+ I810Identify,
+ I810Probe,
+ I810AvailableOptions,
+Index: programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c,v
+retrieving revision 1.12
+retrieving revision 1.12.2.1
+diff -U3 -r1.12 -r1.12.2.1
+--- programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c 2000/10/17 21:36:15 1.12
++++ programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c 2001/01/22 19:59:11 1.12.2.1
+@@ -22,7 +22,7 @@
+ CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ **********************************************************************/
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c,v 1.12 2000/10/17 21:36:15 mvojkovi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_2200.c,v 1.12.2.1 2001/01/22 19:59:11 dawes Exp $ */
+ /*
+ * The original Precision Insight driver for
+ * XFree86 v.3.3 has been sponsored by Red Hat.
+@@ -337,8 +337,8 @@
+ NEOACLPtr nAcl = NEOACLPTR(pScrn);
+
+ if ((dstY < srcY) || ((dstY == srcY) && (dstX < srcX))) {
+- if (((dstX < 64) && ((srcX + w) == pScrn->displayWidth)) ||
+- ((dstX == 0) && (w > (pScrn->displayWidth - 64)))) {
++ if ((((dstX < 64) && ((srcX + w) == pScrn->displayWidth)) ||
++ ((dstX == 0) && (w > (pScrn->displayWidth - 64)))) && (w > 64)) {
+
+ int srcX1 = srcX + 64;
+ int dstX1 = dstX + 64;
+@@ -368,9 +368,9 @@
+ OUTREG(NEOREG_XYEXT, (h<<16) | (w & 0xffff));
+ }
+ } else {
+- if ((((dstX + w) > (pScrn->displayWidth - 64)) && (srcX == 0))
++ if (((((dstX + w) > (pScrn->displayWidth - 64)) && (srcX == 0))
+ || (((dstX + w) == pScrn->displayWidth)
+- && (w > (pScrn->displayWidth - 64)))) {
++ && (w > (pScrn->displayWidth - 64)))) && (w > 64)) {
+ int srcX1, dstX1;
+
+ w -= 64;
+Index: programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v
+retrieving revision 1.46
+retrieving revision 1.46.2.1
+diff -U3 -r1.46 -r1.46.2.1
+--- programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c 2000/12/06 18:08:54 1.46
++++ programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c 2001/02/13 21:06:17 1.46.2.1
+@@ -22,7 +22,7 @@
+ CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ **********************************************************************/
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v 1.46 2000/12/06 18:08:54 eich Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v 1.46.2.1 2001/02/13 21:06:17 dawes Exp $ */
+
+ /*
+ * The original Precision Insight driver for
+@@ -2137,7 +2137,7 @@
+ /*
+ * This function handles restoring the generic VGA registers. */
+ vgaHWRestore(pScrn, VgaReg,
+- VGA_SR_MODE | (restoreFonts ? VGA_SR_FONTS : 0));
++ VGA_SR_MODE | VGA_SR_CMAP | (restoreFonts ? VGA_SR_FONTS : 0));
+
+ VGAwGR(0x0E, restore->ExtCRTDispAddr);
+ VGAwGR(0x0F, restore->ExtCRTOffset);
+Index: programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v
+retrieving revision 1.18
+retrieving revision 1.18.2.1
+diff -U3 -r1.18 -r1.18.2.1
+--- programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES 2000/11/28 20:59:17 1.18
++++ programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES 2001/02/09 03:29:29 1.18.2.1
+@@ -1,7 +1,7 @@
+ S3 ViRGE 4.0 devel notes
+
+ rev:
+-27 Nov 2000 KJB
++3 Jan 2001 KJB
+
+
+ Function Implemented
+@@ -23,6 +23,11 @@
+
+ Status
+ ------
++1/03/01 KJB
++Ver 1.6.0
++Revert ViRGE to pre-Xv changes. ViRGE DX still supports Xv, but changes
++added for Xv and ViRGE caused problems with normal display.
++
+ 11/27/00 KJB
+ Ver 1.5.0
+ Clean up, bump version for 4.0.2 submission.
+@@ -259,4 +264,4 @@
+
+
+
+-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v 1.18 2000/11/28 20:59:17 dawes Exp $
++$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/TODO_NOTES,v 1.18.2.1 2001/02/09 03:29:29 dawes Exp $
+Index: programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c,v
+retrieving revision 1.70
+retrieving revision 1.70.2.1
+diff -U3 -r1.70 -r1.70.2.1
+--- programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c 2000/12/14 00:55:25 1.70
++++ programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c 2001/02/09 03:29:30 1.70.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c,v 1.70 2000/12/14 00:55:25 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c,v 1.70.2.1 2001/02/09 03:29:30 dawes Exp $ */
+
+ /*
+ Copyright (C) 1994-1999 The XFree86 Project, Inc. All Rights Reserved.
+@@ -116,9 +116,9 @@
+
+ #define S3VIRGE_NAME "S3VIRGE"
+ #define S3VIRGE_DRIVER_NAME "s3virge"
+-#define S3VIRGE_VERSION_NAME "1.5.0"
++#define S3VIRGE_VERSION_NAME "1.6.0"
+ #define S3VIRGE_VERSION_MAJOR 1
+-#define S3VIRGE_VERSION_MINOR 5
++#define S3VIRGE_VERSION_MINOR 6
+ #define S3VIRGE_PATCHLEVEL 0
+ #define S3VIRGE_DRIVER_VERSION ((S3VIRGE_VERSION_MAJOR << 24) | \
+ (S3VIRGE_VERSION_MINOR << 16) | \
+@@ -3073,7 +3073,7 @@
+ S3VCommonCalcClock(dclk, 1, 1, 31, 0, 4,
+ 230000, 460000, &new->SR13, &new->SR12);
+ } /* end TRIO_3D if() */
+- else { /* Is this correct for DX/GX as well? */
++ else if(ps3v->Chipset == S3_ViRGE_DXGX) {
+ if (pScrn->bitsPerPixel == 8) {
+ if(dclk > 80000) { /* We need pixmux */
+ new->CR67 = 0x10;
+@@ -3110,7 +3110,39 @@
+ }
+ S3VCommonCalcClock(dclk, 1, 1, 31, 0, 3,
+ 135000, 270000, &new->SR13, &new->SR12);
+- }
++ } /* end DXGX if() */
++ else { /* Everything else ... (only ViRGE) */
++ if (pScrn->bitsPerPixel == 8) {
++ if(dclk > 80000) { /* We need pixmux */
++ new->CR67 = 0x10;
++ new->SR15 |= 0x10; /* Set DCLK/2 bit */
++ new->SR18 = 0x80; /* Enable pixmux */
++ }
++ }
++ else if ((pScrn->bitsPerPixel == 16) && (pScrn->weight.green == 5)) {
++ new->CR67 = 0x30; /* 15bpp */
++ }
++ else if (pScrn->bitsPerPixel == 16) {
++ new->CR67 = 0x50;
++ }
++ else if (pScrn->bitsPerPixel == 24) {
++ new->CR67 = 0xd0 | 0x0c;
++ /* Flag STREAMS proc. required */
++ ps3v->NeedSTREAMS = TRUE;
++ S3VInitSTREAMS(pScrn, new->STREAMS, mode);
++ new->MMPR0 = 0xc000; /* Adjust FIFO slots */
++ }
++ else if (pScrn->bitsPerPixel == 32) {
++ new->CR67 = 0xd0 | 0x0c;
++ /* Flag STREAMS proc. required */
++ ps3v->NeedSTREAMS = TRUE;
++ S3VInitSTREAMS(pScrn, new->STREAMS, mode);
++ new->MMPR0 = 0x10000; /* Still more FIFO slots */
++ }
++ S3VCommonCalcClock(dclk, 1, 1, 31, 0, 3,
++ 135000, 270000, &new->SR13, &new->SR12);
++ } /* end great big if()... */
++
+
+ /* Now adjust the value of the FIFO based upon options specified */
+ if( ps3v->fifo_moderate ) {
+Index: programs/Xserver/hw/xfree86/drivers/s3virge/s3v_xv.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_xv.c,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -U3 -r1.2 -r1.2.2.1
+--- programs/Xserver/hw/xfree86/drivers/s3virge/s3v_xv.c 2000/11/28 20:59:18 1.2
++++ programs/Xserver/hw/xfree86/drivers/s3virge/s3v_xv.c 2001/02/09 03:29:31 1.2.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_xv.c,v 1.2 2000/11/28 20:59:18 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_xv.c,v 1.2.2.1 2001/02/09 03:29:31 dawes Exp $ */
+ /*
+ Copyright (C) 2000 The XFree86 Project, Inc. All Rights Reserved.
+
+@@ -106,9 +106,9 @@
+ (pScrn->bitsPerPixel == 16)
+ )
+ &&
+- ((ps3v->Chipset == S3_ViRGE_DXGX) ||
++ ((ps3v->Chipset == S3_ViRGE_DXGX) /* || */
+ /* S3_ViRGE_GX2_SERIES(ps3v->Chipset) || */
+- (ps3v->Chipset == S3_ViRGE)
++ /* (ps3v->Chipset == S3_ViRGE) */
+ )
+ && !ps3v->NoAccel
+ )
+Index: programs/Xserver/hw/xfree86/drivers/sis/init301.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/sis/init301.c,v
+retrieving revision 1.3
+retrieving revision 1.3.2.1
+diff -U3 -r1.3 -r1.3.2.1
+--- programs/Xserver/hw/xfree86/drivers/sis/init301.c 2000/12/02 01:16:16 1.3
++++ programs/Xserver/hw/xfree86/drivers/sis/init301.c 2001/02/14 19:14:22 1.3.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.c,v 1.3 2000/12/02 01:16:16 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/init301.c,v 1.3.2.1 2001/02/14 19:14:22 dawes Exp $ */
+
+ #include "xf86.h"
+ #include "xf86PciInfo.h"
+@@ -1355,7 +1355,7 @@
+ USHORT oldREFIndex,CRT1ModeNo,oldModeIDOffset;
+ long int longtemp;
+
+- USHORT LatencyFactor[48]={ 88, 80, 78, 72, 70, 00, /* 64 bit BQ=2 */
++ static USHORT LatencyFactor[48]={ 88, 80, 78, 72, 70, 00, /* 64 bit BQ=2 */
+ 00, 79, 77, 71, 69, 49, /* 64 bit BQ=1 */
+ 88, 80, 78, 72, 70, 00, /* 128 bit BQ=2 */
+ 00, 72, 70, 64, 62, 44, /* 128 bit BQ=1 */
+Index: programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v
+retrieving revision 1.55
+retrieving revision 1.55.2.1
+diff -U3 -r1.55 -r1.55.2.1
+--- programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c 2000/12/02 15:30:51 1.55
++++ programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c 2001/02/08 19:31:09 1.55.2.1
+@@ -25,7 +25,7 @@
+ * Mitani Hiroshi <hmitani@drl.mei.co.jp>
+ * David Thomas <davtom@dream.org.uk>.
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.55 2000/12/02 15:30:51 tsi Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.55.2.1 2001/02/08 19:31:09 dawes Exp $ */
+
+
+ #include "fb.h"
+@@ -117,7 +117,7 @@
+
+ DriverRec SIS = {
+ SIS_CURRENT_VERSION,
+- "accelerated driver for SiS chipsets",
++ SIS_DRIVER_NAME,
+ SISIdentify,
+ SISProbe,
+ SISAvailableOptions,
+Index: programs/Xserver/hw/xfree86/drivers/trident/trident.h
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/trident/trident.h,v
+retrieving revision 1.33
+retrieving revision 1.33.2.1
+diff -U3 -r1.33 -r1.33.2.1
+--- programs/Xserver/hw/xfree86/drivers/trident/trident.h 2000/12/08 09:05:16 1.33
++++ programs/Xserver/hw/xfree86/drivers/trident/trident.h 2001/02/10 11:22:10 1.33.2.1
+@@ -21,7 +21,7 @@
+ *
+ * Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident.h,v 1.33 2000/12/08 09:05:16 alanh Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident.h,v 1.33.2.1 2001/02/10 11:22:10 alanh Exp $ */
+
+ #ifndef _TRIDENT_H_
+ #define _TRIDENT_H_
+@@ -266,8 +266,7 @@
+ #define HAS_DST_TRANS ((pTrident->Chipset == PROVIDIA9682) || \
+ (pTrident->Chipset == PROVIDIA9685))
+
+-#define Is3Dchip ((pTrident->Chipset == CYBER9388) || \
+- (pTrident->Chipset == CYBER9397) || \
++#define Is3Dchip ((pTrident->Chipset == CYBER9397) || \
+ (pTrident->Chipset == CYBER9397DVD) || \
+ (pTrident->Chipset == CYBER9520) || \
+ (pTrident->Chipset == CYBER9525DVD) || \
+Index: programs/Xserver/hw/xfree86/drivers/trident/trident_accel.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_accel.c,v
+retrieving revision 1.19
+retrieving revision 1.19.2.1
+diff -U3 -r1.19 -r1.19.2.1
+--- programs/Xserver/hw/xfree86/drivers/trident/trident_accel.c 2000/12/07 16:48:04 1.19
++++ programs/Xserver/hw/xfree86/drivers/trident/trident_accel.c 2001/02/10 11:22:10 1.19.2.1
+@@ -23,7 +23,7 @@
+ *
+ * Trident accelerated options.
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_accel.c,v 1.19 2000/12/07 16:48:04 alanh Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_accel.c,v 1.19.2.1 2001/02/10 11:22:10 alanh Exp $ */
+
+ #include "xf86.h"
+ #include "xf86_OSproc.h"
+@@ -158,7 +158,8 @@
+ infoPtr->SubsequentScreenToScreenCopy =
+ TridentSubsequentScreenToScreenCopy;
+
+- if (!(pTrident->Chipset == PROVIDIA9685 && pScrn->bitsPerPixel > 8)) {
++ if (!((pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) && pScrn->bitsPerPixel > 8)) {
+ infoPtr->Mono8x8PatternFillFlags = NO_PLANEMASK |
+ HARDWARE_PATTERN_SCREEN_ORIGIN |
+ BIT_ORDER_IN_BYTE_MSBFIRST;
+@@ -282,7 +283,8 @@
+
+ REPLICATE(transparency_color);
+ if (transparency_color != -1) {
+- if (pTrident->Chipset == PROVIDIA9685) {
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) {
+ dst |= 1<<16;
+ } else {
+ TGUI_OPERMODE(pTrident->EngineOperation | DST_ENABLE);
+@@ -294,7 +296,8 @@
+ if ((pTrident->Chipset == PROVIDIA9682) ||
+ (pTrident->Chipset == TGUI9680))
+ dst |= FASTMODE;
+- if (pTrident->Chipset == PROVIDIA9685)
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388)
+ dst |= 1<<21;
+ }
+
+@@ -332,7 +335,8 @@
+ pTrident->BltScanDirection = 0;
+ REPLICATE(color);
+ TGUI_FMIX(XAAPatternROP[rop]);
+- if (pTrident->Chipset == PROVIDIA9685) {
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) {
+ TGUI_FPATCOL(color);
+ if (rop == GXcopy)
+ pTrident->BltScanDirection |= 1<<21;
+@@ -404,10 +408,12 @@
+ if ((pTrident->Chipset == PROVIDIA9682 ||
+ pTrident->Chipset == TGUI9680) && rop == GXcopy)
+ pTrident->BltScanDirection |= FASTMODE;
+- if (pTrident->Chipset == PROVIDIA9685 && rop == GXcopy)
++ if ((pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) && rop == GXcopy)
+ pTrident->BltScanDirection |= 1<<21;
+ REPLICATE(fg);
+- if (pTrident->Chipset == PROVIDIA9685) {
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) {
+ TGUI_FPATCOL(fg);
+ if (bg == -1) {
+ pTrident->BltScanDirection |= 1<<12;
+@@ -463,7 +469,8 @@
+ TGUI_FMIX(XAAPatternROP[rop]);
+ if ((pTrident->Chipset == PROVIDIA9682 ||
+ pTrident->Chipset == TGUI9680) && rop == GXcopy) drawflag = FASTMODE;
+- if (pTrident->Chipset == PROVIDIA9685) {
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) {
+ if (rop == GXcopy) drawflag |= 1<<21;
+ TGUI_FPATCOL(color);
+ } else {
+@@ -522,26 +529,30 @@
+ int drawflag = 0;
+
+ REPLICATE(fg);
+- if (pTrident->Chipset == PROVIDIA9685)
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388)
+ TGUI_FPATCOL(fg);
+ else
+ TGUI_FCOLOUR(fg);
+
+ if (bg == -1) {
+ drawflag |= 1<<12;
+- if (pTrident->Chipset == PROVIDIA9685)
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388)
+ TGUI_BPATCOL(~fg);
+ else
+ TGUI_BCOLOUR(~fg);
+ } else {
+ REPLICATE(bg);
+- if (pTrident->Chipset == PROVIDIA9685)
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388)
+ TGUI_BPATCOL(bg);
+ else
+ TGUI_BCOLOUR(bg);
+ }
+
+- if (pTrident->Chipset == PROVIDIA9685) {
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) {
+ drawflag |= 7<<18;
+ if (rop == GXcopy) drawflag |= 1<<21;
+ }
+@@ -584,7 +595,8 @@
+
+ REPLICATE(transparency_color);
+ if (transparency_color != -1) {
+- if (pTrident->Chipset == PROVIDIA9685) {
++ if (pTrident->Chipset == PROVIDIA9685 ||
++ pTrident->Chipset == CYBER9388) {
+ drawflag |= 1<<16;
+ } else {
+ TGUI_OPERMODE(pTrident->EngineOperation | DST_ENABLE);
+Index: programs/Xserver/hw/xfree86/drivers/trident/trident_dac.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_dac.c,v
+retrieving revision 1.37
+retrieving revision 1.37.2.1
+diff -U3 -r1.37 -r1.37.2.1
+--- programs/Xserver/hw/xfree86/drivers/trident/trident_dac.c 2000/12/14 19:29:44 1.37
++++ programs/Xserver/hw/xfree86/drivers/trident/trident_dac.c 2001/02/10 11:22:10 1.37.2.1
+@@ -21,7 +21,7 @@
+ *
+ * Author: Alan Hourihane, alanh@fairlite.demon.co.uk
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_dac.c,v 1.37 2000/12/14 19:29:44 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_dac.c,v 1.37.2.1 2001/02/10 11:22:10 alanh Exp $ */
+
+ #include "xf86.h"
+ #include "xf86_OSproc.h"
+@@ -333,7 +333,6 @@
+ case CYBER9525DVD:
+ case CYBER9397DVD:
+ case CYBER9397:
+- case CYBER9388:
+ case IMAGE975:
+ case IMAGE985:
+ if (pScrn->bitsPerPixel >= 8)
+@@ -344,9 +343,12 @@
+ pReg->tridentRegs3x4[PreEndFetch] = 0xFF;
+ /* Fall Through */
+ case PROVIDIA9685:
++ case CYBER9388:
++ case CYBER9385:
+ pReg->tridentRegs3x4[Enhancement0] = 0x40;
+ /* Fall Through */
+ case PROVIDIA9682:
++ case CYBER9382:
+ if (pTrident->UsePCIRetry)
+ pReg->tridentRegs3x4[PCIRetry] = 0xDF;
+ else
+Index: programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v
+retrieving revision 1.119
+retrieving revision 1.119.2.1
+diff -U3 -r1.119 -r1.119.2.1
+--- programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c 2000/12/08 09:05:16 1.119
++++ programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c 2001/02/10 11:22:11 1.119.2.1
+@@ -28,7 +28,7 @@
+ * Massimiliano Ghilardi, max@Linuz.sns.it, some fixes to the
+ * clockchip programming code.
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v 1.119 2000/12/08 09:05:16 alanh Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v 1.119.2.1 2001/02/10 11:22:11 alanh Exp $ */
+
+ #include "xf1bpp.h"
+ #include "xf4bpp.h"
+@@ -418,6 +418,7 @@
+ "XAACreateInfoRec",
+ "XAAHelpPatternROP",
+ "XAAHelpSolidROP",
++ "XAAFillSolidRects",
+ "XAACopyROP",
+ "XAAPatternROP",
+ "XAAInit",
+@@ -1635,9 +1636,9 @@
+ case CYBERBLADEI7:
+ pTrident->ddc1Read = Tridentddc1Read;
+ ramtype = "SDRAM";
+- pTrident->IsCyber = TRUE;
++ /* pTrident->IsCyber = TRUE; VIA MVP4 integrated Desktop version */
+ Support24bpp = TRUE;
+- chipset = "CyberBlade/i7";
++ chipset = "CyberBlade/i7/VIA MVP4";
+ pTrident->NewClockCode = TRUE;
+ pTrident->frequency = NTSC;
+ break;
+@@ -2579,13 +2580,10 @@
+ pScrn->fbOffset = 0;
+
+ #ifdef XvExtension
+- if (pTrident->Chipset >= CYBER9397)
++ if ((pTrident->Chipset >= CYBER9397) && (!pTrident->NoAccel))
+ TRIDENTInitVideo(pScreen);
+ #endif
+
+- if(pTrident->BlockHandler)
+- pScreen->BlockHandler = pTrident->BlockHandler;
+-
+ pTrident->CloseScreen = pScreen->CloseScreen;
+ pScreen->CloseScreen = TRIDENTCloseScreen;
+ pScreen->SaveScreen = TRIDENTSaveScreen;
+@@ -2744,6 +2742,9 @@
+ if (pTrident->DGAModes)
+ xfree(pTrident->DGAModes);
+ pScrn->vtSema = FALSE;
++
++ if(pTrident->BlockHandler)
++ pScreen->BlockHandler = pTrident->BlockHandler;
+
+ pScreen->CloseScreen = pTrident->CloseScreen;
+ return (*pScreen->CloseScreen)(scrnIndex, pScreen);
+Index: programs/Xserver/hw/xfree86/drivers/trident/tridenthelper.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/trident/tridenthelper.c,v
+retrieving revision 1.15
+retrieving revision 1.15.2.1
+diff -U3 -r1.15 -r1.15.2.1
+--- programs/Xserver/hw/xfree86/drivers/trident/tridenthelper.c 2000/12/14 19:29:45 1.15
++++ programs/Xserver/hw/xfree86/drivers/trident/tridenthelper.c 2001/02/10 11:22:11 1.15.2.1
+@@ -21,7 +21,7 @@
+ *
+ * Author: Alan Hourihane, alanh@fairlite.demon.co.uk
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/tridenthelper.c,v 1.15 2000/12/14 19:29:45 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/tridenthelper.c,v 1.15.2.1 2001/02/10 11:22:11 alanh Exp $ */
+
+ #include "xf86.h"
+ #include "xf86_OSproc.h"
+@@ -46,8 +46,7 @@
+ int freq, ffreq;
+ int m, n, k;
+ int p, q, r, s;
+- int startn, endn;
+- int endm, endk;
++ int endn, endm, endk, startk;
+
+ p = q = r = s = 0;
+
+@@ -55,23 +54,25 @@
+
+ if (pTrident->NewClockCode)
+ {
+- startn = 64;
+ endn = 255;
+ endm = 63;
+- endk = 3;
++ endk = 2;
++ if (clock >= 100000) startk = 0;
++ if (clock < 100000) startk = 1;
++ if (clock < 50000) startk = 2;
+ }
+ else
+ {
+- startn = 0;
+ endn = 121;
+ endm = 31;
+ endk = 1;
++ startk = 0;
+ }
+
+ freq = clock;
+
+- for (k=endk;k>=0;k--)
+- for (n=startn;n<=endn;n++)
++ for (k=startk;k<=endk;k++)
++ for (n=0;n<=endn;n++)
+ for (m=1;m<=endm;m++)
+ {
+ ffreq = ( ( ((n + 8) * pTrident->frequency) / ((m + 2) * powerup[k]) ) * 1000);
+Index: programs/Xserver/hw/xfree86/drivers/v4l/v4l.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c,v
+retrieving revision 1.19
+retrieving revision 1.19.2.1
+diff -U3 -r1.19 -r1.19.2.1
+--- programs/Xserver/hw/xfree86/drivers/v4l/v4l.c 2000/06/13 02:28:34 1.19
++++ programs/Xserver/hw/xfree86/drivers/v4l/v4l.c 2001/02/08 19:31:10 1.19.2.1
+@@ -2,7 +2,7 @@
+ * video4linux Xv Driver
+ * based on Michael Schimek's permedia 2 driver.
+ */
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c,v 1.19 2000/06/13 02:28:34 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c,v 1.19.2.1 2001/02/08 19:31:10 dawes Exp $ */
+
+ #include "videodev.h"
+ #include "xf86.h"
+@@ -37,7 +37,7 @@
+
+ DriverRec V4L = {
+ 40000,
+- "Xv driver for video4linux",
++ "v4l",
+ V4LIdentify, /* Identify*/
+ V4LProbe, /* Probe */
+ V4LAvailableOptions,
+Index: programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -U3 -r1.2 -r1.2.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list 2000/02/22 18:24:42 1.2
++++ programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list 2000/12/20 18:57:55 1.2.2.1
+@@ -1 +1,2 @@
+-db
++db/xdm
++db/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+diff -U3 -r1.1 -r1.1.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list 2000/02/27 00:24:31 1.1
++++ programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list 2000/12/20 18:57:56 1.1.2.1
+@@ -1 +1,2 @@
+-db
++db/xdm
++db/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list,v
+retrieving revision 1.3
+retrieving revision 1.3.2.1
+diff -U3 -r1.3 -r1.3.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list 2000/12/14 21:45:12 1.3
++++ programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list 2000/12/20 18:57:57 1.3.2.1
+@@ -1 +1,2 @@
+-lib
++lib/xdm
++lib/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -U3 -r1.2 -r1.2.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list 2000/12/14 21:45:13 1.2
++++ programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list 2000/12/20 18:57:57 1.2.2.1
+@@ -1 +1,2 @@
+-lib
++lib/xdm
++lib/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -U3 -r1.2 -r1.2.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list 2000/12/14 21:45:14 1.2
++++ programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list 2000/12/20 18:57:58 1.2.2.1
+@@ -1 +1,2 @@
+-lib
++lib/xdm
++lib/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/var-list,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -U3 -r1.2 -r1.2.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/var-list 2000/12/14 21:45:14 1.2
++++ programs/Xserver/hw/xfree86/etc/bindist/Linux-mips/var-list 2000/12/20 18:57:58 1.2.2.1
+@@ -1 +1,2 @@
+-lib
++lib/xdm
++lib/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list,v
+retrieving revision 1.2
+retrieving revision 1.2.2.1
+diff -U3 -r1.2 -r1.2.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list 2000/12/14 21:45:15 1.2
++++ programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list 2000/12/20 18:57:59 1.2.2.1
+@@ -1 +1,2 @@
+-lib
++lib/xdm
++lib/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/var-list,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+diff -U3 -r1.1 -r1.1.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/var-list 2000/12/09 21:46:28 1.1
++++ programs/Xserver/hw/xfree86/etc/bindist/NetBSD-aout-ix86/var-list 2000/12/20 18:57:59 1.1.2.1
+@@ -1 +1,2 @@
+-db
++db/xdm
++db/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+diff -U3 -r1.1 -r1.1.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list 2000/02/27 01:26:50 1.1
++++ programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list 2000/12/20 18:58:00 1.1.2.1
+@@ -1 +1,2 @@
+-db
++db/xdm
++db/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+diff -U3 -r1.1 -r1.1.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list 2000/02/27 01:29:03 1.1
++++ programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list 2000/12/20 18:58:00 1.1.2.1
+@@ -1 +1,2 @@
+-db
++db/xdm
++db/xkb
+Index: programs/Xserver/hw/xfree86/etc/bindist/common/host.def
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def,v
+retrieving revision 1.8
+retrieving revision 1.8.2.1
+diff -U3 -r1.8 -r1.8.2.1
+--- programs/Xserver/hw/xfree86/etc/bindist/common/host.def 2000/12/15 21:54:37 1.8
++++ programs/Xserver/hw/xfree86/etc/bindist/common/host.def 2000/12/19 18:13:36 1.8.2.1
+@@ -6,7 +6,7 @@
+ * - XFree86 doctools package (requires groff)
+ * - nroff/troff or groff
+ *
+- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def,v 1.8 2000/12/15 21:54:37 dawes Exp $
++ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def,v 1.8.2.1 2000/12/19 18:13:36 dawes Exp $
+ */
+
+ #define HasSgmlFmt YES
+@@ -21,5 +21,5 @@
+
+ #define InstallHardcopyDocs YES
+ #define HardcopyDocDirs RX XIE XKB XPRINT
+-
++#define InstallMiscManPages YES
+
+Index: programs/Xserver/hw/xfree86/os-support/bsd/bsd_init.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_init.c,v
+retrieving revision 3.15
+retrieving revision 3.15.2.1
+diff -U3 -r3.15 -r3.15.2.1
+--- programs/Xserver/hw/xfree86/os-support/bsd/bsd_init.c 2000/11/14 21:59:24 3.15
++++ programs/Xserver/hw/xfree86/os-support/bsd/bsd_init.c 2001/02/11 18:03:48 3.15.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_init.c,v 3.15 2000/11/14 21:59:24 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_init.c,v 3.15.2.1 2001/02/11 18:03:48 herrb Exp $ */
+ /*
+ * Copyright 1992 by Rich Murphey <Rich@Rice.edu>
+ * Copyright 1993 by David Wexelblat <dwex@goblin.org>
+@@ -66,7 +66,7 @@
+ #define PCVT_CONSOLE_MODE O_RDWR|O_NDELAY
+ #endif
+
+-#ifdef WSCONS_SUPPORT
++#if defined(WSCONS_SUPPORT) && defined(__NetBSD__)
+ /* NetBSD's new console driver */
+ #define WSCONS_PCVT_COMPAT_CONSOLE_DEV "/dev/ttyE0"
+ #endif
+@@ -485,7 +485,7 @@
+ #endif
+
+ fd = open(PCVT_CONSOLE_DEV, PCVT_CONSOLE_MODE, 0);
+-#ifdef WSCONS_SUPPORT
++#ifdef WSCONS_PCVT_COMPAT_CONSOLE_DEV
+ if (fd < 0)
+ {
+ fd = open(WSCONS_PCVT_COMPAT_CONSOLE_DEV, PCVT_CONSOLE_MODE, 0);
+Index: programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c,v
+retrieving revision 1.17
+retrieving revision 1.17.2.1
+diff -U3 -r1.17 -r1.17.2.1
+--- programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c 2000/12/18 15:52:25 1.17
++++ programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c 2001/02/11 18:03:48 1.17.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c,v 1.17 2000/12/18 15:52:25 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c,v 1.17.2.1 2001/02/11 18:03:48 herrb Exp $ */
+
+ /*
+ * Copyright 1999 by The XFree86 Project, Inc.
+@@ -598,6 +598,23 @@
+ }
+ #endif /* USBMOUSE */
+
++static Bool
++bsdMousePreInit(InputInfoPtr pInfo, const char *protocol, int flags)
++{
++ /* The protocol is guaranteed to be one of the internalNames[] */
++#ifdef WSCONS_SUPPORT
++ if (xf86NameCmp(protocol, "WSMouse") == 0) {
++ return wsconsPreInit(pInfo, protocol, flags);
++ }
++#endif
++#ifdef USBMOUSE_SUPPORT
++ if (xf86NameCmp(protocol, "usb") == 0) {
++ return usbPreInit(pInfo, protocol, flags);
++ }
++#endif
++ return TRUE;
++}
++
+ OSMouseInfoPtr
+ xf86OSMouseInit(int flags)
+ {
+@@ -615,13 +632,7 @@
+ p->SetPS2Res = SetSysMouseRes;
+ p->SetBMRes = SetSysMouseRes;
+ p->SetMiscRes = SetSysMouseRes;
+-#endif
+- /* XXX This assumes that WSCONS and USB are mutually exclusive. */
+-#if defined(WSCONS_SUPPORT)
+- p->PreInit = wsconsPreInit;
+-#endif
+-#if defined(USBMOUSE_SUPPORT)
+- p->PreInit = usbPreInit;
+ #endif
++ p->PreInit = bsdMousePreInit;
+ return p;
+ }
+Index: programs/Xserver/hw/xfree86/parser/Monitor.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/parser/Monitor.c,v
+retrieving revision 1.18
+retrieving revision 1.18.2.1
+diff -U3 -r1.18 -r1.18.2.1
+--- programs/Xserver/hw/xfree86/parser/Monitor.c 2000/12/05 19:06:53 1.18
++++ programs/Xserver/hw/xfree86/parser/Monitor.c 2001/02/09 20:45:11 1.18.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Monitor.c,v 1.18 2000/12/05 19:06:53 paulo Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Monitor.c,v 1.18.2.1 2001/02/09 20:45:11 paulo Exp $ */
+ /*
+ *
+ * Copyright (c) 1997 Metro Link Incorporated
+@@ -434,7 +434,7 @@
+ break;
+ case DASH:
+ if (xf86getToken (NULL) != NUMBER ||
+- val.realnum < ptr->mon_hsync[ptr->mon_n_hsync].lo)
++ (float)val.realnum < ptr->mon_hsync[ptr->mon_n_hsync].lo)
+ Error (HORIZSYNC_MSG, NULL);
+ ptr->mon_hsync[ptr->mon_n_hsync].hi = val.realnum;
+ break;
+@@ -468,7 +468,7 @@
+ break;
+ case DASH:
+ if (xf86getToken (NULL) != NUMBER ||
+- val.realnum < ptr->mon_vrefresh[ptr->mon_n_vrefresh].lo)
++ (float)val.realnum < ptr->mon_vrefresh[ptr->mon_n_vrefresh].lo)
+ Error (VERTREFRESH_MSG, NULL);
+ ptr->mon_vrefresh[ptr->mon_n_vrefresh].hi = val.realnum;
+ break;
+Index: programs/Xserver/hw/xfree86/vgahw/vgaHW.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c,v
+retrieving revision 1.42
+retrieving revision 1.42.2.1
+diff -U3 -r1.42 -r1.42.2.1
+--- programs/Xserver/hw/xfree86/vgahw/vgaHW.c 2000/11/14 18:20:38 1.42
++++ programs/Xserver/hw/xfree86/vgahw/vgaHW.c 2001/02/13 21:06:19 1.42.2.1
+@@ -1,4 +1,4 @@
+-/* $XFree86: xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c,v 1.42 2000/11/14 18:20:38 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c,v 1.42.2.1 2001/02/13 21:06:19 dawes Exp $ */
+
+ /*
+ *
+@@ -1117,7 +1117,7 @@
+ } else {
+ /* save the colourmap */
+ hwp->writeDacReadAddr(hwp, 0x02);
+- for (i = 3; i < 768; i++) {
++ for (i = 6; i < 768; i++) {
+ save->DAC[i] = hwp->readDacData(hwp);
+ DACDelay(hwp);
+ #ifdef DEBUG
+Index: programs/Xserver/hw/xfree86/xf86cfg/Imakefile
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/xf86cfg/Imakefile,v
+retrieving revision 1.13
+retrieving revision 1.13.2.1
+diff -U3 -r1.13 -r1.13.2.1
+--- programs/Xserver/hw/xfree86/xf86cfg/Imakefile 2000/12/14 01:21:57 1.13
++++ programs/Xserver/hw/xfree86/xf86cfg/Imakefile 2001/02/09 20:45:13 1.13.2.1
+@@ -1,4 +1,4 @@
+-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/Imakefile,v 1.13 2000/12/14 01:21:57 dawes Exp $
++XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/Imakefile,v 1.13.2.1 2001/02/09 20:45:13 paulo Exp $
+
+ XCOMM CDEBUGFLAGS=-g -Wall -ansi -pedantic
+
+@@ -96,7 +96,7 @@
+ #endif
+
+ DEFINES = -DXF86CONFIG=\"XConfigFile\" $(MODULEDEFINES) \
+- $(CURSESDEFINES)
++ $(CURSESDEFINES) -DPROJECT_ROOT=\"ProjectRoot\"
+
+ #if HasDlopen
+ DLLIB = DlLibrary
+Index: programs/Xserver/hw/xfree86/xf86cfg/XF86Cfg.ad
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/xf86cfg/XF86Cfg.ad,v
+retrieving revision 1.6
+retrieving revision 1.6.2.1
+diff -U3 -r1.6 -r1.6.2.1
+--- programs/Xserver/hw/xfree86/xf86cfg/XF86Cfg.ad 2000/11/30 20:55:16 1.6
++++ programs/Xserver/hw/xfree86/xf86cfg/XF86Cfg.ad 2001/02/09 20:45:11 1.6.2.1
+@@ -26,7 +26,7 @@
+ !!
+ !! Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
+ !!
+-!! $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/XF86Cfg.ad,v 1.6 2000/11/30 20:55:16 paulo Exp $
++!! $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/XF86Cfg.ad,v 1.6.2.1 2001/02/09 20:45:11 paulo Exp $
+ !!
+
+ *Form.background: gray85
+@@ -1338,7 +1338,7 @@
+ <tt><b>Apply changes</b></tt> button there is no way to undo your changes.</font>
+
+
+-*Expert.geometry: 800x600
++*Expert.geometry: 640x460
+ *Expert*vpane.min: 64
+ *Expert*vpane.max: 64
+ *Expert*vpane.showGrip: False
+@@ -1767,3 +1767,4 @@
+ *expert*tree*buffers.flagsL.fromVert: size
+ *expert*tree*buffers.flags.fromVert: size
+ *expert*tree*buffers.flags.fromHoriz: flagsL
++*Expert*close.label: Close
+\ No newline at end of file
+Index: programs/Xserver/hw/xfree86/xf86cfg/accessx.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/xf86cfg/accessx.c,v
+retrieving revision 1.7
+retrieving revision 1.7.2.1
+diff -U3 -r1.7 -r1.7.2.1
+--- programs/Xserver/hw/xfree86/xf86cfg/accessx.c 2000/10/20 14:59:05 1.7
++++ programs/Xserver/hw/xfree86/xf86cfg/accessx.c 2001/02/09 20:45:11 1.7.2.1
+@@ -26,7 +26,7 @@
+ *
+ * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
+ *
+- * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/accessx.c,v 1.7 2000/10/20 14:59:05 alanh Exp $
++ * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/accessx.c,v 1.7.2.1 2001/02/09 20:45:11 paulo Exp $
+ */
+
+ #include "config.h"
+@@ -179,15 +179,12 @@
+ XtNstate,
+ (xkb_info->xkb->ctrls->enabled_ctrls &
+ (XkbAccessXKeysMask | XkbStickyKeysMask |
+- XkbMouseKeysMask | XkbMouseKeysAccelMask |
+- XkbRepeatKeysMask | XkbSlowKeysMask |
+- XkbBounceKeysMask)) != 0, NULL, 0);
++ XkbSlowKeysMask | XkbBounceKeysMask)) != 0, NULL, 0);
+
+ apply = XtCreateManagedWidget("apply", commandWidgetClass, accessx, NULL, 0);
+ XtAddCallback(apply, XtNcallback, ApplyCallback, NULL);
+
+ form = XtCreateManagedWidget("Accessx", formWidgetClass, accessx, NULL, 0);
+- XtAddCallback(enable, XtNcallback, EnableCallback, (XtPointer)form);
+ timeoutToggle = XtVaCreateManagedWidget("timeoutToggle", toggleWidgetClass,
+ form, XtNstate,
+ xkb_info->xkb->ctrls->ax_timeout > 60
+@@ -450,7 +447,6 @@
+
+ XtSetArg(args[0], XtNstate, &state);
+ XtGetValues(enable, args, 1);
+- EnableCallback(enable, (XtPointer)form, (XtPointer)(long)state);
+ }
+
+ void
+@@ -471,7 +467,7 @@
+ static void
+ EnableCallback(Widget w, XtPointer user_data, XtPointer call_data)
+ {
+- XtSetSensitive(user_data, (long)call_data);
++ XtSetSensitive((Widget)user_data, (long)call_data);
+ }
+
+ /*ARGSUSED*/
+@@ -534,162 +530,148 @@
+ XtSetArg(args[0], XtNstate, &state);
+ XtGetValues(enable, args, 1);
+ if (state) {
+- xkb_info->xkb->ctrls->enabled_ctrls |= XkbAccessXKeysMask;
+ xkb_info->config.initial_ctrls |= XkbAccessXKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls |= XkbAccessXKeysMask;
++ }
++ else {
++ xkb_info->config.initial_ctrls &= ~XkbAccessXKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbAccessXKeysMask;
++ }
++
++ /* Timeout */
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(timeoutToggle, args, 1);
++ if (state)
++ xkb_info->config.ax_timeout =
++ xkb_info->xkb->ctrls->ax_timeout = timeout->value * 60;
++ else
++ xkb_info->config.ax_timeout =
++ xkb_info->xkb->ctrls->ax_timeout = 65535;
++
++ /* Enable StickyKeys */
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(sticky, args, 1);
++ if (state) {
++ xkb_info->config.initial_ctrls |= XkbStickyKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls |= XkbStickyKeysMask;
++ }
++ else {
++ xkb_info->config.initial_ctrls &= ~XkbStickyKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbStickyKeysMask;
++ }
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(stickyAuto, args, 1);
++ if (state) {
++ xkb_info->config.initial_opts &= ~XkbAX_TwoKeysMask;
++ xkb_info->config.initial_opts &= ~XkbAX_LatchToLockMask;
++ xkb_info->xkb->ctrls->ax_options &= ~XkbAX_TwoKeysMask;
++ xkb_info->xkb->ctrls->ax_options &= ~XkbAX_LatchToLockMask;
++ }
++ else {
++ xkb_info->config.initial_opts &= ~XkbAX_TwoKeysMask;
++ xkb_info->config.initial_opts |= XkbAX_LatchToLockMask;
++ xkb_info->xkb->ctrls->ax_options &= ~XkbAX_TwoKeysMask;
++ xkb_info->xkb->ctrls->ax_options |= XkbAX_LatchToLockMask;
++ }
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(stickyBeep, args, 1);
++ if (state) {
++ xkb_info->config.initial_opts |= XkbAX_StickyKeysFBMask;
++ xkb_info->xkb->ctrls->ax_options |= XkbAX_StickyKeysFBMask;
++ }
++ else {
++ xkb_info->config.initial_opts &= ~XkbAX_StickyKeysFBMask;
++ xkb_info->xkb->ctrls->ax_options &= ~XkbAX_StickyKeysFBMask;
++ }
++
++ /* Enable MouseKeys */
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(mouse, args, 1);
++ if (state) {
++ xkb_info->config.initial_ctrls |= XkbMouseKeysAccelMask;
++ xkb_info->xkb->ctrls->enabled_ctrls |= XkbMouseKeysMask |
++ XkbMouseKeysAccelMask;
++ xkb_info->config.mk_delay =
++ xkb_info->xkb->ctrls->mk_delay = mouseDelay->value * 100;
++ xkb_info->config.mk_interval =
++ xkb_info->xkb->ctrls->mk_interval = 40;
++ xkb_info->config.mk_time_to_max =
++ xkb_info->xkb->ctrls->mk_time_to_max =
++ (mouseTime->value * 1000) / xkb_info->xkb->ctrls->mk_interval;
++ xkb_info->config.mk_max_speed =
++ xkb_info->xkb->ctrls->mk_max_speed =
++ mouseSpeed->value * mouseTime->value;
++ xkb_info->config.mk_curve = xkb_info->xkb->ctrls->mk_curve = 0;
++ }
++ else {
++ xkb_info->config.initial_ctrls &= ~(XkbMouseKeysMask |
++ XkbMouseKeysAccelMask);
++ xkb_info->xkb->ctrls->enabled_ctrls &= ~(XkbMouseKeysMask |
++ XkbMouseKeysAccelMask);
++ }
++
++ /* Enable RepeatKeys */
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(repeat, args, 1);
++ if (state) {
++ xkb_info->config.initial_ctrls |= XkbRepeatKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls |= XkbRepeatKeysMask;
++ xkb_info->config.repeat_interval =
++ xkb_info->xkb->ctrls->repeat_interval = repeatRate->value * 1000;
++ xkb_info->config.repeat_delay =
++ xkb_info->xkb->ctrls->repeat_delay = repeatDelay->value * 1000;
++ }
++ else {
++ xkb_info->config.initial_ctrls &= ~XkbRepeatKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbRepeatKeysMask;
++ }
+
+- /* Timeout */
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(timeoutToggle, args, 1);
+- if (state)
+- xkb_info->config.ax_timeout =
+- xkb_info->xkb->ctrls->ax_timeout = timeout->value * 60;
+- else
+- xkb_info->config.ax_timeout =
+- xkb_info->xkb->ctrls->ax_timeout = 65535;
+-
+- /* Enable StickyKeys */
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(sticky, args, 1);
+- if (state) {
+- xkb_info->config.initial_ctrls |= XkbStickyKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls |= XkbStickyKeysMask;
+- }
+- else {
+- xkb_info->config.initial_ctrls &= ~XkbStickyKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbStickyKeysMask;
+- }
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(stickyAuto, args, 1);
+- if (state) {
+- xkb_info->config.initial_opts &= ~XkbAX_TwoKeysMask;
+- xkb_info->config.initial_opts &= ~XkbAX_LatchToLockMask;
+- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_TwoKeysMask;
+- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_LatchToLockMask;
+- }
+- else {
+- xkb_info->config.initial_opts &= ~XkbAX_TwoKeysMask;
+- xkb_info->config.initial_opts |= XkbAX_LatchToLockMask;
+- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_TwoKeysMask;
+- xkb_info->xkb->ctrls->ax_options |= XkbAX_LatchToLockMask;
+- }
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(stickyBeep, args, 1);
+- if (state) {
+- xkb_info->config.initial_opts |= XkbAX_StickyKeysFBMask;
+- xkb_info->xkb->ctrls->ax_options |= XkbAX_StickyKeysFBMask;
+- }
+- else {
+- xkb_info->config.initial_opts &= ~XkbAX_StickyKeysFBMask;
+- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_StickyKeysFBMask;
+- }
+-
+- /* Enable MouseKeys */
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(mouse, args, 1);
+- if (state) {
+- xkb_info->config.initial_ctrls |= XkbMouseKeysMask |
+- XkbMouseKeysAccelMask;
+- xkb_info->xkb->ctrls->enabled_ctrls |= XkbMouseKeysMask |
+- XkbMouseKeysAccelMask;
+- xkb_info->config.mk_delay =
+- xkb_info->xkb->ctrls->mk_delay = mouseDelay->value * 100;
+- xkb_info->config.mk_interval =
+- xkb_info->xkb->ctrls->mk_interval = 40;
+- xkb_info->config.mk_time_to_max =
+- xkb_info->xkb->ctrls->mk_time_to_max =
+- (mouseTime->value * 1000) / xkb_info->xkb->ctrls->mk_interval;
+- xkb_info->config.mk_max_speed =
+- xkb_info->xkb->ctrls->mk_max_speed =
+- mouseSpeed->value * mouseTime->value;
+- xkb_info->config.mk_curve = xkb_info->xkb->ctrls->mk_curve = 0;
+- }
+- else {
+- xkb_info->config.initial_ctrls &= ~(XkbMouseKeysMask |
+- XkbMouseKeysAccelMask);
+- xkb_info->xkb->ctrls->enabled_ctrls &= ~(XkbMouseKeysMask |
+- XkbMouseKeysAccelMask);
+- }
+-
+- /* Enable RepeatKeys */
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(repeat, args, 1);
+- if (state) {
+- xkb_info->config.initial_ctrls |= XkbRepeatKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls |= XkbRepeatKeysMask;
+- xkb_info->config.repeat_interval =
+- xkb_info->xkb->ctrls->repeat_interval = repeatRate->value * 1000;
+- xkb_info->config.repeat_delay =
+- xkb_info->xkb->ctrls->repeat_delay = repeatDelay->value * 1000;
+- }
+- else {
+- xkb_info->config.initial_ctrls &= ~XkbRepeatKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbRepeatKeysMask;
+- }
+-
+- /* Enable SlowKeys */
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(slowToggle, args, 1);
+- if (state) {
+- xkb_info->config.initial_ctrls |= XkbSlowKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls |= XkbSlowKeysMask;
+- xkb_info->config.slow_keys_delay =
+- xkb_info->xkb->ctrls->slow_keys_delay = slow->value * 1000;
+- }
+- else {
+- xkb_info->config.initial_ctrls &= ~XkbSlowKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbSlowKeysMask;
+- }
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(slowPressed, args, 1);
+- if (state) {
+- xkb_info->config.initial_opts |= XkbAX_SKPressFBMask;
+- xkb_info->xkb->ctrls->ax_options |= XkbAX_SKPressFBMask;
+- }
+- else {
+- xkb_info->config.initial_opts &= ~XkbAX_SKPressFBMask;
+- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_SKPressFBMask;
+- }
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(slowAccepted, args, 1);
+- if (state) {
+- xkb_info->config.initial_opts |= XkbAX_SKAcceptFBMask;
+- xkb_info->xkb->ctrls->ax_options |= XkbAX_SKAcceptFBMask;
+- }
+- else {
+- xkb_info->config.initial_opts &= ~XkbAX_SKAcceptFBMask;
+- xkb_info->xkb->ctrls->ax_options &= ~XkbAX_SKAcceptFBMask;
+- }
+-
+- /* Enable BounceKeys */
+- XtSetArg(args[0], XtNstate, &state);
+- XtGetValues(bounceToggle, args, 1);
+- if (state) {
+- xkb_info->config.initial_ctrls |= XkbBounceKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls |= XkbBounceKeysMask;
+- xkb_info->config.debounce_delay =
+- xkb_info->xkb->ctrls->debounce_delay = bounce->value * 1000;
+- }
+- else {
+- xkb_info->config.initial_ctrls &= ~XkbBounceKeysMask;
+- xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbBounceKeysMask;
+- }
+- }
+- else {
+- xkb_info->config.initial_ctrls &=
+- ~(XkbAccessXKeysMask | XkbStickyKeysMask | XkbMouseKeysMask |
+- XkbMouseKeysAccelMask | XkbRepeatKeysMask | XkbSlowKeysMask |
+- XkbBounceKeysMask);
+- xkb_info->config.initial_opts &=
+- ~(XkbAX_TwoKeysMask | XkbAX_LatchToLockMask | XkbAX_StickyKeysFBMask |
+- XkbAX_SKPressFBMask | XkbAX_SKAcceptFBMask);
+-
+- xkb_info->xkb->ctrls->enabled_ctrls &=
+- ~(XkbAccessXKeysMask | XkbStickyKeysMask | XkbMouseKeysMask |
+- XkbMouseKeysAccelMask | XkbRepeatKeysMask | XkbSlowKeysMask |
+- XkbBounceKeysMask);
+- xkb_info->xkb->ctrls->ax_options &=
+- ~(XkbAX_TwoKeysMask | XkbAX_LatchToLockMask | XkbAX_StickyKeysFBMask |
+- XkbAX_SKPressFBMask | XkbAX_SKAcceptFBMask);
++ /* Enable SlowKeys */
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(slowToggle, args, 1);
++ if (state) {
++ xkb_info->config.initial_ctrls |= XkbSlowKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls |= XkbSlowKeysMask;
++ xkb_info->config.slow_keys_delay =
++ xkb_info->xkb->ctrls->slow_keys_delay = slow->value * 1000;
++ }
++ else {
++ xkb_info->config.initial_ctrls &= ~XkbSlowKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbSlowKeysMask;
++ }
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(slowPressed, args, 1);
++ if (state) {
++ xkb_info->config.initial_opts |= XkbAX_SKPressFBMask;
++ xkb_info->xkb->ctrls->ax_options |= XkbAX_SKPressFBMask;
++ }
++ else {
++ xkb_info->config.initial_opts &= ~XkbAX_SKPressFBMask;
++ xkb_info->xkb->ctrls->ax_options &= ~XkbAX_SKPressFBMask;
++ }
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(slowAccepted, args, 1);
++ if (state) {
++ xkb_info->config.initial_opts |= XkbAX_SKAcceptFBMask;
++ xkb_info->xkb->ctrls->ax_options |= XkbAX_SKAcceptFBMask;
++ }
++ else {
++ xkb_info->config.initial_opts &= ~XkbAX_SKAcceptFBMask;
++ xkb_info->xkb->ctrls->ax_options &= ~XkbAX_SKAcceptFBMask;
++ }
++
++ /* Enable BounceKeys */
++ XtSetArg(args[0], XtNstate, &state);
++ XtGetValues(bounceToggle, args, 1);
++ if (state) {
++ xkb_info->config.initial_ctrls |= XkbBounceKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls |= XkbBounceKeysMask;
++ xkb_info->config.debounce_delay =
++ xkb_info->xkb->ctrls->debounce_delay = bounce->value * 1000;
++ }
++ else {
++ xkb_info->config.initial_ctrls &= ~XkbBounceKeysMask;
++ xkb_info->xkb->ctrls->enabled_ctrls &= ~XkbBounceKeysMask;
+ }
+
+ XkbSetControls(DPY, XkbAllControlsMask, xkb_info->xkb);
+Index: programs/Xserver/hw/xfree86/xf86cfg/expert.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/xf86cfg/expert.c,v
+retrieving revision 1.5
+retrieving revision 1.5.2.1
+diff -U3 -r1.5 -r1.5.2.1
+--- programs/Xserver/hw/xfree86/xf86cfg/expert.c 2000/12/02 15:31:02 1.5
++++ programs/Xserver/hw/xfree86/xf86cfg/expert.c 2001/02/09 20:45:12 1.5.2.1
+@@ -26,7 +26,7 @@
+ *
+ * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
+ *
+- * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/expert.c,v 1.5 2000/12/02 15:31:02 tsi Exp $
++ * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/expert.c,v 1.5.2.1 2001/02/09 20:45:12 paulo Exp $
+ */
+
+ #include "config.h"
+@@ -4615,6 +4615,9 @@
+ XtNtreeParent, config, NULL, 0);
+ node->next = NewNode(mainNode, flags, NULL, config, NULL);
+ node = node->next;
++ if (XF86Config->conf_flags == NULL)
++ XF86Config->conf_flags = (XF86ConfFlagsPtr)
++ XtCalloc(1, sizeof(XF86ConfFlagsRec));
+ XtAddCallback(flags, XtNcallback, OptionsCallback,
+ (XtPointer)&(XF86Config->conf_flags->flg_option_lst));
+
+Index: programs/Xserver/hw/xfree86/xf86cfg/interface.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/xf86cfg/interface.c,v
+retrieving revision 1.13
+retrieving revision 1.13.2.1
+diff -U3 -r1.13 -r1.13.2.1
+--- programs/Xserver/hw/xfree86/xf86cfg/interface.c 2000/12/09 02:23:26 1.13
++++ programs/Xserver/hw/xfree86/xf86cfg/interface.c 2001/02/09 20:45:13 1.13.2.1
+@@ -26,7 +26,7 @@
+ *
+ * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
+ *
+- * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/interface.c,v 1.13 2000/12/09 02:23:26 dawes Exp $
++ * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/interface.c,v 1.13.2.1 2001/02/09 20:45:13 paulo Exp $
+ */
+
+ #include <X11/IntrinsicP.h>
+@@ -61,7 +61,11 @@
+ #include "stubs.h"
+
+ #define randomize() srand((unsigned)time((time_t*)NULL))
++#ifdef PROJECT_ROOT
++#define DefaultXFree86Dir PROJECT_ROOT
++#else
+ #define DefaultXFree86Dir "/usr/X11R6"
++#endif
+
+ /*
+ * Prototypes
+Index: programs/Xserver/hw/xfree86/xf86cfg/monitor-cfg.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/hw/xfree86/xf86cfg/monitor-cfg.c,v
+retrieving revision 1.4
+retrieving revision 1.4.2.1
+diff -U3 -r1.4 -r1.4.2.1
+--- programs/Xserver/hw/xfree86/xf86cfg/monitor-cfg.c 2000/11/30 20:55:18 1.4
++++ programs/Xserver/hw/xfree86/xf86cfg/monitor-cfg.c 2001/02/09 20:45:13 1.4.2.1
+@@ -26,7 +26,7 @@
+ *
+ * Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
+ *
+- * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/monitor-cfg.c,v 1.4 2000/11/30 20:55:18 paulo Exp $
++ * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/monitor-cfg.c,v 1.4.2.1 2001/02/09 20:45:13 paulo Exp $
+ */
+
+ #include "xf86config.h"
+@@ -275,6 +275,7 @@
+ range[i].lo = range[i].hi = val;
+ if (++i >= nrange || *str == '\0')
+ break;
++ continue;
+ }
+ else if (*str != '-')
+ return (0);
+Index: programs/Xserver/xkb/Imakefile
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/xkb/Imakefile,v
+retrieving revision 3.14
+retrieving revision 3.14.2.1
+diff -U3 -r3.14 -r3.14.2.1
+--- programs/Xserver/xkb/Imakefile 2000/10/20 14:59:09 3.14
++++ programs/Xserver/xkb/Imakefile 2001/01/22 19:49:33 3.14.2.1
+@@ -1,5 +1,5 @@
+ XCOMM $TOG: Imakefile /main/12 1997/07/16 14:51:50 kaleb $
+-XCOMM $XFree86: xc/programs/Xserver/xkb/Imakefile,v 3.14 2000/10/20 14:59:09 alanh Exp $
++XCOMM $XFree86: xc/programs/Xserver/xkb/Imakefile,v 3.14.2.1 2001/01/22 19:49:33 dawes Exp $
+ #define SGIHyperOpt
+ #include <Server.tmpl>
+
+@@ -67,6 +67,8 @@
+ LinkSourceFile(XKBAlloc.c,$(XLIBSRC))
+ LinkSourceFile(XKBGAlloc.c,$(XLIBSRC))
+
++#if UseConfDirForXkb
+ LinkConfDirectory(xkb,.,xkb,.)
++#endif
+
+ DependTarget()
+Index: programs/Xserver/xkb/xkbActions.c
+===================================================================
+RCS file: /cvs/xc/programs/Xserver/xkb/xkbActions.c,v
+retrieving revision 3.3
+retrieving revision 3.3.2.1
+diff -U3 -r3.3 -r3.3.2.1
+--- programs/Xserver/xkb/xkbActions.c 2000/04/04 19:25:23 3.3
++++ programs/Xserver/xkb/xkbActions.c 2001/02/09 20:45:15 3.3.2.1
+@@ -24,7 +24,7 @@
+ THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+ ********************************************************/
+-/* $XFree86: xc/programs/Xserver/xkb/xkbActions.c,v 3.3 2000/04/04 19:25:23 dawes Exp $ */
++/* $XFree86: xc/programs/Xserver/xkb/xkbActions.c,v 3.3.2.1 2001/02/09 20:45:15 paulo Exp $ */
+
+ #include <stdio.h>
+ #include <math.h>
+@@ -1318,6 +1318,9 @@
+ }
+ else CoreProcessPointerEvent(xE,dev,count);
+ }
++ else if (keyEvent)
++ FixKeyState(xE,dev);
++
+ xkbi->prev_state= oldState;
+ XkbComputeDerivedState(xkbi);
+ keyc->prev_state= keyc->state;
+Index: programs/xdm/Imakefile
+===================================================================
+RCS file: /cvs/xc/programs/xdm/Imakefile,v
+retrieving revision 3.38
+retrieving revision 3.38.2.1
+diff -U3 -r3.38 -r3.38.2.1
+--- programs/xdm/Imakefile 2000/11/14 23:58:32 3.38
++++ programs/xdm/Imakefile 2001/02/10 19:06:32 3.38.2.1
+@@ -2,7 +2,7 @@
+ XCOMM
+ XCOMM
+ XCOMM
+-XCOMM $XFree86: xc/programs/xdm/Imakefile,v 3.38 2000/11/14 23:58:32 dawes Exp $
++XCOMM $XFree86: xc/programs/xdm/Imakefile,v 3.38.2.1 2001/02/10 19:06:32 herrb Exp $
+ #define IHaveSubdirs
+ #define PassCDebugFlags 'CDEBUGFLAGS=$(CDEBUGFLAGS)'
+
+@@ -22,6 +22,10 @@
+ #define LinuxShadowSuite NO
+ #endif
+
++#if HasSnprintf
++SNPRINTF_DEFINES = -DHAS_SNPRINTF
++#endif
++
+ #if HasXdmAuth
+ XDMAUTH_DEFINES = -DHASXDMAUTH
+ XDMAUTHOBJS = xdmauth.o
+@@ -195,7 +199,7 @@
+ OSMINORVERSION = OSMinorVersion
+ CONN_DEFINES = $(CONNECTION_FLAGS)
+ DEFINES = -DBINDIR=\"$(BINDIR)\" -DXDMDIR=\"$(XDMDIR)\" \
+- $(SIGNAL_DEFINES) $(CRYPT_DEFINES) \
++ $(SIGNAL_DEFINES) $(CRYPT_DEFINES) $(SNPRINTF_DEFINES) \
+ $(XDMAUTH_DEFINES) $(RPC_DEFINES) $(KRB5_DEFINES) \
+ $(PWD_DEFINES) $(PAM_DEFINES) $(CONN_DEFINES) \
+ $(GREET_DEFINES) $(FRAGILE_DEFINES) $(RANDOM_DEFINES) \
+Index: programs/xdm/xdmcp.c
+===================================================================
+RCS file: /cvs/xc/programs/xdm/xdmcp.c,v
+retrieving revision 3.11
+retrieving revision 3.11.2.1
+diff -U3 -r3.11 -r3.11.2.1
+--- programs/xdm/xdmcp.c 2000/11/27 00:10:06 3.11
++++ programs/xdm/xdmcp.c 2001/02/10 19:06:32 3.11.2.1
+@@ -22,7 +22,7 @@
+ from The Open Group.
+
+ */
+-/* $XFree86: xc/programs/xdm/xdmcp.c,v 3.11 2000/11/27 00:10:06 dawes Exp $ */
++/* $XFree86: xc/programs/xdm/xdmcp.c,v 3.11.2.1 2001/02/10 19:06:32 herrb Exp $ */
+
+ /*
+ * xdm - display manager daemon
+@@ -1128,8 +1128,15 @@
+ XdmcpHeader header;
+ ARRAY8 status;
+
++#ifdef HAS_SNPRINTF
++ snprintf (buf, sizeof(buf),
++ "Session %ld failed for display %.100s: %.100s",
++ (long) sessionID, name, reason);
++#else
++ /* XXX insecure */
+ sprintf (buf, "Session %ld failed for display %.100s: %.100s",
+ (long) sessionID, name, reason);
++#endif
+ Debug ("Send failed %ld %s\n", (long) sessionID, buf);
+ status.length = strlen (buf);
+ status.data = (CARD8Ptr) buf;
+Index: programs/xedit/c-mode.c
+===================================================================
+RCS file: /cvs/xc/programs/xedit/c-mode.c,v
+retrieving revision 1.4
+retrieving revision 1.4.2.1
+diff -U3 -r1.4 -r1.4.2.1
+--- programs/xedit/c-mode.c 1999/09/27 06:30:08 1.4
++++ programs/xedit/c-mode.c 2001/02/09 20:45:21 1.4.2.1
+@@ -27,7 +27,7 @@
+ * Author: Paulo César Pereira de Andrade
+ */
+
+-/* $XFree86: xc/programs/xedit/c-mode.c,v 1.4 1999/09/27 06:30:08 dawes Exp $ */
++/* $XFree86: xc/programs/xedit/c-mode.c,v 1.4.2.1 2001/02/09 20:45:21 paulo Exp $ */
+
+ #include "xedit.h"
+ #include <X11/IntrinsicP.h>
+@@ -383,7 +383,7 @@
+ rtmp = MAX(rtmp, pright);
+ }
+ right = anchor->position + entity->offset;
+- while (entity && ++count < 3) {
++ while (entity && count++ < 3) {
+ if (entity->property == Qerror) {
+ right = anchor->position + entity->offset + entity->length;
+ count = 0;
+Index: programs/xedit/ispell.c
+===================================================================
+RCS file: /cvs/xc/programs/xedit/ispell.c,v
+retrieving revision 1.14
+retrieving revision 1.14.2.1
+diff -U3 -r1.14 -r1.14.2.1
+--- programs/xedit/ispell.c 2000/09/26 15:57:24 1.14
++++ programs/xedit/ispell.c 2001/02/09 21:48:14 1.14.2.1
+@@ -27,7 +27,7 @@
+ * Author: Paulo César Pereira de Andrade
+ */
+
+-/* $XFree86: xc/programs/xedit/ispell.c,v 1.14 2000/09/26 15:57:24 tsi Exp $ */
++/* $XFree86: xc/programs/xedit/ispell.c,v 1.14.2.1 2001/02/09 21:48:14 paulo Exp $ */
+
+ #include "xedit.h"
+ #ifndef X_NOT_STDC_ENV
+@@ -339,14 +339,31 @@
+ static void
+ IspellSetRepeated(Bool state)
+ {
++ static char *mispelled, *repeated;
++ Arg args[1];
++
++ if (mispelled == NULL) {
++ XtSetArg(args[0], XtNlabel, &mispelled);
++ XtGetValues(ispell.mispelled, args, 1);
++ mispelled = XtNewString(mispelled);
++ }
++ if (repeated == NULL) {
++ XtSetArg(args[0], XtNlabel, &repeated);
++ XtGetValues(ispell.repeated, args, 1);
++ repeated = XtNewString(repeated);
++ }
+ XtSetSensitive(ispell.replaceAll, !state);
+ XtSetSensitive(ispell.ignoreAll, !state);
+ XtSetSensitive(ispell.add, !state);
+ XtSetSensitive(ispell.addUncap, !state);
+- if (state && XtIsManaged(ispell.mispelled))
+- XtChangeManagedSet(&ispell.mispelled, 1, NULL, NULL, &ispell.repeated, 1);
+- else if (!state && XtIsManaged(ispell.repeated))
+- XtChangeManagedSet(&ispell.repeated, 1, NULL, NULL, &ispell.mispelled, 1);
++ if (!state) {
++ XtSetArg(args[0], XtNlabel, mispelled);
++ XtSetValues(ispell.mispelled, args, 1);
++ }
++ else {
++ XtSetArg(args[0], XtNlabel, repeated);
++ XtSetValues(ispell.mispelled, args, 1);
++ }
+ }
+
+ static void
+Index: programs/xkbcomp/rules/xfree86.lst
+===================================================================
+RCS file: /cvs/xc/programs/xkbcomp/rules/xfree86.lst,v
+retrieving revision 3.20
+retrieving revision 3.20.2.1
+diff -U3 -r3.20 -r3.20.2.1
+--- programs/xkbcomp/rules/xfree86.lst 2000/12/06 20:18:08 3.20
++++ programs/xkbcomp/rules/xfree86.lst 2001/02/09 20:45:08 3.20.2.1
+@@ -4,7 +4,7 @@
+ // Rules descriptions for XFree86
+ // Copyright 1996 by Joseph Moss
+ //
+-// $XFree86: xc/programs/xkbcomp/rules/xfree86.lst,v 3.20 2000/12/06 20:18:08 eich Exp $
++// $XFree86: xc/programs/xkbcomp/rules/xfree86.lst,v 3.20.2.1 2001/02/09 20:45:08 paulo Exp $
+
+ ! model
+ pc101 Generic 101-key PC
+@@ -38,6 +38,7 @@
+ ca Canadian
+ cs Czechoslovakian
+ dk Danish
++ dvorak Dvorak
+ ee Estonian
+ fi Finnish
+ fr French
+@@ -64,7 +65,7 @@
+ es Spanish
+ se Swedish
+ th Thai
+- uk Ukrainian
++ ua Ukrainian
+ gb United Kingdom
+ vn Vietnamese
+ nec/jp PC-98xx Series
+Index: programs/xload/Imakefile
+===================================================================
+RCS file: /cvs/xc/programs/xload/Imakefile,v
+retrieving revision 1.5
+retrieving revision 1.5.2.1
+diff -U3 -r1.5 -r1.5.2.1
+--- programs/xload/Imakefile 2000/11/14 18:20:39 1.5
++++ programs/xload/Imakefile 2001/01/22 19:49:35 1.5.2.1
+@@ -1,5 +1,5 @@
+ XCOMM $XConsortium: Imakefile /main/30 1996/03/09 09:37:57 kaleb $
+-XCOMM $XFree86: xc/programs/xload/Imakefile,v 1.5 2000/11/14 18:20:39 dawes Exp $
++XCOMM $XFree86: xc/programs/xload/Imakefile,v 1.5.2.1 2001/01/22 19:49:35 dawes Exp $
+ DEPLIBS = XawClientDepLibs
+ LOCAL_LIBRARIES = XawClientLibs
+
+@@ -27,7 +27,7 @@
+ AllTarget(ProgramTargetName(xload))
+ NormalProgramTarget(xload,$(OBJS),$(DEPLIBS),$(LOCAL_LIBRARIES),NullParameter)
+
+-#if defined(OSF1Architecture) || defined(NetBSDArchitecture) || (defined(FreeBSDArchitecture) && OSMajorVersion > 1) || defined(OpenBSDArchitecture)
++#if !InstallXloadSetGID
+ InstallProgram(xload,$(BINDIR))
+ #else
+ InstallProgramWithFlags(xload,$(BINDIR),$(INSTKMEMFLAGS))
+Index: programs/xman/Imakefile
+===================================================================
+RCS file: /cvs/xc/programs/xman/Imakefile,v
+retrieving revision 1.1
+retrieving revision 1.1.2.1
+diff -U3 -r1.1 -r1.1.2.1
+--- programs/xman/Imakefile 2000/02/12 03:55:14 1.1
++++ programs/xman/Imakefile 2001/01/27 20:09:05 1.1.2.1
+@@ -1,5 +1,5 @@
+ XCOMM $XConsortium: Imakefile,v 1.22 91/09/09 16:02:18 rws Exp $
+-XCOMM $XFree86: xc/programs/xman/Imakefile,v 1.1 2000/02/12 03:55:14 dawes Exp $
++XCOMM $XFree86: xc/programs/xman/Imakefile,v 1.1.2.1 2001/01/27 20:09:05 herrb Exp $
+
+ #ifdef XmanSearchPath
+ XMANSYSPATH = XmanSearchPath
+@@ -11,10 +11,13 @@
+ #endif
+ MANPATHS = $(SYSMANPATH) $(LOCALMANPATH)
+ HELPFILE = -DHELPFILE=\"$(LIBDIR)$(PATHSEP)xman.help\"
++#if HasMkstemp
++MKSTEMP = -DHAS_MKSTEMP
++#endif
+
+ OSMAJORVERSION = OSMajorVersion
+ OSMINORVERSION = OSMinorVersion
+- DEFINES = -DOSMAJORVERSION=$(OSMAJORVERSION) -DOSMINORVERSION=$(OSMINORVERSION) $(HELPFILE) $(MANPATHS)
++ DEFINES = -DOSMAJORVERSION=$(OSMAJORVERSION) -DOSMINORVERSION=$(OSMINORVERSION) $(HELPFILE) $(MANPATHS) $(MKSTEMP)
+ DEPLIBS = XawClientDepLibs
+ LOCAL_LIBRARIES = XawClientLibs
+ SRCS = ScrollByL.c handler.c man.c buttons.c help.c \
+Index: programs/xman/misc.c
+===================================================================
+RCS file: /cvs/xc/programs/xman/misc.c,v
+retrieving revision 1.4
+retrieving revision 1.4.2.1
+diff -U3 -r1.4 -r1.4.2.1
+--- programs/xman/misc.c 2000/06/13 23:15:53 1.4
++++ programs/xman/misc.c 2001/01/27 20:09:06 1.4.2.1
+@@ -28,7 +28,7 @@
+ from the X Consortium.
+
+ */
+-/* $XFree86: xc/programs/xman/misc.c,v 1.4 2000/06/13 23:15:53 dawes Exp $ */
++/* $XFree86: xc/programs/xman/misc.c,v 1.4.2.1 2001/01/27 20:09:06 herrb Exp $ */
+
+ /*
+ * xman - X window system manual page display program.
+@@ -45,8 +45,18 @@
+ #include <X11/Shell.h>
+
+ static FILE * Uncompress(ManpageGlobals * man_globals, char * filename);
+-static Boolean UncompressNamed(ManpageGlobals * man_globals, char * filename, char * output);
+-static Boolean UncompressUnformatted(ManpageGlobals * man_globals, char * entry, char * filename);
++#ifndef HAS_MKSTEMP
++static Boolean UncompressNamed(ManpageGlobals * man_globals, char * filename,
++ char * output);
++static Boolean UncompressUnformatted(ManpageGlobals * man_globals,
++ char * entry, char * filename);
++#else
++static Boolean UncompressNamed(ManpageGlobals * man_globals, char * filename,
++ char * output, FILE ** output_fd);
++static Boolean UncompressUnformatted(ManpageGlobals * man_globals,
++ char * entry, char * filename,
++ FILE **file);
++#endif
+
+ #if defined(ISC) || defined(SCO)
+ static char *uncompress_format = NULL;
+@@ -279,14 +289,23 @@
+ char tmp_file[BUFSIZ], error_buf[BUFSIZ];
+ FILE * file;
+
++#ifndef HAS_MKSTEMP
+ if ( !UncompressNamed(man_globals, filename, tmp_file) )
+ return(NULL);
+
+ else if ((file = fopen(tmp_file, "r")) == NULL) {
+- sprintf(error_buf, "Something went wrong in retrieving the %s",
+- "uncompressed manual page try cleaning up /tmp.");
+- PopupWarning(man_globals, error_buf);
++ sprintf(error_buf, "Something went wrong in retrieving the %s",
++ "uncompressed manual page try cleaning up /tmp.");
++ PopupWarning(man_globals, error_buf);
+ }
++#else
++ if (!UncompressNamed(man_globals, filename, tmp_file, &file)) {
++ sprintf(error_buf, "Something went wrong in retrieving the %s",
++ "uncompressed manual page try cleaning up /tmp.");
++ PopupWarning(man_globals, error_buf);
++ return(NULL);
++ }
++#endif
+
+ unlink(tmp_file); /* remove name in tree, it will remain
+ until we close the fd, however. */
+@@ -302,11 +321,20 @@
+ * Returns:; TRUE if the file was found.
+ */
+
++#ifndef HAS_MKSTEMP
+ static Boolean
+ UncompressNamed(ManpageGlobals * man_globals, char * filename, char * output)
++#else
++static Boolean
++UncompressNamed(ManpageGlobals * man_globals, char * filename, char * output,
++ FILE ** output_fd)
++#endif
+ {
+ char tmp[BUFSIZ], cmdbuf[BUFSIZ], error_buf[BUFSIZ];
+ struct stat junk;
++#ifdef HAS_MKSTEMP
++ int fd;
++#endif
+
+ if (stat(filename, &junk) != 0) { /* Check for existance of the file. */
+ if (errno != ENOENT) {
+@@ -323,7 +351,16 @@
+ */
+
+ strcpy(tmp, MANTEMP); /* get a temp file. */
++#ifndef HAS_MKSTEMP
+ (void) mktemp(tmp);
++#else
++ fd = mkstemp(tmp);
++ if (fd < 0) {
++ PopupWarning(man_globals, "Error creating a temp file");
++ return FALSE;
++ }
++ *output_fd = fdopen(fd, "r");
++#endif
+ strcpy(output, tmp);
+
+ #ifdef GZIP_EXTENSION
+@@ -357,6 +394,9 @@
+ Format(ManpageGlobals * man_globals, char * entry)
+ {
+ FILE * file;
++#ifdef HAS_MKSTEMP
++ int fd;
++#endif
+ Widget manpage = man_globals->manpagewidgets.manpage;
+ char cmdbuf[BUFSIZ], tmp[BUFSIZ], filename[BUFSIZ], error_buf[BUFSIZ];
+ char path[BUFSIZ];
+@@ -364,7 +404,11 @@
+ Position x,y; /* location to pop up the
+ "would you like to save" widget. */
+
++#ifndef HAS_MKSTEMP
+ if ( !UncompressUnformatted(man_globals, entry, filename) ) {
++#else
++ if ( !UncompressUnformatted(man_globals, entry, filename, &file) ) {
++#endif
+ /* We Really could not find it, this should never happen, yea right. */
+ sprintf(error_buf, "Could not open manual page, %s", entry);
+ PopupWarning(man_globals, error_buf);
+@@ -372,7 +416,11 @@
+ return(NULL);
+ }
+
++#ifndef HAS_MKSTEMP
+ if ((file = fopen(filename, "r")) != NULL) {
++#else
++ if (file != NULL) {
++#endif
+ char line[BUFSIZ];
+
+ if (fgets(line, sizeof(line), file) != NULL) {
+@@ -408,13 +456,23 @@
+ XFlush(XtDisplay(man_globals->standby));
+
+ strcpy(tmp,MANTEMP); /* Get a temp file. */
++#ifndef HAS_MKSTEMP
+ (void) mktemp(tmp);
++#else
++ fd = mkstemp(tmp);
++ file = fdopen(fd, "r");
++#endif
+ strcpy(man_globals->tempfile, tmp);
+
+ ParseEntry(entry, path, NULL, NULL);
+
++#ifndef HAS_MKSTEMP
+ sprintf(cmdbuf,"cd %s ; %s %s %s > %s %s", path, TBL,
+ filename, FORMAT, man_globals->tempfile, "2> /dev/null");
++#else
++ sprintf(cmdbuf,"cd %s ; %s %s %s >> %s %s", path, TBL,
++ filename, FORMAT, man_globals->tempfile, "2> /dev/null");
++#endif
+
+ if(system(cmdbuf) != 0) { /* execute search. */
+ sprintf(error_buf,
+@@ -423,12 +481,14 @@
+ file = NULL;
+ }
+ else {
++#ifndef HAS_MKSTEMP
+ if ((file = fopen(man_globals->tempfile,"r")) == NULL) {
+ sprintf(error_buf, "Something went wrong in retrieving the %s",
+ "temp file, try cleaning up /tmp");
+ PopupWarning(man_globals, error_buf);
+ }
+ else {
++#endif
+
+ XtPopdown( XtParent(man_globals->standby) );
+
+@@ -460,7 +520,9 @@
+ else
+ unlink(man_globals->tempfile);
+ }
++#ifndef HAS_MKSTEMP
+ }
++#endif
+ }
+
+ if (man_globals->compress || man_globals->gzip) /* If the original
+@@ -481,7 +543,13 @@
+ */
+
+ static Boolean
+-UncompressUnformatted(ManpageGlobals * man_globals, char * entry, char * filename)
++#ifndef HAS_MKSTEMP
++UncompressUnformatted(ManpageGlobals * man_globals, char * entry,
++ char * filename)
++#else
++UncompressUnformatted(ManpageGlobals * man_globals, char * entry,
++ char * filename, FILE **file)
++#endif
+ {
+ char path[BUFSIZ], page[BUFSIZ], section[BUFSIZ], input[BUFSIZ];
+ int len_cat = strlen(CAT), len_man = strlen(MAN);
+@@ -505,7 +573,11 @@
+ * Then for compressed files in an uncompressed directory.
+ */
+ sprintf(input, "%s.%s", filename, COMPRESSION_EXTENSION);
++#ifndef HAS_MKSTEMP
+ if ( UncompressNamed(man_globals, input, filename) ) {
++#else
++ if ( UncompressNamed(man_globals, input, filename, file) ) {
++#endif
+ man_globals->compress = TRUE;
+ sprintf(man_globals->save_file, "%s/%s%s/%s.%s", path,
+ CAT, section + len_cat, page, COMPRESSION_EXTENSION);
+@@ -514,7 +586,11 @@
+ #ifdef GZIP_EXTENSION
+ else {
+ sprintf(input, "%s.%s", filename, GZIP_EXTENSION);
++#ifndef HAS_MKSTEMP
+ if ( UncompressNamed(man_globals, input, filename) ) {
++#else
++ if ( UncompressNamed(man_globals, input, filename, file) ) {
++#endif
+ man_globals->compress = TRUE;
+ man_globals->gzip = TRUE;
+ sprintf(man_globals->save_file, "%s/%s%s/%s.%s", path,
+@@ -542,7 +618,11 @@
+ */
+
+ sprintf(input, "%s.%s", filename, COMPRESSION_EXTENSION);
++#ifndef HAS_MKSTEMP
+ if ( UncompressNamed(man_globals, input, filename) ) {
++#else
++ if ( UncompressNamed(man_globals, input, filename, file) ) {
++#endif
+ man_globals->compress = TRUE;
+ sprintf(man_globals->save_file, "%s/%s%s/%s.%s", path,
+ CAT, section + len_cat, page, COMPRESSION_EXTENSION);
+@@ -551,7 +631,11 @@
+ #ifdef GZIP_EXTENSION
+ else {
+ sprintf(input, "%s.%s", filename, GZIP_EXTENSION);
++#ifndef HAS_MKSTEMP
+ if ( UncompressNamed(man_globals, input, filename) ) {
++#else
++ if ( UncompressNamed(man_globals, input, filename, file) ) {
++#endif
+ man_globals->compress = TRUE;
+ man_globals->gzip = TRUE;
+ sprintf(man_globals->save_file, "%s/%s%s/%s.%s", path,
+@@ -566,7 +650,11 @@
+
+ sprintf(input, "%s/%s%s.%s/%s", path,
+ MAN, section + len_man, COMPRESSION_EXTENSION, page);
++#ifndef HAS_MKSTEMP
+ if ( UncompressNamed(man_globals, input, filename) ) {
++#else
++ if ( UncompressNamed(man_globals, input, filename, file) ) {
++#endif
+ man_globals->compress = TRUE;
+ sprintf(man_globals->save_file, "%s/%s%s.%s/%s", path,
+ CAT, section + len_cat, COMPRESSION_EXTENSION, page);
+Index: programs/xman/search.c
+===================================================================
+RCS file: /cvs/xc/programs/xman/search.c,v
+retrieving revision 1.4
+retrieving revision 1.4.2.1
+diff -U3 -r1.4 -r1.4.2.1
+--- programs/xman/search.c 2000/06/13 23:15:53 1.4
++++ programs/xman/search.c 2001/01/27 20:09:06 1.4.2.1
+@@ -28,7 +28,7 @@
+ from the X Consortium.
+
+ */
+-/* $XFree86: xc/programs/xman/search.c,v 1.4 2000/06/13 23:15:53 dawes Exp $ */
++/* $XFree86: xc/programs/xman/search.c,v 1.4.2.1 2001/01/27 20:09:06 herrb Exp $ */
+
+
+ #include "globals.h"
+@@ -149,11 +149,14 @@
+ FILE *
+ DoSearch(ManpageGlobals * man_globals, int type)
+ {
+- char cmdbuf[BUFSIZ],*mantmp;
++ char cmdbuf[BUFSIZ],*mantmp, *manpath;
+ char tmp[BUFSIZ],path[BUFSIZ];
+ char string_buf[BUFSIZ], cmp_str[BUFSIZ], error_buf[BUFSIZ];
+ char * search_string = SearchString(man_globals);
+ FILE * file;
++#ifdef HAS_MKSTEMP
++ int fd;
++#endif
+ int count;
+ Boolean flag;
+
+@@ -171,13 +174,37 @@
+ return(NULL);
+ }
+
+- strcpy(tmp, MANTEMP); /* get a temp file. */
+- (void) mktemp(tmp);
+- mantmp = tmp;
+-
+ if (type == APROPOS) {
+ char label[BUFSIZ];
+
++ strcpy(tmp, MANTEMP); /* get a temp file. */
++#ifdef HAS_MKSTEMP
++ fd = mkstemp(tmp);
++ if (fd < 0) {
++ PopupWarning(man_globals, "Cant create temp file");
++ return NULL;
++ }
++#else
++ (void)mktemp(tmp);
++#endif
++ mantmp = tmp;
++
++ manpath=getenv("MANPATH");
++ if (manpath == NULL || streq(manpath,"") ) {
++#ifdef MANCONF
++ if (!ReadManConfig(path))
++#endif
++ {
++ strcpy(path,SYSMANPATH);
++#ifdef LOCALMANPATH
++ strcat(path,":");
++ strcat(path,LOCALMANPATH);
++#endif
++ }
++ } else {
++ strcpy(path,manpath);
++ }
++
+ sprintf(label,"Results of apropos search on: %s", search_string);
+
+ #ifdef NO_MANPATH_SUPPORT /* not quite correct, but the best I can do. */
+@@ -191,7 +218,11 @@
+ PopupWarning(man_globals, error_buf);
+ }
+
++#ifdef HAS_MKSTEMP
++ if ((file = fdopen(fd, "r")) == NULL)
++#else
+ if((file = fopen(mantmp,"r")) == NULL)
++#endif
+ PrintError("lost temp file? out of temp space?");
+
+ /*
+Index: programs/xman/vendor.h
+===================================================================
+RCS file: /cvs/xc/programs/xman/vendor.h,v
+retrieving revision 1.5
+retrieving revision 1.5.2.1
+diff -U3 -r1.5 -r1.5.2.1
+--- programs/xman/vendor.h 2000/08/01 18:53:07 1.5
++++ programs/xman/vendor.h 2001/01/27 20:09:07 1.5.2.1
+@@ -28,7 +28,7 @@
+ from the X Consortium.
+
+ */
+-/* $XFree86: xc/programs/xman/vendor.h,v 1.5 2000/08/01 18:53:07 dawes Exp $ */
++/* $XFree86: xc/programs/xman/vendor.h,v 1.5.2.1 2001/01/27 20:09:07 herrb Exp $ */
+
+ /* Vendor-specific definitions */
+
+@@ -135,10 +135,18 @@
+ # define NO_COMPRESS
+ # else
+ # define COMPRESSION_EXTENSION "Z"
+-# define UNCOMPRESS_FORMAT "zcat < %s > %s"
++# ifndef HAS_MKSTEMP
++# define UNCOMPRESS_FORMAT "zcat < %s > %s"
++# else
++# define UNCOMPRESS_FORMAT "zcat < %s >> %s"
++# endif
+ # define COMPRESS "compress"
+ # define GZIP_EXTENSION "gz"
+-# define GUNZIP_FORMAT "gzip -c -d < %s > %s"
++# ifndef HAS_MKSTEMP
++# define GUNZIP_FORMAT "gzip -c -d < %s > %s"
++# else
++# define GUNZIP_FORMAT "gzip -c -d < %s >> %s"
++# endif
+ # define GZIP_COMPRESS "gzip"
+ # endif /* ISC */
+ # endif /* UTEK */
+@@ -154,10 +162,19 @@
+ # define NO_MANPATH_SUPPORT
+ #endif
+
+-#ifdef NO_MANPATH_SUPPORT
+-# define APROPOS_FORMAT ("man -k %s | pr -h Apropos >> %s")
++#ifndef HAS_MKSTEMP
++# ifdef NO_MANPATH_SUPPORT
++# define APROPOS_FORMAT ("man -k %s | pr -h Apropos > %s")
++# else
++# define APROPOS_FORMAT ("man -M %s -k %s | pr -h Apropos > %s")
++# endif
+ #else
+-# define APROPOS_FORMAT ("man -M %s -k %s | pr -h Apropos > %s")
++/* with mkstemp the temp output file is already created */
++# ifdef NO_MANPATH_SUPPORT
++# define APROPOS_FORMAT ("man -k %s | pr -h Apropos >> %s")
++# else
++# define APROPOS_FORMAT ("man -M %s -k %s | pr -h Apropos >> %s")
++# endif
+ #endif
+
+ #ifdef ultrix
diff --git a/x11-base/xfree/xfree-4.0.2-r3.ebuild b/x11-base/xfree/xfree-4.0.2-r3.ebuild
new file mode 100644
index 000000000000..c2203aeab2b5
--- /dev/null
+++ b/x11-base/xfree/xfree-4.0.2-r3.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2000 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License, v2 or later
+# Author Achim Gottinger <achim@gentoo.org>
+# $Header: /var/cvsroot/gentoo-x86/x11-base/xfree/xfree-4.0.2-r3.ebuild,v 1.1 2001/03/09 10:26:59 achim Exp $
+
+A="X402src-1.tgz X402src-2.tgz X402src-3.tgz truetype.tar.gz gatos.tar.gz"
+S=${WORKDIR}/xc
+DESCRIPTION="Xfree - 4.0.2 with Antialias support and ATI TV and Overlay support from the LiVID project"
+SRC_PATH0="ftp://ftp.xfree.org/pub/XFree86/4.0.2/source"
+SRC_PATH1="ftp://download.sourceforge.net/pub/mirrors/XFree86/4.0.2/source"
+SRC_URI="$SRC_PATH0/X402src-1.tgz $SRC_PATH0/X402src-2.tgz $SRC_PATH0/X402src-3.tgz
+ $SRC_PATH1/X402src-1.tgz $SRC_PATH1/X402src-2.tgz $SRC_PATH1/X402src-3.tgz
+ http://keithp.com/~keithp/fonts/truetype.tar.gz
+ http://www.linuxvideo.org/devel/data/gatos.tar.gz"
+
+HOMEPAGE="http://www.xfree.org
+ http://www.linuxvideo.org/gatos/"
+
+DEPEND=">=media-libs/freetype-2.0.1
+ >=sys-libs/ncurses-5.1
+ >=sys-libs/zlib-1.1.3-r2
+ >=sys-devel/flex-2.5.4a-r2
+ sys-devel/perl"
+
+
+src_unpack () {
+
+ unpack ${A}
+ cd ${S}
+ patch -p0 < ${FILESDIR}/${PV}/${PF}.diff
+ patch -p1 < ${FILESDIR}/${PV}/glibc-2.2.2-ClockP.diff
+ cp ${FILESDIR}/${PV}/site.def config/cf/host.def
+ echo "#define DefaultGcc2i386Opt ${CFLAGS}" >> config/cf/host.def
+ ( cd ${S}/programs/Xserver/hw/xfree86/loader; patch -p0 < ${WORKDIR}/gatos-ati/ati_xv/loader.patch )
+ ( cd ${S}/programs/Xserver/hw/xfree86/i2c; patch -p1 < ${WORKDIR}/gatos-ati/ati_xv/i2c.patch )
+
+}
+
+src_compile() {
+
+ try make World
+ cd ${WORKDIR}/gatos-ati/ati_xv/ati.2
+ export PATH=${S}/config/imake/bootstrap:$PATH
+ try ${S}/config/util/xmkmf ${S}
+ try make
+}
+
+src_install() {
+
+ try make install DESTDIR=${D}
+ try make install.man DESTDIR=${D}
+ # MANPATH=/usr/X11R6/share/man
+
+ cd ${WORKDIR}/gatos-ati/ati_xv/ati.2
+
+ try make install DESTDIR=${D}
+
+ insinto /usr/X11R6/lib/X11
+ doins ${FILESDIR}/${PV}/XftConfig
+ cd ${D}/usr/X11R6/lib/X11/fonts
+ tar xzf ${DISTDIR}/truetype.tar.gz
+ preplib /usr/X11R6
+ insinto /etc/env.d
+ doins ${FILESDIR}/10xfree
+ insinto /etc/X11/xinit
+ doins ${FILESDIR}/xinitrc
+ insinto /etc/X11/xdm
+ doins ${FILESDIR}/Xsession
+
+}
+
+
+
+