[Xquartz-changes] xserver: Branch 'master' - 45 commits

Jeremy Huddleston jeremyhu at freedesktop.org
Wed Jun 16 09:29:05 PDT 2010


 Xext/panoramiX.c                           |    2 
 Xext/panoramiXprocs.c                      |  112 +++++++-------
 Xext/security.c                            |   10 -
 Xext/shape.c                               |    8 -
 Xext/shm.c                                 |   22 +-
 Xext/xf86bigfont.c                         |    2 
 Xext/xtest.c                               |    2 
 Xext/xvdisp.c                              |   52 +++---
 Xext/xvmain.c                              |    4 
 Xi/exevents.c                              |   12 -
 Xi/getprop.c                               |    2 
 Xi/listdev.c                               |    2 
 Xi/opendev.c                               |    2 
 Xi/sendexev.c                              |    2 
 Xi/stubs.c                                 |    8 -
 Xi/xiproperty.c                            |   26 +--
 config/Makefile.am                         |    2 
 config/config.c                            |    4 
 config/dbus.c                              |    9 -
 config/fdi2iclass.py                       |  202 +++++++++++++++++++++++++
 config/hal.c                               |   46 ++++-
 config/udev.c                              |   68 +++++++-
 configure.ac                               |   17 +-
 dbe/dbe.c                                  |   60 +++----
 dbe/midbe.c                                |   26 +--
 dix/colormap.c                             |  136 ++++++++---------
 dix/cursor.c                               |    4 
 dix/devices.c                              |    6 
 dix/dispatch.c                             |  106 ++++++-------
 dix/dixfonts.c                             |    6 
 dix/dixutils.c                             |   10 -
 dix/events.c                               |   18 +-
 dix/extension.c                            |    8 -
 dix/gc.c                                   |    6 
 dix/inpututils.c                           |    6 
 dix/main.c                                 |    2 
 dix/property.c                             |   32 ++--
 dix/ptrveloc.c                             |    2 
 dix/region.c                               |    8 -
 dix/resource.c                             |    2 
 dix/swapreq.c                              |    2 
 dix/window.c                               |  114 +++++++-------
 exa/exa_classic.c                          |    3 
 exa/exa_glyphs.c                           |   12 -
 fb/Makefile.am                             |    2 
 fb/fbcmap.c                                |    2 
 fb/fbpixmap.c                              |    2 
 fb/fbscreen.c                              |    4 
 glx/glxcmds.c                              |    2 
 glx/glxdriswrast.c                         |    2 
 glx/glxscreens.c                           |    6 
 glx/singlesize.c                           |    4 
 hw/dmx/dmx_glxvisuals.c                    |    8 -
 hw/dmx/dmxcmap.c                           |    2 
 hw/dmx/dmxfont.c                           |    2 
 hw/dmx/dmxinit.c                           |    2 
 hw/dmx/dmxpixmap.c                         |    2 
 hw/dmx/glxProxy/compsize.c                 |    8 -
 hw/dmx/glxProxy/glxcmds.c                  |    4 
 hw/dmx/glxProxy/glxfbconfig.c              |    6 
 hw/dmx/glxProxy/glxscreens.c               |   14 -
 hw/dmx/glxProxy/glxsingle.c                |   10 -
 hw/dmx/glxProxy/glxvisuals.c               |   22 +-
 hw/dmx/input/dmxinputinit.c                |    4 
 hw/dmx/input/usb-keyboard.c                |    2 
 hw/kdrive/ephyr/ephyr.c                    |  107 +++++--------
 hw/kdrive/ephyr/ephyrhostvideo.c           |    6 
 hw/kdrive/ephyr/hostx.c                    |   27 +--
 hw/kdrive/src/kinput.c                     |   12 -
 hw/kdrive/src/kxv.c                        |    2 
 hw/vfb/InitOutput.c                        |    2 
 hw/xfree86/common/xf86AutoConfig.c         |    2 
 hw/xfree86/common/xf86Bus.c                |   10 -
 hw/xfree86/common/xf86Config.c             |    4 
 hw/xfree86/common/xf86Configure.c          |   20 +-
 hw/xfree86/common/xf86Helper.c             |   12 -
 hw/xfree86/common/xf86Init.c               |    2 
 hw/xfree86/common/xf86Option.c             |    4 
 hw/xfree86/common/xf86Xinput.c             |  228 +++++++++++++++++++----------
 hw/xfree86/common/xf86pciBus.c             |    2 
 hw/xfree86/common/xf86sbusBus.c            |    2 
 hw/xfree86/common/xf86xv.c                 |    2 
 hw/xfree86/common/xisb.c                   |   14 -
 hw/xfree86/ddc/ddc.c                       |   16 +-
 hw/xfree86/ddc/interpret_edid.c            |    2 
 hw/xfree86/dixmods/extmod/xf86dga2.c       |   18 +-
 hw/xfree86/dixmods/extmod/xf86vmode.c      |    2 
 hw/xfree86/doc/man/xorg.conf.man.pre       |   71 +++++++--
 hw/xfree86/dri/dristruct.h                 |    3 
 hw/xfree86/dri2/dri2.c                     |   33 ++--
 hw/xfree86/dri2/dri2.h                     |    3 
 hw/xfree86/dri2/dri2ext.c                  |   20 --
 hw/xfree86/int10/Makefile.am               |    1 
 hw/xfree86/loader/loadext.c                |    8 -
 hw/xfree86/loader/loadmod.c                |   12 -
 hw/xfree86/modes/xf86Crtc.c                |   12 -
 hw/xfree86/modes/xf86Cursors.c             |    7 
 hw/xfree86/modes/xf86RandR12.c             |   26 +++
 hw/xfree86/modes/xf86RandR12.h             |    1 
 hw/xfree86/os-support/bsd/alpha_video.c    |   10 -
 hw/xfree86/os-support/bsd/arm_video.c      |   12 -
 hw/xfree86/os-support/bsd/bsd_VTsw.c       |   16 +-
 hw/xfree86/os-support/bsd/bsd_init.c       |   10 -
 hw/xfree86/os-support/bsd/i386_video.c     |   10 -
 hw/xfree86/os-support/bsd/sparc64_video.c  |    2 
 hw/xfree86/os-support/bus/Sbus.c           |    6 
 hw/xfree86/os-support/linux/lnx_agp.c      |    2 
 hw/xfree86/os-support/linux/lnx_init.c     |   12 -
 hw/xfree86/os-support/sco/VTsw_sco.c       |   12 -
 hw/xfree86/os-support/sco/sco_init.c       |   16 +-
 hw/xfree86/os-support/shared/VTsw_noop.c   |    8 -
 hw/xfree86/os-support/shared/VTsw_usl.c    |   14 -
 hw/xfree86/os-support/shared/bios_devmem.c |    8 -
 hw/xfree86/os-support/shared/bios_mmap.c   |   12 -
 hw/xfree86/os-support/shared/posix_tty.c   |   46 ++---
 hw/xfree86/os-support/solaris/sun_VTsw.c   |   20 +-
 hw/xfree86/os-support/solaris/sun_agp.c    |   12 -
 hw/xfree86/os-support/sysv/sysv_init.c     |   10 -
 hw/xfree86/os-support/sysv/sysv_video.c    |    4 
 hw/xfree86/parser/Configint.h              |    4 
 hw/xfree86/parser/Device.c                 |    4 
 hw/xfree86/parser/Flags.c                  |   18 +-
 hw/xfree86/parser/Input.c                  |   12 -
 hw/xfree86/parser/InputClass.c             |  191 +++++++++++++++++++-----
 hw/xfree86/parser/Layout.c                 |   10 -
 hw/xfree86/parser/Monitor.c                |   20 +-
 hw/xfree86/parser/Screen.c                 |   12 -
 hw/xfree86/parser/Video.c                  |    4 
 hw/xfree86/parser/read.c                   |   12 -
 hw/xfree86/parser/scan.c                   |   44 ++---
 hw/xfree86/parser/xf86Parser.h             |   20 ++
 hw/xfree86/parser/xf86tokens.h             |    4 
 hw/xfree86/ramdac/IBM.c                    |    8 -
 hw/xfree86/ramdac/TI.c                     |    2 
 hw/xfree86/ramdac/xf86RamDac.c             |    2 
 hw/xfree86/utils/gtf/gtf.c                 |    6 
 hw/xfree86/vbe/vbe.c                       |   50 +++---
 hw/xfree86/vgahw/vgaCmap.c                 |    4 
 hw/xfree86/vgahw/vgaHW.c                   |    4 
 hw/xfree86/xaa/xaaFillRect.c               |    2 
 hw/xfree86/xaa/xaaNonTEText.c              |    4 
 hw/xnest/Drawable.h                        |    2 
 hw/xnest/Events.c                          |    2 
 hw/xnest/GCOps.c                           |    4 
 hw/xnest/Pixmap.c                          |    2 
 hw/xquartz/GL/indirect.c                   |   12 -
 hw/xquartz/darwinXinput.c                  |    8 -
 hw/xquartz/mach-startup/bundle-main.c      |    2 
 hw/xquartz/quartz.c                        |    4 
 hw/xquartz/quartzCocoa.m                   |   11 -
 hw/xquartz/quartzCommon.h                  |   15 -
 hw/xquartz/xpr/dri.c                       |    2 
 hw/xwin/InitOutput.c                       |   13 -
 hw/xwin/glx/indirect.c                     |    6 
 hw/xwin/winconfig.c                        |   10 -
 include/dix-config.h.in                    |    3 
 include/dix.h                              |    4 
 include/input.h                            |    2 
 mi/miarc.c                                 |    4 
 mi/mibitblt.c                              |    2 
 mi/micmap.c                                |    2 
 mi/mifpolycon.c                            |    2 
 mi/mioverlay.c                             |    2 
 mi/mipolycon.c                             |   10 -
 mi/mipolygen.c                             |    8 -
 mi/mipolyutil.c                            |    2 
 mi/mivaltree.c                             |    2 
 mi/miwideline.c                            |    4 
 miext/damage/damage.c                      |    4 
 miext/rootless/rootlessGC.c                |    2 
 os/access.c                                |   28 +--
 os/connection.c                            |    2 
 os/io.c                                    |   12 -
 os/strcasecmp.c                            |    2 
 os/strcasestr.c                            |    2 
 os/strlcpy.c                               |    2 
 os/utils.c                                 |   14 -
 os/xdmcp.c                                 |   22 +-
 randr/rrcrtc.c                             |   33 ----
 randr/rrproperty.c                         |   28 +--
 record/record.c                            |    4 
 render/render.c                            |   30 +--
 test/input.c                               |   24 +++
 xfixes/cursor.c                            |    4 
 xfixes/region.c                            |    2 
 xfixes/saveset.c                           |    6 
 xfixes/select.c                            |    2 
 xkb/XKBGAlloc.c                            |   18 --
 xkb/XKBMAlloc.c                            |   18 --
 xkb/ddxList.c                              |    5 
 xkb/ddxLoad.c                              |    7 
 xkb/xkb.c                                  |   21 +-
 xkb/xkbAccessX.c                           |    2 
 xkb/xkbInit.c                              |    6 
 xkb/xkbLEDs.c                              |    2 
 xkb/xkbUtils.c                             |   12 -
 xkb/xkbfmisc.c                             |    2 
 197 files changed, 1811 insertions(+), 1312 deletions(-)

New commits:
commit 162f3143ff4d498c35880a1e569189c3fdf9dbae
Author: Jan Hauffa <hauffa at in.tum.de>
Date:   Wed Jun 16 09:25:41 2010 -0700

    XQuartz: Remove some dead code.
    
    Signed-off-by: Jan Hauffa <hauffa at in.tum.de>
    Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>
    Signed-off-by: Jeremy Huddleston <jeremyhu at apple.com>

diff --git a/hw/xquartz/quartz.c b/hw/xquartz/quartz.c
index 2828c57..bdaa262 100644
--- a/hw/xquartz/quartz.c
+++ b/hw/xquartz/quartz.c
@@ -67,12 +67,8 @@
 #define FAKE_RANDR 1
 
 // Shared global variables for Quartz modes
-int                     quartzEventWriteFD = -1;
 int                     quartzUseSysBeep = 0;
-int                     quartzUseAGL = 1;
-int                     quartzEnableKeyEquivalents = 1;
 int                     quartzServerVisible = FALSE;
-int                     quartzServerQuitting = FALSE;
 DevPrivateKeyRec        quartzScreenKeyRec;
 int                     aquaMenuBarHeight = 0;
 QuartzModeProcsPtr      quartzProcs = NULL;
diff --git a/hw/xquartz/quartzCocoa.m b/hw/xquartz/quartzCocoa.m
index 4501472..54c900d 100644
--- a/hw/xquartz/quartzCocoa.m
+++ b/hw/xquartz/quartzCocoa.m
@@ -44,17 +44,6 @@
 #include "darwin.h"
 
 /*
- * QuartzFSUseQDCursor
- *  Return whether the screen should use a QuickDraw cursor.
- */
-int QuartzFSUseQDCursor(
-    int depth)  // screen depth
-{
-    return TRUE;
-}
-
-
-/*
  * QuartzBlockHandler
  *  Clean out any autoreleased objects.
  */
diff --git a/hw/xquartz/quartzCommon.h b/hw/xquartz/quartzCommon.h
index c038ed0..eb761ed 100644
--- a/hw/xquartz/quartzCommon.h
+++ b/hw/xquartz/quartzCommon.h
@@ -51,20 +51,13 @@ typedef struct {
 #define QUARTZ_PRIV(pScreen) \
     ((QuartzScreenPtr)dixLookupPrivate(&pScreen->devPrivates, quartzScreenKey))
 
-// Data stored at startup for Cocoa front end
-extern int              quartzEventWriteFD;
-
 // User preferences used by Quartz modes
 extern int              quartzUseSysBeep;
-extern int              focusOnNewWindow;
-extern int              quartzUseAGL;
-extern int              quartzEnableKeyEquivalents;
 extern int              quartzFullscreenDisableHotkeys;
 extern int              quartzOptionSendsAlt;
 
 // Other shared data
 extern int              quartzServerVisible;
-extern int              quartzServerQuitting;
 extern DevPrivateKeyRec quartzScreenKeyRec;
 #define quartzScreenKey (&quartzScreenKeyRec)
 extern int              aquaMenuBarHeight;
@@ -72,14 +65,6 @@ extern int              aquaMenuBarHeight;
 // Name of GLX bundle for native OpenGL
 extern const char      *quartzOpenGLBundle;
 
-void QuartzReadPreferences(void);
-void QuartzMessageMainThread(unsigned msg, void *data, unsigned length);
-void QuartzMessageServerThread(int type, int argc, ...);
-void QuartzSetWindowMenu(int nitems, const char **items,
-                         const char *shortcuts);
-void QuartzFSCapture(void);
-void QuartzFSRelease(void);
-int  QuartzFSUseQDCursor(int depth);
 void QuartzBlockHandler(pointer blockData, OSTimePtr pTimeout, pointer pReadmask);
 void QuartzWakeupHandler(pointer blockData, int result, pointer pReadmask);
 
commit 868bf3de478fac0080d525137fc728c551c78ea6
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Jun 15 13:22:20 2010 +1000

    dix: the default axis mode is Relative, not "0".
    
    Yay for readability.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Fernando Carrijo <fcarrijo at yahoo.com.br>

diff --git a/dix/devices.c b/dix/devices.c
index bca2caf..034d5e6 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -1546,7 +1546,7 @@ InitPointerDeviceStruct(DevicePtr device, CARD8 *map, int numButtons, Atom* btn_
 
     return(InitButtonClassDeviceStruct(dev, numButtons, btn_labels, map) &&
 	   InitValuatorClassDeviceStruct(dev, numAxes, axes_labels,
-					 numMotionEvents, 0) &&
+					 numMotionEvents, Relative) &&
 	   InitPtrFeedbackClassDeviceStruct(dev, controlProc));
 }
 
commit db0d3d4e573c93a8af43499682ed788c7bd0d70d
Author: Xiaoyang Yu (Max) <max.a.yu at intel.com>
Date:   Fri Jun 4 17:17:53 2010 +0800

    Re-enabled Xnest fix for focus in + modifier bug.
    
    * See https://bugs.freedesktop.org/show_bug.cgi?id=3030
    
    Signed-off-by: Xiaoyang Yu (Max) <max.a.yu at intel.com>
    Reviewed-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    
    This takes the xnest way of working around this (see
    5904ef2ccd6056b187ca76f104c21e2d686bfc1d "xnest: restore
    xnestUpdateModifierState") and copies it to Xephyr.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/kdrive/ephyr/ephyr.c b/hw/kdrive/ephyr/ephyr.c
index e0cb956..bd7deed 100644
--- a/hw/kdrive/ephyr/ephyr.c
+++ b/hw/kdrive/ephyr/ephyr.c
@@ -38,6 +38,8 @@
 #include "ephyrglxext.h"
 #endif /* XF86DRI */
 
+#include "xkbsrv.h"
+
 extern int KdTsPhyScreen;
 #ifdef GLXEXT
 extern Bool noGlxVisualInit;
@@ -748,75 +750,55 @@ ephyrScreenFini (KdScreenInfo *screen)
 void
 ephyrUpdateModifierState(unsigned int state)
 {
-#if 0
-  DeviceIntPtr pkeydev;
-  KeyClassPtr  keyc;
-  int          i;
-  CARD8        mask;
-
-  pkeydev = inputInfo.keyboard;
 
-  if (!pkeydev)
-    return;
+  DeviceIntPtr pDev = inputInfo.keyboard;
+  KeyClassPtr keyc = pDev->key;
+  int i;
+  CARD8 mask;
+  int xkb_state;
   
-/* This is pretty broken.
- *
- * What should happen is that focus out should do as a VT switch does in
- * traditional servers: fake releases for all keys (and buttons too, come
- * to think of it) currently down.  Then, on focus in, get the state from
- * the host, and fake keypresses for everything currently down.
- *
- * So I'm leaving this broken for a little while.  Sorry, folks.
- *
- * -daniels
- */
+  if (!pDev)
+      return;
 
-  keyc = pkeydev->key;
-  
+  xkb_state = XkbStateFieldFromRec(&pDev->key->xkbInfo->state);
   state = state & 0xff;
-  
-  if (keyc->state == state)
+
+  if (xkb_state == state)
     return;
-  
-  for (i = 0, mask = 1; i < 8; i++, mask <<= 1) 
-    {
-      int key;
       
-      /* Modifier is down, but shouldn't be   */
-      if ((keyc->state & mask) && !(state & mask)) 
-	{
-	  int count = keyc->modifierKeyCount[i];
-	  
-	  for (key = 0; key < MAP_LENGTH; key++)
-	    if (keyc->xkbInfo->desc->map->modmap[key] & mask)
-	      {
-		int bit;
-		BYTE *kptr;
-		
-		kptr = &keyc->down[key >> 3];
-		bit = 1 << (key & 7);
-		
-		if (*kptr & bit && ephyrKbd &&
-                    ((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
-		  KdEnqueueKeyboardEvent(ephyrKbd, key, TRUE); /* release */
-		
-		if (--count == 0)
-		  break;
-	      }
-	}
-       
-      /* Modifier shoud be down, but isn't   */
-      if (!(keyc->state & mask) && (state & mask))
-	for (key = 0; key < MAP_LENGTH; key++)
-	  if (keyc->xkbInfo->desc->map->modmap[key] & mask)
-	    {
-              if (keyc->xkbInfo->desc->map->modmap[key] & mask && ephyrKbd &&
-                  ((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
-	          KdEnqueueKeyboardEvent(ephyrKbd, key, FALSE); /* press */
-	      break;
-	    }
+  for (i = 0, mask = 1; i < 8; i++, mask <<= 1) {
+    int key;
+
+    /* Modifier is down, but shouldn't be
+     */
+    if ((xkb_state & mask) && !(state & mask)) {
+      int count = keyc->modifierKeyCount[i];
+
+      for (key = 0; key < MAP_LENGTH; key++)
+        if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
+          int bit;
+          BYTE *kptr;
+
+          kptr = &keyc->down[key >> 3];
+          bit = 1 << (key & 7);
+
+          if (*kptr & bit)
+	        KdEnqueueKeyboardEvent (ephyrKbd, key, TRUE);
+
+          if (--count == 0)
+            break;
+        }
     }
-#endif
+
+    /* Modifier shoud be down, but isn't
+     */
+    if (!(xkb_state & mask) && (state & mask))
+      for (key = 0; key < MAP_LENGTH; key++)
+        if (keyc->xkbInfo->desc->map->modmap[key] & mask) {
+	        KdEnqueueKeyboardEvent (ephyrKbd, key, FALSE);
+          break;
+        }
+  }
 }
 
 static void
@@ -998,6 +980,7 @@ ephyrPoll(void)
           if (!ephyrKbd ||
               !((EphyrKbdPrivate *)ephyrKbd->driverPrivate)->enabled)
               continue;
+	  ephyrUpdateModifierState(ev.key_state);
 	  KdEnqueueKeyboardEvent (ephyrKbd, ev.data.key_up.scancode, TRUE);
 	  break;
 
commit 505724c5f3e4fc1475fa54f20d08c0c06fb32443
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Jun 7 16:28:34 2010 -0700

    In DRI2Connect, check to see if DRI2 has been initialized (bug 28424)
    
    This prevents DRI2GetScreen from being invoked with an uninitialized
    private key which would cause an assert failure.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Tested-by: David Ronis <David.Ronis at McGill.CA>

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 27d8e25..a8dedfa 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -957,8 +957,12 @@ Bool
 DRI2Connect(ScreenPtr pScreen, unsigned int driverType, int *fd,
 	    const char **driverName, const char **deviceName)
 {
-    DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
+    DRI2ScreenPtr ds;
+
+    if (!dixPrivateKeyRegistered(dri2ScreenPrivateKey))
+	return FALSE;
 
+    ds = DRI2GetScreen(pScreen);
     if (ds == NULL || driverType >= ds->numDrivers ||
 	    !ds->driverNames[driverType])
 	return FALSE;
commit 68a9ee8370e6f9b38218376ac92d5130a5b0ef1e
Author: Keith Packard <keithp at keithp.com>
Date:   Fri May 7 22:56:04 2010 -0700

    Clean up RandR12 bits on screen close (bug 27114)
    
    When resetting the server, pScrn->EnterVT must be unwrapped or the
    next server generation will end up wrapping the wrapper and causing an
    infinite recursion on EnterVT.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Tested-by: Michael Stapelberg <michael+freedesktop at stapelberg.de>

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index a62a63f..7f6fad3 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -753,6 +753,8 @@ xf86CrtcCloseScreen (int index, ScreenPtr screen)
 
 	crtc->randr_crtc = NULL;
     }
+    xf86RandR12CloseScreen (screen);
+
     return screen->CloseScreen (index, screen);
 }
 
diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
index bb4d75e..043ceee 100644
--- a/hw/xfree86/modes/xf86RandR12.c
+++ b/hw/xfree86/modes/xf86RandR12.c
@@ -928,6 +928,24 @@ xf86RandR12Init (ScreenPtr pScreen)
 }
 
 void
+xf86RandR12CloseScreen (ScreenPtr pScreen)
+{
+    XF86RandRInfoPtr	randrp;
+
+#if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(7,0,0,0,0)
+    if (xf86RandR12Key == NULL)
+	return;
+#endif
+
+    randrp = XF86RANDRINFO(pScreen);
+#if RANDR_12_INTERFACE
+    xf86Screens[pScreen->myNum]->EnterVT = randrp->orig_EnterVT;
+#endif
+
+    free(randrp);
+}
+
+void
 xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotations)
 {
     XF86RandRInfoPtr	randrp;
@@ -1755,10 +1773,16 @@ static Bool
 xf86RandR12EnterVT (int screen_index, int flags)
 {
     ScreenPtr        pScreen = screenInfo.screens[screen_index];
+    ScrnInfoPtr	     pScrn = xf86Screens[screen_index];
     XF86RandRInfoPtr randrp  = XF86RANDRINFO(pScreen);
+    Bool	     ret;
 
     if (randrp->orig_EnterVT) {
-	if (!randrp->orig_EnterVT (screen_index, flags))
+	pScrn->EnterVT = randrp->orig_EnterVT;
+	ret = pScrn->EnterVT (screen_index, flags);
+	randrp->orig_EnterVT = pScrn->EnterVT;
+	pScrn->EnterVT = xf86RandR12EnterVT;
+	if (!ret)
 	    return FALSE;
     }
 
diff --git a/hw/xfree86/modes/xf86RandR12.h b/hw/xfree86/modes/xf86RandR12.h
index c8d9918..0c586be 100644
--- a/hw/xfree86/modes/xf86RandR12.h
+++ b/hw/xfree86/modes/xf86RandR12.h
@@ -30,6 +30,7 @@
 
 extern _X_EXPORT Bool xf86RandR12CreateScreenResources (ScreenPtr pScreen);
 extern _X_EXPORT Bool xf86RandR12Init(ScreenPtr pScreen);
+extern _X_EXPORT void xf86RandR12CloseScreen(ScreenPtr pScreen);
 extern _X_EXPORT void xf86RandR12SetRotations (ScreenPtr pScreen, Rotation rotation);
 extern _X_EXPORT void xf86RandR12SetTransformSupport (ScreenPtr pScreen, Bool transforms);
 extern _X_EXPORT Bool xf86RandR12SetConfig(ScreenPtr pScreen, Rotation rotation, int rate,
commit d5ab717768524c8552b81607aaeffb447ab268ee
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 10 19:21:18 2010 -0700

    Bump to 1.8.99.901 -- 1.9 RC1
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index 4ada8f5..d41191f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.8.99.0, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="unreleased"
+AC_INIT([xorg-server], 1.8.99.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2010-06-15"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
commit a41d6e9bffbe56cfa1c3b84388a3d9f5a982f1a9
Merge: 7e8f100... f4190fe...
Author: Keith Packard <keithp at keithp.com>
Date:   Fri Jun 11 10:08:13 2010 -0700

    Merge remote branch 'dottedmag/for-keithp'

commit 7e8f1001217326cc451974bacf25275420c4bb4e
Author: Éric Piel <E.A.B.Piel at tudelft.nl>
Date:   Fri Jun 11 09:16:32 2010 -0700

    exa: fix ExaCheckCopyNtoN for exa_classic when source = dest
    
    In case you want to copy a region with source = dest, you have the same pixmap
    as source and dest.
    
    At the end of exaPixmapIsOffscreen_classic() the devPrivate.ptr is reset to
    NULL (look at the sources).
    
    Now this is what happens in ExaCheckCopyNtoN:
    
    exaPrepareAccess( pDst );
       Calls IsOffscreen()
          sets devPrivate.ptr to NULL
       sets up devPrivate.ptr to real pointer
       Everything OK
    exaPrepareAccess( pSrc );
       Calls IsOffscreen()
          sets devPrivate.ptr to NULL
       BAILS OUT CAUSE OF NESTED OPERATION SINCE DST EQUALS SRC
    
    We end up with devPrivate.ptr as NULL, and that is clearly wrong.
    
    In particular this fixes a segfault when using the psb driver (bug 28077)
    
    Signed-off-by: Éric Piel <eric.piel at tremplin-utc.net>
    Reviewed-by: Michel Dänzer <michel at daenzer.net>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/exa/exa_classic.c b/exa/exa_classic.c
index 0b0ca4e..2cfeda5 100644
--- a/exa/exa_classic.c
+++ b/exa/exa_classic.c
@@ -257,9 +257,10 @@ exaPixmapHasGpuCopy_classic(PixmapPtr pPixmap)
     Bool ret;
 
     if (pExaScr->info->PixmapIsOffscreen) {
+	void* old_ptr = pPixmap->devPrivate.ptr;
 	pPixmap->devPrivate.ptr = ExaGetPixmapAddress(pPixmap);
 	ret = pExaScr->info->PixmapIsOffscreen(pPixmap);
-	pPixmap->devPrivate.ptr = NULL;
+	pPixmap->devPrivate.ptr = old_ptr;
     } else
 	ret = (pExaPixmap->use_gpu_copy && pExaPixmap->fb_ptr);
 
commit f4190feb25ecc3d8278decc8bf28a5ef0e568942
Author: Matt Turner <mattst88 at gmail.com>
Date:   Thu Jun 10 04:08:54 2010 +0700

    Remove more superfluous if(p) checks around free(p)
    
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>
    Signed-off-by: Matt Turner <mattst88 at gmail.com>
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>

diff --git a/exa/exa_glyphs.c b/exa/exa_glyphs.c
index b09db46..5c46ec9 100644
--- a/exa/exa_glyphs.c
+++ b/exa/exa_glyphs.c
@@ -127,15 +127,11 @@ exaUnrealizeGlyphCaches(ScreenPtr    pScreen,
 	    cache->picture = NULL;
 	}
 
-	if (cache->hashEntries) {
-	    free(cache->hashEntries);
-	    cache->hashEntries = NULL;
-	}
+	free(cache->hashEntries);
+	cache->hashEntries = NULL;
 	
-	if (cache->glyphs) {
-	    free(cache->glyphs);
-	    cache->glyphs = NULL;
-	}
+	free(cache->glyphs);
+	cache->glyphs = NULL;
 	cache->glyphCount = 0;
     }
 }
diff --git a/hw/kdrive/ephyr/ephyrhostvideo.c b/hw/kdrive/ephyr/ephyrhostvideo.c
index 38927b0..9dde768 100644
--- a/hw/kdrive/ephyr/ephyrhostvideo.c
+++ b/hw/kdrive/ephyr/ephyrhostvideo.c
@@ -831,10 +831,8 @@ out:
         XFreeGC (dpy, gc) ;
         gc = NULL ;
     }
-    if (rects) {
-        free (rects) ;
-        rects = NULL ;
-    }
+    free(rects);
+    rects = NULL;
     EPHYR_LOG ("leave\n") ;
     return is_ok ;
 }
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
index 38ee06d..2ebeca9 100644
--- a/hw/kdrive/ephyr/hostx.c
+++ b/hw/kdrive/ephyr/hostx.c
@@ -669,11 +669,8 @@ hostx_screen_init (EphyrScreenInfo screen,
 	}
       else
 	{
-	  if (host_screen->ximg->data) 
-	    {
-	      free(host_screen->ximg->data);
-	      host_screen->ximg->data = NULL;
-	    } 
+	  free(host_screen->ximg->data);
+	  host_screen->ximg->data = NULL;
 
 	  XDestroyImage(host_screen->ximg);
 	}
@@ -1160,10 +1157,8 @@ out:
         XFree (visuals) ;
         visuals = NULL;
     }
-    if (host_visuals) {
-        free (host_visuals) ;
-        host_visuals = NULL;
-    }
+    free(host_visuals);
+    host_visuals = NULL;
     EPHYR_LOG ("leave\n") ;
     return is_ok ;
 
@@ -1292,10 +1287,8 @@ hostx_set_window_bounding_rectangles (int a_window,
                              rects, a_num_rects, ShapeSet, YXBanded) ;
     is_ok = TRUE ;
 
-    if (rects) {
-        free (rects) ;
-        rects = NULL ;
-    }
+    free(rects);
+    rects = NULL;
     EPHYR_LOG ("leave\n") ;
     return is_ok;
 }
@@ -1329,10 +1322,8 @@ hostx_set_window_clipping_rectangles (int a_window,
                              rects, a_num_rects, ShapeSet, YXBanded) ;
     is_ok = TRUE ;
 
-    if (rects) {
-        free (rects) ;
-        rects = NULL ;
-    }
+    free(rects);
+    rects = NULL;
     EPHYR_LOG ("leave\n") ;
     return is_ok;
 }
diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 5842a61..038f1c8 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -659,11 +659,8 @@ xf86_cursors_fini (ScreenPtr screen)
 	xf86DestroyCursorInfoRec (xf86_config->cursor_info);
 	xf86_config->cursor_info = NULL;
     }
-    if (xf86_config->cursor_image)
-    {
-	free(xf86_config->cursor_image);
-	xf86_config->cursor_image = NULL;
-    }
+    free(xf86_config->cursor_image);
+    xf86_config->cursor_image = NULL;
     if (xf86_config->cursor)
     {
 	FreeCursor (xf86_config->cursor, None);
diff --git a/hw/xfree86/os-support/bus/Sbus.c b/hw/xfree86/os-support/bus/Sbus.c
index 9ccc289..7829d80 100644
--- a/hw/xfree86/os-support/bus/Sbus.c
+++ b/hw/xfree86/os-support/bus/Sbus.c
@@ -191,10 +191,8 @@ sparcPromClose(void)
 	close(promFd);
 	promFd = -1;
     }
-    if (promOpio) {
-	free(promOpio);
-	promOpio = NULL;
-    }
+    free(promOpio);
+    promOpio = NULL;
     promOpenCount = 0;
 }
 
diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index 1b97606..73cc263 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -275,11 +275,8 @@ ddxGiveUp (void)
     }
   
   /* Free concatenated command line */
-  if (g_pszCommandLine)
-    {
-      free (g_pszCommandLine);
-      g_pszCommandLine = NULL;
-    }
+  free(g_pszCommandLine);
+  g_pszCommandLine = NULL;
 
   /* Remove our keyboard hook if it is installed */
   winRemoveKeyboardHookLL ();
diff --git a/xkb/XKBGAlloc.c b/xkb/XKBGAlloc.c
index 796931c..d1adea3 100644
--- a/xkb/XKBGAlloc.c
+++ b/xkb/XKBGAlloc.c
@@ -114,10 +114,8 @@ register char *ptr;
     }
     if (freeAll) {
 	(*num_inout)= (*sz_inout)= 0;
-	if (*elems) {
-	    free(*elems);
-	    *elems= NULL;
-	}
+	free(*elems);
+	*elems = NULL;
     }
     else if (first+count>=(*num_inout))
 	*num_inout= first;
@@ -137,14 +135,10 @@ _XkbClearProperty(char *prop_in)
 {
 XkbPropertyPtr	prop= (XkbPropertyPtr)prop_in;
 
-    if (prop->name) {
-	free(prop->name);
-	prop->name= NULL;
-    }
-    if (prop->value) {
-	free(prop->value);
-	prop->value= NULL;
-    }
+    free(prop->name);
+    prop->name = NULL;
+    free(prop->value);
+    prop->value = NULL;
     return;
 }
 
diff --git a/xkb/XKBMAlloc.c b/xkb/XKBMAlloc.c
index 197523f..6b186c1 100644
--- a/xkb/XKBMAlloc.c
+++ b/xkb/XKBMAlloc.c
@@ -221,18 +221,12 @@ XkbCopyKeyType(XkbKeyTypePtr from,XkbKeyTypePtr into)
 {
     if ((!from)||(!into))
 	return BadMatch;
-    if (into->map) {
-	free(into->map);
-	into->map= NULL;
-    }
-    if (into->preserve) {
-	free(into->preserve);
-	into->preserve= NULL;
-    }
-    if (into->level_names) {
-	free(into->level_names);
-	into->level_names= NULL;
-    }
+    free(into->map);
+    into->map = NULL;
+    free(into->preserve);
+    into->preserve = NULL;
+    free(into->level_names);
+    into->level_names = NULL;
     *into= *from;
     if ((from->map)&&(into->map_count>0)) {
 	into->map= calloc(into->map_count, sizeof(XkbKTMapEntryRec));
diff --git a/xkb/ddxList.c b/xkb/ddxList.c
index eee3887..2256424 100644
--- a/xkb/ddxList.c
+++ b/xkb/ddxList.c
@@ -208,10 +208,7 @@ char	tmpname[PATH_MAX];
 	return BadImplementation;
     }
     list->nFound[what]= 0;
-    if (buf) {
-        free(buf);
-        buf = NULL;
-    }
+    free(buf);
     buf = malloc(PATH_MAX * sizeof(char));
     if (!buf)
         return BadAlloc;
diff --git a/xkb/xkb.c b/xkb/xkb.c
index cbb46c6..bd73e9a 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -5510,10 +5510,8 @@ ProcXkbListComponents(ClientPtr client)
     if ((XkbPaddedSize(len)/4)!=stuff->length)
 	return BadLength;
     if ((status=XkbDDXList(dev,&list,client))!=Success) {
-	if (list.pool) {
-	    free(list.pool);
-	    list.pool= NULL;
-	}
+	free(list.pool);
+	list.pool = NULL;
 	return status;
     }
     memset(&rep, 0, sizeof(xkbListComponentsReply));
@@ -5886,11 +5884,16 @@ ProcXkbGetKbdByName(ClientPtr client)
 	XkbFreeKeyboard(new,XkbAllComponentsMask,TRUE);
 	new= NULL;
     }
-    if (names.keycodes)	{ free(names.keycodes); names.keycodes= NULL; }
-    if (names.types)	{ free(names.types); names.types= NULL; }
-    if (names.compat)	{ free(names.compat); names.compat= NULL; }
-    if (names.symbols)	{ free(names.symbols); names.symbols= NULL; }
-    if (names.geometry)	{ free(names.geometry); names.geometry= NULL; }
+    free(names.keycodes);
+    names.keycodes = NULL;
+    free(names.types);
+    names.types = NULL;
+    free(names.compat);
+    names.compat = NULL;
+    free(names.symbols);
+    names.symbols = NULL;
+    free(names.geometry);
+    names.geometry = NULL;
     return Success;
 }
 
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index bd58243..fbf8f14 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -635,10 +635,8 @@ unwind_key:
 void
 XkbFreeInfo(XkbSrvInfoPtr xkbi)
 {
-    if (xkbi->radioGroups) {
-	free(xkbi->radioGroups);
-	xkbi->radioGroups= NULL;
-    }
+    free(xkbi->radioGroups);
+    xkbi->radioGroups = NULL;
     if (xkbi->mouseKeyTimer) {
 	TimerFree(xkbi->mouseKeyTimer);
 	xkbi->mouseKeyTimer= NULL;
commit 89bd05106e5823fc5cfca9abf082729f2444363b
Author: Matt Turner <mattst88 at gmail.com>
Date:   Fri Jun 4 21:09:35 2010 -0400

    record: move free() to after last use of pContext
    
    No functional change, since free doesn't change the value of the pointer
    passed to it, but it makes this code less confusing.
    
    Reviewed-by: Jamey Sharp <jamey at minilop.net>
    Signed-off-by: Matt Turner <mattst88 at gmail.com>

diff --git a/record/record.c b/record/record.c
index 53bdfec..4117a5a 100644
--- a/record/record.c
+++ b/record/record.c
@@ -2520,8 +2520,6 @@ RecordDeleteContext(pointer value, XID id)
 	}
     }
 
-    free(pContext);
-
     /* remove context from AllContexts list */
 
     if (-1 != (i = RecordFindContextOnAllContexts(pContext)))
@@ -2533,6 +2531,8 @@ RecordDeleteContext(pointer value, XID id)
 	    ppAllContexts = NULL;
 	}
     }
+    free(pContext);
+
     return Success;
 } /* RecordDeleteContext */
 
commit a54a766dfb39fb3df671045878ac706215d83cef
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Mon Jun 7 03:19:03 2010 +0700

    xkb: replace xstrdup with strdup in Win32System
    
    The only caller of Win32System is XkbDDXCompileKeymapByNames. Add allocation
    check there to avoid passing NULL pointers to various functions down the code.
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/xkb/ddxLoad.c b/xkb/ddxLoad.c
index b1d6294..5e6ab87 100644
--- a/xkb/ddxLoad.c
+++ b/xkb/ddxLoad.c
@@ -103,7 +103,7 @@ Win32System(const char *cmdline)
     STARTUPINFO si;
     PROCESS_INFORMATION pi;
     DWORD dwExitCode;
-    char *cmd = xstrdup(cmdline);
+    char *cmd = strdup(cmdline);
 
     ZeroMemory( &si, sizeof(si) );
     si.cb = sizeof(si);
@@ -235,6 +235,11 @@ XkbDDXCompileKeymapByNames(	XkbDescPtr		xkb,
 		  xkm_output_dir, keymap);
 
     free(xkbbasedirflag);
+
+    if (!buf) {
+        LogMessage(X_ERROR, "XKB: Could not invoke xkbcomp: not enough memory\n");
+        return FALSE;
+    }
     
 #ifndef WIN32
     out= Popen(buf,"w");
commit 6e7417c342b0624e3f3c5686bb43026786423692
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Fri Jun 4 17:05:35 2010 +0700

    config: Replace xstrdup with strdup in add_option()
    
    All callers of add_option pass string literal as "key" argument
    except one, where non-NULL condition is guarded by if().
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

diff --git a/config/config.c b/config/config.c
index d42a16a..d86f7c6 100644
--- a/config/config.c
+++ b/config/config.c
@@ -133,7 +133,7 @@ add_option(InputOption **options, const char *key, const char *value)
     *options = calloc(sizeof(**options), 1);
     if (!*options) /* Yeesh. */
         return;
-    (*options)->key = xstrdup(key);
+    (*options)->key = strdup(key);
     (*options)->value = strdup(value);
     (*options)->next = NULL;
 }
commit e4570f5db5157f4233454c938733a2a0d6a1cb8f
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Fri Jun 4 17:01:42 2010 +0700

    xfree86: Get rid of xstrdup when argument is definitely non-NULL
    
    ditto for XFree86
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

diff --git a/hw/xfree86/common/xf86Configure.c b/hw/xfree86/common/xf86Configure.c
index 2f93bb1..822d767 100644
--- a/hw/xfree86/common/xf86Configure.c
+++ b/hw/xfree86/common/xf86Configure.c
@@ -277,16 +277,16 @@ configureInputSection (void)
     mouse->inp_identifier = "Mouse0";
     mouse->inp_driver = "mouse";
     mouse->inp_option_lst = 
-		xf86addNewOption(mouse->inp_option_lst, xstrdup("Protocol"),
-				xstrdup(DFLT_MOUSE_PROTO));
+		xf86addNewOption(mouse->inp_option_lst, strdup("Protocol"),
+				strdup(DFLT_MOUSE_PROTO));
 #ifndef __SCO__
     mouse->inp_option_lst = 
-		xf86addNewOption(mouse->inp_option_lst, xstrdup("Device"),
-				xstrdup(DFLT_MOUSE_DEV));
+		xf86addNewOption(mouse->inp_option_lst, strdup("Device"),
+				strdup(DFLT_MOUSE_DEV));
 #endif
     mouse->inp_option_lst = 
-		xf86addNewOption(mouse->inp_option_lst, xstrdup("ZAxisMapping"),
-				xstrdup("4 5 6 7"));
+		xf86addNewOption(mouse->inp_option_lst, strdup("ZAxisMapping"),
+				strdup("4 5 6 7"));
     ptr = (XF86ConfInputPtr)xf86addListItem((glp)ptr, (glp)mouse);
     return ptr;
 }
@@ -389,7 +389,7 @@ configureDeviceSection (int screennum)
 	    "        ### <string>: \"String\", <freq>: \"<f> Hz/kHz/MHz\",\n"
 	    "        ### <percent>: \"<f>%\"\n"
 	    "        ### [arg]: arg optional\n";
-	ptr->dev_comment = xstrdup(descrip);
+	ptr->dev_comment = strdup(descrip);
 	if (ptr->dev_comment) {
     	    for (p = DevToConfig[screennum].GDev.options;
 		 p->name != NULL; p++) {
@@ -440,7 +440,7 @@ configureLayoutSection (void)
 	iptr->iref_option_lst = NULL;
 	iptr->iref_inputdev_str = "Mouse0";
 	iptr->iref_option_lst =
-		xf86addNewOption (iptr->iref_option_lst, xstrdup("CorePointer"), NULL);
+		xf86addNewOption (iptr->iref_option_lst, strdup("CorePointer"), NULL);
 	ptr->lay_input_lst = (XF86ConfInputrefPtr)
 		xf86addListItem ((glp) ptr->lay_input_lst, (glp) iptr);
     }
@@ -453,7 +453,7 @@ configureLayoutSection (void)
 	iptr->iref_option_lst = NULL;
 	iptr->iref_inputdev_str = "Keyboard0";
 	iptr->iref_option_lst =
-		xf86addNewOption (iptr->iref_option_lst, xstrdup("CoreKeyboard"), NULL);
+		xf86addNewOption (iptr->iref_option_lst, strdup("CoreKeyboard"), NULL);
 	ptr->lay_input_lst = (XF86ConfInputrefPtr)
 		xf86addListItem ((glp) ptr->lay_input_lst, (glp) iptr);
     }
@@ -626,7 +626,7 @@ configureDDCMonitorSection (int screennum)
                              ptr);
 
     if (ConfiguredMonitor->features.dpms) {
-      ptr->mon_option_lst = xf86addNewOption(ptr->mon_option_lst, xstrdup("DPMS"), NULL);
+      ptr->mon_option_lst = xf86addNewOption(ptr->mon_option_lst, strdup("DPMS"), NULL);
     }
 
     return ptr;
diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c
index 91a6718..aa6ea30 100644
--- a/hw/xfree86/common/xf86Option.c
+++ b/hw/xfree86/common/xf86Option.c
@@ -209,7 +209,7 @@ LookupStrOption(pointer optlist, const char *name, char *deflt, Bool markUsed)
     if (ParseOptionValue(-1, optlist, &o, markUsed))
         deflt = o.value.str;
     if (deflt)
-	return xstrdup(deflt);
+	return strdup(deflt);
     else
 	return NULL;
 }
diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index 4962443..615e8c6 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -135,7 +135,7 @@ InitPathList(const char *path)
     if (!path)
 	return defaultPathList;
 
-    fullpath = xstrdup(path);
+    fullpath = strdup(path);
     if (!fullpath)
 	return NULL;
     elem = strtok(fullpath, ",");
@@ -353,7 +353,7 @@ InitSubdirs(const char **subdirlist)
 	    sprintf(subdirs[i], "%s%s%s/", *s, slash, osname);
 	    i++;
 	    /* path as given */
-	    subdirs[i] = xstrdup(*s);
+	    subdirs[i] = strdup(*s);
 	    i++;
 	    s++;
 	    if (indefault && !s) {
@@ -1246,7 +1246,7 @@ LoaderGetCanonicalName(const char *modname, PatternPtr patterns)
 	}
 
     /* If there is no match, return the whole name minus the leading path */
-    return xstrdup(s);
+    return strdup(s);
 }
 
 /*
commit 416d228481d71204cf9bfad3ab4773abc4757f79
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Fri Jun 4 17:01:25 2010 +0700

    xquartz: Get rid of xstrdup when argument is definitely non-NULL
    
    ditto for XQuartz
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

diff --git a/hw/xquartz/GL/indirect.c b/hw/xquartz/GL/indirect.c
index f769ff2..3e8d730 100644
--- a/hw/xquartz/GL/indirect.c
+++ b/hw/xquartz/GL/indirect.c
@@ -595,12 +595,12 @@ static __GLXscreen * __glXAquaScreenProbe(ScreenPtr pScreen) {
 
     __glXScreenInit(&screen->base, pScreen);
 
-    screen->base.GLXversion = xstrdup("1.4");
-    screen->base.GLXextensions = xstrdup("GLX_SGIX_fbconfig "
-					 "GLX_SGIS_multisample "
-					 "GLX_ARB_multisample "
-					 "GLX_EXT_visual_info "
-					 "GLX_EXT_import_context ");
+    screen->base.GLXversion = strdup("1.4");
+    screen->base.GLXextensions = strdup("GLX_SGIX_fbconfig "
+                                        "GLX_SGIS_multisample "
+                                        "GLX_ARB_multisample "
+                                        "GLX_EXT_visual_info "
+                                        "GLX_EXT_import_context ");
     
     /*We may be able to add more GLXextensions at a later time. */
     
commit eea286f2b9e4b1acf2b1c9800f5a4bc7c3fa968d
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Fri Jun 4 17:01:05 2010 +0700

    xwin: Get rid of xstrdup when argument is definitely non-NULL
    
    ditto for XWin
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

diff --git a/hw/xwin/InitOutput.c b/hw/xwin/InitOutput.c
index 1ab059f..1b97606 100644
--- a/hw/xwin/InitOutput.c
+++ b/hw/xwin/InitOutput.c
@@ -441,7 +441,7 @@ winFixupPaths (void)
             int comment_block = FALSE;
 
             /* get defautl fontpath */
-            char *fontpath = xstrdup(defaultFontPath);
+            char *fontpath = strdup(defaultFontPath);
             size_t size = strlen(fontpath);
 
             /* read all lines */
@@ -528,7 +528,7 @@ winFixupPaths (void)
 
             /* cleanup */
             fclose(fontdirs);  
-            defaultFontPath = xstrdup(fontpath);
+            defaultFontPath = strdup(fontpath);
             free(fontpath);
             changed_fontpath = TRUE;
             font_from = X_CONFIG;
@@ -600,7 +600,7 @@ winFixupPaths (void)
             }
         } 
 
-        defaultFontPath = xstrdup(newfp);
+        defaultFontPath = strdup(newfp);
         free(newfp);
         changed_fontpath = TRUE;
     }
diff --git a/hw/xwin/glx/indirect.c b/hw/xwin/glx/indirect.c
index 5e0e917..8ec40da 100755
--- a/hw/xwin/glx/indirect.c
+++ b/hw/xwin/glx/indirect.c
@@ -676,7 +676,7 @@ glxWinScreenProbe(ScreenPtr pScreen)
       fbConfigsDump(screen->base.numFBConfigs, screen->base.fbconfigs);
 
       // Override the GL extensions string set by __glXScreenInit()
-      screen->base.GLextensions = xstrdup(gl_extensions);
+      screen->base.GLextensions = strdup(gl_extensions);
 
       // Generate the GLX extensions string (overrides that set by __glXScreenInit())
       {
@@ -706,13 +706,13 @@ glxWinScreenProbe(ScreenPtr pScreen)
 
           if (screen->has_WGL_ARB_multisample)
             {
-              screen->base.GLXversion = xstrdup("1.4");
+              screen->base.GLXversion = strdup("1.4");
               screen->base.GLXmajor = 1;
               screen->base.GLXminor = 4;
             }
           else
             {
-              screen->base.GLXversion = xstrdup("1.3");
+              screen->base.GLXversion = strdup("1.3");
               screen->base.GLXmajor = 1;
               screen->base.GLXminor = 3;
             }
diff --git a/hw/xwin/winconfig.c b/hw/xwin/winconfig.c
index ab49aaa..a88b6f1 100644
--- a/hw/xwin/winconfig.c
+++ b/hw/xwin/winconfig.c
@@ -583,7 +583,7 @@ winConfigFiles ()
   else if (filesptr != NULL && filesptr->file_fontpath)
     {
       from = X_CONFIG;
-      defaultFontPath = xstrdup (filesptr->file_fontpath);
+      defaultFontPath = strdup (filesptr->file_fontpath);
     }
   winMsg (from, "FontPath set to \"%s\"\n", defaultFontPath);
 
@@ -630,7 +630,7 @@ winSetStrOption (pointer optlist, const char *name, char *deflt)
   if (ParseOptionValue (-1, optlist, &o))
     deflt = o.value.str;
   if (deflt)
-    return xstrdup (deflt);
+    return strdup (deflt);
   else
     return NULL;
 }
commit dd45b7d74696cd4fe9545852640a3c2e66a808fd
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Fri Jun 4 17:00:46 2010 +0700

    kdrive: Get rid of xstrdup when argument is definitely non-NULL
    
    ditto for Kdrive
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

diff --git a/hw/kdrive/src/kinput.c b/hw/kdrive/src/kinput.c
index 4024758..80a1458 100644
--- a/hw/kdrive/src/kinput.c
+++ b/hw/kdrive/src/kinput.c
@@ -919,7 +919,7 @@ KdAddConfigKeyboard (char *keyboard)
     if (!new)
         return BadAlloc;
 
-    new->line = xstrdup(keyboard);
+    new->line = strdup(keyboard);
     new->next = NULL;
 
     for (prev = &kdConfigKeyboards; *prev; prev = &(*prev)->next);
@@ -987,7 +987,7 @@ KdAddConfigPointer (char *pointer)
     if (!new)
         return BadAlloc;
 
-    new->line = xstrdup(pointer);
+    new->line = strdup(pointer);
     new->next = NULL;
 
     for (prev = &kdConfigPointers; *prev; prev = &(*prev)->next);
@@ -1067,11 +1067,11 @@ KdGetOptions (InputOption **options, char *string)
         newopt->key = (char *)malloc(tam_key);
         strncpy(newopt->key, string, tam_key);
         newopt->key[tam_key] = '\0';
-        newopt->value = xstrdup(strchr(string, '=') + 1);
+        newopt->value = strdup(strchr(string, '=') + 1);
     }
     else
     {
-        newopt->key = xstrdup(string);
+        newopt->key = strdup(string);
         newopt->value = NULL;
     }
     newopt->next = NULL;
@@ -1147,7 +1147,7 @@ KdParseKeyboard (char *arg)
     if (strcmp (save, "auto") == 0)
         ki->driverPrivate = NULL;
     else
-        ki->driverPrivate = xstrdup(save);
+        ki->driverPrivate = strdup(save);
 
     if (delim != ',')
     {
@@ -1243,7 +1243,7 @@ KdParsePointer (char *arg)
     if (strcmp(save, "auto") == 0)
         pi->driverPrivate = NULL;
     else
-        pi->driverPrivate = xstrdup(save);
+        pi->driverPrivate = strdup(save);
 
     if (delim != ',')
     {
commit 16158366954d945db6263f6de505fc02ee03c6cd
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Fri Jun 4 17:00:15 2010 +0700

    dmx: Get rid of xstrdup when argument is definitely non-NULL
    
    ditto for DMX
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

diff --git a/hw/dmx/input/dmxinputinit.c b/hw/dmx/input/dmxinputinit.c
index b2e16fb..83a2abb 100644
--- a/hw/dmx/input/dmxinputinit.c
+++ b/hw/dmx/input/dmxinputinit.c
@@ -885,7 +885,7 @@ static void dmxInputScanForExtensions(DMXInputInfo *dmxInput, int doXI)
                         && dmxL->deviceId < 0) {
                         dmxL->deviceId   = devices[i].id;
                         dmxL->deviceName = (devices[i].name
-                                            ? xstrdup(devices[i].name)
+                                            ? strdup(devices[i].name)
                                             : NULL);
                     }
                 }
@@ -918,7 +918,7 @@ static void dmxInputScanForExtensions(DMXInputInfo *dmxInput, int doXI)
                         dmxLocal->sendsCore  = FALSE;
                         dmxLocal->deviceId   = devices[i].id;
                         dmxLocal->deviceName = (devices[i].name
-                                                ? xstrdup(devices[i].name)
+                                                ? strdup(devices[i].name)
                                                 : NULL);
                     }
                 }
diff --git a/hw/dmx/input/usb-keyboard.c b/hw/dmx/input/usb-keyboard.c
index dc575fe..9db1adb 100644
--- a/hw/dmx/input/usb-keyboard.c
+++ b/hw/dmx/input/usb-keyboard.c
@@ -439,6 +439,6 @@ void kbdUSBGetInfo(DevicePtr pDev, DMXLocalInitInfoPtr info)
     kbdUSBGetMap(pDev, &info->keySyms, info->modMap);
     info->focusClass       = 1;
     info->kbdFeedbackClass = 1;
-    info->names.keycodes   = xstrdup("powerpcps2");
+    info->names.keycodes   = strdup("powerpcps2");
     info->force            = 1;
 }
commit 6592db6bb526f0c43b4c7b55859c629709e039b4
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Fri Jun 4 16:58:58 2010 +0700

    Get rid of xstrdup when argument is definitely non-NULL
    
    Replace xstrdup with strdup when either constant string is
    being duplicated or argument is guarded by conditionals and
    obviously can't be NULL
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Alan Coopersmith <alan.coopersmith at oracle.com>

diff --git a/config/config.c b/config/config.c
index 65ef679..d42a16a 100644
--- a/config/config.c
+++ b/config/config.c
@@ -134,6 +134,6 @@ add_option(InputOption **options, const char *key, const char *value)
     if (!*options) /* Yeesh. */
         return;
     (*options)->key = xstrdup(key);
-    (*options)->value = xstrdup(value);
+    (*options)->value = strdup(value);
     (*options)->next = NULL;
 }
diff --git a/config/dbus.c b/config/dbus.c
index b67fddb..34e3caa 100644
--- a/config/dbus.c
+++ b/config/dbus.c
@@ -86,8 +86,8 @@ add_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
         return BadAlloc;
     }
 
-    options->key = xstrdup("_source");
-    options->value = xstrdup("client/dbus");
+    options->key = strdup("_source");
+    options->value = strdup("client/dbus");
     if (!options->key || !options->value) {
         ErrorF("[config/dbus] couldn't allocate first key/value pair\n");
         ret = BadAlloc;
@@ -120,7 +120,7 @@ add_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
                    tmp);
             MALFORMED_MESSAGE();
         }
-        options->key = xstrdup(tmp);
+        options->key = strdup(tmp);
         if (!options->key) {
             ErrorF("[config/dbus] couldn't duplicate key!\n");
             ret = BadAlloc;
@@ -136,7 +136,7 @@ add_device(DBusMessage *message, DBusMessage *reply, DBusError *error)
         dbus_message_iter_get_basic(&subiter, &tmp);
         if (!tmp)
             MALFORMED_MESSAGE();
-        options->value = xstrdup(tmp);
+        options->value = strdup(tmp);
         if (!options->value) {
             ErrorF("[config/dbus] couldn't duplicate option!\n");
             ret = BadAlloc;
diff --git a/config/hal.c b/config/hal.c
index 8f9aeb8..b70488b 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -81,7 +81,7 @@ get_prop_string(LibHalContext *hal_ctx, const char *udi, const char *name)
     prop = libhal_device_get_property_string(hal_ctx, udi, name, NULL);
     LogMessageVerb(X_INFO, 10, "config/hal: getting %s on %s returned %s\n", name, udi, prop ? prop : "(null)");
     if (prop) {
-        ret = xstrdup(prop);
+        ret = strdup(prop);
         libhal_free_string(prop);
     }
     else {
@@ -156,13 +156,13 @@ device_added(LibHalContext *hal_ctx, const char *udi)
         LogMessage(X_WARNING,"config/hal: no driver or path specified for %s\n", udi);
         goto unwind;
     }
-    attrs.device = xstrdup(path);
+    attrs.device = strdup(path);
 
     name = get_prop_string(hal_ctx, udi, "info.product");
     if (!name)
-        name = xstrdup("(unnamed)");
+        name = strdup("(unnamed)");
     else
-        attrs.product = xstrdup(name);
+        attrs.product = strdup(name);
 
     attrs.vendor = get_prop_string(hal_ctx, udi, "info.vendor");
     hal_tags = get_prop_string(hal_ctx, udi, "input.tags");
@@ -211,8 +211,8 @@ device_added(LibHalContext *hal_ctx, const char *udi)
         goto unwind;
     }
 
-    options->key = xstrdup("_source");
-    options->value = xstrdup("server/hal");
+    options->key = strdup("_source");
+    options->value = strdup("server/hal");
     if (!options->key || !options->value) {
         LogMessage(X_ERROR, "config/hal: couldn't allocate first key/value pair\n");
         goto unwind;
@@ -387,7 +387,7 @@ device_added(LibHalContext *hal_ctx, const char *udi)
 
     for (; dev; dev = dev->next){
         free(dev->config_info);
-        dev->config_info = xstrdup(config_info);
+        dev->config_info = strdup(config_info);
     }
 
 unwind:
diff --git a/config/udev.c b/config/udev.c
index 16c4624..9934490 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -86,8 +86,8 @@ device_added(struct udev_device *udev_device)
     if (!options)
         return;
 
-    options->key = xstrdup("_source");
-    options->value = xstrdup("server/udev");
+    options->key = strdup("_source");
+    options->value = strdup("server/udev");
     if (!options->key || !options->value)
         goto unwind;
 
@@ -197,7 +197,7 @@ device_added(struct udev_device *udev_device)
 
     for (; dev; dev = dev->next) {
         free(dev->config_info);
-        dev->config_info = xstrdup(config_info);
+        dev->config_info = strdup(config_info);
     }
 
  unwind:
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index 6c90fb9..b51ad84 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -1836,7 +1836,7 @@ SetDefaultFontPath(char *path)
     if (!start) {
 	temp_path = Xprintf("%s%sbuilt-ins", path, *path ? "," : "");
     } else {
-	temp_path = xstrdup(path);
+	temp_path = strdup(path);
     }
     if (!temp_path)
         return BadAlloc;
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
index 1d3be49..9e5b213 100644
--- a/glx/glxcmds.c
+++ b/glx/glxcmds.c
@@ -2433,7 +2433,7 @@ int __glXDisp_ClientInfo(__GLXclientState *cl, GLbyte *pc)
     cl->GLClientminorVersion = req->minor;
     free(cl->GLClientextensions);
     buf = (const char *)(req+1);
-    cl->GLClientextensions = xstrdup(buf);
+    cl->GLClientextensions = strdup(buf);
 
     return Success;
 }
diff --git a/glx/glxscreens.c b/glx/glxscreens.c
index a5b61df..8515e14 100644
--- a/glx/glxscreens.c
+++ b/glx/glxscreens.c
@@ -356,9 +356,9 @@ void __glXScreenInit(__GLXscreen *pGlxScreen, ScreenPtr pScreen)
 	return;
 
     pGlxScreen->pScreen       = pScreen;
-    pGlxScreen->GLextensions  = xstrdup(GLServerExtensions);
-    pGlxScreen->GLXvendor     = xstrdup(GLXServerVendorName);
-    pGlxScreen->GLXextensions = xstrdup(GLXServerExtensions);
+    pGlxScreen->GLextensions  = strdup(GLServerExtensions);
+    pGlxScreen->GLXvendor     = strdup(GLXServerVendorName);
+    pGlxScreen->GLXextensions = strdup(GLXServerExtensions);
 
     /* All GLX providers must support all of the functionality required for at
      * least GLX 1.2.  If the provider supports a higher version, the GLXminor
diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index 72dd546..3344e50 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -1761,15 +1761,15 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
                     if (sdoodad->any.type == XkbTextDoodad) {
                         if (sdoodad->text.text)
                             ddoodad->text.text =
-                             xstrdup(sdoodad->text.text);
+                             strdup(sdoodad->text.text);
                         if (sdoodad->text.font)
                             ddoodad->text.font =
-                             xstrdup(sdoodad->text.font);
+                             strdup(sdoodad->text.font);
                     }
                     else if (sdoodad->any.type == XkbLogoDoodad) {
                         if (sdoodad->logo.logo_name)
                             ddoodad->logo.logo_name =
-                             xstrdup(sdoodad->logo.logo_name);
+                             strdup(sdoodad->logo.logo_name);
                     }
                 }
                 dsection->overlays = NULL;
@@ -1832,14 +1832,14 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst)
                 memcpy(ddoodad , sdoodad, sizeof(XkbDoodadRec));
                 if (sdoodad->any.type == XkbTextDoodad) {
                     if (sdoodad->text.text)
-                        ddoodad->text.text = xstrdup(sdoodad->text.text);
+                        ddoodad->text.text = strdup(sdoodad->text.text);
                     if (sdoodad->text.font)
-                        ddoodad->text.font = xstrdup(sdoodad->text.font);
+                        ddoodad->text.font = strdup(sdoodad->text.font);
                 }
                 else if (sdoodad->any.type == XkbLogoDoodad) {
                     if (sdoodad->logo.logo_name)
                         ddoodad->logo.logo_name =
-                          xstrdup(sdoodad->logo.logo_name);
+                          strdup(sdoodad->logo.logo_name);
                 }
             }
 
commit 620ca54aaa0b363fcf68cec1bd6c37e68c988352
Merge: fd69234... 8ff9b50...
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 10 19:18:53 2010 -0700

    Merge remote branch 'alanc/master'

commit fd69234db004e98c663f5c6c4360d2cecaa8a4df
Author: Keith Packard <keithp at keithp.com>
Date:   Sun Jun 6 15:21:28 2010 -0700

    Ignore RandR timestamps harder
    
    Checking timestamps in post 1.1 randr requests was never a good idea,
    let's ignore them and just make the configuration changes.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Acked-by: Chase Douglas <chase.douglas at canonical.com>

diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c
index f5fe765..14f6e45 100644
--- a/randr/rrcrtc.c
+++ b/randr/rrcrtc.c
@@ -863,19 +863,6 @@ ProcRRSetCrtcConfig (ClientPtr client)
 	goto sendReply;
     }
     
-#if 0
-    /*
-     * if the client's config timestamp is not the same as the last config
-     * timestamp, then the config information isn't up-to-date and
-     * can't even be validated
-     */
-    if (CompareTimeStamps (configTime, pScrPriv->lastConfigTime) != 0)
-    {
-	rep.status = RRSetConfigInvalidConfigTime;
-	goto sendReply;
-    }
-#endif
-    
     /*
      * Validate requested rotation
      */
@@ -948,16 +935,6 @@ ProcRRSetCrtcConfig (ClientPtr client)
 #endif
     }
     
-    /*
-     * Make sure the requested set-time is not older than
-     * the last set-time
-     */
-    if (CompareTimeStamps (time, pScrPriv->lastSetTime) < 0)
-    {
-	rep.status = RRSetConfigInvalidTime;
-	goto sendReply;
-    }
-
     if (!RRCrtcSet (crtc, mode, stuff->x, stuff->y,
 		   rotation, numOutputs, outputs))
     {
@@ -1088,16 +1065,6 @@ ProcRRSetPanning (ClientPtr client)
     
     time = ClientTimeToServerTime(stuff->timestamp);
     
-    /*
-     * Make sure the requested set-time is not older than
-     * the last set-time
-     */
-    if (CompareTimeStamps (time, pScrPriv->lastSetTime) < 0)
-    {
-	rep.status = RRSetConfigInvalidTime;
-	goto sendReply;
-    }
-
     if (!pScrPriv->rrGetPanning)
 	return RRErrorBase + BadRRCrtc;
 
commit a8ec9eca850f2a7ad4c5cf31c1c011c120688496
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Jun 7 13:39:11 2010 -0700

    Fix a couple more possible errors with input-only windows
    
    Using type == DRAWABLE_WINDOW to differentiate between pixmaps and
    windows isn't sufficient as input-only windows will end up in the
    pixmap case. This patch changes a few more code paths to use
    WindowDrawable instead.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>
    Reviewed-by: Jamey Sharp <jamey at minilop.net>

diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index b744e4d..67b4030 100644
--- a/Xext/panoramiXprocs.c
+++ b/Xext/panoramiXprocs.c
@@ -557,7 +557,7 @@ int PanoramiXGetGeometry(ClientPtr client)
 	rep.width = root->pixWidth;
 	rep.height = root->pixHeight;
     } else 
-    if ((pDraw->type == UNDRAWABLE_WINDOW) || (pDraw->type == DRAWABLE_WINDOW))
+    if (WindowDrawable(pDraw->type))
     {
         WindowPtr pWin = (WindowPtr)pDraw;
 	rep.x = pWin->origin.x - wBorderWidth (pWin);
diff --git a/hw/xnest/Drawable.h b/hw/xnest/Drawable.h
index d94916e..4268b7b 100644
--- a/hw/xnest/Drawable.h
+++ b/hw/xnest/Drawable.h
@@ -19,7 +19,7 @@ is" without express or implied warranty.
 #include "XNPixmap.h"
 
 #define xnestDrawable(pDrawable) \
-  ((pDrawable)->type == DRAWABLE_WINDOW ? \
+  (WindowDrawable((pDrawable)->type) ?	\
    xnestWindow((WindowPtr)pDrawable) : \
    xnestPixmap((PixmapPtr)pDrawable))
 
diff --git a/miext/damage/damage.c b/miext/damage/damage.c
index 7c2f8a0..1cf0513 100644
--- a/miext/damage/damage.c
+++ b/miext/damage/damage.c
@@ -84,7 +84,7 @@ getDrawableDamageRef (DrawablePtr pDrawable)
 {
     PixmapPtr   pPixmap;
     
-    if (pDrawable->type == DRAWABLE_WINDOW)
+    if (WindowDrawable(pDrawable->type))
     {
 	ScreenPtr   pScreen = pDrawable->pScreen;
 
@@ -300,7 +300,7 @@ damageRegionAppend (DrawablePtr pDrawable, RegionPtr pRegion, Bool clip,
 	 * Need to move everyone to screen coordinates
 	 * XXX what about off-screen pixmaps with non-zero x/y?
 	 */
-	if (pDamage->pDrawable->type != DRAWABLE_WINDOW)
+	if (!WindowDrawable(pDamage->pDrawable->type))
 	{
 	    draw_x += ((PixmapPtr) pDamage->pDrawable)->screen_x;
 	    draw_y += ((PixmapPtr) pDamage->pDrawable)->screen_y;
commit 8ff9b502cfce3828f7855ffba7949d6ebee34031
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date:   Fri Jun 4 08:44:02 2010 -0700

    Solaris: avoid memory leak if AGPIOC_INFO ioctl fails
    
    Move malloc after ioctl, so we don't have to worry about free'ing the
    memory if the ioctl fails.
    
    [ This bug was found by the Parfait bug checking tool.
      For more information see http://research.sun.com/projects/parfait ]
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
    Reviewed-by: Mikhail Gusarov <dottedmag at dottedmag.net>

diff --git a/hw/xfree86/os-support/solaris/sun_agp.c b/hw/xfree86/os-support/solaris/sun_agp.c
index 734a6e1..9db5d63 100644
--- a/hw/xfree86/os-support/solaris/sun_agp.c
+++ b/hw/xfree86/os-support/solaris/sun_agp.c
@@ -115,16 +115,16 @@ xf86GetAGPInfo(int screenNum)
 	if (!GARTInit(screenNum))
 		return NULL;
 
-	if ((info = calloc(sizeof(AgpInfo), 1)) == NULL) {
+	if (ioctl(gartFd, AGPIOC_INFO, &agpinf) != 0) {
 		xf86DrvMsg(screenNum, X_ERROR,
-		    "xf86GetAGPInfo: Failed to allocate AgpInfo\n");
+		    "xf86GetAGPInfo: AGPIOC_INFO failed (%s)\n",
+		    strerror(errno));
 		return NULL;
 	}
 
-	if (ioctl(gartFd, AGPIOC_INFO, &agpinf) != 0) {
+	if ((info = calloc(sizeof(AgpInfo), 1)) == NULL) {
 		xf86DrvMsg(screenNum, X_ERROR,
-		    "xf86GetAGPInfo: AGPIOC_INFO failed (%s)\n",
-		    strerror(errno));
+		    "xf86GetAGPInfo: Failed to allocate AgpInfo\n");
 		return NULL;
 	}
 
commit c5eb5d69e5183860185a05cfcce16af635cab9aa
Author: Alan Coopersmith <alan.coopersmith at oracle.com>
Date:   Thu Jun 3 19:28:43 2010 -0700

    Record some additional library dependencies in xf86 modules
    
    Helps with symbol resolution when building with -z defs
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
    Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>

diff --git a/configure.ac b/configure.ac
index 02660a6..4ada8f5 100644
--- a/configure.ac
+++ b/configure.ac
@@ -794,7 +794,7 @@ APPLEWMPROTO="applewmproto >= 1.4"
 
 dnl Core modules for most extensions, et al.
 REQUIRED_MODULES="[randrproto >= 1.2.99.3] [renderproto >= 0.11] [fixesproto >= 4.1] [damageproto >= 1.1] [xcmiscproto >= 1.2.0] [xextproto >= 7.0.99.3] [xproto >= 7.0.17] [xtrans >= 1.2.2] [bigreqsproto >= 1.1.0] fontsproto [inputproto >= 1.9.99.902] [kbproto >= 1.0.3]"
-REQUIRED_LIBS="xfont xau [pixman-1 >= 0.15.20]"
+REQUIRED_LIBS="xfont xau"
 
 dnl List of libraries that require a specific version
 LIBAPPLEWM="applewm >= 1.4"
@@ -810,6 +810,12 @@ LIBGLIB="glib-2.0 >= 2.16"
 LIBUDEV="libudev >= 143"
 LIBSELINUX="libselinux >= 2.0.86"
 LIBDBUS="dbus-1 >= 1.0"
+LIBPIXMAN="pixman-1 >= 0.15.20"
+
+dnl Pixman is always required, but we separate it out so we can link
+dnl specific modules against it
+PKG_CHECK_MODULES(PIXMAN, $LIBPIXMAN)
+REQUIRED_LIBS="$REQUIRED_LIBS $LIBPIXMAN"
 
 if test "x$CONFIG_UDEV" = xyes &&
  { test "x$CONFIG_DBUS_API" = xyes || test "x$CONFIG_HAL" = xyes; }; then
diff --git a/fb/Makefile.am b/fb/Makefile.am
index 64e49f3..2f3073d 100644
--- a/fb/Makefile.am
+++ b/fb/Makefile.am
@@ -11,8 +11,10 @@ sdk_HEADERS = fb.h fbrop.h fboverlay.h wfbrename.h fbpict.h
 endif
 
 libfb_la_CFLAGS = $(AM_CFLAGS)
+libfb_la_LIBADD = $(PIXMAN_LIBS)
 
 libwfb_la_CFLAGS = $(AM_CFLAGS) -DFB_ACCESS_WRAPPER
+libwfb_la_LIBADD = $(PIXMAN_LIBS)
 
 libfb_la_SOURCES = 	\
 	fb.h		\
diff --git a/hw/xfree86/int10/Makefile.am b/hw/xfree86/int10/Makefile.am
index 36d2ad0..f5ece69 100644
--- a/hw/xfree86/int10/Makefile.am
+++ b/hw/xfree86/int10/Makefile.am
@@ -5,6 +5,7 @@ sdk_HEADERS = xf86int10.h
 EXTRA_CFLAGS =
 
 libint10_la_LDFLAGS = -avoid-version
+libint10_la_LIBADD = $(PCIACCESS_LIBS)
 
 COMMON_SOURCES = \
 	helper_exec.c \
commit 1c08a37e0eb4746e8974eb7a70ca4b7b84712963
Author: Sam Lau <sam.lau at oracle.com>
Date:   Thu Jun 3 19:17:14 2010 -0700

    SecurityResource should not segfault when client owning resource has exited
    
    Fixes OpenSolaris bug 6949754:
      Xorg crashes when the magnifier is enabled at gdm login greeter window.
      http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6949754
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
    Reviewed-by: Eamon Walsh <ewalsh at tycho.nsa.gov>

diff --git a/Xext/security.c b/Xext/security.c
index b37339f..7eb95de 100644
--- a/Xext/security.c
+++ b/Xext/security.c
@@ -805,7 +805,6 @@ SecurityResource(CallbackListPtr *pcbl, pointer unused, pointer calldata)
     Mask allowed = SecurityResourceMask;
 
     subj = dixLookupPrivate(&rec->client->devPrivates, stateKey);
-    obj = dixLookupPrivate(&clients[cid]->devPrivates, stateKey);
 
     /* disable background None for untrusted windows */
     if ((requested & DixCreateAccess) && (rec->rtype == RT_WINDOW))
@@ -831,8 +830,11 @@ SecurityResource(CallbackListPtr *pcbl, pointer unused, pointer calldata)
 	    allowed |= DixReadAccess;
     }
 
-    if (SecurityDoCheck(subj, obj, requested, allowed) == Success)
-	return;
+    if (clients[cid] != NULL) {
+	obj = dixLookupPrivate(&clients[cid]->devPrivates, stateKey);
+	if (SecurityDoCheck(subj, obj, requested, allowed) == Success)
+	    return;
+    }
 
     SecurityAudit("Security: denied client %d access %x to resource 0x%x "
 		  "of client %d on request %s\n", rec->client->index,
commit 07a093add0b7e40c4d9b9b59273e3ff9e14a88a7
Merge: 84190d2... dc61448...
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 10 18:39:10 2010 -0700

    Merge remote branch 'whot/for-keith'

commit dc614484f93b67e8b62dbb1bb2fd247fe5a4c850
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu Jun 10 12:21:36 2010 +1000

    Xi: don't copy the modifier key count when copying device classes (#25480)
    
    The modifier key count is maintained by the XKB layer and
    increased/decreased for all modifiers that set state.
    
    Test case, MD/SD modifier key count in comment:
    1. keyboard 1: press and hold Shift_L    # SD:1     MD:1
    2. keyboard 2: press and release Shift_L # SD:1,0   MD:1,0
    <class copy happens>                     # SD:1     MD:1
    3. keyboard 1: release Shift_L           # SD:0     MD:1
    4. keyboard 1: press and release Shift_L # SD:1,0   MD:2,1
    
    The modifier is now logically down on the MD but not on keyboard 1 or
    keyboard 2.
    
    XKB is layered in before the DIX, it increases/decreases the modifier key
    count accordingly. In the above example, during (2), the MD gets the key
    release and thus clears the modifier bit. (3) doesn't forward the release to
    the MD because it is already cleared. The copy of modifierKeysDown when the
    lastSlave changes however increases the counter for the held key. On (4),
    the press and release are both forwarded to the MD, causing a offset by 1
    and thus do not clear the logical modifier state.
    
    X.Org Bug 25480 <http://bugs.freedesktop.org/show_bug.cgi?id=25480>
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Acked-by: Daniel Stone <daniel at fooishbar.org>

diff --git a/Xi/exevents.c b/Xi/exevents.c
index 56d9bf7..22a1fa4 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -193,16 +193,12 @@ void
 CopyKeyClass(DeviceIntPtr device, DeviceIntPtr master)
 {
     KeyClassPtr mk = master->key;
-    KeyClassPtr dk = device->key;
-    int i;
 
     if (device == master)
         return;
 
     mk->sourceid = device->id;
 
-    for (i = 0; i < 8; i++)
-        mk->modifierKeyCount[i] = dk->modifierKeyCount[i];
 
     if (!XkbCopyDeviceKeymap(master, device))
         FatalError("Couldn't pivot keymap from device to core!\n");
commit 7805e45284264b4cd286eece02e85426896e9f7b
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Thu Jun 10 14:31:48 2010 +1000

    config: remove redundant DBUS API define, require dbus-1 >= 1.0
    
    It's still being pulled in by the HAL CFLAGS but the requirement to define
    this was dropped from DBus pre 1.0 (November 2006).
    This means we require dbus 1.0 now.
    
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
    Reviewed-by: Daniel Stone <daniel at fooishbar.org>
    Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>

diff --git a/config/dbus.c b/config/dbus.c
index 4888f62..b67fddb 100644
--- a/config/dbus.c
+++ b/config/dbus.c
@@ -27,7 +27,6 @@
 #include <dix-config.h>
 #endif
 
-#define DBUS_API_SUBJECT_TO_CHANGE
 #include <dbus/dbus.h>
 #include <string.h>
 
diff --git a/configure.ac b/configure.ac
index 81b6e4c..02660a6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -809,6 +809,7 @@ LIBPCIACCESS="pciaccess >= 0.8.0"
 LIBGLIB="glib-2.0 >= 2.16"
 LIBUDEV="libudev >= 143"
 LIBSELINUX="libselinux >= 2.0.86"
+LIBDBUS="dbus-1 >= 1.0"
 
 if test "x$CONFIG_UDEV" = xyes &&
  { test "x$CONFIG_DBUS_API" = xyes || test "x$CONFIG_HAL" = xyes; }; then
@@ -832,7 +833,7 @@ fi
 dnl HAVE_DBUS is true if we actually have the D-Bus library, whereas
 dnl CONFIG_DBUS_API is true if we want to enable the D-Bus config
 dnl API.
-PKG_CHECK_MODULES(DBUS, dbus-1, [HAVE_DBUS=yes], [HAVE_DBUS=no])
+PKG_CHECK_MODULES(DBUS, $LIBDBUS, [HAVE_DBUS=yes], [HAVE_DBUS=no])
 if test "x$HAVE_DBUS" = xyes; then
 	AC_DEFINE(HAVE_DBUS, 1, [Have D-Bus support])
 fi
commit 66b21b2f455a1dfbc92f7caa571dcff3f3765808
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:58 2010 -0700

    xfree86: Match devices based on current driver setting
    
    Often we want to apply a driver specific option to a set of devices and
    don't care how the driver was selected for that device. The MatchDriver
    entry can be used to match the current driver string:
    
    	MatchDriver "evdev|mouse"
    	Option "Emulate3Buttons" "yes"
    
    The driver string is a case sensitive match.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index fa0ed85..b2a1d1f 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -594,7 +594,7 @@ MatchAttrToken(const char *attr, struct list *patterns,
  * statements must match.
  */
 static Bool
-InputClassMatches(const XF86ConfInputClassPtr iclass,
+InputClassMatches(const XF86ConfInputClassPtr iclass, const IDevPtr idev,
                   const InputAttributes *attrs)
 {
     /* MatchProduct substring */
@@ -621,6 +621,10 @@ InputClassMatches(const XF86ConfInputClassPtr iclass,
     if (!MatchAttrToken(attrs->usb_id, &iclass->match_usbid, match_pattern))
         return FALSE;
 
+    /* MatchDriver string */
+    if (!MatchAttrToken(idev->driver, &iclass->match_driver, strcmp))
+        return FALSE;
+
     /*
      * MatchTag string
      * See if any of the device's tags match any of the MatchTag tokens.
@@ -673,34 +677,33 @@ static int
 MergeInputClasses(const IDevPtr idev, const InputAttributes *attrs)
 {
     XF86ConfInputClassPtr cl;
-    XF86OptionPtr classopts, mergedopts = NULL;
-    char *classdriver = NULL;
+    XF86OptionPtr classopts;
 
     for (cl = xf86configptr->conf_inputclass_lst; cl; cl = cl->list.next) {
-        if (!InputClassMatches(cl, attrs))
+        if (!InputClassMatches(cl, idev, attrs))
             continue;
 
-        /* Collect class options and merge over previous classes */
+        /* Collect class options and driver settings */
+        classopts = xf86optionListDup(cl->option_lst);
+        if (cl->driver) {
+            free(idev->driver);
+            idev->driver = xstrdup(cl->driver);
+            if (!idev->driver) {
+                xf86Msg(X_ERROR, "Failed to allocate memory while merging "
+                        "InputClass configuration");
+                return BadAlloc;
+            }
+            classopts = xf86ReplaceStrOption(classopts, "driver",
+                                             idev->driver);
+        }
+
+        /* Apply options to device with InputClass settings preferred. */
         xf86Msg(X_CONFIG, "%s: Applying InputClass \"%s\"\n",
                 idev->identifier, cl->identifier);
-        if (cl->driver)
-            classdriver = cl->driver;
-        classopts = xf86optionListDup(cl->option_lst);
-        mergedopts = xf86optionListMerge(mergedopts, classopts);
+        idev->commonOptions = xf86optionListMerge(idev->commonOptions,
+                                                  classopts);
     }
 
-    /* Apply options to device with InputClass settings preferred. */
-    if (classdriver) {
-        free(idev->driver);
-        idev->driver = xstrdup(classdriver);
-        if (!idev->driver) {
-            xf86Msg(X_ERROR, "Failed to allocate memory while merging "
-                    "InputClass configuration");
-            return BadAlloc;
-        }
-        mergedopts = xf86ReplaceStrOption(mergedopts, "driver", idev->driver);
-    }
-    idev->commonOptions = xf86optionListMerge(idev->commonOptions, mergedopts);
     return Success;
 }
 
@@ -716,7 +719,7 @@ IgnoreInputClass(const IDevPtr idev, const InputAttributes *attrs)
     const char *ignore_class;
 
     for (cl = xf86configptr->conf_inputclass_lst; cl; cl = cl->list.next) {
-        if (!InputClassMatches(cl, attrs))
+        if (!InputClassMatches(cl, idev, attrs))
             continue;
         if (xf86findOption(cl->option_lst, "Ignore")) {
             ignore = xf86CheckBoolOption(cl->option_lst, "Ignore", FALSE);
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index f6b90be..6b3636f 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -1123,6 +1123,15 @@ separated by a ':'. This is the same format as the
 .BR lsusb (8)
 program.
 .TP 7
+.BI "MatchDriver \*q" matchdriver \*q
+Check the case-sensitive string
+.RI \*q matchdriver \*q
+against the currently configured driver of the device. Ordering of sections
+using this entry is important since it will not match unless the driver has
+been set by the config backend or a previous
+.B InputClass
+section.
+.TP 7
 .BI "MatchTag \*q" matchtag \*q
 This entry can be used to check if tags assigned by the config backend
 matches the
diff --git a/hw/xfree86/parser/InputClass.c b/hw/xfree86/parser/InputClass.c
index f2b46bb..ce611d9 100644
--- a/hw/xfree86/parser/InputClass.c
+++ b/hw/xfree86/parser/InputClass.c
@@ -50,6 +50,7 @@ xf86ConfigSymTabRec InputClassTab[] =
     {MATCH_OS, "matchos"},
     {MATCH_PNPID, "matchpnpid"},
     {MATCH_USBID, "matchusbid"},
+    {MATCH_DRIVER, "matchdriver"},
     {MATCH_TAG, "matchtag"},
     {MATCH_IS_KEYBOARD, "matchiskeyboard"},
     {MATCH_IS_POINTER, "matchispointer"},
@@ -91,6 +92,7 @@ xf86parseInputClassSection(void)
     list_init(&ptr->match_os);
     list_init(&ptr->match_pnpid);
     list_init(&ptr->match_usbid);
+    list_init(&ptr->match_driver);
     list_init(&ptr->match_tag);
 
     while ((token = xf86getToken(InputClassTab)) != ENDSECTION) {
@@ -153,6 +155,12 @@ xf86parseInputClassSection(void)
             add_group_entry(&ptr->match_usbid,
                             xstrtokenize(val.str, TOKEN_SEP));
             break;
+        case MATCH_DRIVER:
+            if (xf86getSubToken(&(ptr->comment)) != STRING)
+                Error(QUOTE_MSG, "MatchDriver");
+            add_group_entry(&ptr->match_driver,
+                            xstrtokenize(val.str, TOKEN_SEP));
+            break;
         case MATCH_TAG:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchTag");
@@ -283,6 +291,13 @@ xf86printInputClassSection (FILE * cf, XF86ConfInputClassPtr ptr)
                         *cur);
             fprintf(cf, "\"\n");
         }
+        list_for_each_entry(group, &ptr->match_driver, entry) {
+            fprintf(cf, "\tMatchDriver     \"");
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
+            fprintf(cf, "\"\n");
+        }
         list_for_each_entry(group, &ptr->match_tag, entry) {
             fprintf(cf, "\tMatchTag        \"");
             for (cur = group->values; *cur; cur++)
@@ -363,6 +378,12 @@ xf86freeInputClassList (XF86ConfInputClassPtr ptr)
                 free(*list);
             free(group);
         }
+        list_for_each_entry_safe(group, next, &ptr->match_driver, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
+                free(*list);
+            free(group);
+        }
         list_for_each_entry_safe(group, next, &ptr->match_tag, entry) {
             list_del(&group->entry);
             for (list = group->values; *list; list++)
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
index 26d9a5b..337ad07 100644
--- a/hw/xfree86/parser/xf86Parser.h
+++ b/hw/xfree86/parser/xf86Parser.h
@@ -357,6 +357,7 @@ typedef struct
 	struct list match_os;
 	struct list match_pnpid;
 	struct list match_usbid;
+	struct list match_driver;
 	struct list match_tag;
 	xf86TriState is_keyboard;
 	xf86TriState is_pointer;
diff --git a/hw/xfree86/parser/xf86tokens.h b/hw/xfree86/parser/xf86tokens.h
index 23460dd..c16a8f5 100644
--- a/hw/xfree86/parser/xf86tokens.h
+++ b/hw/xfree86/parser/xf86tokens.h
@@ -282,6 +282,7 @@ typedef enum {
     MATCH_OS,
     MATCH_PNPID,
     MATCH_USBID,
+    MATCH_DRIVER,
     MATCH_TAG,
     MATCH_IS_KEYBOARD,
     MATCH_IS_POINTER,
commit a71bdff47d4cc80da6ceeb548db1dcc8e8b59702
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:57 2010 -0700

    xfree86: Allow multiple InputClass Match* entries for && matching
    
    Currently when there multiple InputClass entries of the same type, only
    the last entry is used and the previous ones are ignored. Instead,
    multiple entries are used to create multiple matching conditions.
    
    For instance, an InputClass with
    
    	MatchProduct "foo"
    	MatchProduct "bar"
    
    will require that the device's product name contain both foo and bar.
    This provides a complement to the || style matching when an entry is
    split using the "|" token.
    
    The xorg.conf man page has added an example to hopefully clarify the two
    types of compound matches.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 4218039..fa0ed85 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -551,29 +551,42 @@ match_path_pattern(const char *attr, const char *pattern)
 #endif
 
 /*
- * Match an attribute against a NULL terminated list of patterns. If any
- * pattern is matched, return TRUE.
+ * Match an attribute against a list of NULL terminated arrays of patterns.
+ * If a pattern in each list entry is matched, return TRUE.
  */
 static Bool
-MatchAttrToken(const char *attr, char **patterns,
+MatchAttrToken(const char *attr, struct list *patterns,
                int (*compare)(const char *attr, const char *pattern))
 {
-    char **cur;
+    const xf86MatchGroup *group;
 
     /* If there are no patterns, accept the match */
-    if (!patterns)
+    if (list_is_empty(patterns))
         return TRUE;
 
     /* If there are patterns but no attribute, reject the match */
     if (!attr)
         return FALSE;
 
-    /* Otherwise, iterate the patterns looking for a match */
-    for (cur = patterns; *cur; cur++)
-        if ((*compare)(attr, *cur) == 0)
-            return TRUE;
+    /*
+     * Otherwise, iterate the list of patterns ensuring each entry has a
+     * match. Each list entry is a separate Match line of the same type.
+     */
+    list_for_each_entry(group, patterns, entry) {
+        char * const *cur;
+        Bool match = FALSE;
+
+        for (cur = group->values; *cur; cur++)
+            if ((*compare)(attr, *cur) == 0) {
+                match = TRUE;
+                break;
+            }
+        if (!match)
+            return FALSE;
+    }
 
-    return FALSE;
+    /* All the entries in the list matched the attribute */
+    return TRUE;
 }
 
 /*
@@ -585,41 +598,41 @@ InputClassMatches(const XF86ConfInputClassPtr iclass,
                   const InputAttributes *attrs)
 {
     /* MatchProduct substring */
-    if (!MatchAttrToken(attrs->product, iclass->match_product, match_substring))
+    if (!MatchAttrToken(attrs->product, &iclass->match_product, match_substring))
         return FALSE;
 
     /* MatchVendor substring */
-    if (!MatchAttrToken(attrs->vendor, iclass->match_vendor, match_substring))
+    if (!MatchAttrToken(attrs->vendor, &iclass->match_vendor, match_substring))
         return FALSE;
 
     /* MatchDevicePath pattern */
-    if (!MatchAttrToken(attrs->device, iclass->match_device, match_path_pattern))
+    if (!MatchAttrToken(attrs->device, &iclass->match_device, match_path_pattern))
         return FALSE;
 
     /* MatchOS case-insensitive string */
-    if (!MatchAttrToken(HostOS(), iclass->match_os, strcasecmp))
+    if (!MatchAttrToken(HostOS(), &iclass->match_os, strcasecmp))
         return FALSE;
 
     /* MatchPnPID pattern */
-    if (!MatchAttrToken(attrs->pnp_id, iclass->match_pnpid, match_pattern))
+    if (!MatchAttrToken(attrs->pnp_id, &iclass->match_pnpid, match_pattern))
         return FALSE;
 
     /* MatchUSBID pattern */
-    if (!MatchAttrToken(attrs->usb_id, iclass->match_usbid, match_pattern))
+    if (!MatchAttrToken(attrs->usb_id, &iclass->match_usbid, match_pattern))
         return FALSE;
 
     /*
      * MatchTag string
      * See if any of the device's tags match any of the MatchTag tokens.
      */
-    if (iclass->match_tag) {
+    if (!list_is_empty(&iclass->match_tag)) {
         char * const *tag;
         Bool match;
 
         if (!attrs->tags)
             return FALSE;
         for (tag = attrs->tags, match = FALSE; *tag; tag++) {
-            if (MatchAttrToken(*tag, iclass->match_tag, strcmp)) {
+            if (MatchAttrToken(*tag, &iclass->match_tag, strcmp)) {
                 match = TRUE;
                 break;
             }
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 63dbb68..f6b90be 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -1065,26 +1065,42 @@ of the class. If none of the optional entries appear, the
 .B InputClass
 section is generic and will match any input device. If more than one of
 these entries appear, they all must match for the configuration to apply.
-The allowed matching entries are shown below.
 .PP
+There are two types of match entries used in
+.B InputClass
+sections. The first allows various tokens to be matched against attributes
+of the device. An entry can be constructed to match attributes from different
+devices by separating arguments with a '|' character. Multiple entries of the
+same type may be supplied to add multiple matching conditions on the same
+attribute. For example:
+.PP
+.RS 4
+.nf
+.B  "Section \*qInputClass\*q"
+.B  "    Identifier   \*qMy Class\*q"
+.B  "    # product string must contain example and
+.B  "    # either gizmo or gadget
+.B  "    MatchProduct \*qexample\*q
+.B  "    MatchProduct \*qgizmo|gadget\*q
+.I  "    ..."
+.B  "EndSection"
+.fi
+.RE
 .TP 7
 .BI "MatchProduct  \*q" matchproduct \*q
 This entry can be used to check if the substring
 .RI \*q matchproduct \*q
-occurs in the device's product name. Multiple substrings can be matched by
-separating arguments with a '|' character.
+occurs in the device's product name.
 .TP 7
 .BI "MatchVendor  \*q" matchvendor \*q
 This entry can be used to check if the substring
 .RI \*q matchvendor \*q
-occurs in the device's vendor name. Multiple substrings can be matched by
-separating arguments with a '|' character.
+occurs in the device's vendor name.
 .TP 7
 .BI "MatchDevicePath \*q" matchdevice \*q
 This entry can be used to check if the device file matches the
 .RI \*q matchdevice \*q
-pathname pattern. Multiple patterns can be matched by separating arguments
-with a '|' character.
+pathname pattern.
 .TP 7
 .BI "MatchOS \*q" matchos \*q
 This entry can be used to check if the operating system matches the
@@ -1092,14 +1108,12 @@ case-insensitive
 .RI \*q matchos \*q
 string. This entry is only supported on platforms providing the
 .BR uname (2)
-system call. Multiple operating systems can be matched by separating arguments
-with a '|' character.
+system call.
 .TP 7
 .BI "MatchPnPID \*q" matchpnp \*q
 The device's Plug and Play (PnP) ID can be checked against the
 .RI \*q matchpnp \*q
-shell wildcard pattern. Multiple IDs can be matched by separating arguments
-with a '|' character.
+shell wildcard pattern.
 .TP 7
 .BI "MatchUSBID \*q" matchusb \*q
 The device's USB ID can be checked against the
@@ -1107,17 +1121,20 @@ The device's USB ID can be checked against the
 shell wildcard pattern. The ID is constructed as lowercase hexadecimal numbers
 separated by a ':'. This is the same format as the
 .BR lsusb (8)
-program. Multiple IDs can be matched by separating arguments with a '|'
-character.
+program.
 .TP 7
 .BI "MatchTag \*q" matchtag \*q
 This entry can be used to check if tags assigned by the config backend
 matches the
 .RI \*q matchtag \*q
-pattern.  Multiple patterns can be matched by separating arguments
-with a '|' character. A match is found if at least one of the tags given in
+pattern. A match is found if at least one of the tags given in
 .RI \*q matchtag \*q
 matches at least one of the tags assigned by the backend.
+.PP
+The second type of entry is used to match device types. These entries take a
+boolean argument similar to
+.B Option
+entries.
 .TP 7
 .BI "MatchIsKeyboard     \*q" bool \*q
 .TP 7
@@ -1130,9 +1147,6 @@ matches at least one of the tags assigned by the backend.
 .BI "MatchIsTouchpad     \*q" bool \*q
 .TP 7
 .BI "MatchIsTouchscreen  \*q" bool \*q
-Match device types. These entries take a boolean argument similar to
-.B Option
-entries.
 .PP
 When an input device has been matched to the
 .B InputClass
diff --git a/hw/xfree86/parser/InputClass.c b/hw/xfree86/parser/InputClass.c
index bdcfba4..f2b46bb 100644
--- a/hw/xfree86/parser/InputClass.c
+++ b/hw/xfree86/parser/InputClass.c
@@ -64,6 +64,18 @@ xf86ConfigSymTabRec InputClassTab[] =
 
 #define TOKEN_SEP "|"
 
+static void
+add_group_entry(struct list *head, char **values)
+{
+    xf86MatchGroup *group;
+
+    group = malloc(sizeof(*group));
+    if (group) {
+        group->values = values;
+        list_add(&group->entry, head);
+    }
+}
+
 XF86ConfInputClassPtr
 xf86parseInputClassSection(void)
 {
@@ -72,6 +84,15 @@ xf86parseInputClassSection(void)
 
     parsePrologue(XF86ConfInputClassPtr, XF86ConfInputClassRec)
 
+    /* Initialize MatchGroup lists */
+    list_init(&ptr->match_product);
+    list_init(&ptr->match_vendor);
+    list_init(&ptr->match_device);
+    list_init(&ptr->match_os);
+    list_init(&ptr->match_pnpid);
+    list_init(&ptr->match_usbid);
+    list_init(&ptr->match_tag);
+
     while ((token = xf86getToken(InputClassTab)) != ENDSECTION) {
         switch (token) {
         case COMMENT:
@@ -99,37 +120,44 @@ xf86parseInputClassSection(void)
         case MATCH_PRODUCT:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchProduct");
-            ptr->match_product = xstrtokenize(val.str, TOKEN_SEP);
+            add_group_entry(&ptr->match_product,
+                            xstrtokenize(val.str, TOKEN_SEP));
             break;
         case MATCH_VENDOR:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchVendor");
-            ptr->match_vendor = xstrtokenize(val.str, TOKEN_SEP);
+            add_group_entry(&ptr->match_vendor,
+                            xstrtokenize(val.str, TOKEN_SEP));
             break;
         case MATCH_DEVICE_PATH:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchDevicePath");
-            ptr->match_device = xstrtokenize(val.str, TOKEN_SEP);
+            add_group_entry(&ptr->match_device,
+                            xstrtokenize(val.str, TOKEN_SEP));
             break;
         case MATCH_OS:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchOS");
-            ptr->match_os = xstrtokenize(val.str, TOKEN_SEP);
+            add_group_entry(&ptr->match_os,
+                            xstrtokenize(val.str, TOKEN_SEP));
             break;
         case MATCH_PNPID:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchPnPID");
-            ptr->match_pnpid = xstrtokenize(val.str, TOKEN_SEP);
+            add_group_entry(&ptr->match_pnpid,
+                            xstrtokenize(val.str, TOKEN_SEP));
             break;
         case MATCH_USBID:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchUSBID");
-            ptr->match_usbid = xstrtokenize(val.str, TOKEN_SEP);
+            add_group_entry(&ptr->match_usbid,
+                            xstrtokenize(val.str, TOKEN_SEP));
             break;
         case MATCH_TAG:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchTag");
-            ptr->match_tag = xstrtokenize(val.str, TOKEN_SEP);
+            add_group_entry(&ptr->match_tag,
+                            xstrtokenize(val.str, TOKEN_SEP));
             break;
         case MATCH_IS_KEYBOARD:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
@@ -201,7 +229,8 @@ xf86parseInputClassSection(void)
 void
 xf86printInputClassSection (FILE * cf, XF86ConfInputClassPtr ptr)
 {
-    char **list;
+    const xf86MatchGroup *group;
+    char * const *cur;
 
     while (ptr) {
         fprintf(cf, "Section \"InputClass\"\n");
@@ -211,62 +240,57 @@ xf86printInputClassSection (FILE * cf, XF86ConfInputClassPtr ptr)
             fprintf(cf, "\tIdentifier      \"%s\"\n", ptr->identifier);
         if (ptr->driver)
             fprintf(cf, "\tDriver          \"%s\"\n", ptr->driver);
-        if (ptr->match_product) {
+
+        list_for_each_entry(group, &ptr->match_product, entry) {
             fprintf(cf, "\tMatchProduct    \"");
-            for (list = ptr->match_product; *list; list++)
-                fprintf(cf, "%s%s",
-                        list == ptr->match_product ? "" : TOKEN_SEP,
-                        *list);
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
             fprintf(cf, "\"\n");
         }
-        if (ptr->match_vendor) {
+        list_for_each_entry(group, &ptr->match_vendor, entry) {
             fprintf(cf, "\tMatchVendor     \"");
-            for (list = ptr->match_vendor; *list; list++)
-                fprintf(cf, "%s%s",
-                        list == ptr->match_vendor ? "" : TOKEN_SEP,
-                        *list);
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
             fprintf(cf, "\"\n");
         }
-        if (ptr->match_device) {
+        list_for_each_entry(group, &ptr->match_device, entry) {
             fprintf(cf, "\tMatchDevicePath \"");
-            for (list = ptr->match_device; *list; list++)
-                fprintf(cf, "%s%s",
-                        list == ptr->match_device ? "" : TOKEN_SEP,
-                        *list);
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
             fprintf(cf, "\"\n");
         }
-        if (ptr->match_os) {
+        list_for_each_entry(group, &ptr->match_os, entry) {
             fprintf(cf, "\tMatchOS         \"");
-            for (list = ptr->match_os; *list; list++)
-                fprintf(cf, "%s%s",
-                        list == ptr->match_os ? "" : TOKEN_SEP,
-                        *list);
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
             fprintf(cf, "\"\n");
         }
-        if (ptr->match_pnpid) {
+        list_for_each_entry(group, &ptr->match_pnpid, entry) {
             fprintf(cf, "\tMatchPnPID      \"");
-            for (list = ptr->match_pnpid; *list; list++)
-                fprintf(cf, "%s%s",
-                        list == ptr->match_pnpid ? "" : TOKEN_SEP,
-                        *list);
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
             fprintf(cf, "\"\n");
         }
-        if (ptr->match_usbid) {
+        list_for_each_entry(group, &ptr->match_usbid, entry) {
             fprintf(cf, "\tMatchUSBID      \"");
-            for (list = ptr->match_usbid; *list; list++)
-                fprintf(cf, "%s%s",
-                        list == ptr->match_usbid ? "" : TOKEN_SEP,
-                        *list);
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
             fprintf(cf, "\"\n");
         }
-        if (ptr->match_tag) {
-            fprintf(cf, "\tMatchTag \"");
-            for (list = ptr->match_tag; *list; list++)
-                fprintf(cf, "%s%s",
-                        list == ptr->match_tag ? "" : TOKEN_SEP,
-                        *list);
+        list_for_each_entry(group, &ptr->match_tag, entry) {
+            fprintf(cf, "\tMatchTag        \"");
+            for (cur = group->values; *cur; cur++)
+                fprintf(cf, "%s%s", cur == group->values ? "" : TOKEN_SEP,
+                        *cur);
             fprintf(cf, "\"\n");
         }
+
         if (ptr->is_keyboard.set)
             fprintf(cf, "\tIsKeyboard      \"%s\"\n",
                     ptr->is_keyboard.val ? "yes" : "no");
@@ -295,46 +319,57 @@ void
 xf86freeInputClassList (XF86ConfInputClassPtr ptr)
 {
     XF86ConfInputClassPtr prev;
-    char **list;
 
     while (ptr) {
+        xf86MatchGroup *group, *next;
+        char **list;
+
         TestFree(ptr->identifier);
         TestFree(ptr->driver);
-        if (ptr->match_product) {
-            for (list = ptr->match_product; *list; list++)
+
+        list_for_each_entry_safe(group, next, &ptr->match_product, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
                 free(*list);
-            free(ptr->match_product);
+            free(group);
         }
-        if (ptr->match_vendor) {
-            for (list = ptr->match_vendor; *list; list++)
+        list_for_each_entry_safe(group, next, &ptr->match_vendor, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
                 free(*list);
-            free(ptr->match_vendor);
+            free(group);
         }
-        if (ptr->match_device) {
-            for (list = ptr->match_device; *list; list++)
+        list_for_each_entry_safe(group, next, &ptr->match_device, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
                 free(*list);
-            free(ptr->match_device);
+            free(group);
         }
-        if (ptr->match_os) {
-            for (list = ptr->match_os; *list; list++)
+        list_for_each_entry_safe(group, next, &ptr->match_os, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
                 free(*list);
-            free(ptr->match_os);
+            free(group);
         }
-        if (ptr->match_pnpid) {
-            for (list = ptr->match_pnpid; *list; list++)
+        list_for_each_entry_safe(group, next, &ptr->match_pnpid, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
                 free(*list);
-            free(ptr->match_pnpid);
+            free(group);
         }
-        if (ptr->match_usbid) {
-            for (list = ptr->match_usbid; *list; list++)
+        list_for_each_entry_safe(group, next, &ptr->match_usbid, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
                 free(*list);
-            free(ptr->match_usbid);
+            free(group);
         }
-        if (ptr->match_tag) {
-            for (list = ptr->match_tag; *list; list++)
+        list_for_each_entry_safe(group, next, &ptr->match_tag, entry) {
+            list_del(&group->entry);
+            for (list = group->values; *list; list++)
                 free(*list);
-            free(ptr->match_tag);
+            free(group);
         }
+
         TestFree(ptr->comment);
         xf86optionListFree(ptr->option_lst);
 
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
index a86462f..26d9a5b 100644
--- a/hw/xfree86/parser/xf86Parser.h
+++ b/hw/xfree86/parser/xf86Parser.h
@@ -66,6 +66,7 @@
 
 #include <X11/Xdefs.h>
 #include "xf86Optrec.h"
+#include "list.h"
 
 #define HAVE_PARSER_DECLS
 
@@ -340,16 +341,23 @@ xf86TriState;
 
 typedef struct
 {
+	struct list entry;
+	char **values;
+}
+xf86MatchGroup;
+
+typedef struct
+{
 	GenericListRec list;
 	char *identifier;
 	char *driver;
-	char **match_product;
-	char **match_vendor;
-	char **match_device;
-	char **match_os;
-	char **match_pnpid;
-	char **match_usbid;
-	char **match_tag;
+	struct list match_product;
+	struct list match_vendor;
+	struct list match_device;
+	struct list match_os;
+	struct list match_pnpid;
+	struct list match_usbid;
+	struct list match_tag;
 	xf86TriState is_keyboard;
 	xf86TriState is_pointer;
 	xf86TriState is_joystick;
commit 842625928632ae767b0689fcdb5103c1779a4c91
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:56 2010 -0700

    config: Script to convert HAL fdi settings to InputClass sections
    
    In the new world of udev and InputClass, x11_* settings from HAL fdi
    files will not be honored. This script converts those settings into
    valid InputClass sections that can be dropped into xorg.conf.d.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/Makefile.am b/config/Makefile.am
index 675a3b2..e1f1c4e 100644
--- a/config/Makefile.am
+++ b/config/Makefile.am
@@ -36,4 +36,4 @@ endif # CONFIG_NEED_DBUS
 
 endif # !CONFIG_UDEV
 
-EXTRA_DIST = xorg-server.conf x11-input.fdi 10-evdev.conf
+EXTRA_DIST = xorg-server.conf x11-input.fdi 10-evdev.conf fdi2iclass.py
diff --git a/config/fdi2iclass.py b/config/fdi2iclass.py
new file mode 100755
index 0000000..8974440
--- /dev/null
+++ b/config/fdi2iclass.py
@@ -0,0 +1,202 @@
+#!/usr/bin/python
+#
+# Convert xorg keys from hal FDIs files to xorg.conf InputClass sections.
+# Modified from Martin Pitt's original fdi2mpi.py script:
+# http://cgit.freedesktop.org/media-player-info/tree/tools/fdi2mpi.py
+#
+# (C) 2010 Dan Nicholson
+# (C) 2009 Canonical Ltd.
+# Author: Dan Nicholson <dbn.lists at gmail.com>
+# Author: Martin Pitt <martin.pitt at ubuntu.com>
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# fur- nished to do so, subject to the following conditions:
+#
+#  The above copyright notice and this permission notice shall be included in
+#  all copies or substantial portions of the Software.
+#
+#  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+#  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+#  FIT- NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+#  THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+#  AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON-
+#  NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+import sys, xml.dom.minidom
+
+# dict converting <match> tags to Match* entries
+match_table = {
+    'info.product': 'MatchProduct',
+    'input.product': 'MatchProduct',
+    'info.vendor': 'MatchVendor',
+    'input.vendor': 'MatchVendor',
+    'info.device': 'MatchDevicePath',
+    'linux.device_file': 'MatchDevicePath',
+    '/org/freedesktop/Hal/devices/computer:system.kernel.name': 'MatchOS',
+    '@info.parent:pnp.id': 'MatchPnPID',
+}
+
+# dict converting info.capabilities list to Match* entries
+cap_match_table = {
+    'input.keys': 'MatchIsKeyboard',
+    'input.keyboard': 'MatchIsKeyboard',
+    'input.keypad': 'MatchIsKeyboard',
+    'input.mouse': 'MatchIsPointer',
+    'input.joystick': 'MatchIsJoystick',
+    'input.tablet': 'MatchIsTablet',
+    'input.touchpad': 'MatchIsTouchpad',
+    'input.touchscreen': 'MatchIsTouchscreen',
+}
+
+def device_glob(path):
+    '''Convert a contains device path to a glob entry'''
+    if path[0] != '/':
+        path = '*' + path
+    return path + '*'
+
+def parse_match(node):
+    '''Parse a <match> tag to a tuple with InputClass values'''
+    match = None
+    value = None
+    booltype = False
+
+    # see what type of key we have
+    if node.attributes.has_key('key'):
+        key = node.attributes['key'].nodeValue
+        if key in match_table:
+            match = match_table[key]
+        elif key == 'info.capabilities':
+            booltype = True
+
+    # bail out now if it's unrecognized
+    if not match and not booltype:
+        return (match, value)
+
+    if node.attributes.has_key('string'):
+        value = node.attributes['string'].nodeValue
+    elif node.attributes.has_key('contains'):
+        value = node.attributes['contains'].nodeValue
+        if match == 'MatchDevicePath':
+            value = device_glob(value)
+        elif booltype and value in cap_match_table:
+            match = cap_match_table[value]
+            value = 'yes'
+    elif node.attributes.has_key('string_outof'):
+        value = node.attributes['string_outof'].nodeValue.replace(';','|')
+    elif node.attributes.has_key('contains_outof'):
+        all_values = node.attributes['contains_outof'].nodeValue.split(';')
+        for v in all_values:
+            if match == 'MatchDevicePath':
+                v = device_glob(v)
+            elif match == 'MatchPnPID' and len(v) < 7:
+                v += '*'
+            if value:
+                value += '|' + v
+            else:
+                value = v
+
+    return (match, value)
+
+def parse_options(node):
+    '''Parse the x11_* options and return InputClass entries'''
+    driver = ''
+    ignore = False
+    options = []
+    for n in node.childNodes:
+        if n.nodeType != xml.dom.minidom.Node.ELEMENT_NODE:
+            continue
+
+        tag = n.tagName
+        key = n.attributes['key'].nodeValue
+        value = ''
+
+        if n.hasChildNodes():
+            content_node = n.childNodes[0]
+            assert content_node.nodeType == xml.dom.Node.TEXT_NODE
+            value = content_node.nodeValue
+
+        if tag == 'match':
+            continue
+        assert tag in ('addset', 'merge', 'append', 'remove')
+
+        if tag == 'remove' and key == 'input.x11_driver':
+            ignore = True
+        elif key == 'input.x11_driver':
+            driver = value
+        elif key.startswith('input.x11_options.'):
+            option = key.split('.', 2)[2]
+            options.append((option, value))
+
+    return (driver, ignore, options)
+
+def is_match_node(node):
+    '''Check if a node is a <match> element'''
+    return node.nodeType == xml.dom.minidom.Node.ELEMENT_NODE and \
+        node.tagName == 'match'
+
+def parse_all_matches(node):
+    '''Parse a x11 match tag and any parents that don't supply their
+    own options'''
+    matches = []
+
+    while True:
+        (key, value) = parse_match(node)
+        if key and value:
+            matches.append((key, value))
+
+        # walk up to a parent match node
+        node = node.parentNode
+        if node == None or not is_match_node(node):
+            break
+
+        # leave if there other options at this level
+        children = set([n.tagName for n in node.childNodes
+                        if n.nodeType == xml.dom.minidom.Node.ELEMENT_NODE])
+        if children & set(['addset', 'merge', 'append']):
+            break
+
+    return matches
+
+# stupid counter to give "unique" rule names
+num_sections = 1
+def print_section(matches, driver, ignore, options):
+    '''Print a valid InputClass section to stdout'''
+    global num_sections
+    print 'Section "InputClass"'
+    print '\tIdentifier "Converted Class %d"' % num_sections
+    num_sections += 1
+    for m, v in matches:
+        print '\t%s "%s"' % (m, v)
+    if driver:
+        print '\tDriver "%s"' % driver
+    if ignore:
+        print '\tOption "Ignore" "yes"'
+    for o, v in options:
+        print '\tOption "%s" "%s"' % (o, v)
+    print 'EndSection'
+
+def parse_fdi(fdi):
+    '''Parse x11 matches from fdi'''
+    # find all <match> leaf nodes
+    num = 0
+    for match_node in fdi.getElementsByTagName('match'):
+        children = set([n.tagName for n in match_node.childNodes
+                if n.nodeType == xml.dom.minidom.Node.ELEMENT_NODE])
+
+        # see if there are any options at this level
+        (driver, ignore, options) = parse_options(match_node)
+        if not driver and not ignore and not options:
+            continue
+
+        matches = parse_all_matches(match_node)
+        if num > 0:
+            print
+        print_section(matches, driver, ignore, options)
+        num += 1
+
+for f in sys.argv[1:]:
+    parse_fdi(xml.dom.minidom.parse(f))
commit 87a1507da7e7788232d74285ef377b67b70e0fa4
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Thu Jun 10 06:15:41 2010 -0700

    xfree86: Match devices based on USB ID
    
    Sometimes the vendor and product names aren't specific enough to target
    a USB device, so expose the numeric codes in the ID. A MatchUSBID entry
    has been added that supports shell pattern matching when fnmatch(3) is
    available. For example:
    
    	MatchUSBID "046d:*"
    
    The IDs are stored in lowercase hex separated by a ':' like "lsusb" or
    "lspci -n".
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/hal.c b/config/hal.c
index 8061020..8f9aeb8 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -184,7 +184,24 @@ device_added(LibHalContext *hal_ctx, const char *udi)
 
     parent = get_prop_string(hal_ctx, udi, "info.parent");
     if (parent) {
+        int usb_vendor, usb_product;
+
         attrs.pnp_id = get_prop_string(hal_ctx, parent, "pnp.id");
+
+        /* construct USB ID in lowercase - "0000:ffff" */
+        usb_vendor = libhal_device_get_property_int(hal_ctx, parent,
+                                                    "usb.vendor_id", NULL);
+        LogMessageVerb(X_INFO, 10,
+                       "config/hal: getting usb.vendor_id on %s "
+                       "returned %04x\n", parent, usb_vendor);
+        usb_product = libhal_device_get_property_int(hal_ctx, parent,
+                                                     "usb.product_id", NULL);
+        LogMessageVerb(X_INFO, 10,
+                       "config/hal: getting usb.product_id on %s "
+                       "returned %04x\n", parent, usb_product);
+        if (usb_vendor && usb_product)
+            attrs.usb_id = Xprintf("%04x:%04x", usb_vendor, usb_product);
+
         free(parent);
     }
 
@@ -391,6 +408,7 @@ unwind:
     free(attrs.vendor);
     free(attrs.device);
     free(attrs.pnp_id);
+    free(attrs.usb_id);
     if (attrs.tags) {
         char **tag = attrs.tags;
         while (*tag) {
diff --git a/config/udev.c b/config/udev.c
index f7ed4b2..16c4624 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -28,6 +28,7 @@
 #endif
 
 #include <libudev.h>
+#include <ctype.h>
 
 #include "input.h"
 #include "inputstr.h"
@@ -57,6 +58,7 @@ device_added(struct udev_device *udev_device)
     char *config_info = NULL;
     const char *syspath;
     const char *tags_prop;
+    const char *usb_vendor = NULL, *usb_model = NULL;
     const char *key, *value, *tmp;
     InputOption *options = NULL, *tmpo;
     InputAttributes attrs = {};
@@ -150,6 +152,12 @@ device_added(struct udev_device *udev_device)
         } else if (!strcmp(key, "ID_VENDOR")) {
             LOG_PROPERTY(path, key, value);
             attrs.vendor = value;
+        } else if (!strcmp(key, "ID_VENDOR_ID")) {
+            LOG_PROPERTY(path, key, value);
+            usb_vendor = value;
+        } else if (!strcmp(key, "ID_VENDOR_MODEL")) {
+            LOG_PROPERTY(path, key, value);
+            usb_model = value;
         } else if (!strcmp(key, "ID_INPUT_KEY")) {
             LOG_PROPERTY(path, key, value);
             attrs.flags |= ATTR_KEYBOARD;
@@ -170,6 +178,17 @@ device_added(struct udev_device *udev_device)
             attrs.flags |= ATTR_TOUCHSCREEN;
         }
     }
+
+    /* construct USB ID in lowercase hex - "0000:ffff" */
+    if (usb_vendor && usb_model) {
+        attrs.usb_id = Xprintf("%s:%s", usb_vendor, usb_model);
+        if (attrs.usb_id) {
+            char *cur;
+            for (cur = attrs.usb_id; *cur; cur++)
+                *cur = tolower(*cur);
+        }
+    }
+
     LogMessage(X_INFO, "config/udev: Adding input device %s (%s)\n",
                name, path);
     rc = NewInputDeviceRequest(options, &attrs, &dev);
@@ -190,6 +209,7 @@ device_added(struct udev_device *udev_device)
         free(tmpo);
     }
 
+    free(attrs.usb_id);
     if (attrs.tags) {
         char **tag = attrs.tags;
         while (*tag) {
diff --git a/dix/inpututils.c b/dix/inpututils.c
index aa240dd..8ec80b5 100644
--- a/dix/inpututils.c
+++ b/dix/inpututils.c
@@ -359,6 +359,8 @@ DuplicateInputAttributes(InputAttributes *attrs)
         goto unwind;
     if (attrs->pnp_id && !(new_attr->pnp_id = strdup(attrs->pnp_id)))
         goto unwind;
+    if (attrs->usb_id && !(new_attr->usb_id = strdup(attrs->usb_id)))
+        goto unwind;
 
     new_attr->flags = attrs->flags;
 
@@ -404,6 +406,7 @@ FreeInputAttributes(InputAttributes *attrs)
     free(attrs->vendor);
     free(attrs->device);
     free(attrs->pnp_id);
+    free(attrs->usb_id);
 
     if ((tags = attrs->tags))
         while(*tags)
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 5b0ec8f..4218039 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -604,6 +604,10 @@ InputClassMatches(const XF86ConfInputClassPtr iclass,
     if (!MatchAttrToken(attrs->pnp_id, iclass->match_pnpid, match_pattern))
         return FALSE;
 
+    /* MatchUSBID pattern */
+    if (!MatchAttrToken(attrs->usb_id, iclass->match_usbid, match_pattern))
+        return FALSE;
+
     /*
      * MatchTag string
      * See if any of the device's tags match any of the MatchTag tokens.
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index c17ecb9..63dbb68 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -1101,6 +1101,15 @@ The device's Plug and Play (PnP) ID can be checked against the
 shell wildcard pattern. Multiple IDs can be matched by separating arguments
 with a '|' character.
 .TP 7
+.BI "MatchUSBID \*q" matchusb \*q
+The device's USB ID can be checked against the
+.RI \*q matchusb \*q
+shell wildcard pattern. The ID is constructed as lowercase hexadecimal numbers
+separated by a ':'. This is the same format as the
+.BR lsusb (8)
+program. Multiple IDs can be matched by separating arguments with a '|'
+character.
+.TP 7
 .BI "MatchTag \*q" matchtag \*q
 This entry can be used to check if tags assigned by the config backend
 matches the
diff --git a/hw/xfree86/parser/InputClass.c b/hw/xfree86/parser/InputClass.c
index e5ef96c..bdcfba4 100644
--- a/hw/xfree86/parser/InputClass.c
+++ b/hw/xfree86/parser/InputClass.c
@@ -49,6 +49,7 @@ xf86ConfigSymTabRec InputClassTab[] =
     {MATCH_DEVICE_PATH, "matchdevicepath"},
     {MATCH_OS, "matchos"},
     {MATCH_PNPID, "matchpnpid"},
+    {MATCH_USBID, "matchusbid"},
     {MATCH_TAG, "matchtag"},
     {MATCH_IS_KEYBOARD, "matchiskeyboard"},
     {MATCH_IS_POINTER, "matchispointer"},
@@ -120,6 +121,11 @@ xf86parseInputClassSection(void)
                 Error(QUOTE_MSG, "MatchPnPID");
             ptr->match_pnpid = xstrtokenize(val.str, TOKEN_SEP);
             break;
+        case MATCH_USBID:
+            if (xf86getSubToken(&(ptr->comment)) != STRING)
+                Error(QUOTE_MSG, "MatchUSBID");
+            ptr->match_usbid = xstrtokenize(val.str, TOKEN_SEP);
+            break;
         case MATCH_TAG:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchTag");
@@ -245,6 +251,14 @@ xf86printInputClassSection (FILE * cf, XF86ConfInputClassPtr ptr)
                         *list);
             fprintf(cf, "\"\n");
         }
+        if (ptr->match_usbid) {
+            fprintf(cf, "\tMatchUSBID      \"");
+            for (list = ptr->match_usbid; *list; list++)
+                fprintf(cf, "%s%s",
+                        list == ptr->match_usbid ? "" : TOKEN_SEP,
+                        *list);
+            fprintf(cf, "\"\n");
+        }
         if (ptr->match_tag) {
             fprintf(cf, "\tMatchTag \"");
             for (list = ptr->match_tag; *list; list++)
@@ -311,6 +325,11 @@ xf86freeInputClassList (XF86ConfInputClassPtr ptr)
                 free(*list);
             free(ptr->match_pnpid);
         }
+        if (ptr->match_usbid) {
+            for (list = ptr->match_usbid; *list; list++)
+                free(*list);
+            free(ptr->match_usbid);
+        }
         if (ptr->match_tag) {
             for (list = ptr->match_tag; *list; list++)
                 free(*list);
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
index 87fc31c..a86462f 100644
--- a/hw/xfree86/parser/xf86Parser.h
+++ b/hw/xfree86/parser/xf86Parser.h
@@ -348,6 +348,7 @@ typedef struct
 	char **match_device;
 	char **match_os;
 	char **match_pnpid;
+	char **match_usbid;
 	char **match_tag;
 	xf86TriState is_keyboard;
 	xf86TriState is_pointer;
diff --git a/hw/xfree86/parser/xf86tokens.h b/hw/xfree86/parser/xf86tokens.h
index aa33935..23460dd 100644
--- a/hw/xfree86/parser/xf86tokens.h
+++ b/hw/xfree86/parser/xf86tokens.h
@@ -281,6 +281,7 @@ typedef enum {
     MATCH_DEVICE_PATH,
     MATCH_OS,
     MATCH_PNPID,
+    MATCH_USBID,
     MATCH_TAG,
     MATCH_IS_KEYBOARD,
     MATCH_IS_POINTER,
diff --git a/include/input.h b/include/input.h
index 5969693..0a08ea4 100644
--- a/include/input.h
+++ b/include/input.h
@@ -216,6 +216,7 @@ typedef struct _InputAttributes {
     char                *vendor;
     char                *device;
     char                *pnp_id;
+    char                *usb_id;
     char                **tags; /* null-terminated */
     uint32_t            flags;
 } InputAttributes;
diff --git a/test/input.c b/test/input.c
index dd197dd..b90d3b4 100644
--- a/test/input.c
+++ b/test/input.c
@@ -808,6 +808,13 @@ static void cmp_attr_fields(InputAttributes *attr1,
     } else
         g_assert(attr2->pnp_id == NULL);
 
+    if (attr1->usb_id != NULL)
+    {
+        g_assert(attr1->usb_id != attr2->usb_id);
+        g_assert(strcmp(attr1->usb_id, attr2->usb_id) == 0);
+    } else
+        g_assert(attr2->usb_id == NULL);
+
     tags1 = attr1->tags;
     tags2 = attr2->tags;
 
@@ -878,6 +885,11 @@ static void dix_input_attributes(void)
     cmp_attr_fields(&orig, new);
     FreeInputAttributes(new);
 
+    orig.usb_id = "USBID";
+    new = DuplicateInputAttributes(&orig);
+    cmp_attr_fields(&orig, new);
+    FreeInputAttributes(new);
+
     orig.flags = 0xF0;
     new = DuplicateInputAttributes(&orig);
     cmp_attr_fields(&orig, new);
commit 645679c1523eee7028f3244cee57936b93326a2a
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Thu Jun 10 06:11:10 2010 -0700

    xfree86: Match devices based on PnP ID
    
    Serial input devices lack properties such as product or vendor name. This
    makes matching InputClass sections difficult. Add a MatchPnPID entry to
    test against the PnP ID of the device. The entry supports a shell pattern
    match on platforms that support fnmatch(3). For example:
    
    	MatchPnPID "WACf*"
    
    A match type for non-path pattern matching, match_pattern, has been added.
    The difference between this and match_path_pattern is the FNM_PATHNAME
    flag in fnmatch(3).
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/hal.c b/config/hal.c
index e0ff842..8061020 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -129,7 +129,7 @@ static void
 device_added(LibHalContext *hal_ctx, const char *udi)
 {
     char *path = NULL, *driver = NULL, *name = NULL, *config_info = NULL;
-    char *hal_tags;
+    char *hal_tags, *parent;
     InputOption *options = NULL, *tmpo = NULL;
     InputAttributes attrs = {0};
     DeviceIntPtr dev = NULL;
@@ -182,6 +182,12 @@ device_added(LibHalContext *hal_ctx, const char *udi)
     if (libhal_device_query_capability(hal_ctx, udi, "input.touchscreen", NULL))
         attrs.flags |= ATTR_TOUCHSCREEN;
 
+    parent = get_prop_string(hal_ctx, udi, "info.parent");
+    if (parent) {
+        attrs.pnp_id = get_prop_string(hal_ctx, parent, "pnp.id");
+        free(parent);
+    }
+
     options = calloc(sizeof(*options), 1);
     if (!options){
         LogMessage(X_ERROR, "config/hal: couldn't allocate space for input options!\n");
@@ -384,6 +390,7 @@ unwind:
     free(attrs.product);
     free(attrs.vendor);
     free(attrs.device);
+    free(attrs.pnp_id);
     if (attrs.tags) {
         char **tag = attrs.tags;
         while (*tag) {
diff --git a/config/udev.c b/config/udev.c
index 5d001de..f7ed4b2 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -99,6 +99,9 @@ device_added(struct udev_device *udev_device)
             name = udev_device_get_property_value(parent, "NAME");
             LOG_PROPERTY(ppath, "NAME", name);
         }
+
+        attrs.pnp_id = udev_device_get_sysattr_value(parent, "id");
+        LOG_SYSATTR(ppath, "id", attrs.pnp_id);
     }
     if (!name)
         name = "(unnamed)";
diff --git a/dix/inpututils.c b/dix/inpututils.c
index df2ace0..aa240dd 100644
--- a/dix/inpututils.c
+++ b/dix/inpututils.c
@@ -357,6 +357,8 @@ DuplicateInputAttributes(InputAttributes *attrs)
         goto unwind;
     if (attrs->device && !(new_attr->device = strdup(attrs->device)))
         goto unwind;
+    if (attrs->pnp_id && !(new_attr->pnp_id = strdup(attrs->pnp_id)))
+        goto unwind;
 
     new_attr->flags = attrs->flags;
 
@@ -401,6 +403,7 @@ FreeInputAttributes(InputAttributes *attrs)
     free(attrs->product);
     free(attrs->vendor);
     free(attrs->device);
+    free(attrs->pnp_id);
 
     if ((tags = attrs->tags))
         while(*tags)
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 0f6ccc1..5b0ec8f 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -532,6 +532,16 @@ match_substring(const char *attr, const char *pattern)
 
 #ifdef HAVE_FNMATCH_H
 static int
+match_pattern(const char *attr, const char *pattern)
+{
+    return fnmatch(pattern, attr, 0);
+}
+#else
+#define match_pattern match_substring
+#endif
+
+#ifdef HAVE_FNMATCH_H
+static int
 match_path_pattern(const char *attr, const char *pattern)
 {
     return fnmatch(pattern, attr, FNM_PATHNAME);
@@ -590,6 +600,10 @@ InputClassMatches(const XF86ConfInputClassPtr iclass,
     if (!MatchAttrToken(HostOS(), iclass->match_os, strcasecmp))
         return FALSE;
 
+    /* MatchPnPID pattern */
+    if (!MatchAttrToken(attrs->pnp_id, iclass->match_pnpid, match_pattern))
+        return FALSE;
+
     /*
      * MatchTag string
      * See if any of the device's tags match any of the MatchTag tokens.
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 50d4f36..c17ecb9 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -1095,6 +1095,12 @@ string. This entry is only supported on platforms providing the
 system call. Multiple operating systems can be matched by separating arguments
 with a '|' character.
 .TP 7
+.BI "MatchPnPID \*q" matchpnp \*q
+The device's Plug and Play (PnP) ID can be checked against the
+.RI \*q matchpnp \*q
+shell wildcard pattern. Multiple IDs can be matched by separating arguments
+with a '|' character.
+.TP 7
 .BI "MatchTag \*q" matchtag \*q
 This entry can be used to check if tags assigned by the config backend
 matches the
diff --git a/hw/xfree86/parser/InputClass.c b/hw/xfree86/parser/InputClass.c
index 20ebfb5..e5ef96c 100644
--- a/hw/xfree86/parser/InputClass.c
+++ b/hw/xfree86/parser/InputClass.c
@@ -48,6 +48,7 @@ xf86ConfigSymTabRec InputClassTab[] =
     {MATCH_VENDOR, "matchvendor"},
     {MATCH_DEVICE_PATH, "matchdevicepath"},
     {MATCH_OS, "matchos"},
+    {MATCH_PNPID, "matchpnpid"},
     {MATCH_TAG, "matchtag"},
     {MATCH_IS_KEYBOARD, "matchiskeyboard"},
     {MATCH_IS_POINTER, "matchispointer"},
@@ -114,6 +115,11 @@ xf86parseInputClassSection(void)
                 Error(QUOTE_MSG, "MatchOS");
             ptr->match_os = xstrtokenize(val.str, TOKEN_SEP);
             break;
+        case MATCH_PNPID:
+            if (xf86getSubToken(&(ptr->comment)) != STRING)
+                Error(QUOTE_MSG, "MatchPnPID");
+            ptr->match_pnpid = xstrtokenize(val.str, TOKEN_SEP);
+            break;
         case MATCH_TAG:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchTag");
@@ -231,6 +237,14 @@ xf86printInputClassSection (FILE * cf, XF86ConfInputClassPtr ptr)
                         *list);
             fprintf(cf, "\"\n");
         }
+        if (ptr->match_pnpid) {
+            fprintf(cf, "\tMatchPnPID      \"");
+            for (list = ptr->match_pnpid; *list; list++)
+                fprintf(cf, "%s%s",
+                        list == ptr->match_pnpid ? "" : TOKEN_SEP,
+                        *list);
+            fprintf(cf, "\"\n");
+        }
         if (ptr->match_tag) {
             fprintf(cf, "\tMatchTag \"");
             for (list = ptr->match_tag; *list; list++)
@@ -292,6 +306,11 @@ xf86freeInputClassList (XF86ConfInputClassPtr ptr)
                 free(*list);
             free(ptr->match_os);
         }
+        if (ptr->match_pnpid) {
+            for (list = ptr->match_pnpid; *list; list++)
+                free(*list);
+            free(ptr->match_pnpid);
+        }
         if (ptr->match_tag) {
             for (list = ptr->match_tag; *list; list++)
                 free(*list);
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
index 3623ca1..87fc31c 100644
--- a/hw/xfree86/parser/xf86Parser.h
+++ b/hw/xfree86/parser/xf86Parser.h
@@ -347,6 +347,7 @@ typedef struct
 	char **match_vendor;
 	char **match_device;
 	char **match_os;
+	char **match_pnpid;
 	char **match_tag;
 	xf86TriState is_keyboard;
 	xf86TriState is_pointer;
diff --git a/hw/xfree86/parser/xf86tokens.h b/hw/xfree86/parser/xf86tokens.h
index fd13d6d..aa33935 100644
--- a/hw/xfree86/parser/xf86tokens.h
+++ b/hw/xfree86/parser/xf86tokens.h
@@ -280,6 +280,7 @@ typedef enum {
     MATCH_VENDOR,
     MATCH_DEVICE_PATH,
     MATCH_OS,
+    MATCH_PNPID,
     MATCH_TAG,
     MATCH_IS_KEYBOARD,
     MATCH_IS_POINTER,
diff --git a/include/input.h b/include/input.h
index c68a284..5969693 100644
--- a/include/input.h
+++ b/include/input.h
@@ -215,6 +215,7 @@ typedef struct _InputAttributes {
     char                *product;
     char                *vendor;
     char                *device;
+    char                *pnp_id;
     char                **tags; /* null-terminated */
     uint32_t            flags;
 } InputAttributes;
diff --git a/test/input.c b/test/input.c
index 12771c5..dd197dd 100644
--- a/test/input.c
+++ b/test/input.c
@@ -801,6 +801,13 @@ static void cmp_attr_fields(InputAttributes *attr1,
     } else
         g_assert(attr2->device == NULL);
 
+    if (attr1->pnp_id != NULL)
+    {
+        g_assert(attr1->pnp_id != attr2->pnp_id);
+        g_assert(strcmp(attr1->pnp_id, attr2->pnp_id) == 0);
+    } else
+        g_assert(attr2->pnp_id == NULL);
+
     tags1 = attr1->tags;
     tags2 = attr2->tags;
 
@@ -866,6 +873,11 @@ static void dix_input_attributes(void)
     cmp_attr_fields(&orig, new);
     FreeInputAttributes(new);
 
+    orig.pnp_id = "PnPID";
+    new = DuplicateInputAttributes(&orig);
+    cmp_attr_fields(&orig, new);
+    FreeInputAttributes(new);
+
     orig.flags = 0xF0;
     new = DuplicateInputAttributes(&orig);
     cmp_attr_fields(&orig, new);
commit 84190d20954ef7888e4d96832c2a4b3225b4dfa2
Merge: 4172aa1... 5e1ef1f...
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 10 13:36:35 2010 -0700

    Merge remote branch 'jeremyhu/master'

commit 4172aa137c1b9b6f2a25c320d847af1f5ac56fba
Author: Keith Packard <keithp at keithp.com>
Date:   Thu Jun 10 07:15:49 2010 -0700

    dri2: Only deal with output windows and pixmaps.
    
    This reverts commit fdb081b430ddffb495aa5b05bcc4cf10882ff4b2
    "dri2: Deal with input-only windows by using WindowDrawable()"
    and replaces it as follows:
    
    Reject the creation of a DRI2 drawable for UNDRAWABLE_WINDOW (input-only
    windows) and DRAWABLE_BUFFER (whatever those are) drawables and only look up
    privates for the supported drawable types.
    
    The rest of the the code can continue pretending there's only output windows
    and pixmaps, which are the only kinds of drawables relevant for DRI2.
    
    Fixes server crash with GLX compositing managers such as compiz or kwin, due
    to looking up a window private for a pixmap and getting a bogus pointer.
    
    Signed-off-by: Michel Dänzer <daenzer at vmware.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index 0687202..27d8e25 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -118,12 +118,15 @@ DRI2GetDrawable(DrawablePtr pDraw)
     WindowPtr pWin;
     PixmapPtr pPixmap;
 
-    if (WindowDrawable(pDraw->type)) {
+    switch (pDraw->type) {
+    case DRAWABLE_WINDOW:
 	pWin = (WindowPtr) pDraw;
 	return dixLookupPrivate(&pWin->devPrivates, dri2WindowPrivateKey);
-    } else {
+    case DRAWABLE_PIXMAP:
 	pPixmap = (PixmapPtr) pDraw;
 	return dixLookupPrivate(&pPixmap->devPrivates, dri2PixmapPrivateKey);
+    default:
+	return NULL;
     }
 }
 
@@ -161,7 +164,7 @@ DRI2AllocateDrawable(DrawablePtr pDraw)
     pPriv->last_swap_ust = 0;
     list_init(&pPriv->reference_list);
 
-    if (WindowDrawable(pDraw->type)) {
+    if (pDraw->type == DRAWABLE_WINDOW) {
 	pWin = (WindowPtr) pDraw;
 	dixSetPrivate(&pWin->devPrivates, dri2WindowPrivateKey, pPriv);
     } else {
@@ -272,7 +275,7 @@ static int DRI2DrawableGone(pointer p, XID id)
 	return Success;
 
     pDraw = pPriv->drawable;
-    if (WindowDrawable(pDraw->type)) {
+    if (pDraw->type == DRAWABLE_WINDOW) {
 	pWin = (WindowPtr) pDraw;
 	dixSetPrivate(&pWin->devPrivates, dri2WindowPrivateKey, NULL);
     } else {
@@ -411,12 +414,12 @@ do_get_buffers(DrawablePtr pDraw, int *width, int *height,
 	    need_real_front--;
 	    front_format = format;
 
-	    if (WindowDrawable(pDraw->type)) {
+	    if (pDraw->type == DRAWABLE_WINDOW) {
 		need_fake_front++;
 	    }
 	}
 
-	if (WindowDrawable(pDraw->type)) {
+	if (pDraw->type == DRAWABLE_WINDOW) {
 	    if (attachment == DRI2BufferFakeFrontLeft) {
 		need_fake_front--;
 		have_fake_front = 1;
diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
index 8016edb..4e48e65 100644
--- a/hw/xfree86/dri2/dri2ext.c
+++ b/hw/xfree86/dri2/dri2ext.c
@@ -55,7 +55,9 @@ static Bool
 validDrawable(ClientPtr client, XID drawable, Mask access_mode,
 	      DrawablePtr *pDrawable, int *status)
 {
-    *status = dixLookupDrawable(pDrawable, drawable, client, 0, access_mode);
+    *status = dixLookupDrawable(pDrawable, drawable, client,
+				M_DRAWABLE_WINDOW | M_DRAWABLE_PIXMAP,
+				access_mode);
     if (*status != Success) {
 	client->errorValue = drawable;
 	return FALSE;
commit 353e32d3712f3a883a796ba562ec9fb5a8354837
Author: Jamey Sharp <jamey at minilop.net>
Date:   Sun Jun 6 06:42:11 2010 -0700

    glxdriswrast bugfix: configure swapgc, not gc.
    
    I got this wrong in e2929db7b737413cf93fbebdf4d15abdfebff05c.
    
    Signed-off-by: Jamey Sharp <jamey at minilop.net>
    Cc: Kristian Høgsberg <krh at bitplanet.net>
    Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/glx/glxdriswrast.c b/glx/glxdriswrast.c
index ac8fd47..54f4440 100644
--- a/glx/glxdriswrast.c
+++ b/glx/glxdriswrast.c
@@ -329,7 +329,7 @@ __glXDRIscreenCreateDrawable(ClientPtr client,
     gcvals[0].val = GXcopy;
     ChangeGC(NullClient, private->gc, GCFunction, gcvals);
     gcvals[1].val = FALSE;
-    ChangeGC(NullClient, private->gc, GCFunction | GCGraphicsExposures, gcvals);
+    ChangeGC(NullClient, private->swapgc, GCFunction | GCGraphicsExposures, gcvals);
 
     private->driDrawable =
 	(*driScreen->swrast->createNewDrawable)(driScreen->driScreen,
commit b3548612c7943011f79a910f9a59bb975984d8a6
Author: Mario Kleiner <mario.kleiner at tuebingen.mpg.de>
Date:   Sat Jun 5 13:09:28 2010 +0200

    DRI2: Don't return junk reply instead of blocking in glXWaitForSbcOML()
    
    DRI2WaitSBC() didn't block if requested targetSBC wasn't yet reached.
    
    Instead it returned a xreply with uninitialized junk return values, then
    blocked the connection until targetSBC was reached.
    
    Therefore the client didn't block, but continued with bogus return
    values from glXWaitForSbcOML.
    
    This patch fixes the problem by implementing DRI2WaitSBC similar
    to the clean and proven DRI2WaitMSC implementation.
    
    Signed-off-by: Mario Kleiner <mario.kleiner at tuebingen.mpg.de>
    Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index e20595a..0687202 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -912,8 +912,7 @@ DRI2WaitMSC(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc,
 }
 
 int
-DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc,
-	    CARD64 *ust, CARD64 *msc, CARD64 *sbc)
+DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc)
 {
     DRI2DrawablePtr pPriv;
 
@@ -927,14 +926,13 @@ DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw, CARD64 target_sbc,
     if (target_sbc == 0)
         target_sbc = pPriv->swap_count + pPriv->swapsPending;
 
-    /* If current swap count already >= target_sbc,
+    /* If current swap count already >= target_sbc, reply and
      * return immediately with (ust, msc, sbc) triplet of
      * most recent completed swap.
      */
     if (pPriv->swap_count >= target_sbc) {
-        *sbc = pPriv->swap_count;
-        *msc = pPriv->last_swap_msc;
-        *ust = pPriv->last_swap_ust;
+        ProcDRI2WaitMSCReply(client, pPriv->last_swap_ust,
+                             pPriv->last_swap_msc, pPriv->swap_count);
         return Success;
     }
 
diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h
index f08ca29..fe0bf6c 100644
--- a/hw/xfree86/dri2/dri2.h
+++ b/hw/xfree86/dri2/dri2.h
@@ -265,8 +265,7 @@ extern _X_EXPORT int DRI2WaitMSC(ClientPtr client, DrawablePtr pDrawable,
 extern _X_EXPORT int ProcDRI2WaitMSCReply(ClientPtr client, CARD64 ust,
 					  CARD64 msc, CARD64 sbc);
 extern _X_EXPORT int DRI2WaitSBC(ClientPtr client, DrawablePtr pDraw,
-				 CARD64 target_sbc, CARD64 *ust, CARD64 *msc,
-				 CARD64 *sbc);
+				 CARD64 target_sbc);
 extern _X_EXPORT Bool DRI2ThrottleClient(ClientPtr client, DrawablePtr pDraw);
 
 extern _X_EXPORT Bool DRI2CanFlip(DrawablePtr pDraw);
diff --git a/hw/xfree86/dri2/dri2ext.c b/hw/xfree86/dri2/dri2ext.c
index db04268..8016edb 100644
--- a/hw/xfree86/dri2/dri2ext.c
+++ b/hw/xfree86/dri2/dri2ext.c
@@ -520,9 +520,8 @@ static int
 ProcDRI2WaitSBC(ClientPtr client)
 {
     REQUEST(xDRI2WaitSBCReq);
-    xDRI2MSCReply rep;
     DrawablePtr pDrawable;
-    CARD64 target, ust, msc, sbc;
+    CARD64 target;
     int status;
 
     REQUEST_SIZE_MATCH(xDRI2WaitSBCReq);
@@ -532,18 +531,9 @@ ProcDRI2WaitSBC(ClientPtr client)
 	return status;
 
     target = vals_to_card64(stuff->target_sbc_lo, stuff->target_sbc_hi);
-    status = DRI2WaitSBC(client, pDrawable, target, &ust, &msc, &sbc);
-    if (status != Success)
-	return status;
+    status = DRI2WaitSBC(client, pDrawable, target);
 
-    rep.type = X_Reply;
-    rep.length = 0;
-    rep.sequenceNumber = client->sequence;
-    load_msc_reply(&rep, ust, msc, sbc);
-
-    WriteToClient(client, sizeof(xDRI2MSCReply), &rep);
-
-    return Success;
+    return status;
 }
 
 static int
commit 7287ef9e6cf953066e4a092cca9d0e4a279172bf
Author: Mikhail Gusarov <dottedmag at dottedmag.net>
Date:   Sun Jun 6 21:18:40 2010 +0700

    Remove unnecessary parentheses around return values in functions
    
    This patch was generated by the following Perl code:
    
    perl -i -pe 's/([^_])return\s*\(\s*([^(]+?)\s*\)s*;(\s+(\n))?/$1return $2;$4/g;'
    
    Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
    Reviewed-by: Jamey Sharp <jamey at minilop.net>
    Reviewed-by: Daniel Stone <daniel at fooishbar.org>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/Xext/panoramiX.c b/Xext/panoramiX.c
index 27ca01f..b73c53f 100644
--- a/Xext/panoramiX.c
+++ b/Xext/panoramiX.c
@@ -339,7 +339,7 @@ XineramaFindIDByScrnum(pointer resource, XID id, pointer privdata)
     PanoramiXRes *res = (PanoramiXRes*)resource;
     PanoramiXSearchData *data = (PanoramiXSearchData*)privdata;
     
-    return (res->info[data->screen].id == data->id);
+    return res->info[data->screen].id == data->id;
 }
 
 PanoramiXRes *
diff --git a/Xext/panoramiXprocs.c b/Xext/panoramiXprocs.c
index aac417c..b744e4d 100644
--- a/Xext/panoramiXprocs.c
+++ b/Xext/panoramiXprocs.c
@@ -155,7 +155,7 @@ int PanoramiXCreateWindow(ClientPtr client)
     else 
         free(newWin);
 
-    return (result);
+    return result;
 }
 
 
@@ -227,7 +227,7 @@ int PanoramiXChangeWindowAttributes(ClientPtr client)
         result = (*SavedProcVector[X_ChangeWindowAttributes])(client);
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -253,7 +253,7 @@ int PanoramiXDestroyWindow(ClientPtr client)
     /* Since ProcDestroyWindow is using FreeResource, it will free
 	our resource for us on the last pass through the loop above */
  
-    return (result);
+    return result;
 }
 
 
@@ -279,7 +279,7 @@ int PanoramiXDestroySubwindows(ClientPtr client)
     /* DestroySubwindows is using FreeResource which will free
 	our resources for us on the last pass through the loop above */
 
-    return (result);
+    return result;
 }
 
 
@@ -302,7 +302,7 @@ int PanoramiXChangeSaveSet(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -341,7 +341,7 @@ int PanoramiXReparentWindow(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -364,7 +364,7 @@ int PanoramiXMapWindow(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -387,7 +387,7 @@ int PanoramiXMapSubwindows(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -410,7 +410,7 @@ int PanoramiXUnmapWindow(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -433,7 +433,7 @@ int PanoramiXUnmapSubwindows(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -502,7 +502,7 @@ int PanoramiXConfigureWindow(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -525,7 +525,7 @@ int PanoramiXCirculateWindow(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -679,7 +679,7 @@ int PanoramiXCreatePixmap(ClientPtr client)
     else 
 	free(newPix);
 
-    return (result);
+    return result;
 }
 
 
@@ -707,7 +707,7 @@ int PanoramiXFreePixmap(ClientPtr client)
     /* Since ProcFreePixmap is using FreeResource, it will free
 	our resource for us on the last pass through the loop above */
  
-    return (result);
+    return result;
 }
 
 
@@ -789,7 +789,7 @@ int PanoramiXCreateGC(ClientPtr client)
     else 
         free(newGC);
 
-    return (result);
+    return result;
 }
 
 int PanoramiXChangeGC(ClientPtr client)
@@ -855,7 +855,7 @@ int PanoramiXChangeGC(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -884,7 +884,7 @@ int PanoramiXCopyGC(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -907,7 +907,7 @@ int PanoramiXSetDashes(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -930,7 +930,7 @@ int PanoramiXSetClipRectangles(ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 
@@ -956,7 +956,7 @@ int PanoramiXFreeGC(ClientPtr client)
     /* Since ProcFreeGC is using FreeResource, it will free
 	our resource for us on the last pass through the loop above */
  
-    return (result);
+    return result;
 }
 
 
@@ -987,7 +987,7 @@ int PanoramiXClearToBackground(ClientPtr client)
 	if(result != Success) break;
     }
  
-    return (result);
+    return result;
 }
 
 
@@ -1069,7 +1069,7 @@ int PanoramiXCopyArea(ClientPtr client)
 	    if(drawables[0]->depth != pDst->depth) {
 		client->errorValue = stuff->dstDrawable;
 		free(data);
-		return (BadMatch);
+		return BadMatch;
 	    }
 
 	    (*pGC->ops->PutImage) (pDst, pGC, pDst->depth, dstx, dsty, 
@@ -1112,7 +1112,7 @@ int PanoramiXCopyArea(ClientPtr client)
 		if ((pDst->pScreen != pSrc->pScreen) || 
 		    (pDst->depth != pSrc->depth)) {
 			client->errorValue = stuff->dstDrawable;
-			return (BadMatch);
+			return BadMatch;
    		}
  	    } else
 		pSrc = pDst;
@@ -1215,7 +1215,7 @@ int PanoramiXCopyPlane(ClientPtr client)
 
             if (pdstDraw->pScreen != psrcDraw->pScreen) {
 		client->errorValue = stuff->dstDrawable;
-		return (BadMatch);
+		return BadMatch;
 	    }
 	} else
 	    psrcDraw = pdstDraw;
@@ -1223,7 +1223,7 @@ int PanoramiXCopyPlane(ClientPtr client)
 	if(stuff->bitPlane == 0 || (stuff->bitPlane & (stuff->bitPlane - 1)) ||
 		(stuff->bitPlane > (1L << (psrcDraw->depth - 1)))) {
 	    client->errorValue = stuff->bitPlane;
-	    return(BadValue);
+	    return BadValue;
 	}
 
 	pRgn = (*pGC->ops->CopyPlane)(psrcDraw, pdstDraw, pGC,
@@ -1305,7 +1305,7 @@ int PanoramiXPolyPoint(ClientPtr client)
 	    if(result != Success) break;
         }
         free(origPts);
-        return (result);
+        return result;
     } else
 	return Success;
 }
@@ -1365,7 +1365,7 @@ int PanoramiXPolyLine(ClientPtr client)
 	    if(result != Success) break;
         }
         free(origPts);
-        return (result);
+        return result;
    } else
 	return Success;
 }
@@ -1428,7 +1428,7 @@ int PanoramiXPolySegment(ClientPtr client)
 	    if(result != Success) break;
     	}
 	free(origSegs);
-	return (result);
+	return result;
     } else
 	  return Success;
 }
@@ -1490,7 +1490,7 @@ int PanoramiXPolyRectangle(ClientPtr client)
 	    if(result != Success) break;
 	}
 	free(origRecs);
-	return (result);
+	return result;
     } else
        return Success;
 }
@@ -1550,7 +1550,7 @@ int PanoramiXPolyArc(ClientPtr client)
 	    if(result != Success) break;
         }
 	free(origArcs);
-	return (result);
+	return result;
     } else
        return Success;
 }
@@ -1611,7 +1611,7 @@ int PanoramiXFillPoly(ClientPtr client)
 	    if(result != Success) break;
 	}
 	free(locPts);
-	return (result);
+	return result;
     } else
        return Success;
 }
@@ -1672,7 +1672,7 @@ int PanoramiXPolyFillRectangle(ClientPtr client)
 	    if(result != Success) break;
 	}
 	free(origRects);
-	return (result);
+	return result;
     } else
        return Success;
 }
@@ -1733,7 +1733,7 @@ int PanoramiXPolyFillArc(ClientPtr client)
 	    if(result != Success) break;
 	}
 	free(origArcs);
-	return (result);
+	return result;
     } else
        return Success;
 }
@@ -1775,7 +1775,7 @@ int PanoramiXPutImage(ClientPtr client)
 	result = (* SavedProcVector[X_PutImage])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -1798,7 +1798,7 @@ int PanoramiXGetImage(ClientPtr client)
 
     if ((stuff->format != XYPixmap) && (stuff->format != ZPixmap)) {
 	client->errorValue = stuff->format;
-        return(BadValue);
+        return BadValue;
     }
 
     rc = dixLookupResourceByClass((pointer *)&draw, stuff->drawable,
@@ -1815,7 +1815,7 @@ int PanoramiXGetImage(ClientPtr client)
 	return rc;
 
     if(!((WindowPtr)pDraw)->realized)
-	return(BadMatch);
+	return BadMatch;
 
     x = stuff->x;
     y = stuff->y;
@@ -1830,7 +1830,7 @@ int PanoramiXGetImage(ClientPtr client)
       if( /* check for being onscreen */
 	x < 0 || x + w > PanoramiXPixWidth ||
 	y < 0 || y + h > PanoramiXPixHeight )
-	    return(BadMatch);
+	    return BadMatch;
     } else {
       if( /* check for being onscreen */
 	screenInfo.screens[0]->x + pDraw->x + x < 0 ||
@@ -1842,7 +1842,7 @@ int PanoramiXGetImage(ClientPtr client)
 	x + w > wBorderWidth((WindowPtr)pDraw) + (int)pDraw->width ||
 	y < -wBorderWidth((WindowPtr)pDraw) ||
 	y + h > wBorderWidth ((WindowPtr)pDraw) + (int)pDraw->height)
-	    return(BadMatch);
+	    return BadMatch;
     }
 
     drawables[0] = pDraw;
@@ -1884,7 +1884,7 @@ int PanoramiXGetImage(ClientPtr client)
     }
     length = linesPerBuf * widthBytesLine;
     if(!(pBuf = malloc(length)))
-	return (BadAlloc);
+	return BadAlloc;
 
     WriteReplyToClient(client, sizeof (xGetImageReply), &xgi);
 
@@ -1976,7 +1976,7 @@ PanoramiXPolyText8(ClientPtr client)
 	result = (*SavedProcVector[X_PolyText8])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 int 
@@ -2017,7 +2017,7 @@ PanoramiXPolyText16(ClientPtr client)
 	result = (*SavedProcVector[X_PolyText16])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2058,7 +2058,7 @@ int PanoramiXImageText8(ClientPtr client)
 	result = (*SavedProcVector[X_ImageText8])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2099,7 +2099,7 @@ int PanoramiXImageText16(ClientPtr client)
 	result = (*SavedProcVector[X_ImageText16])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2139,7 +2139,7 @@ int PanoramiXCreateColormap(ClientPtr client)
     else 
         free(newCmap);
 
-    return (result);
+    return result;
 }
 
 
@@ -2167,7 +2167,7 @@ int PanoramiXFreeColormap(ClientPtr client)
     /* Since ProcFreeColormap is using FreeResource, it will free
 	our resource for us on the last pass through the loop above */
 
-    return (result);
+    return result;
 }
 
 
@@ -2208,7 +2208,7 @@ PanoramiXCopyColormapAndFree(ClientPtr client)
     else 
         free(newCmap);
 
-    return (result);
+    return result;
 }
 
 
@@ -2232,7 +2232,7 @@ int PanoramiXInstallColormap(ClientPtr client)
 	result = (* SavedProcVector[X_InstallColormap])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2256,7 +2256,7 @@ int PanoramiXUninstallColormap(ClientPtr client)
 	result = (* SavedProcVector[X_UninstallColormap])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2280,7 +2280,7 @@ int PanoramiXAllocColor(ClientPtr client)
 	result = (* SavedProcVector[X_AllocColor])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2304,7 +2304,7 @@ int PanoramiXAllocNamedColor(ClientPtr client)
         result = (* SavedProcVector[X_AllocNamedColor])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2328,7 +2328,7 @@ int PanoramiXAllocColorCells(ClientPtr client)
 	result = (* SavedProcVector[X_AllocColorCells])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2352,7 +2352,7 @@ int PanoramiXAllocColorPlanes(ClientPtr client)
 	result = (* SavedProcVector[X_AllocColorPlanes])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2376,7 +2376,7 @@ int PanoramiXFreeColors(ClientPtr client)
         stuff->cmap = cmap->info[j].id;
         result = (* SavedProcVector[X_FreeColors])(client);
     }
-    return (result);
+    return result;
 }
 
 
@@ -2400,7 +2400,7 @@ int PanoramiXStoreColors(ClientPtr client)
 	result = (* SavedProcVector[X_StoreColors])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 
 
@@ -2424,5 +2424,5 @@ int PanoramiXStoreNamedColor(ClientPtr client)
 	result = (* SavedProcVector[X_StoreNamedColor])(client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
diff --git a/Xext/security.c b/Xext/security.c
index 9ef6d19..b37339f 100644
--- a/Xext/security.c
+++ b/Xext/security.c
@@ -242,7 +242,7 @@ SecurityDeleteAuthorizationEventClient(
 	    else
 		pAuth->eventClients = pEventClient->next;
 	    free(pEventClient);
-	    return(Success);
+	    return Success;
 	}
 	prev = pEventClient;
     }
diff --git a/Xext/shape.c b/Xext/shape.c
index 33c0cb3..ac95328 100644
--- a/Xext/shape.c
+++ b/Xext/shape.c
@@ -363,7 +363,7 @@ ProcPanoramiXShapeRectangles(
 	result = ProcShapeRectangles (client);
 	if (result != Success) break;
     }
-    return (result);
+    return result;
 }
 #endif
 
@@ -472,7 +472,7 @@ ProcPanoramiXShapeMask(
 	result = ProcShapeMask (client);
 	if (result != Success) break;
     }
-    return (result);
+    return result;
 }
 #endif
 
@@ -596,7 +596,7 @@ ProcPanoramiXShapeCombine(
 	result = ProcShapeCombine (client);
 	if (result != Success) break;
     }
-    return (result);
+    return result;
 }
 #endif
 
@@ -662,7 +662,7 @@ ProcPanoramiXShapeOffset(
 	result = ProcShapeOffset (client);
 	if(result != Success) break;
     }
-    return (result);
+    return result;
 }
 #endif
 
diff --git a/Xext/shm.c b/Xext/shm.c
index dfd8723..3230d83 100644
--- a/Xext/shm.c
+++ b/Xext/shm.c
@@ -213,7 +213,7 @@ static Bool CheckForShmSyscall(void)
         badSysCall = TRUE;
     }
     signal(SIGSYS, oldHandler);
-    return(!badSysCall);
+    return !badSysCall;
 }
 
 #define MUST_CHECK_FOR_SHM_SYSCALL
@@ -456,7 +456,7 @@ ProcShmAttach(ClientPtr client)
     if ((stuff->readOnly != xTrue) && (stuff->readOnly != xFalse))
     {
 	client->errorValue = stuff->readOnly;
-        return(BadValue);
+        return BadValue;
     }
     for (shmdesc = Shmsegs;
 	 shmdesc && (shmdesc->shmid != stuff->shmid);
@@ -619,7 +619,7 @@ ProcPanoramiXShmPutImage(ClientPtr client)
 	result = ProcShmPutImage(client);
 	if(result != Success) break;
     }
-    return(result);
+    return result;
 }
 
 static int 
@@ -641,7 +641,7 @@ ProcPanoramiXShmGetImage(ClientPtr client)
 
     if ((stuff->format != XYPixmap) && (stuff->format != ZPixmap)) {
 	client->errorValue = stuff->format;
-        return(BadValue);
+        return BadValue;
     }
 
     rc = dixLookupResourceByClass((pointer *)&draw, stuff->drawable,
@@ -672,7 +672,7 @@ ProcPanoramiXShmGetImage(ClientPtr client)
       if( /* check for being onscreen */
 	x < 0 || x + w > PanoramiXPixWidth ||
 	y < 0 || y + h > PanoramiXPixHeight )
-	    return(BadMatch);
+	    return BadMatch;
     } else {
       if( /* check for being onscreen */
 	screenInfo.screens[0]->x + pDraw->x + x < 0 ||
@@ -684,12 +684,12 @@ ProcPanoramiXShmGetImage(ClientPtr client)
 	x + w > wBorderWidth((WindowPtr)pDraw) + (int)pDraw->width ||
 	y < -wBorderWidth((WindowPtr)pDraw) ||
 	y + h > wBorderWidth ((WindowPtr)pDraw) + (int)pDraw->height)
-	    return(BadMatch);
+	    return BadMatch;
     }
 
     drawables = calloc(PanoramiXNumScreens, sizeof(DrawablePtr));
     if(!drawables)
-	return(BadAlloc);
+	return BadAlloc;
 
     drawables[0] = pDraw;
     for(i = 1; i < PanoramiXNumScreens; i++) {
@@ -987,7 +987,7 @@ ProcShmGetImage(ClientPtr client)
     if ((stuff->format != XYPixmap) && (stuff->format != ZPixmap))
     {
 	client->errorValue = stuff->format;
-        return(BadValue);
+        return BadValue;
     }
     rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0,
 			   DixReadAccess);
@@ -1011,7 +1011,7 @@ ProcShmGetImage(ClientPtr client)
          stuff->y + (int)stuff->height >
 		wBorderWidth((WindowPtr)pDraw) + (int)pDraw->height
         )
-	    return(BadMatch);
+	    return BadMatch;
 	xgi.visual = wVisual(((WindowPtr)pDraw));
     }
     else
@@ -1021,7 +1021,7 @@ ProcShmGetImage(ClientPtr client)
 	    stuff->y < 0 ||
 	    stuff->y+(int)stuff->height > pDraw->height
 	    )
-	    return(BadMatch);
+	    return BadMatch;
 	xgi.visual = None;
     }
     xgi.type = X_Reply;
@@ -1181,7 +1181,7 @@ CreatePmap:
 	}
 	pDraw->pScreen->DestroyPixmap(pMap);
     }
-    return (BadAlloc);
+    return BadAlloc;
 }
 
 static int
diff --git a/Xext/xf86bigfont.c b/Xext/xf86bigfont.c
index 8b3913d..8f0ddd9 100644
--- a/Xext/xf86bigfont.c
+++ b/Xext/xf86bigfont.c
@@ -134,7 +134,7 @@ CheckForShmSyscall(void)
         badSysCall = TRUE;
     }
     signal(SIGSYS, oldHandler);
-    return (!badSysCall);
+    return !badSysCall;
 }
 
 #define MUST_CHECK_FOR_SHM_SYSCALL
diff --git a/Xext/xtest.c b/Xext/xtest.c
index 2c733d8..7268768 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -465,7 +465,7 @@ ProcXTestGrabControl(ClientPtr client)
     if ((stuff->impervious != xTrue) && (stuff->impervious != xFalse))
     {
         client->errorValue = stuff->impervious;
-        return(BadValue);
+        return BadValue;
     }
     if (stuff->impervious)
         MakeClientGrabImpervious(client);
diff --git a/Xext/xvdisp.c b/Xext/xvdisp.c
index c63706d..deddebd 100644
--- a/Xext/xvdisp.c
+++ b/Xext/xvdisp.c
@@ -483,7 +483,7 @@ ProcXvQueryEncodings(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   rep.type = X_Reply;
@@ -540,14 +540,14 @@ ProcXvPutVideo(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!(pPort->pAdaptor->type & XvInputMask) ||
 	!(pPort->pAdaptor->type & XvVideoMask))
     {
       client->errorValue = stuff->port;
-      return (BadMatch);
+      return BadMatch;
     }
 
   status = XvdiMatchPort(pPort, pDraw);
@@ -578,14 +578,14 @@ ProcXvPutStill(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!(pPort->pAdaptor->type & XvInputMask) ||
 	!(pPort->pAdaptor->type & XvStillMask))
     {
       client->errorValue = stuff->port;
-      return (BadMatch);
+      return BadMatch;
     }
 
   status = XvdiMatchPort(pPort, pDraw);
@@ -616,14 +616,14 @@ ProcXvGetVideo(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!(pPort->pAdaptor->type & XvOutputMask) ||
 	!(pPort->pAdaptor->type & XvVideoMask))
     {
       client->errorValue = stuff->port;
-      return (BadMatch);
+      return BadMatch;
     }
 
   status = XvdiMatchPort(pPort, pDraw);
@@ -654,14 +654,14 @@ ProcXvGetStill(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!(pPort->pAdaptor->type & XvOutputMask) ||
 	!(pPort->pAdaptor->type & XvStillMask))
     {
       client->errorValue = stuff->port;
-      return (BadMatch);
+      return BadMatch;
     }
 
   status = XvdiMatchPort(pPort, pDraw);
@@ -703,7 +703,7 @@ ProcXvSelectPortNotify(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   return XvdiSelectPortNotify(client, pPort, stuff->onoff);
@@ -723,7 +723,7 @@ ProcXvGrabPort(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   status = XvdiGrabPort(client, pPort, stuff->time, &result);
@@ -756,7 +756,7 @@ ProcXvUngrabPort(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   return XvdiUngrabPort(client, pPort, stuff->time);
@@ -776,7 +776,7 @@ ProcXvStopVideo(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   rc = dixLookupDrawable(&pDraw, stuff->drawable, client, 0, DixWriteAccess);
@@ -799,13 +799,13 @@ ProcXvSetPortAttribute(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!ValidAtom(stuff->attribute))
     {
       client->errorValue = stuff->attribute;
-      return(BadAtom);
+      return BadAtom;
     }
 
   status = XvdiSetPortAttribute(client, pPort, stuff->attribute, stuff->value);
@@ -833,13 +833,13 @@ ProcXvGetPortAttribute(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!ValidAtom(stuff->attribute))
     {
       client->errorValue = stuff->attribute;
-      return(BadAtom);
+      return BadAtom;
     }
 
   status = XvdiGetPortAttribute(client, pPort, stuff->attribute, &value);
@@ -874,7 +874,7 @@ ProcXvQueryBestSize(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   rep.type = X_Reply;
@@ -911,7 +911,7 @@ ProcXvQueryPortAttributes(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   rep.type = X_Reply;
@@ -967,14 +967,14 @@ ProcXvPutImage(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!(pPort->pAdaptor->type & XvImageMask) ||
 	!(pPort->pAdaptor->type & XvInputMask))
     {
       client->errorValue = stuff->port;
-      return (BadMatch);
+      return BadMatch;
     }
 
   status = XvdiMatchPort(pPort, pDraw);
@@ -1047,14 +1047,14 @@ ProcXvShmPutImage(ClientPtr client)
   if ((status = _AllocatePort(stuff->port, pPort)) != Success)
     {
       client->errorValue = stuff->port;
-      return (status);
+      return status;
     }
 
   if (!(pPort->pAdaptor->type & XvImageMask) ||
 	!(pPort->pAdaptor->type & XvInputMask))
     {
       client->errorValue = stuff->port;
-      return (BadMatch);
+      return BadMatch;
     }
 
   status = XvdiMatchPort(pPort, pDraw);
@@ -1113,7 +1113,7 @@ static int
 ProcXvShmPutImage(ClientPtr client)
 {
     SendErrorToClient(client, XvReqCode, xv_ShmPutImage, 0, BadImplementation);
-    return(BadImplementation);
+    return BadImplementation;
 }
 #endif
 
@@ -1267,7 +1267,7 @@ ProcXvDispatch(ClientPtr client)
 
   if (stuff->data > xvNumRequests) {
     SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest);
-    return(BadRequest);
+    return BadRequest;
   }
 
   return XvProcVector[stuff->data](client);
@@ -1591,7 +1591,7 @@ SProcXvDispatch(ClientPtr client)
 
   if (stuff->data > xvNumRequests) {
     SendErrorToClient(client, XvReqCode, stuff->data, 0, BadRequest);
-    return(BadRequest);
+    return BadRequest;
   }
 
   return SXvProcVector[stuff->data](client);
diff --git a/Xext/xvmain.c b/Xext/xvmain.c
index 0c34b16..1b80b12 100644
--- a/Xext/xvmain.c
+++ b/Xext/xvmain.c
@@ -634,7 +634,7 @@ XvdiPutVideo(
 
   pPort->time = currentTime;
 
-  return (Success);
+  return Success;
 
 }
 
@@ -764,7 +764,7 @@ XvdiGetVideo(
 
   pPort->time = currentTime;
 
-  return (Success);
+  return Success;
 
 }
 
diff --git a/Xi/exevents.c b/Xi/exevents.c
index 56d9bf7..a609c73 100644
--- a/Xi/exevents.c
+++ b/Xi/exevents.c
@@ -1702,7 +1702,7 @@ InputClientGone(WindowPtr pWin, XID id)
     InputClientsPtr other, prev;
 
     if (!wOtherInputMasks(pWin))
-	return (Success);
+	return Success;
     prev = 0;
     for (other = wOtherInputMasks(pWin)->inputClients; other;
 	 other = other->next) {
@@ -1728,7 +1728,7 @@ InputClientGone(WindowPtr pWin, XID id)
 		free(other);
 	    }
 	    RecalculateDeviceDeliverableEvents(pWin);
-	    return (Success);
+	    return Success;
 	}
 	prev = other;
     }
@@ -1829,7 +1829,7 @@ ChangeKeyMapping(ClientPtr client,
     KeyClassPtr k = dev->key;
 
     if (k == NULL)
-	return (BadMatch);
+	return BadMatch;
 
     if (len != (keyCodes * keySymsPerKeyCode))
 	return BadLength;
@@ -1972,7 +1972,7 @@ MaybeSendDeviceMotionNotifyHint(deviceKeyButtonPointer * pEvents, Mask mask)
 	    pEvents->detail = NotifyNormal;
 	}
     }
-    return (0);
+    return 0;
 }
 
 void
diff --git a/Xi/getprop.c b/Xi/getprop.c
index 2460459..ba98fc8 100644
--- a/Xi/getprop.c
+++ b/Xi/getprop.c
@@ -164,7 +164,7 @@ XEventClass
 			*buf++ = (id << 8) | EventInfo[j].type;
 		}
 	}
-    return (buf);
+    return buf;
 }
 
 /***********************************************************************
diff --git a/Xi/listdev.c b/Xi/listdev.c
index db7e540..3b2272b 100644
--- a/Xi/listdev.c
+++ b/Xi/listdev.c
@@ -269,7 +269,7 @@ CopySwapValuatorClass(ClientPtr client, ValuatorClassPtr v, char **buf)
 	    *buf += sizeof(xAxisInfo);
 	}
     }
-    return (i);
+    return i;
 }
 
 static void
diff --git a/Xi/opendev.c b/Xi/opendev.c
index 3844d25..e4c02d3 100644
--- a/Xi/opendev.c
+++ b/Xi/opendev.c
@@ -154,7 +154,7 @@ ProcXOpenDevice(ClientPtr client)
     rep.num_classes = j;
     WriteReplyToClient(client, sizeof(xOpenDeviceReply), &rep);
     WriteToClient(client, j * sizeof(xInputClassInfo), (char *)evbase);
-    return (Success);
+    return Success;
 }
 
 /***********************************************************************
diff --git a/Xi/sendexev.c b/Xi/sendexev.c
index bd96d74..16cbd6f 100644
--- a/Xi/sendexev.c
+++ b/Xi/sendexev.c
@@ -97,7 +97,7 @@ SProcXSendExtensionEvent(ClientPtr client)
     for (i = 0; i < stuff->num_events; i++, eventP++) {
 	proc = EventSwapVector[eventP->u.u.type & 0177];
 	if (proc == NotImplemented)	/* no swapping proc; invalid event type? */
-	    return (BadValue);
+	    return BadValue;
 	(*proc) (eventP, &eventT);
 	*eventP = eventT;
     }
diff --git a/Xi/stubs.c b/Xi/stubs.c
index 04ba976..296a8c4 100644
--- a/Xi/stubs.c
+++ b/Xi/stubs.c
@@ -207,14 +207,14 @@ ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
 {
     switch (control->control) {
     case DEVICE_RESOLUTION:
-	return (BadMatch);
+	return BadMatch;
     case DEVICE_ABS_CALIB:
     case DEVICE_ABS_AREA:
-        return (BadMatch);
+        return BadMatch;
     case DEVICE_CORE:
-        return (BadMatch);
+        return BadMatch;
     default:
-	return (BadMatch);
+	return BadMatch;
     }
 }
 
diff --git a/Xi/xiproperty.c b/Xi/xiproperty.c
index c1839aa..b9f53f7 100644
--- a/Xi/xiproperty.c
+++ b/Xi/xiproperty.c
@@ -254,18 +254,18 @@ get_property(ClientPtr client, DeviceIntPtr dev, Atom property, Atom type,
     if (!ValidAtom(property))
     {
         client->errorValue = property;
-        return(BadAtom);
+        return BadAtom;
     }
     if ((delete != xTrue) && (delete != xFalse))
     {
         client->errorValue = delete;
-        return(BadValue);
+        return BadValue;
     }
 
     if ((type != AnyPropertyType) && !ValidAtom(type))
     {
         client->errorValue = type;
-        return(BadAtom);
+        return BadAtom;
     }
 
     for (prop = dev->properties.properties; prop; prop = prop->next)
@@ -350,12 +350,12 @@ check_change_property(ClientPtr client, Atom property, Atom type, int format,
     if (!ValidAtom(property))
     {
         client->errorValue = property;
-        return(BadAtom);
+        return BadAtom;
     }
     if (!ValidAtom(type))
     {
         client->errorValue = type;
-        return(BadAtom);
+        return BadAtom;
     }
 
     return Success;
@@ -683,7 +683,7 @@ XIDeleteDeviceProperty (DeviceIntPtr device, Atom property, Bool fromClient)
             if (handler->DeleteProperty)
                 rc = handler->DeleteProperty(device, prop->propertyName);
             if (rc != Success)
-                return (rc);
+                return rc;
             handler = handler->next;
         }
     }
@@ -720,7 +720,7 @@ XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
     {
         prop = XICreateDeviceProperty (property);
         if (!prop)
-            return(BadAlloc);
+            return BadAlloc;
         add = TRUE;
         mode = PropModeReplace;
     }
@@ -732,9 +732,9 @@ XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
      "PropModeReplace" since they will be written over. */
 
     if ((format != prop_value->format) && (mode != PropModeReplace))
-        return(BadMatch);
+        return BadMatch;
     if ((prop_value->type != type) && (mode != PropModeReplace))
-        return(BadMatch);
+        return BadMatch;
     new_value = *prop_value;
     if (mode == PropModeReplace)
         total_len = len;
@@ -798,7 +798,7 @@ XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
                         if (checkonly && rc != Success)
                         {
                             free(new_value.data);
-                            return (rc);
+                            return rc;
                         }
                     }
                     handler = handler->next;
@@ -823,7 +823,7 @@ XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
         send_property_event(dev, prop->propertyName,
                             (add) ?  XIPropertyCreated : XIPropertyModified);
 
-    return(Success);
+    return Success;
 }
 
 int
@@ -956,7 +956,7 @@ ProcXDeleteDeviceProperty (ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
         client->errorValue = stuff->property;
-        return (BadAtom);
+        return BadAtom;
     }
 
     rc = XIDeleteDeviceProperty(dev, stuff->property, TRUE);
@@ -1199,7 +1199,7 @@ ProcXIDeleteProperty(ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
         client->errorValue = stuff->property;
-        return (BadAtom);
+        return BadAtom;
     }
 
     rc = XIDeleteDeviceProperty(dev, stuff->property, TRUE);
diff --git a/dbe/dbe.c b/dbe/dbe.c
index b4b7466..77b616b 100644
--- a/dbe/dbe.c
+++ b/dbe/dbe.c
@@ -199,7 +199,7 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
     /* The window must be InputOutput. */
     if (pWin->drawable.class != InputOutput)
     {
-	return(BadMatch);
+	return BadMatch;
     }
 
     /* The swap action must be valid. */
@@ -209,7 +209,7 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
         (swapAction != XdbeUntouched ) &&
         (swapAction != XdbeCopied    ))
     {
-        return(BadValue);
+        return BadValue;
     }
 
     /* The id must be in range and not already in use. */
@@ -220,12 +220,12 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
      */
     pDbeScreenPriv = DBE_SCREEN_PRIV_FROM_WINDOW(pWin);
     if (!pDbeScreenPriv->GetVisualInfo)
-	return(BadMatch); /* screen doesn't support double buffering */
+	return BadMatch; /* screen doesn't support double buffering */
 
     if (!(*pDbeScreenPriv->GetVisualInfo)(pWin->drawable.pScreen, &scrVisInfo))
     {
         /* GetVisualInfo() failed to allocate visual info data. */
-        return(BadAlloc);
+        return BadAlloc;
     }
 
     /* See if the window's visual is on the list. */
@@ -243,7 +243,7 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
 
     if (!visualMatched)
     {
-	return(BadMatch);
+	return BadMatch;
     }
 
     if ((pDbeWindowPriv = DBE_WINDOW_PRIV(pWin)) == NULL)
@@ -254,7 +254,7 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
 
         pDbeWindowPriv = dixAllocateObjectWithPrivates(DbeWindowPrivRec, PRIVATE_DBE_WINDOW);
 	if (!pDbeWindowPriv)
-            return(BadAlloc);
+            return BadAlloc;
 
         /* Fill out window priv information. */
         pDbeWindowPriv->pWindow      = pWin;
@@ -321,7 +321,7 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
                 (pDbeWindowPriv->maxAvailableIDs+DBE_INCR_MAX_IDS)*sizeof(XID));
             if (!pDbeWindowPriv->IDs)
             {
-                return(BadAlloc);
+                return BadAlloc;
             }
             memset(&pDbeWindowPriv->IDs[pDbeWindowPriv->nBufferIDs], 0,
                    (pDbeWindowPriv->maxAvailableIDs + DBE_INCR_MAX_IDS -
@@ -377,12 +377,12 @@ ProcDbeAllocateBackBufferName(ClientPtr client)
     /* Set swap action on all calls. */
     pDbeWindowPriv->swapAction = stuff->swapAction;
 
-    return(status);
+    return status;
 
 out_free:
     dixSetPrivate(&pWin->devPrivates, dbeWindowPrivKey, NULL);
     free(pDbeWindowPriv);
-    return (status);
+    return status;
 
 } /* ProcDbeAllocateBackBufferName() */
 
@@ -445,12 +445,12 @@ ProcDbeDeallocateBackBufferName(ClientPtr client)
     {
         /* We did not find the ID in the ID list. */
         client->errorValue = stuff->buffer;
-        return(dbeErrorBase + DbeBadBuffer);
+        return dbeErrorBase + DbeBadBuffer;
     }
 
     FreeResource(stuff->buffer, RT_NONE);
 
-    return(Success);
+    return Success;
 
 } /* ProcDbeDeallocateBackBufferName() */
 
@@ -496,7 +496,7 @@ ProcDbeSwapBuffers(ClientPtr client)
 
     if (nStuff == 0)
     {
-        return(Success);
+        return Success;
     }
 
     if (nStuff > UINT32_MAX / sizeof(DbeSwapInfoRec))
@@ -509,7 +509,7 @@ ProcDbeSwapBuffers(ClientPtr client)
     swapInfo = (DbeSwapInfoPtr)malloc(nStuff * sizeof(DbeSwapInfoRec));
     if (swapInfo == NULL)
     {
-        return(BadAlloc);
+        return BadAlloc;
     }
 
 
@@ -529,7 +529,7 @@ ProcDbeSwapBuffers(ClientPtr client)
         if (DBE_WINDOW_PRIV(pWin) == NULL)
         {
             free(swapInfo);
-            return(BadMatch);
+            return BadMatch;
         }
 
         /* Each window must only be specified once - BadMatch. */
@@ -538,7 +538,7 @@ ProcDbeSwapBuffers(ClientPtr client)
             if (dbeSwapInfo[i].window == dbeSwapInfo[j].window)
             {
                 free(swapInfo);
-                return(BadMatch);
+                return BadMatch;
 	    }
         }
 
@@ -549,7 +549,7 @@ ProcDbeSwapBuffers(ClientPtr client)
             (dbeSwapInfo[i].swapAction != XdbeCopied    ))
         {
             free(swapInfo);
-            return(BadValue);
+            return BadValue;
         }
 
         /* Everything checks out OK.  Fill in the swap info array. */
@@ -579,12 +579,12 @@ ProcDbeSwapBuffers(ClientPtr client)
         if (error != Success)
         {
             free(swapInfo);
-            return(error);
+            return error;
         }
     }
     
     free(swapInfo);
-    return(Success);
+    return Success;
 
 } /* ProcDbeSwapBuffers() */
 
@@ -626,7 +626,7 @@ ProcDbeBeginIdiom(ClientPtr client)
         }
     }
 
-    return(Success);
+    return Success;
 
 } /* ProcDbeBeginIdiom() */
 
@@ -673,7 +673,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
         if (!(pDrawables = (DrawablePtr *)malloc(stuff->n *
                                                  sizeof(DrawablePtr))))
         {
-            return(BadAlloc);
+            return BadAlloc;
         }
 
         drawables = (Drawable *)&stuff[1];
@@ -695,7 +695,7 @@ ProcDbeGetVisualInfo(ClientPtr client)
     {
         free(pDrawables);
 
-        return(BadAlloc);
+        return BadAlloc;
     }
 
     length = 0;
@@ -894,7 +894,7 @@ ProcDbeDispatch(ClientPtr client)
             return(ProcDbeBeginIdiom(client));
 
         case X_DbeEndIdiom:
-            return(Success);
+            return Success;
 
         case X_DbeGetVisualInfo:
             return(ProcDbeGetVisualInfo(client));
@@ -903,7 +903,7 @@ ProcDbeDispatch(ClientPtr client)
             return(ProcDbeGetBackBufferAttributes(client));
 
         default:
-            return(BadRequest);
+            return BadRequest;
     }
 
 } /* ProcDbeDispatch() */
@@ -1195,7 +1195,7 @@ SProcDbeDispatch(ClientPtr client)
             return(SProcDbeBeginIdiom(client));
 
         case X_DbeEndIdiom:
-            return(Success);
+            return Success;
 
         case X_DbeGetVisualInfo:
             return(SProcDbeGetVisualInfo(client));
@@ -1204,7 +1204,7 @@ SProcDbeDispatch(ClientPtr client)
             return(SProcDbeGetBackBufferAttributes(client));
 
         default:
-            return (BadRequest);
+            return BadRequest;
     }
 
 } /* SProcDbeDispatch() */
@@ -1269,7 +1269,7 @@ DbeSetupBackgroundPainter(WindowPtr pWin, GCPtr pGC)
 
         default:
             /* pWin->backgroundState == None */
-            return(FALSE);
+            return FALSE;
     }
 
     return ChangeGC(NullClient, pGC, gcmask, gcvalues) == 0;
@@ -1295,7 +1295,7 @@ DbeSetupBackgroundPainter(WindowPtr pWin, GCPtr pGC)
 static int
 DbeDrawableDelete(pointer pDrawable, XID id)
 {
-    return(Success);
+    return Success;
 
 } /* DbeDrawableDelete() */
 
@@ -1335,7 +1335,7 @@ DbeWindowPrivDelete(pointer pDbeWinPriv, XID id)
     if (i == pDbeWindowPriv->nBufferIDs)
     {
         /* We did not find the ID in the array.  We should never get here. */
-        return(BadValue);
+        return BadValue;
     }
 
     /* Remove the ID from the array. */
@@ -1402,7 +1402,7 @@ DbeWindowPrivDelete(pointer pDbeWinPriv, XID id)
 	dixFreeObjectWithPrivates(pDbeWindowPriv, PRIVATE_DBE_WINDOW);
     }
 
-    return(Success);
+    return Success;
 
 } /* DbeWindowPrivDelete() */
 
@@ -1523,7 +1523,7 @@ DbeDestroyWindow(WindowPtr pWin)
      **************************************************************************
      */
 
-    return(ret);
+    return ret;
 
 } /* DbeDestroyWindow() */
 
diff --git a/dbe/midbe.c b/dbe/midbe.c
index 03e8e2e..954f46e 100644
--- a/dbe/midbe.c
+++ b/dbe/midbe.c
@@ -96,7 +96,7 @@ miDbeGetVisualInfo(ScreenPtr pScreen, XdbeScreenVisualInfo *pScrVisInfo)
     /* Allocate an array of XdbeVisualInfo items. */
     if (!(visInfo = (XdbeVisualInfo *)malloc(count * sizeof(XdbeVisualInfo))))
     {
-        return(FALSE); /* memory alloc failure */
+        return FALSE; /* memory alloc failure */
     }
 
     for (i = 0, k = 0; i < pScreen->numDepths; i++)
@@ -125,7 +125,7 @@ miDbeGetVisualInfo(ScreenPtr pScreen, XdbeScreenVisualInfo *pScrVisInfo)
     pScrVisInfo->count   = count;
     pScrVisInfo->visinfo = visInfo;
 
-    return(TRUE); /* success */
+    return TRUE; /* success */
 
 } /* miDbeGetVisualInfo() */
 
@@ -175,7 +175,7 @@ miDbeAllocBackBufferName(WindowPtr pWin, XID bufId, int swapAction)
                                      pDbeWindowPriv->height,
                                      pWin->drawable.depth, 0)))
         {
-            return(BadAlloc);
+            return BadAlloc;
         }
 
         /* Get a back pixmap. */
@@ -185,7 +185,7 @@ miDbeAllocBackBufferName(WindowPtr pWin, XID bufId, int swapAction)
                                      pWin->drawable.depth, 0)))
         {
             (*pScreen->DestroyPixmap)(pDbeWindowPrivPriv->pFrontBuffer); 
-            return(BadAlloc);
+            return BadAlloc;
         }
 
 	/* Security creation/labeling check. */
@@ -235,12 +235,12 @@ miDbeAllocBackBufferName(WindowPtr pWin, XID bufId, int swapAction)
         if (!AddResource(bufId, dbeDrawableResType,
                          (pointer)pDbeWindowPrivPriv->pBackBuffer))
         {
-            return(BadAlloc);
+            return BadAlloc;
         }
 
     }
 
-    return(Success);
+    return Success;
 
 } /* miDbeAllocBackBufferName() */
 
@@ -409,7 +409,7 @@ miDbeSwapBuffers(ClientPtr client, int *pNumWindows, DbeSwapInfoPtr swapInfo)
 
     FreeScratchGC(pGC);
 
-    return(Success);
+    return Success;
 
 } /* miSwapBuffers() */
 
@@ -571,13 +571,13 @@ miDbePositionWindow(WindowPtr pWin, int x, int y)
      
     if (!(pDbeWindowPriv = DBE_WINDOW_PRIV(pWin)))
     {
-	return(ret);
+	return ret;
     }
 
     if (pDbeWindowPriv->width  == pWin->drawable.width &&
         pDbeWindowPriv->height == pWin->drawable.height)
     {
-	return(ret);
+	return ret;
     }
 
     width  = pWin->drawable.width;
@@ -678,7 +678,7 @@ miDbePositionWindow(WindowPtr pWin, int x, int y)
         }
 
         FreeScratchGC(pGC);
-        return(FALSE);
+        return FALSE;
     }
 
     else
@@ -737,7 +737,7 @@ miDbePositionWindow(WindowPtr pWin, int x, int y)
         FreeScratchGC(pGC);
     }
 
-    return(ret);
+    return ret;
 
 } /* miDbePositionWindow() */
 
@@ -783,7 +783,7 @@ miDbeInit(ScreenPtr pScreen, DbeScreenPrivPtr pDbeScreenPriv)
 {
     if (!dixRegisterPrivateKey(&miDbeWindowPrivPrivKeyRec, PRIVATE_DBE_WINDOW,
 			       sizeof(MiDbeWindowPrivPrivRec)))
-        return(FALSE);
+        return FALSE;
 
     /* Wrap functions. */
     pDbeScreenPriv->PositionWindow = pScreen->PositionWindow;
@@ -798,6 +798,6 @@ miDbeInit(ScreenPtr pScreen, DbeScreenPrivPtr pDbeScreenPriv)
     pDbeScreenPriv->ResetProc             = miDbeResetProc;
     pDbeScreenPriv->WinPrivDelete         = miDbeWinPrivDelete;
 
-    return(TRUE);
+    return TRUE;
 
 } /* miDbeInit() */
diff --git a/dix/colormap.c b/dix/colormap.c
index ae90690..2e9a806 100644
--- a/dix/colormap.c
+++ b/dix/colormap.c
@@ -264,7 +264,7 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
 
     class = pVisual->class;
     if(!(class & DynamicClass) && (alloc != AllocNone) && (client != SERVER_ID))
-	return (BadMatch);
+	return BadMatch;
 
     size = pVisual->ColormapEntries;
     sizebytes = (size * sizeof(Entry)) +
@@ -276,16 +276,16 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
     if (mid == pScreen->defColormap) {
 	pmap = malloc(sizebytes);
 	if (!pmap)
-	    return (BadAlloc);
+	    return BadAlloc;
 	if (!dixAllocatePrivates(&pmap->devPrivates, PRIVATE_COLORMAP)) {
 	    free (pmap);
-	    return (BadAlloc);
+	    return BadAlloc;
 	}
     } else {
 	pmap = _dixAllocateObjectWithPrivates(sizebytes, sizebytes,
 					      offsetof(ColormapRec, devPrivates), PRIVATE_COLORMAP);
 	if (!pmap)
-	    return (BadAlloc);
+	    return BadAlloc;
     }
 #if defined(_XSERVER64)
     pmap->pad0 = 0;
@@ -324,7 +324,7 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
 	if (!ppix)
 	{
 	    free(pmap);
-	    return (BadAlloc);
+	    return BadAlloc;
 	}
 	pmap->clientPixelsRed[client] = ppix;
 	for(i = 0; i < size; i++)
@@ -371,7 +371,7 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
 	    {
 		free(pmap->clientPixelsRed[client]);
 		free(pmap);
-		return(BadAlloc);
+		return BadAlloc;
 	    }
 	    pmap->clientPixelsGreen[client] = ppix;
 	    for(i = 0; i < size; i++)
@@ -388,7 +388,7 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
 		free(pmap->clientPixelsGreen[client]);
 		free(pmap->clientPixelsRed[client]);
 		free(pmap);
-		return(BadAlloc);
+		return BadAlloc;
 	    }
 	    pmap->clientPixelsBlue[client] = ppix;
 	    for(i = 0; i < size; i++)
@@ -399,7 +399,7 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
     pmap->flags |= BeingCreated;
 
     if (!AddResource(mid, RT_COLORMAP, (pointer)pmap))
-	return (BadAlloc);
+	return BadAlloc;
 
     /*  
      * Security creation/labeling check
@@ -421,7 +421,7 @@ CreateColormap (Colormap mid, ScreenPtr pScreen, VisualPtr pVisual,
     }
     pmap->flags &= ~BeingCreated;
     *ppcmap = pmap;
-    return (Success);
+    return Success;
 }
 
 /**
@@ -482,7 +482,7 @@ FreeColormap (pointer value, XID mid)
 	free(pmap);
     } else
 	dixFreeObjectWithPrivates(pmap, PRIVATE_COLORMAP);
-    return(Success);
+    return Success;
 }
 
 /* Tell window that pmid has disappeared */
@@ -509,7 +509,7 @@ TellNoMap (WindowPtr pwin, Colormap *pmid)
 	}
     }
 
-    return (WT_WALKCHILDREN);
+    return WT_WALKCHILDREN;
 }
 
 /* Tell window that pmid got uninstalled */
@@ -534,7 +534,7 @@ TellLostMap (WindowPtr pwin, pointer value)
 	DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
     }
 
-    return (WT_WALKCHILDREN);
+    return WT_WALKCHILDREN;
 }
 
 /* Tell window that pmid got installed */
@@ -559,7 +559,7 @@ TellGainedMap (WindowPtr pwin, pointer value)
 	DeliverEvents(pwin, &xE, 1, (WindowPtr)NULL);
     }
 
-    return (WT_WALKCHILDREN);
+    return WT_WALKCHILDREN;
 }
 
   
@@ -582,7 +582,7 @@ CopyColormapAndFree (Colormap mid, ColormapPtr pSrc, int client)
     /* If the create returns non-0, it failed */
     result = CreateColormap (mid, pScreen, pVisual, &pmap, alloc, client);
     if(result != Success)
-        return(result);
+        return result;
     if(alloc == AllocAll)
     {
 	memmove((char *)pmap->red, (char *)pSrc->red, size * sizeof(Entry));
@@ -594,7 +594,7 @@ CopyColormapAndFree (Colormap mid, ColormapPtr pSrc, int client)
 	pSrc->flags &= ~AllAllocated;
 	FreePixels(pSrc, client);
 	UpdateColors(pmap);
-	return(Success);
+	return Success;
     }
 
     CopyFree(REDMAP, client, pSrc, pmap);
@@ -606,7 +606,7 @@ CopyColormapAndFree (Colormap mid, ColormapPtr pSrc, int client)
     if (pmap->class & DynamicClass)
 	UpdateColors(pmap);
     /* XXX should worry about removing any RT_CMAPENTRY resource */
-    return(Success);
+    return Success;
 }
 
 /* Helper routine for freeing large numbers of cells from a map */
@@ -855,7 +855,7 @@ AllocColor (ColormapPtr pmap,
 	ppix = (Pixel *) realloc(pmap->clientPixelsRed[client],
 				  (npix + 1) * sizeof(Pixel));
 	if (!ppix)
-	    return (BadAlloc);
+	    return BadAlloc;
 	ppix[npix] = pixR;
 	pmap->clientPixelsRed[client] = ppix;
 	pmap->numPixelsRed[client]++;
@@ -878,21 +878,21 @@ AllocColor (ColormapPtr pmap,
 	ppix = (Pixel *) realloc(pmap->clientPixelsRed[client],
 				  (npix + 1) * sizeof(Pixel));
 	if (!ppix)
-	    return (BadAlloc);
+	    return BadAlloc;
 	ppix[npix] = pixR;
 	pmap->clientPixelsRed[client] = ppix;
 	npix = pmap->numPixelsGreen[client];
 	ppix = (Pixel *) realloc(pmap->clientPixelsGreen[client],
 				  (npix + 1) * sizeof(Pixel));
 	if (!ppix)
-	    return (BadAlloc);
+	    return BadAlloc;
 	ppix[npix] = pixG;
 	pmap->clientPixelsGreen[client] = ppix;
 	npix = pmap->numPixelsBlue[client];
 	ppix = (Pixel *) realloc(pmap->clientPixelsBlue[client],
 				  (npix + 1) * sizeof(Pixel));
 	if (!ppix)
-	    return (BadAlloc);
+	    return BadAlloc;
 	ppix[npix] = pixB;
 	pmap->clientPixelsBlue[client] = ppix;
 	pmap->numPixelsRed[client]++;
@@ -915,7 +915,7 @@ AllocColor (ColormapPtr pmap,
 	}
 	if (FindColor(pmap, pmap->red, entries, &rgb, pPix, PSEUDOMAP,
 		      client, AllComp) != Success)
-	    return (BadAlloc);
+	    return BadAlloc;
         break;
 
     case DirectColor:
@@ -944,13 +944,13 @@ AllocColor (ColormapPtr pmap,
 	pixR = (*pPix & pVisual->redMask) >> pVisual->offsetRed; 
 	if (FindColor(pmap, pmap->red, NUMRED(pVisual), &rgb, &pixR, REDMAP,
 		      client, RedComp) != Success)
-	    return (BadAlloc);
+	    return BadAlloc;
 	pixG = (*pPix & pVisual->greenMask) >> pVisual->offsetGreen; 
 	if (FindColor(pmap, pmap->green, NUMGREEN(pVisual), &rgb, &pixG,
 		      GREENMAP, client, GreenComp) != Success)
 	{
 	    (void)FreeCo(pmap, client, REDMAP, 1, &pixR, (Pixel)0);
-	    return (BadAlloc);
+	    return BadAlloc;
 	}
 	pixB = (*pPix & pVisual->blueMask) >> pVisual->offsetBlue; 
 	if (FindColor(pmap, pmap->blue, NUMBLUE(pVisual), &rgb, &pixB, BLUEMAP,
@@ -958,7 +958,7 @@ AllocColor (ColormapPtr pmap,
 	{
 	    (void)FreeCo(pmap, client, GREENMAP, 1, &pixG, (Pixel)0);
 	    (void)FreeCo(pmap, client, REDMAP, 1, &pixR, (Pixel)0);
-	    return (BadAlloc);
+	    return BadAlloc;
 	}
 	*pPix = pixR | pixG | pixB | ALPHAMASK(pVisual);
 
@@ -978,14 +978,14 @@ AllocColor (ColormapPtr pmap,
 	if (!pcr)
 	{
 	    (void)FreeColors(pmap, client, 1, pPix, (Pixel)0);
-	    return (BadAlloc);
+	    return BadAlloc;
 	}
 	pcr->mid = pmap->mid;
 	pcr->client = client;
 	if (!AddResource(FakeClientID(client), RT_CMAPENTRY, (pointer)pcr))
-	    return (BadAlloc);
+	    return BadAlloc;
     }
-    return (Success);
+    return Success;
 }
 
 /*
@@ -1172,7 +1172,7 @@ FindBestPixel(EntryPtr pentFirst, int size, xrgb *prgb, int channel)
 	    minval = sum;
 	}
     }
-    return(final);
+    return final;
 }
 
 static void
@@ -1280,7 +1280,7 @@ FindColor (ColormapPtr pmap, EntryPtr pentFirst, int size, xrgb *prgb,
      * a free entry, we're out of luck.  Otherwise, we'll usurp a free
      * entry and fill it in */
     if (!foundFree)
-	return (BadAlloc);
+	return BadAlloc;
     pent = pentFirst + Free;
     pent->fShared = FALSE;
     pent->refcnt = (client >= 0) ? 1 : AllocTemporary;
@@ -1339,7 +1339,7 @@ FindColor (ColormapPtr pmap, EntryPtr pentFirst, int size, xrgb *prgb,
 
 gotit:
     if (pmap->flags & BeingCreated || client == -1)
-	return(Success);
+	return Success;
     /* Now remember the pixel, for freeing later */
     switch (channel)
     {
@@ -1378,13 +1378,13 @@ gotit:
 		pmap->freeBlue++;
 		break;
 	    }
-	return(BadAlloc);
+	return BadAlloc;
     }
     ppix[npix] = pixel;
     pixp[client] = ppix;
     nump[client]++;
 
-    return(Success);
+    return Success;
 }
 
 /* Comparison functions -- passed to FindColor to determine if an
@@ -1395,32 +1395,32 @@ AllComp (EntryPtr pent, xrgb *prgb)
     if((pent->co.local.red == prgb->red) &&
        (pent->co.local.green == prgb->green) &&
        (pent->co.local.blue == prgb->blue) )
-       return (1);
-    return (0);
+       return 1;
+    return 0;
 }
 
 static int
 RedComp (EntryPtr pent, xrgb *prgb)
 {
     if (pent->co.local.red == prgb->red) 
-	return (1);
-    return (0);
+	return 1;
+    return 0;
 }
 
 static int
 GreenComp (EntryPtr pent, xrgb *prgb)
 {
     if (pent->co.local.green == prgb->green) 
-	return (1);
-    return (0);
+	return 1;
+    return 0;
 }
 
 static int
 BlueComp (EntryPtr pent, xrgb *prgb)
 {
     if (pent->co.local.blue == prgb->blue) 
-	return (1);
-    return (0);
+	return 1;
+    return 0;
 }
 
 
@@ -1508,7 +1508,7 @@ QueryColors (ColormapPtr pmap, int count, Pixel *ppixIn, xrgb *prgbList, ClientP
 	    }
 	}
     }
-    return (errVal);
+    return errVal;
 }
 
 static void
@@ -1586,7 +1586,7 @@ AllocColorCells (int client, ColormapPtr pmap, int colors, int planes,
 
     class = pmap->class;
     if (!(class & DynamicClass))
-	return (BadAlloc); /* Shouldn't try on this type */
+	return BadAlloc; /* Shouldn't try on this type */
     oldcount = pmap->numPixelsRed[client];
     if (pmap->class == DirectColor)
 	oldcount += pmap->numPixelsGreen[client] + pmap->numPixelsBlue[client];
@@ -1594,7 +1594,7 @@ AllocColorCells (int client, ColormapPtr pmap, int colors, int planes,
     {
 	pcr = malloc(sizeof(colorResource));
 	if (!pcr)
-	    return (BadAlloc);
+	    return BadAlloc;
     }
 
     if (pmap->class == DirectColor)
@@ -1641,7 +1641,7 @@ AllocColorCells (int client, ColormapPtr pmap, int colors, int planes,
 	    ok = BadAlloc;
     } else free(pcr);
 
-    return (ok);
+    return ok;
 }
 
 
@@ -1660,7 +1660,7 @@ AllocColorPlanes (int client, ColormapPtr pmap, int colors,
 
     class = pmap->class;
     if (!(class & DynamicClass))
-	return (BadAlloc); /* Shouldn't try on this type */
+	return BadAlloc; /* Shouldn't try on this type */
     oldcount = pmap->numPixelsRed[client];
     if (class == DirectColor)
 	oldcount += pmap->numPixelsGreen[client] + pmap->numPixelsBlue[client];
@@ -1668,7 +1668,7 @@ AllocColorPlanes (int client, ColormapPtr pmap, int colors,
     {
 	pcr = malloc(sizeof(colorResource));
 	if (!pcr)
-	    return (BadAlloc);
+	    return BadAlloc;
     }
 
     if (class == DirectColor)
@@ -1731,7 +1731,7 @@ AllocColorPlanes (int client, ColormapPtr pmap, int colors,
 	    ok = BadAlloc;
     } else free(pcr);
 
-    return (ok);
+    return ok;
 }
 
 static int
@@ -1765,7 +1765,7 @@ AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool cont
 	free(ppixBlue);
 	free(ppixGreen);
 	free(ppixRed);
-	return(BadAlloc);
+	return BadAlloc;
     }
 
     okR = AllocCP(pmap, pmap->red, c, r, contig, ppixRed, prmask);
@@ -1805,7 +1805,7 @@ AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool cont
 	free(ppixBlue);
 	free(ppixGreen);
 	free(ppixRed);
-	return(BadAlloc);
+	return BadAlloc;
     }
 
     *prmask <<= pmap->pVisual->offsetRed;
@@ -1850,7 +1850,7 @@ AllocDirect (int client, ColormapPtr pmap, int c, int r, int g, int b, Bool cont
     free(ppixGreen);
     free(ppixRed);
 
-    return (Success);
+    return Success;
 }
 
 static int
@@ -1863,9 +1863,9 @@ AllocPseudo (int client, ColormapPtr pmap, int c, int r, Bool contig,
 
     npix = c << r;
     if ((r >= 32) || (npix > pmap->freeRed) || (npix < c))
-	return(BadAlloc);
+	return BadAlloc;
     if(!(ppixTemp = malloc(npix * sizeof(Pixel))))
-	return(BadAlloc);
+	return BadAlloc;
     ok = AllocCP(pmap, pmap->red, c, r, contig, ppixTemp, pmask);
 
     if (ok)
@@ -1879,7 +1879,7 @@ AllocPseudo (int client, ColormapPtr pmap, int c, int r, Bool contig,
 	{
 	    for (p = ppixTemp; p < ppixTemp + npix; p++)
 		pmap->red[*p].refcnt = 0;
-	    return (BadAlloc);
+	    return BadAlloc;
 	}
 	pmap->clientPixelsRed[client] = ppix;
 	ppix += pmap->numPixelsRed[client];
@@ -1895,7 +1895,7 @@ AllocPseudo (int client, ColormapPtr pmap, int c, int r, Bool contig,
 	pmap->freeRed -= npix;
     }
     free(ppixTemp);
-    return (ok ? Success : BadAlloc);
+    return ok ? Success : BadAlloc;
 }
 
 /* Allocates count << planes pixels from colormap pmap for client. If
@@ -1941,11 +1941,11 @@ AllocCP (ColormapPtr pmap, EntryPtr pentFirst, int count, int planes,
 	    ent->fShared = FALSE;
         }
         *pMask = 0;
-        return (TRUE);
+        return TRUE;
     }
     else if (planes > dplanes)
     {
-	return (FALSE);
+	return FALSE;
     }
 
     /* General case count pixels * 2 ^ planes cells to be allocated */
@@ -1992,7 +1992,7 @@ AllocCP (ColormapPtr pmap, EntryPtr pentFirst, int count, int planes,
 			    }
 			}
 			*pMask = mask;
-			return (TRUE);
+			return TRUE;
 		    }
 		}
     	    pixel = save + 1;
@@ -2003,7 +2003,7 @@ AllocCP (ColormapPtr pmap, EntryPtr pentFirst, int count, int planes,
 
     dplanes = pmap->pVisual->nplanes;
     if (contig || planes == 1 || dplanes < 3)
-	return (FALSE);
+	return FALSE;
 
     /* this will be very slow for large maps, need a better algorithm */
 
@@ -2073,10 +2073,10 @@ AllocCP (ColormapPtr pmap, EntryPtr pentFirst, int count, int planes,
 	    }
 
 	    *pMask = mask;
-	    return (TRUE);
+	    return TRUE;
 	}
     }
-    return (FALSE);
+    return FALSE;
 }
 
 /**
@@ -2224,7 +2224,7 @@ FreeColors (ColormapPtr pmap, int client, int count, Pixel *pixels, Pixel mask)
 
     class = pmap->class;
     if (pmap->flags & AllAllocated)
-	return(BadAccess);
+	return BadAccess;
     if ((class | DynamicClass) == DirectColor)
     {
 	rmask = mask & RGBMASK(pmap->pVisual);
@@ -2252,7 +2252,7 @@ FreeColors (ColormapPtr pmap, int client, int count, Pixel *pixels, Pixel mask)
 	result = BadValue;
     }
     /* XXX should worry about removing any RT_CMAPENTRY resource */
-    return (result);
+    return result;
 }
 
 /**
@@ -2278,7 +2278,7 @@ FreeCo (ColormapPtr pmap, int client, int color, int npixIn, Pixel *ppixIn, Pixe
     int		offset, numents;
 
     if (npixIn == 0)
-        return (errVal);
+        return errVal;
     bits = 0;
     zapped = 0;
     base = lowbit (mask);
@@ -2404,7 +2404,7 @@ FreeCo (ColormapPtr pmap, int client, int color, int npixIn, Pixel *ppixIn, Pixe
 	    break;
 	}
     }
-    return (errVal);
+    return errVal;
 }
 
 
@@ -2426,7 +2426,7 @@ StoreColors (ColormapPtr pmap, int count, xColorItem *defs, ClientPtr client)
     class = pmap->class;
     if(!(class & DynamicClass) && !(pmap->flags & BeingCreated))
     {
-	return(BadAccess);
+	return BadAccess;
     }
     pVisual = pmap->pVisual;
 
@@ -2674,7 +2674,7 @@ StoreColors (ColormapPtr pmap, int count, xColorItem *defs, ClientPtr client)
      * count, the count of proposed entries */
     if (idef != 0)
 	( *pmap->pScreen->StoreColors) (pmap, idef, defs);
-    return (errVal);
+    return errVal;
 }
 
 int
@@ -2685,7 +2685,7 @@ IsMapInstalled(Colormap map, WindowPtr pWin)
 
     pmaps = malloc(pWin->drawable.pScreen->maxInstalledCmaps*sizeof(Colormap));
     if(!pmaps)
-	return(FALSE);
+	return FALSE;
     nummaps = (*pWin->drawable.pScreen->ListInstalledColormaps)
         (pWin->drawable.pScreen, pmaps);
     found = FALSE;
@@ -2698,7 +2698,7 @@ IsMapInstalled(Colormap map, WindowPtr pWin)
 	}
     }
     free(pmaps);
-    return (found);
+    return found;
 }
 
 struct colormap_lookup_data {
diff --git a/dix/cursor.c b/dix/cursor.c
index 67592c5..72a7609 100644
--- a/dix/cursor.c
+++ b/dix/cursor.c
@@ -122,7 +122,7 @@ FreeCursor(pointer value, XID cid)
     DeviceIntPtr pDev = NULL; /* unused anyway */
 
     if ( --pCurs->refcnt != 0)
-	return(Success);
+	return Success;
 
     for (nscr = 0; nscr < screenInfo.numScreens; nscr++)
     {
@@ -132,7 +132,7 @@ FreeCursor(pointer value, XID cid)
     FreeCursorBits(pCurs->bits);
     dixFiniPrivates(pCurs, PRIVATE_CURSOR);
     free( pCurs);
-    return(Success);
+    return Success;
 }
 
 
diff --git a/dix/devices.c b/dix/devices.c
index 8f9c8ff..bca2caf 100644
--- a/dix/devices.c
+++ b/dix/devices.c
@@ -2117,11 +2117,11 @@ ProcChangePointerControl(ClientPtr client)
     ctrl = mouse->ptrfeed->ctrl;
     if ((stuff->doAccel != xTrue) && (stuff->doAccel != xFalse)) {
 	client->errorValue = stuff->doAccel;
-	return(BadValue);
+	return BadValue;
     }
     if ((stuff->doThresh != xTrue) && (stuff->doThresh != xFalse)) {
 	client->errorValue = stuff->doThresh;
-	return(BadValue);
+	return BadValue;
     }
     if (stuff->doAccel) {
 	if (stuff->accelNum == -1) {
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 44164f2..0e5aced 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -631,7 +631,7 @@ CreateConnectionBlock(void)
 int
 ProcBadRequest(ClientPtr client)
 {
-    return (BadRequest);
+    return BadRequest;
 }
 
 int
@@ -1017,7 +1017,7 @@ ProcInternAtom(ClientPtr client)
     if ((stuff->onlyIfExists != xTrue) && (stuff->onlyIfExists != xFalse))
     {
 	client->errorValue = stuff->onlyIfExists;
-        return(BadValue);
+        return BadValue;
     }
     tchar = (char *) &stuff[1];
     atom = MakeAtom(tchar, stuff->nbytes, !stuff->onlyIfExists);
@@ -1033,7 +1033,7 @@ ProcInternAtom(ClientPtr client)
 	return Success;
     }
     else
-	return (BadAlloc);
+	return BadAlloc;
 }
 
 int
@@ -1060,7 +1060,7 @@ ProcGetAtomName(ClientPtr client)
     else 
     { 
 	client->errorValue = stuff->id;
-	return (BadAtom);
+	return BadAtom;
     }
 }
 
@@ -1275,7 +1275,7 @@ ProcQueryFont(ClientPtr client)
 	reply = calloc(1, rlength);
 	if(!reply)
 	{
-	    return(BadAlloc);
+	    return BadAlloc;
 	}
 
 	reply->type = X_Reply;
@@ -1309,11 +1309,11 @@ ProcQueryTextExtents(ClientPtr client)
     if (stuff->oddLength)
     {
 	if (length == 0)
-	    return(BadLength);
+	    return BadLength;
         length--;
     }
     if (!QueryTextExtents(pFont, length, (unsigned char *)&stuff[1], &info))
-	return(BadAlloc);
+	return BadAlloc;
     reply.type = X_Reply;
     reply.length = 0;
     reply.sequenceNumber = client->sequence;
@@ -1430,7 +1430,7 @@ CreatePmap:
 	    return Success;
 	(*pDraw->pScreen->DestroyPixmap)(pMap);
     }
-    return (BadAlloc);
+    return BadAlloc;
 }
 
 int
@@ -1480,7 +1480,7 @@ ProcCreateGC(ClientPtr client)
     if (error != Success)
         return error;
     if (!AddResource(stuff->gc, RT_GC, (pointer)pGC))
-	return (BadAlloc);
+	return BadAlloc;
     return Success;
 }
 
@@ -1520,7 +1520,7 @@ ProcCopyGC(ClientPtr client)
     if (result != Success)
 	return result;
     if ((dstGC->pScreen != pGC->pScreen) || (dstGC->depth != pGC->depth))
-        return (BadMatch);    
+        return BadMatch;
     if (stuff->mask & ~GCAllBits)
     {
 	client->errorValue = stuff->mask;
@@ -1574,7 +1574,7 @@ ProcSetClipRectangles(ClientPtr client)
 		 
     nr = (client->req_len << 2) - sizeof(xSetClipRectanglesReq);
     if (nr & 4)
-	return(BadLength);
+	return BadLength;
     nr >>= 3;
     return SetClipRects(pGC, stuff->xOrigin, stuff->yOrigin,
 			  nr, (xRectangle *)&stuff[1], (int)stuff->ordering);
@@ -1610,12 +1610,12 @@ ProcClearToBackground(ClientPtr client)
     if (pWin->drawable.class == InputOnly)
     {
 	client->errorValue = stuff->window;
-	return (BadMatch);
+	return BadMatch;
     }		    
     if ((stuff->exposures != xTrue) && (stuff->exposures != xFalse))
     {
 	client->errorValue = stuff->exposures;
-        return(BadValue);
+        return BadValue;
     }
     (*pWin->drawable.pScreen->ClearToBackground)(pWin, stuff->x, stuff->y,
 			       stuff->width, stuff->height,
@@ -1645,7 +1645,7 @@ ProcCopyArea(ClientPtr client)
 	if ((pDst->pScreen != pSrc->pScreen) || (pDst->depth != pSrc->depth))
 	{
 	    client->errorValue = stuff->dstDrawable;
-	    return (BadMatch);
+	    return BadMatch;
 	}
     }
     else
@@ -1687,7 +1687,7 @@ ProcCopyPlane(ClientPtr client)
 	if (pdstDraw->pScreen != psrcDraw->pScreen)
 	{
 	    client->errorValue = stuff->dstDrawable;
-	    return (BadMatch);
+	    return BadMatch;
 	}
     }
     else
@@ -1698,7 +1698,7 @@ ProcCopyPlane(ClientPtr client)
        (stuff->bitPlane > (1L << (psrcDraw->depth - 1))))
     {
        client->errorValue = stuff->bitPlane;
-       return(BadValue);
+       return BadValue;
     }
 
     pRgn = (*pGC->ops->CopyPlane)(psrcDraw, pdstDraw, pGC, stuff->srcX, stuff->srcY,
@@ -1772,7 +1772,7 @@ ProcPolySegment(ClientPtr client)
     VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
     nsegs = (client->req_len << 2) - sizeof(xPolySegmentReq);
     if (nsegs & 4)
-	return(BadLength);
+	return BadLength;
     nsegs >>= 3;
     if (nsegs)
         (*pGC->ops->PolySegment)(pDraw, pGC, nsegs, (xSegment *) &stuff[1]);
@@ -1791,7 +1791,7 @@ ProcPolyRectangle (ClientPtr client)
     VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
     nrects = (client->req_len << 2) - sizeof(xPolyRectangleReq);
     if (nrects & 4)
-	return(BadLength);
+	return BadLength;
     nrects >>= 3;
     if (nrects)
         (*pGC->ops->PolyRectangle)(pDraw, pGC, 
@@ -1811,7 +1811,7 @@ ProcPolyArc(ClientPtr client)
     VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
     narcs = (client->req_len << 2) - sizeof(xPolyArcReq);
     if (narcs % sizeof(xArc))
-	return(BadLength);
+	return BadLength;
     narcs /= sizeof(xArc);
     if (narcs)
         (*pGC->ops->PolyArc)(pDraw, pGC, narcs, (xArc *) &stuff[1]);
@@ -1861,7 +1861,7 @@ ProcPolyFillRectangle(ClientPtr client)
     VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
     things = (client->req_len << 2) - sizeof(xPolyFillRectangleReq);
     if (things & 4)
-	return(BadLength);
+	return BadLength;
     things >>= 3;
 
     if (things)
@@ -1882,7 +1882,7 @@ ProcPolyFillArc(ClientPtr client)
     VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, DixWriteAccess);
     narcs = (client->req_len << 2) - sizeof(xPolyFillArcReq);
     if (narcs % sizeof(xArc))
-	return(BadLength);
+	return BadLength;
     narcs /= sizeof(xArc);
     if (narcs)
         (*pGC->ops->PolyFillArc) (pDraw, pGC, narcs, (xArc *) &stuff[1]);
@@ -2019,7 +2019,7 @@ DoGetImage(ClientPtr client, int format, Drawable drawable,
     if ((format != XYPixmap) && (format != ZPixmap))
     {
 	client->errorValue = format;
-        return(BadValue);
+        return BadValue;
     }
     rc = dixLookupDrawable(&pDraw, drawable, client, 0, DixReadAccess);
     if (rc != Success)
@@ -2103,7 +2103,7 @@ DoGetImage(ClientPtr client, int format, Drawable drawable,
     if (im_return) {
 	pBuf = calloc(1, sz_xGetImageReply + length);
 	if (!pBuf)
-	    return (BadAlloc);
+	    return BadAlloc;
 	if (widthBytesLine == 0)
 	    linesPerBuf = 0;
 	else
@@ -2140,7 +2140,7 @@ DoGetImage(ClientPtr client, int format, Drawable drawable,
 	    }
 	}
 	if(!(pBuf = calloc(1, length)))
-	    return (BadAlloc);
+	    return BadAlloc;
 	WriteReplyToClient(client, sizeof (xGetImageReply), &xgi);
     }
 
@@ -2362,7 +2362,7 @@ ProcCreateColormap(ClientPtr client)
     if ((stuff->alloc != AllocNone) && (stuff->alloc != AllocAll))
     {
 	client->errorValue = stuff->alloc;
-        return(BadValue);
+        return BadValue;
     }
     mid = stuff->mid;
     LEGAL_NEW_RESOURCE(mid, client);
@@ -2381,7 +2381,7 @@ ProcCreateColormap(ClientPtr client)
 				 (int)stuff->alloc, client->index);
     }
     client->errorValue = stuff->visual;
-    return(BadMatch);
+    return BadMatch;
 }
 
 int
@@ -2507,7 +2507,7 @@ ProcListInstalledColormaps(ClientPtr client)
 		     pWin->drawable.pScreen->maxInstalledCmaps *
 		     sizeof(Colormap));
     if(!preply)
-        return(BadAlloc);
+        return BadAlloc;
 
     preply->type = X_Reply;
     preply->sequenceNumber = client->sequence;
@@ -2595,7 +2595,7 @@ ProcAllocNamedColor (ClientPtr client)
 	    return Success;
 	}
 	else
-	    return(BadName);
+	    return BadName;
 	
     }
     else
@@ -2626,18 +2626,18 @@ ProcAllocColorCells (ClientPtr client)
 	if (!npixels)
 	{
 	    client->errorValue = npixels;
-	    return (BadValue);
+	    return BadValue;
 	}
 	if (stuff->contiguous != xTrue && stuff->contiguous != xFalse)
 	{
 	    client->errorValue = stuff->contiguous;
-	    return (BadValue);
+	    return BadValue;
 	}
 	nmasks = stuff->planes;
 	length = ((long)npixels + (long)nmasks) * sizeof(Pixel);
 	ppixels = malloc(length);
 	if(!ppixels)
-            return(BadAlloc);
+            return BadAlloc;
 	pmasks = ppixels + npixels;
 
 	if( (rc = AllocColorCells(client->index, pcmp, npixels, nmasks, 
@@ -2690,12 +2690,12 @@ ProcAllocColorPlanes(ClientPtr client)
 	if (!npixels)
 	{
 	    client->errorValue = npixels;
-	    return (BadValue);
+	    return BadValue;
 	}
 	if (stuff->contiguous != xTrue && stuff->contiguous != xFalse)
 	{
 	    client->errorValue = stuff->contiguous;
-	    return (BadValue);
+	    return BadValue;
 	}
 	acpr.type = X_Reply;
 	acpr.sequenceNumber = client->sequence;
@@ -2703,7 +2703,7 @@ ProcAllocColorPlanes(ClientPtr client)
 	length = (long)npixels * sizeof(Pixel);
 	ppixels = malloc(length);
 	if(!ppixels)
-            return(BadAlloc);
+            return BadAlloc;
 	if( (rc = AllocColorPlanes(client->index, pcmp, npixels,
 	    (int)stuff->red, (int)stuff->green, (int)stuff->blue,
 	    (Bool)stuff->contiguous, ppixels,
@@ -2746,7 +2746,7 @@ ProcFreeColors(ClientPtr client)
 	int	count;
 
 	if(pcmp->flags & AllAllocated)
-	    return(BadAccess);
+	    return BadAccess;
 	count = bytes_to_int32((client->req_len << 2) - sizeof(xFreeColorsReq));
 	return FreeColors(pcmp, client->index, count,
 	    (Pixel *)&stuff[1], (Pixel)stuff->planeMask);
@@ -2774,7 +2774,7 @@ ProcStoreColors (ClientPtr client)
 
         count = (client->req_len << 2) - sizeof(xStoreColorsReq);
 	if (count % sizeof(xColorItem))
-	    return(BadLength);
+	    return BadLength;
 	count /= sizeof(xColorItem);
 	return StoreColors(pcmp, count, (xColorItem *)&stuff[1], client);
     }
@@ -2806,7 +2806,7 @@ ProcStoreNamedColor (ClientPtr client)
 	    def.pixel = stuff->pixel;
 	    return StoreColors(pcmp, 1, &def, client);
 	}
-        return (BadName);        
+        return BadName;
     }
     else
     {
@@ -2834,7 +2834,7 @@ ProcQueryColors(ClientPtr client)
 	count = bytes_to_int32((client->req_len << 2) - sizeof(xQueryColorsReq));
 	prgbs = calloc(1, count * sizeof(xrgb));
 	if(!prgbs && count)
-            return(BadAlloc);
+            return BadAlloc;
 	if( (rc = QueryColors(pcmp, count, (Pixel *)&stuff[1], prgbs, client)) )
 	{
 	    free(prgbs);
@@ -2892,7 +2892,7 @@ ProcLookupColor(ClientPtr client)
 	    WriteReplyToClient(client, sizeof(xLookupColorReply), &lcr);
 	    return Success;
 	}
-        return (BadName);        
+        return BadName;
     }
     else
     {
@@ -2940,24 +2940,24 @@ ProcCreateCursor (ClientPtr client)
 	    || src->drawable.height != msk->drawable.height
 	    || src->drawable.depth != 1
 	    || msk->drawable.depth != 1)
-	return (BadMatch);
+	return BadMatch;
 
     width = src->drawable.width;
     height = src->drawable.height;
 
     if ( stuff->x > width 
       || stuff->y > height )
-	return (BadMatch);
+	return BadMatch;
 
     n = BitmapBytePad(width)*height;
     srcbits = calloc(1, n);
     if (!srcbits)
-	return (BadAlloc);
+	return BadAlloc;
     mskbits = malloc(n);
     if (!mskbits)
     {
 	free(srcbits);
-	return (BadAlloc);
+	return BadAlloc;
     }
 
     (* src->drawable.pScreen->GetImage)( (DrawablePtr)src, 0, 0, width, height,
@@ -3053,7 +3053,7 @@ ProcQueryBestSize (ClientPtr client)
 	(stuff->class != StippleShape))
     {
 	client->errorValue = stuff->class;
-        return(BadValue);
+        return BadValue;
     }
 
     rc = dixLookupDrawable(&pDraw, stuff->drawable, client, M_ANY,
@@ -3061,7 +3061,7 @@ ProcQueryBestSize (ClientPtr client)
     if (rc != Success)
 	return rc;
     if (stuff->class != CursorShape && pDraw->type == UNDRAWABLE_WINDOW)
-	return (BadMatch);
+	return BadMatch;
     pScreen = pDraw->pScreen;
     rc = XaceHook(XACE_SCREEN_ACCESS, client, pScreen, DixGetAttrAccess);
     if (rc != Success)
@@ -3201,7 +3201,7 @@ ProcListHosts(ClientPtr client)
 
     result = GetHosts(&pdata, &nHosts, &len, &reply.enabled);
     if (result != Success)
-	return(result);
+	return result;
     reply.type = X_Reply;
     reply.sequenceNumber = client->sequence;
     reply.nHosts = nHosts;
@@ -3276,7 +3276,7 @@ ProcKillClient(ClientPtr client)
 	     * doesn't try to touch client
 	     */
 	    isItTimeToYield = TRUE;
-	    return (Success);
+	    return Success;
 	}
 	return Success;
     }
@@ -3302,12 +3302,12 @@ ProcSetFontPath(ClientPtr client)
     while (--nfonts >= 0)
     {
 	if ((total == 0) || (total < (n = (*ptr + 1))))
-	    return(BadLength);
+	    return BadLength;
 	total -= n;
 	ptr += n;
     }
     if (total >= 4)
-	return(BadLength);
+	return BadLength;
     return SetFontPath(client, stuff->nFonts, (unsigned char *)&stuff[1]);
 }
 
@@ -3356,7 +3356,7 @@ ProcChangeCloseDownMode(ClientPtr client)
     else   
     {
 	client->errorValue = stuff->mode;
-	return (BadValue);
+	return BadValue;
     }
 }
 
@@ -3573,7 +3573,7 @@ ClientPtr NextAvailableClient(pointer ospriv)
         clientinfo.setup = (xConnSetup *) NULL;
 	CallCallbacks((&ClientStateCallback), (pointer)&clientinfo);
     } 	
-    return(client);
+    return client;
 }
 
 int
@@ -3585,7 +3585,7 @@ ProcInitialConnection(ClientPtr client)
 
     prefix = (xConnClientPrefix *)((char *)stuff + sz_xReq);
     if ((prefix->byteOrder != 'l') && (prefix->byteOrder != 'B'))
-	return (client->noClientException = -1);
+	return client->noClientException = -1;
     if (((*(char *) &whichbyte) && (prefix->byteOrder == 'B')) ||
 	(!(*(char *) &whichbyte) && (prefix->byteOrder == 'l')))
     {
@@ -3626,7 +3626,7 @@ SendConnSetup(ClientPtr client, char *reason)
 	else
 	    (void)WriteToClient(client, sz_xConnSetupPrefix, (char *) &csp);
         (void)WriteToClient(client, (int)csp.lengthReason, reason);
-	return (client->noClientException = -1);
+	return client->noClientException = -1;
     }
 
     numScreens = screenInfo.numScreens;
diff --git a/dix/dixfonts.c b/dix/dixfonts.c
index e321177..6c90fb9 100644
--- a/dix/dixfonts.c
+++ b/dix/dixfonts.c
@@ -482,7 +482,7 @@ CloseFont(pointer value, XID fid)
     FontPtr     pfont = (FontPtr)value;
 
     if (pfont == NullFont)
-	return (Success);
+	return Success;
     if (--pfont->refcnt == 0) {
 	if (patternCache)
 	    RemoveCachedFontPattern (patternCache, pfont);
@@ -504,7 +504,7 @@ CloseFont(pointer value, XID fid)
 	(*fpe_functions[fpe->type].close_font) (fpe, pfont);
 	FreeFPE(fpe);
     }
-    return (Success);
+    return Success;
 }
 
 
diff --git a/dix/dixutils.c b/dix/dixutils.c
index cb1c97c..470bb5d 100644
--- a/dix/dixutils.c
+++ b/dix/dixutils.c
@@ -296,17 +296,17 @@ AlterSaveSetForClient(ClientPtr client, WindowPtr pWin, unsigned mode,
     if (mode == SetModeInsert)
     {
 	if (j < numnow)         /* duplicate */
-	   return(Success);
+	   return Success;
 	numnow++;
 	pTmp = (SaveSetElt *)realloc(client->saveSet, sizeof(*pTmp) * numnow);
 	if (!pTmp)
-	    return(BadAlloc);
+	    return BadAlloc;
 	client->saveSet = pTmp;
        	client->numSaved = numnow;
 	SaveSetAssignWindow(client->saveSet[numnow - 1], pWin);
 	SaveSetAssignToRoot(client->saveSet[numnow - 1], toRoot);
 	SaveSetAssignMap(client->saveSet[numnow - 1], map);
-	return(Success);
+	return Success;
     }
     else if ((mode == SetModeDelete) && (j < numnow))
     {
@@ -328,9 +328,9 @@ AlterSaveSetForClient(ClientPtr client, WindowPtr pWin, unsigned mode,
 	    client->saveSet = (SaveSetElt *)NULL;
 	}
 	client->numSaved = numnow;
-	return(Success);
+	return Success;
     }
-    return(Success);
+    return Success;
 }
 
 void
diff --git a/dix/events.c b/dix/events.c
index 2dc0e98..ae9847c 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -331,7 +331,7 @@ IsKeyboardDevice(DeviceIntPtr dev)
 Bool
 IsMaster(DeviceIntPtr dev)
 {
-    return (dev->type == MASTER_POINTER || dev->type == MASTER_KEYBOARD);
+    return dev->type == MASTER_POINTER || dev->type == MASTER_KEYBOARD;
 }
 
 static WindowPtr XYToWindow(
@@ -4083,7 +4083,7 @@ OtherClientGone(pointer value, XID id)
 	    }
 	    free(other);
 	    RecalculateDeliverableEvents(pWin);
-	    return(Success);
+	    return Success;
 	}
 	prev = other;
     }
@@ -4488,7 +4488,7 @@ SetInputFocus(
 	/* It is a match error to try to set the input focus to an
 	unviewable window. */
 	if(!focusWin->realized)
-	    return(BadMatch);
+	    return BadMatch;
     }
     rc = XaceHook(XACE_DEVICE_ACCESS, client, dev, DixSetFocusAccess);
     if (rc != Success)
@@ -5005,7 +5005,7 @@ ProcQueryPointer(ClientPtr client)
 
     WriteReplyToClient(client, sizeof(xQueryPointerReply), &rep);
 
-    return(Success);
+    return Success;
 }
 
 /**
@@ -5209,8 +5209,8 @@ ProcUngrabKey(ClientPtr client)
     tempGrab.next = NULL;
 
     if (!DeletePassiveGrabFromList(&tempGrab))
-	return(BadAlloc);
-    return(Success);
+	return BadAlloc;
+    return Success;
 }
 
 /**
@@ -5404,8 +5404,8 @@ ProcUngrabButton(ClientPtr client)
     tempGrab.next = NULL;
 
     if (!DeletePassiveGrabFromList(&tempGrab))
-	return(BadAlloc);
-    return(Success);
+	return BadAlloc;
+    return Success;
 }
 
 /**
@@ -5619,7 +5619,7 @@ ProcRecolorCursor(ClientPtr client)
 	( *pscr->RecolorCursor)(PickPointer(client), pscr, pCursor,
 				(pCursor == pSprite->current) && displayed);
     }
-    return (Success);
+    return Success;
 }
 
 /**
diff --git a/dix/extension.c b/dix/extension.c
index f422ea3..c8e921a 100644
--- a/dix/extension.c
+++ b/dix/extension.c
@@ -91,10 +91,10 @@ AddExtension(char *name, int NumEvents, int NumErrors,
 
     ext = calloc(sizeof (ExtensionEntry), 1);
     if (!ext)
-	return(NULL);
+	return NULL;
     if (!dixAllocatePrivates(&ext->devPrivates, PRIVATE_EXTENSION)) {
 	free(ext);
-	return(NULL);
+	return NULL;
     }
     ext->name = malloc(strlen(name) + 1);
     ext->num_aliases = 0;
@@ -149,7 +149,7 @@ AddExtension(char *name, int NumEvents, int NumErrors,
     }
 
     RegisterExtensionNames(ext);
-    return(ext);
+    return ext;
 }
 
 Bool AddExtensionAlias(char *alias, ExtensionEntry *ext)
@@ -335,7 +335,7 @@ ProcListExtensions(ClientPtr client)
         reply.length = bytes_to_int32(total_length);
 	buffer = bufptr = malloc(total_length);
 	if (!buffer)
-	    return(BadAlloc);
+	    return BadAlloc;
         for (i=0;  i<NumExtensions; i++)
         {
 	    int len;
diff --git a/dix/gc.c b/dix/gc.c
index 6d022f1..6da243e 100644
--- a/dix/gc.c
+++ b/dix/gc.c
@@ -562,7 +562,7 @@ out:
 	pGC = (GCPtr)NULL;
     }
 
-    return (pGC);
+    return pGC;
 }
 
 static Bool
@@ -785,7 +785,7 @@ FreeGC(pointer value, XID gid)
     if (pGC->dash != DefaultDash)
 	free(pGC->dash);
     dixFreeObjectWithPrivates(pGC, PRIVATE_GC);
-    return(Success);
+    return Success;
 }
 
 /* CreateScratchGC(pScreen, depth)
@@ -1066,7 +1066,7 @@ SetClipRects(GCPtr pGC, int xOrigin, int yOrigin, int nrects,
 
     newct = VerifyRectOrder(nrects, prects, ordering);
     if (newct < 0)
-	return(BadMatch);
+	return BadMatch;
     size = nrects * sizeof(xRectangle);
     prectsNew = malloc(size);
     if (!prectsNew && size)
diff --git a/dix/main.c b/dix/main.c
index 0f499dd..5c46dc1 100644
--- a/dix/main.c
+++ b/dix/main.c
@@ -348,6 +348,6 @@ int main(int argc, char *argv[], char *envp[])
 	free(ConnectionInfo);
 	ConnectionInfo = NULL;
     }
-    return(0);
+    return 0;
 }
 
diff --git a/dix/property.c b/dix/property.c
index 6523107..87e5c2d 100644
--- a/dix/property.c
+++ b/dix/property.c
@@ -230,12 +230,12 @@ ProcChangeProperty(ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
 	client->errorValue = stuff->property;
-	return(BadAtom);
+	return BadAtom;
     }
     if (!ValidAtom(stuff->type))
     {
 	client->errorValue = stuff->type;
-	return(BadAtom);
+	return BadAtom;
     }
 
     err = dixChangeWindowProperty(client, pWin, stuff->property, stuff->type,
@@ -268,15 +268,15 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
     if (rc == BadMatch)   /* just add to list */
     {
 	if (!pWin->optional && !MakeWindowOptional (pWin))
-	    return(BadAlloc);
+	    return BadAlloc;
 	pProp = dixAllocateObjectWithPrivates(PropertyRec, PRIVATE_PROPERTY);
 	if (!pProp)
-	    return(BadAlloc);
+	    return BadAlloc;
         data = malloc(totalSize);
 	if (!data && len)
 	{
 	    dixFreeObjectWithPrivates(pProp, PRIVATE_PROPERTY);
-	    return(BadAlloc);
+	    return BadAlloc;
 	}
         memcpy(data, value, totalSize);
         pProp->propertyName = property;
@@ -304,9 +304,9 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
 		"PropModeReplace" since they will be written over. */
 
         if ((format != pProp->format) && (mode != PropModeReplace))
-	    return(BadMatch);
+	    return BadMatch;
         if ((pProp->type != type) && (mode != PropModeReplace))
-            return(BadMatch);
+            return BadMatch;
 
 	/* save the old values for later */
 	savedProp = *pProp;
@@ -315,7 +315,7 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
         {
 	    data = malloc(totalSize);
 	    if (!data && len)
-		return(BadAlloc);
+		return BadAlloc;
 	    memcpy(data, value, totalSize);
 	    pProp->data = data;
 	    pProp->size = len;
@@ -330,7 +330,7 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
         {
 	    data = malloc((pProp->size + len) * sizeInBytes);
 	    if (!data)
-		return(BadAlloc);
+		return BadAlloc;
 	    memcpy(data, pProp->data, pProp->size * sizeInBytes);
 	    memcpy(data + pProp->size * sizeInBytes, value, totalSize);
             pProp->data = data;
@@ -340,7 +340,7 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
         {
             data = malloc(sizeInBytes * (len + pProp->size));
 	    if (!data)
-		return(BadAlloc);
+		return BadAlloc;
             memcpy(data + totalSize, pProp->data, pProp->size * sizeInBytes);
             memcpy(data, value, totalSize);
             pProp->data = data;
@@ -369,7 +369,7 @@ dixChangeWindowProperty(ClientPtr pClient, WindowPtr pWin, Atom property,
     if (sendevent)
 	deliverPropertyNotifyEvent(pWin, PropertyNewValue, pProp->propertyName);
 
-    return(Success);
+    return Success;
 }
 
 int
@@ -477,17 +477,17 @@ ProcGetProperty(ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
 	client->errorValue = stuff->property;
-	return(BadAtom);
+	return BadAtom;
     }
     if ((stuff->delete != xTrue) && (stuff->delete != xFalse))
     {
 	client->errorValue = stuff->delete;
-	return(BadValue);
+	return BadValue;
     }
     if ((stuff->type != AnyPropertyType) && !ValidAtom(stuff->type))
     {
 	client->errorValue = stuff->type;
-	return(BadAtom);
+	return BadAtom;
     }
 
     memset(&reply, 0, sizeof(xGetPropertyReply));
@@ -513,7 +513,7 @@ ProcGetProperty(ClientPtr client)
 	reply.nItems = 0;
 	reply.propertyType = pProp->type;
 	WriteReplyToClient(client, sizeof(xGenericReply), &reply);
-	return(Success);
+	return Success;
     }
 
 /*
@@ -635,7 +635,7 @@ ProcDeleteProperty(ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
 	client->errorValue = stuff->property;
-	return (BadAtom);
+	return BadAtom;
     }
 
     return DeleteProperty(client, pWin, stuff->property);
diff --git a/dix/ptrveloc.c b/dix/ptrveloc.c
index cedc829..30e14b1 100644
--- a/dix/ptrveloc.c
+++ b/dix/ptrveloc.c
@@ -494,7 +494,7 @@ CalcTracker(DeviceVelocityPtr vel, int offset, int cur_t){
                       + vel->tracker[index].dy * vel->tracker[index].dy);
     int dtime = cur_t - vel->tracker[index].time;
     if(dtime > 0)
-	return (dist / dtime);
+	return dist / dtime;
     else
 	return 0;/* synonymous for NaN, since we're not C99 */
 }
diff --git a/dix/region.c b/dix/region.c
index a77d17b..5ba3457 100644
--- a/dix/region.c
+++ b/dix/region.c
@@ -245,7 +245,7 @@ RegionCreate(BoxPtr rect, int size)
 
     RegionInit (pReg, rect, size);
     
-    return(pReg);
+    return pReg;
 }
 
 void
@@ -290,7 +290,7 @@ RegionIsValid(RegionPtr reg)
 		(reg->extents.y1 == reg->extents.y2) &&
 		(reg->data->size || (reg->data == &RegionEmptyData)));
     else if (numRects == 1)
-	return (!reg->data);
+	return !reg->data;
     else
     {
 	BoxPtr pboxP, pboxN;
@@ -428,7 +428,7 @@ RegionCoalesce (
 
     do {
 	if ((pPrevBox->x1 != pCurBox->x1) || (pPrevBox->x2 != pCurBox->x2)) {
-	    return (curStart);
+	    return curStart;
 	}
 	pPrevBox++;
 	pCurBox++;
@@ -1655,5 +1655,5 @@ RegionClipSpans(
 	    }
 	}
     }
-    return (pwidthNew - pwidthNewStart);
+    return pwidthNew - pwidthNewStart;
 }
diff --git a/dix/resource.c b/dix/resource.c
index ce025f9..a0fe719 100644
--- a/dix/resource.c
+++ b/dix/resource.c
@@ -901,7 +901,7 @@ LegalNewID(XID id, ClientPtr client)
 
 	    rc = dixLookupResourceByClass(&val, id, RC_ANY, serverClient,
 					  DixGetAttrAccess);
-	    return (rc == BadValue);
+	    return rc == BadValue;
 	}
 	return FALSE;
 }
diff --git a/dix/swapreq.c b/dix/swapreq.c
index 5d7d71c..2e34711 100644
--- a/dix/swapreq.c
+++ b/dix/swapreq.c
@@ -318,7 +318,7 @@ SProcSendEvent(ClientPtr client)
     /* Swap event */
     proc = EventSwapVector[stuff->event.u.u.type & 0177];
     if (!proc ||  proc == NotImplemented)    /* no swapping proc; invalid event type? */
-       return (BadValue);
+       return BadValue;
     (*proc)(&stuff->event, &eventT);
     stuff->event = eventT;
 
diff --git a/dix/window.c b/dix/window.c
index 8f3ffa3..4a47dd5 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -221,12 +221,12 @@ TraverseTree(WindowPtr pWin, VisitWindowProcPtr func, pointer data)
     WindowPtr pChild;
 
     if (!(pChild = pWin))
-       return(WT_NOMATCH);
+       return WT_NOMATCH;
     while (1)
     {
 	result = (* func)(pChild, data);
 	if (result == WT_STOPWALKING)
-	    return(WT_STOPWALKING);
+	    return WT_STOPWALKING;
 	if ((result == WT_WALKCHILDREN) && pChild->firstChild)
 	{
 	    pChild = pChild->firstChild;
@@ -238,7 +238,7 @@ TraverseTree(WindowPtr pWin, VisitWindowProcPtr func, pointer data)
 	    break;
 	pChild = pChild->nextSib;
     }
-    return(WT_NOMATCH);
+    return WT_NOMATCH;
 }
 
 /*****
@@ -529,9 +529,9 @@ RealChildHead(WindowPtr pWin)
     if (!pWin->parent &&
 	(screenIsSaved == SCREEN_SAVER_ON) &&
 	(HasSaverWindow (pWin->drawable.pScreen)))
-	return (pWin->firstChild);
+	return pWin->firstChild;
     else
-	return (NullWindow);
+	return NullWindow;
 }
 
 /*****
@@ -1549,7 +1549,7 @@ MoveWindowInStack(WindowPtr pWin, WindowPtr pNextSib)
         (*pWin->drawable.pScreen->RestackWindow)(pWin, pWin->nextSib);
 #endif
 
-    return( pFirstChange );
+    return pFirstChange;
 }
 
 void
@@ -1795,12 +1795,12 @@ IsSiblingAboveMe(
     while (pWin)
     {
 	if (pWin == pSib)
-	    return(Above);
+	    return Above;
 	else if (pWin == pMe)
-	    return(Below);
+	    return Below;
 	pWin = pWin->nextSib;
     }
-    return(Below);
+    return Below;
 }
 
 static BoxPtr
@@ -1814,7 +1814,7 @@ WindowExtents(
 	       + wBorderWidth (pWin);
     pBox->y2 = pWin->drawable.y + (int)pWin->drawable.height
 	       + wBorderWidth (pWin);
-    return(pBox);
+    return pBox;
 }
 
 #define IS_SHAPED(pWin)	(wBoundingShape (pWin) != (RegionPtr) NULL)
@@ -1872,10 +1872,10 @@ AnyWindowOverlapsMe(
 	    if (BOXES_OVERLAP(sbox, box)
 	    && ShapeOverlap (pWin, box, pSib, sbox)
 	    )
-		return(TRUE);
+		return TRUE;
 	}
     }
-    return(FALSE);
+    return FALSE;
 }
 
 static Bool
@@ -1895,10 +1895,10 @@ IOverlapAnyWindow(
 	    if (BOXES_OVERLAP(sbox, box)
 	    && ShapeOverlap (pWin, box, pSib, sbox)
 	    )
-		return(TRUE);
+		return TRUE;
 	}
     }
-    return(FALSE);
+    return FALSE;
 }
 
 /*
@@ -1955,63 +1955,63 @@ WhereDoIGoInTheStack(
     {
       case Above:
 	if (pSib)
-	   return(pSib);
+	   return pSib;
 	else if (pWin == pFirst)
-	    return(pWin->nextSib);
+	    return pWin->nextSib;
 	else
-	    return(pFirst);
+	    return pFirst;
       case Below:
 	if (pSib)
 	    if (pSib->nextSib != pWin)
-		return(pSib->nextSib);
+		return pSib->nextSib;
 	    else
-		return(pWin->nextSib);
+		return pWin->nextSib;
 	else
 	    return NullWindow;
       case TopIf:
 	if ((!pWin->mapped || (pSib && !pSib->mapped)))
-	    return(pWin->nextSib);
+	    return pWin->nextSib;
 	else if (pSib)
 	{
 	    if ((IsSiblingAboveMe(pWin, pSib) == Above) &&
 		(RegionContainsRect(&pSib->borderSize, &box) != rgnOUT))
-		return(pFirst);
+		return pFirst;
 	    else
-		return(pWin->nextSib);
+		return pWin->nextSib;
 	}
 	else if (AnyWindowOverlapsMe(pWin, pHead, &box))
-	    return(pFirst);
+	    return pFirst;
 	else
-	    return(pWin->nextSib);
+	    return pWin->nextSib;
       case BottomIf:
 	if ((!pWin->mapped || (pSib && !pSib->mapped)))
-	    return(pWin->nextSib);
+	    return pWin->nextSib;
 	else if (pSib)
 	{
 	    if ((IsSiblingAboveMe(pWin, pSib) == Below) &&
 		(RegionContainsRect(&pSib->borderSize, &box) != rgnOUT))
 		return NullWindow;
 	    else
-		return(pWin->nextSib);
+		return pWin->nextSib;
 	}
 	else if (IOverlapAnyWindow(pWin, &box))
 	    return NullWindow;
 	else
-	    return(pWin->nextSib);
+	    return pWin->nextSib;
       case Opposite:
 	if ((!pWin->mapped || (pSib && !pSib->mapped)))
-	    return(pWin->nextSib);
+	    return pWin->nextSib;
 	else if (pSib)
 	{
 	    if (RegionContainsRect(&pSib->borderSize, &box) != rgnOUT)
 	    {
 		if (IsSiblingAboveMe(pWin, pSib) == Above)
-		    return(pFirst);
+		    return pFirst;
 		else
 		    return NullWindow;
 	    }
 	    else
-		return(pWin->nextSib);
+		return pWin->nextSib;
 	}
 	else if (AnyWindowOverlapsMe(pWin, pHead, &box))
 	{
@@ -2019,7 +2019,7 @@ WhereDoIGoInTheStack(
 	     * if (pWin == pWin->parent->firstChild)
 	     *	  return pWin->nextSib;
 	     */
-	    return(pFirst);
+	    return pFirst;
 	}
 	else if (IOverlapAnyWindow(pWin, &box))
 	    return NullWindow;
@@ -2094,10 +2094,10 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
     xEvent event;
 
     if ((pWin->drawable.class == InputOnly) && (mask & IllegalInputOnlyConfigureMask))
-	return(BadMatch);
+	return BadMatch;
 
     if ((mask & CWSibling) && !(mask & CWStackMode))
-	return(BadMatch);
+	return BadMatch;
 
     pVlist = vlist;
 
@@ -2154,9 +2154,9 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
 		return rc;
 	    }
 	    if (pSib->parent != pParent)
-		return(BadMatch);
+		return BadMatch;
 	    if (pSib == pWin)
-		return(BadMatch);
+		return BadMatch;
 	    break;
 	  case CWStackMode:
 	    GET_CARD8(CWStackMode, smode);
@@ -2164,12 +2164,12 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
 		(smode != Opposite) && (smode != Above) && (smode != Below))
 	    {
 		client->errorValue = smode;
-		return(BadValue);
+		return BadValue;
 	    }
 	    break;
 	  default:
 	    client->errorValue = mask;
-	    return(BadValue);
+	    return BadValue;
 	}
     }
 	/* root really can't be reconfigured, so just return */
@@ -2217,7 +2217,7 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
 	event.u.configureRequest.parent = pParent->drawable.id;
 	if (MaybeDeliverEventsToClient(pParent, &event, 1,
 		SubstructureRedirectMask, client) == 1)
-	    return(Success);
+	    return Success;
     }
     if (action == RESIZE_WIN)
     {
@@ -2268,7 +2268,7 @@ ConfigureWindow(WindowPtr pWin, Mask mask, XID *vlist, ClientPtr client)
 #endif
 	    goto ActuallyDoSomething;
     }
-    return(Success);
+    return Success;
 
 ActuallyDoSomething:
     if (pWin->drawable.pScreen->ConfigNotify)
@@ -2331,7 +2331,7 @@ ActuallyDoSomething:
 
     if (action != RESTACK_WIN)
 	CheckCursorConfinement(pWin);
-    return(Success);
+    return Success;
 #undef RESTACK_WIN
 #undef MOVE_WIN
 #undef RESIZE_WIN
@@ -2392,7 +2392,7 @@ CirculateWindow(WindowPtr pParent, int direction, ClientPtr client)
 	event.u.u.type = CirculateRequest;
 	if (MaybeDeliverEventsToClient(pParent, &event, 1,
 		SubstructureRedirectMask, client) == 1)
-	    return(Success);
+	    return Success;
     }
 
     event.u.u.type = CirculateNotify;
@@ -2401,7 +2401,7 @@ CirculateWindow(WindowPtr pParent, int direction, ClientPtr client)
 		       (direction == RaiseLowest) ? pFirst : NullWindow,
 		       VTStack);
 
-    return(Success);
+    return Success;
 }
 
 static int
@@ -2412,9 +2412,9 @@ CompareWIDs(
     Window *wid = (Window *)value;
 
     if (pWin->drawable.id == *wid)
-       return(WT_STOPWALKING);
+       return WT_STOPWALKING;
     else
-       return(WT_WALKCHILDREN);
+       return WT_WALKCHILDREN;
 }
 
 /*****
@@ -2433,9 +2433,9 @@ ReparentWindow(WindowPtr pWin, WindowPtr pParent,
 
     pScreen = pWin->drawable.pScreen;
     if (TraverseTree(pWin, CompareWIDs, (pointer)&pParent->drawable.id) == WT_STOPWALKING)
-	return(BadMatch);		
+	return BadMatch;
     if (!MakeWindowOptional(pWin))
-	return(BadAlloc);
+	return BadAlloc;
 
     if (WasMapped)
        UnmapWindow(pWin, FALSE);
@@ -2511,7 +2511,7 @@ ReparentWindow(WindowPtr pWin, WindowPtr pParent,
     if (WasMapped)
 	MapWindow(pWin, client);
     RecalculateDeliverableEvents(pWin);
-    return(Success);
+    return Success;
 }
 
 static void
@@ -2584,7 +2584,7 @@ MapWindow(WindowPtr pWin, ClientPtr client)
     WindowPtr  pLayerWin;
 
     if (pWin->mapped)
-	return(Success);
+	return Success;
 
     /*  general check for permission to map window */
     if (XaceHook(XACE_RESOURCE_ACCESS, client, pWin->drawable.id, RT_WINDOW,
@@ -2608,7 +2608,7 @@ MapWindow(WindowPtr pWin, ClientPtr client)
 
 	    if (MaybeDeliverEventsToClient(pParent, &event, 1,
 		SubstructureRedirectMask, client) == 1)
-		return(Success);
+		return Success;
 	}
 
 	pWin->mapped = TRUE;
@@ -2622,7 +2622,7 @@ MapWindow(WindowPtr pWin, ClientPtr client)
 	}
 
 	if (!pParent->realized)
-	    return(Success);
+	    return Success;
 	RealizeTree(pWin);
 	if (pWin->viewable)
 	{
@@ -2657,7 +2657,7 @@ MapWindow(WindowPtr pWin, ClientPtr client)
 	RegionUninit(&temp);
     }
 
-    return(Success);
+    return Success;
 }
 
 
@@ -2813,7 +2813,7 @@ UnmapWindow(WindowPtr pWin, Bool fromConfigure)
     WindowPtr pLayerWin = pWin;
 
     if ((!pWin->mapped) || (!(pParent = pWin->parent)))
-	return(Success);
+	return Success;
     if (SubStrSend(pWin, pParent) && MapUnmapEventsEnabled(pWin))
     {
 	memset(&event, 0, sizeof(xEvent));
@@ -2843,7 +2843,7 @@ UnmapWindow(WindowPtr pWin, Bool fromConfigure)
     }
     if (wasRealized && !fromConfigure)
 	WindowsRestructured ();
-    return(Success);
+    return Success;
 }
 
 /*****
@@ -2986,15 +2986,15 @@ PointInWindowIsVisible(WindowPtr pWin, int x, int y)
     BoxRec box;
 
     if (!pWin->realized)
-	return (FALSE);
+	return FALSE;
     if (RegionContainsPoint(&pWin->borderClip,
 						  x, y, &box)
 	&& (!wInputShape(pWin) ||
 	    RegionContainsPoint(wInputShape(pWin),
 				x - pWin->drawable.x,
 				y - pWin->drawable.y, &box)))
-	return(TRUE);
-    return(FALSE);
+	return TRUE;
+    return FALSE;
 }
 
 
@@ -3008,7 +3008,7 @@ NotClippedByChildren(WindowPtr pWin)
     {
 	RegionIntersect(pReg, &pWin->borderClip, &pWin->winSize);
     }
-    return(pReg);
+    return pReg;
 }
 
 void
diff --git a/fb/fbcmap.c b/fb/fbcmap.c
index 02b7268..3251a4c 100644
--- a/fb/fbcmap.c
+++ b/fb/fbcmap.c
@@ -48,7 +48,7 @@ fbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
     /* By the time we are processing requests, we can guarantee that there
      * is always a colormap installed */
     *pmaps = GetInstalledColormap(pScreen)->mid;
-    return (1);
+    return 1;
 }
 
 
diff --git a/fb/fbpixmap.c b/fb/fbpixmap.c
index 15eedcd..41b12ce 100644
--- a/fb/fbpixmap.c
+++ b/fb/fbpixmap.c
@@ -318,7 +318,7 @@ fbPixmapToRegion(PixmapPtr pPix)
     if (!RegionIsValid(pReg))
 	FatalError("Assertion failed file %s, line %d: expr\n", __FILE__, __LINE__);
 #endif
-    return(pReg);
+    return pReg;
 }
 
 #ifdef FB_DEBUG
diff --git a/fb/fbscreen.c b/fb/fbscreen.c
index f4311ae..2502efe 100644
--- a/fb/fbscreen.c
+++ b/fb/fbscreen.c
@@ -43,13 +43,13 @@ fbCloseScreen (int index, ScreenPtr pScreen)
 Bool
 fbRealizeFont(ScreenPtr pScreen, FontPtr pFont)
 {
-    return (TRUE);
+    return TRUE;
 }
 
 Bool
 fbUnrealizeFont(ScreenPtr pScreen, FontPtr pFont)
 {
-    return (TRUE);
+    return TRUE;
 }
 
 void
diff --git a/glx/singlesize.c b/glx/singlesize.c
index 9e95dd3..6149b61 100644
--- a/glx/singlesize.c
+++ b/glx/singlesize.c
@@ -77,7 +77,7 @@ GLint __glGetMap_size(GLenum target, GLenum query)
 	    /*
 	    ** The query above might fail, but then order will be zero anyway.
 	    */
-	    return (order * k);
+	    return order * k;
 	  case GL_DOMAIN:
 	    return 2;
 	  case GL_ORDER:
@@ -101,7 +101,7 @@ GLint __glGetMap_size(GLenum target, GLenum query)
 	    /*
 	    ** The query above might fail, but then majorMinor will be zeroes
 	    */
-	    return (majorMinor[0] * majorMinor[1] * k);
+	    return majorMinor[0] * majorMinor[1] * k;
 	  case GL_DOMAIN:
 	    return 4;
 	  case GL_ORDER:
diff --git a/hw/dmx/dmx_glxvisuals.c b/hw/dmx/dmx_glxvisuals.c
index 59173ca..f0050c2 100644
--- a/hw/dmx/dmx_glxvisuals.c
+++ b/hw/dmx/dmx_glxvisuals.c
@@ -51,7 +51,7 @@ __GLXvisualConfig *GetGLXVisualConfigs(Display *dpy, int screen, int *nconfigs)
     int   num_good_visuals;
 
     if (!XQueryExtension(dpy, "GLX", &majorOpcode, &dummy, &dummy)) {
-       return(NULL);
+       return NULL;
     }
 
     /* Send the glXGetVisualConfigs request */
@@ -228,7 +228,7 @@ __GLXvisualConfig *GetGLXVisualConfigs(Display *dpy, int screen, int *nconfigs)
     SyncHandle();
 
     *nconfigs = nvisuals;
-    return( configs );
+    return configs;
 }
 
 
@@ -500,7 +500,7 @@ GetGLXVisualConfigsFromFBConfigs(__GLXFBConfig *fbconfigs, int nfbconfigs,
     __GLXvisualConfig *configs = NULL;
     int i;
     
-    if (!fbconfigs || !nfbconfigs || !nconfigs) return(NULL);
+    if (!fbconfigs || !nfbconfigs || !nconfigs) return NULL;
     *nconfigs = 0;
 
     /* Allocate memory for our config structure */
@@ -596,6 +596,6 @@ GetGLXVisualConfigsFromFBConfigs(__GLXFBConfig *fbconfigs, int nfbconfigs,
        }
     }
 
-    return( configs );
+    return configs;
 }
 
diff --git a/hw/dmx/dmxcmap.c b/hw/dmx/dmxcmap.c
index e3d2fdc..ca9ef1f 100644
--- a/hw/dmx/dmxcmap.c
+++ b/hw/dmx/dmxcmap.c
@@ -75,7 +75,7 @@ Bool dmxBECreateColormap(ColormapPtr pColormap)
                                          visual,
                                          (pVisual->class & DynamicClass ?
                                           AllocAll : AllocNone));
-       return (pCmapPriv->cmap != 0);
+       return pCmapPriv->cmap != 0;
     }
     else {
        dmxLog(dmxWarning, "dmxBECreateColormap: No visual found\n");
diff --git a/hw/dmx/dmxfont.c b/hw/dmx/dmxfont.c
index 7a418c8..34161f2 100644
--- a/hw/dmx/dmxfont.c
+++ b/hw/dmx/dmxfont.c
@@ -108,7 +108,7 @@ static Bool dmxCheckFontPathElement(DMXScreenInfo *dmxScreen, char *fp)
     dmxSync(dmxScreen, TRUE);   /* Must complete before removing handler */
     XSetErrorHandler(oldErrorHandler);
 
-    return (dmxFontLastError == 0);
+    return dmxFontLastError == 0;
 }
 
 static int dmxSetFontPath(DMXScreenInfo *dmxScreen)
diff --git a/hw/dmx/dmxinit.c b/hw/dmx/dmxinit.c
index 7cd50da..0755532 100644
--- a/hw/dmx/dmxinit.c
+++ b/hw/dmx/dmxinit.c
@@ -404,7 +404,7 @@ Bool dmxGetVisualInfo(DMXScreenInfo *dmxScreen)
         dmxLogVisual(dmxScreen, &dmxScreen->beVisuals[i],
                      (i == dmxScreen->beDefVisualIndex));
 
-    return (dmxScreen->beDefVisualIndex >= 0);
+    return dmxScreen->beDefVisualIndex >= 0;
 }
 
 void dmxGetColormaps(DMXScreenInfo *dmxScreen)
diff --git a/hw/dmx/dmxpixmap.c b/hw/dmx/dmxpixmap.c
index 587a27d..81b7115 100644
--- a/hw/dmx/dmxpixmap.c
+++ b/hw/dmx/dmxpixmap.c
@@ -247,5 +247,5 @@ RegionPtr dmxBitmapToRegion(PixmapPtr pPixmap)
     RegionValidate(pReg, &overlap);
 
     dmxSync(dmxScreen, FALSE);
-    return(pReg);
+    return pReg;
 }
diff --git a/hw/dmx/glxProxy/compsize.c b/hw/dmx/glxProxy/compsize.c
index cae8fea..9a40d65 100644
--- a/hw/dmx/glxProxy/compsize.c
+++ b/hw/dmx/glxProxy/compsize.c
@@ -145,7 +145,7 @@ GLint __glDrawPixels_size(GLenum format, GLenum type, GLsizei w, GLsizei h)
       default:
 	return 0;
     }
-    return (elements * esize * w * h);
+    return elements * esize * w * h;
 }
 
 GLint __glBitmap_size(GLsizei w, GLsizei h)
@@ -294,7 +294,7 @@ GLint __glTexImage1D_size(GLenum format, GLenum type, GLsizei w)
       default:
 	return 0;
     }
-    return (elements * esize * w);
+    return elements * esize * w;
 }
 
 GLint __glTexImage2D_size(GLenum format, GLenum type, GLsizei w, GLsizei h)
@@ -371,7 +371,7 @@ GLint __glTexImage2D_size(GLenum format, GLenum type, GLsizei w, GLsizei h)
       default:
 	return 0;
     }
-    return (elements * esize * w * h);
+    return elements * esize * w * h;
 }
 
 GLint __glTexImage3D_size(GLenum format, GLenum type, GLsizei w, GLsizei h,
@@ -450,7 +450,7 @@ GLint __glTexImage3D_size(GLenum format, GLenum type, GLsizei w, GLsizei h,
       default:
 	return 0;
     }
-    return (elements * esize * w * h * d);
+    return elements * esize * w * h * d;
 }
 
 GLint __glLightfv_size(GLenum pname)
diff --git a/hw/dmx/glxProxy/glxcmds.c b/hw/dmx/glxProxy/glxcmds.c
index c559ce7..88cf901 100644
--- a/hw/dmx/glxProxy/glxcmds.c
+++ b/hw/dmx/glxProxy/glxcmds.c
@@ -80,7 +80,7 @@ Display *GetBackEndDisplay( __GLXclientState *cl, int s )
    if (! cl->be_displays[s] ) {
       cl->be_displays[s] = XOpenDisplay( DisplayString(dmxScreens[s].beDisplay) );
    }
-   return( cl->be_displays[s] );
+   return cl->be_displays[s];
 }
 
 /*
@@ -628,7 +628,7 @@ int GetCurrentBackEndTag(__GLXclientState *cl, GLXContextTag tag, int s)
       return( cl->be_currentCTag[ (tag-1)*screenInfo.numScreens + s ] );
    }
    else {
-      return( 0 );
+      return 0;
    }
 }
 
diff --git a/hw/dmx/glxProxy/glxfbconfig.c b/hw/dmx/glxProxy/glxfbconfig.c
index c721fdd..a7741ff 100644
--- a/hw/dmx/glxProxy/glxfbconfig.c
+++ b/hw/dmx/glxProxy/glxfbconfig.c
@@ -90,7 +90,7 @@ int AreFBConfigsMatch( __GLXFBConfig *c1, __GLXFBConfig *c2 )
 	     (c1->maxAlpha == c2->maxAlpha) 
 	   );
 
-   return( match );
+   return match;
 }
 
 __GLXFBConfig *FindMatchingFBConfig( __GLXFBConfig *c, __GLXFBConfig *configs, int nconfigs )
@@ -99,8 +99,8 @@ __GLXFBConfig *FindMatchingFBConfig( __GLXFBConfig *c, __GLXFBConfig *configs, i
 
    for (i=0; i<nconfigs; i++) {
       if ( AreFBConfigsMatch( c, configs + i ) ) 
-	 return( configs + i );
+	 return configs + i;
    }
 
-   return(0);
+   return 0;
 }
diff --git a/hw/dmx/glxProxy/glxscreens.c b/hw/dmx/glxProxy/glxscreens.c
index 0298435..a0e8bea 100644
--- a/hw/dmx/glxProxy/glxscreens.c
+++ b/hw/dmx/glxProxy/glxscreens.c
@@ -327,7 +327,7 @@ char *__glXGetServerString( unsigned int name )
 	 break;
    }
 
-   return( ret );
+   return ret;
 
 }
 
@@ -338,10 +338,10 @@ __GLXFBConfig *glxLookupFBConfig( GLXFBConfigID id )
 
    for (i=0, j=0; i<__glXNumFBConfigs; i++,j+=(__glXNumActiveScreens+1) ) {
       if ( __glXFBConfigs[j]->id == id) 
-	 return( __glXFBConfigs[j] );
+	 return __glXFBConfigs[j];
    }
 
-   return(NULL);
+   return NULL;
 }
 
 __GLXFBConfig *glxLookupFBConfigByVID( VisualID vid )
@@ -350,10 +350,10 @@ __GLXFBConfig *glxLookupFBConfigByVID( VisualID vid )
 
    for (i=0, j=0; i<__glXNumFBConfigs; i++,j+=(__glXNumActiveScreens+1) ) {
       if ( __glXFBConfigs[j]->associatedVisualId == vid) 
-	 return( __glXFBConfigs[j] );
+	 return __glXFBConfigs[j];
    }
 
-   return(NULL);
+   return NULL;
 }
 
 __GLXFBConfig *glxLookupBackEndFBConfig( GLXFBConfigID id, int screen )
@@ -363,10 +363,10 @@ __GLXFBConfig *glxLookupBackEndFBConfig( GLXFBConfigID id, int screen )
 
    for (i=0, j=0; i<__glXNumFBConfigs; i++,j+=(__glXNumActiveScreens+1) ) {
       if ( __glXFBConfigs[j]->id == id) 
-	 return( __glXFBConfigs[j+screen+1] );
+	 return __glXFBConfigs[j+screen+1];
    }
 
-   return(NULL);
+   return NULL;
 
 }
 
diff --git a/hw/dmx/glxProxy/glxsingle.c b/hw/dmx/glxProxy/glxsingle.c
index 7a732cc..a7ed574 100644
--- a/hw/dmx/glxProxy/glxsingle.c
+++ b/hw/dmx/glxProxy/glxsingle.c
@@ -668,7 +668,7 @@ static GLint __glReadPixels_size(GLenum format, GLenum type, GLint w, GLint h,
 	   }
 	   if (elementbits_return) *elementbits_return = elements;
 	   if (rowbytes_return) *rowbytes_return = rowsize;
-	   return (rowsize * h);
+	   return rowsize * h;
 	} else {
 	   return -1;
 	}
@@ -718,7 +718,7 @@ static GLint __glReadPixels_size(GLenum format, GLenum type, GLint w, GLint h,
     if (elementbits_return) *elementbits_return = esize*elements*8;
     if (rowbytes_return) *rowbytes_return = rowsize;
 
-    return (rowsize * h);
+    return rowsize * h;
 }
 
 static int intersectRect( int x1, int x2, int y1, int y2,
@@ -734,14 +734,14 @@ static int intersectRect( int x1, int x2, int y1, int y2,
 
    if ( (width <= 0) || (height <= 0) ) {
       *ix1 = *ix2 = *iy1 = *iy2 = 0;
-      return(0);
+      return 0;
    }
    else {
       *ix1 = left;
       *ix2 = right;
       *iy1 = top;
       *iy2 = bottom;
-      return( width * height );
+      return width * height;
    }
 
 }
@@ -811,7 +811,7 @@ int __glXDisp_ReadPixels(__GLXclientState *cl, GLbyte *pc)
     if (buf_size > 0) {
        buf = (char *) malloc( buf_size );
        if ( !buf ) {
-	  return( BadAlloc );
+	  return BadAlloc;
        }
     }
     else {
diff --git a/hw/dmx/glxProxy/glxvisuals.c b/hw/dmx/glxProxy/glxvisuals.c
index 4c64db2..d738ec2 100644
--- a/hw/dmx/glxProxy/glxvisuals.c
+++ b/hw/dmx/glxProxy/glxvisuals.c
@@ -77,11 +77,11 @@ int glxVisualsMatch( __GLXvisualConfig *v1, __GLXvisualConfig *v2 )
 	   (v1->nMultiSampleBuffers == v2->nMultiSampleBuffers) &&
 	   (v1->visualSelectGroup == v2->visualSelectGroup)         ) {
 
-	      return(1);
+	      return 1;
 
       }
 
-      return(0);
+      return 0;
 
 }
 
@@ -93,12 +93,12 @@ VisualID glxMatchGLXVisualInConfigList( __GLXvisualConfig *pGlxVisual, __GLXvisu
 
        if (glxVisualsMatch( pGlxVisual, &configs[i] )) {
 
-	  return( configs[i].vid );
+	  return configs[i].vid;
 
        }
     }
 
-    return(0);
+    return 0;
 }
 
 VisualID glxMatchVisualInConfigList( ScreenPtr pScreen, VisualPtr pVisual, __GLXvisualConfig *configs, int nconfigs )
@@ -109,7 +109,7 @@ VisualID glxMatchVisualInConfigList( ScreenPtr pScreen, VisualPtr pVisual, __GLX
 
     /* check that the glx extension has been initialized */
     if ( !__glXActiveScreens ) 
-       return(0);
+       return 0;
 
     pGlxScreen = &__glXActiveScreens[pScreen->myNum];
     pGlxVisual = pGlxScreen->pGlxVisual;
@@ -124,7 +124,7 @@ VisualID glxMatchVisualInConfigList( ScreenPtr pScreen, VisualPtr pVisual, __GLX
 	/*
 	 * the visual is not supported by glx
 	 */
-        return(0);
+        return 0;
     }
 
     return( glxMatchGLXVisualInConfigList(pGlxVisual, configs, nconfigs) );
@@ -151,12 +151,12 @@ VisualPtr glxMatchVisual( ScreenPtr pScreen, VisualPtr pVisual, ScreenPtr pMatch
 	*/
        for (j=0; j<pMatchScreen->numVisuals; j++) {
 	  if (vid == pMatchScreen->visuals[j].vid) {
-	     return( &pMatchScreen->visuals[j] );
+	     return &pMatchScreen->visuals[j];
 	  }
        }
     }
 
-    return(0);
+    return 0;
 }
 
 void glxSetVisualConfigs(int nconfigs, __GLXvisualConfig *configs,
@@ -198,7 +198,7 @@ static VisualID FindClosestVisual( VisualPtr pVisual, int rootDepth,
 	    while( pdepth[d].vids[v] != vis->vid ) vis++;
 
 	    if (vis->class == pVisual->class) {
-	       return( pdepth[d].vids[v] );
+	       return pdepth[d].vids[v];
 	    }
 	 }
       }
@@ -216,7 +216,7 @@ static VisualID FindClosestVisual( VisualPtr pVisual, int rootDepth,
 	 while( pdepth[d].vids[v] != vis->vid ) vis++;
 
       	 if (vis->class == pVisual->class) {
-	    return( pdepth[d].vids[v] );
+	    return pdepth[d].vids[v];
 	 }
       }
    }
@@ -224,7 +224,7 @@ static VisualID FindClosestVisual( VisualPtr pVisual, int rootDepth,
    /*
     * if not found - just take the first visual
     */
-   return( pdepth[0].vids[0] );
+   return pdepth[0].vids[0];
 }
 
 Bool glxInitVisuals(int *nvisualp, VisualPtr *visualp,
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c
index d546370..38ee06d 100644
--- a/hw/kdrive/ephyr/hostx.c
+++ b/hw/kdrive/ephyr/hostx.c
@@ -532,7 +532,7 @@ hostx_get_server_depth (EphyrScreenInfo screen)
 {
   struct EphyrHostScreen *host_screen = host_screen_from_screen_info (screen);
 
-  return (host_screen ? host_screen->server_depth : 0);
+  return host_screen ? host_screen->server_depth : 0;
 }
 
 void
diff --git a/hw/kdrive/src/kxv.c b/hw/kdrive/src/kxv.c
index 3af6acf..c07829a 100644
--- a/hw/kdrive/src/kxv.c
+++ b/hw/kdrive/src/kxv.c
@@ -1173,7 +1173,7 @@ KdXVQueryAdaptors(
   *p_nAdaptors = pxvs->nAdaptors;
   *p_pAdaptors = pxvs->pAdaptors;
 
-  return (Success);
+  return Success;
 }
 
 static Bool
diff --git a/hw/vfb/InitOutput.c b/hw/vfb/InitOutput.c
index be8c036..e109734 100644
--- a/hw/vfb/InitOutput.c
+++ b/hw/vfb/InitOutput.c
@@ -401,7 +401,7 @@ vfbListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
     /* By the time we are processing requests, we can guarantee that there
      * is always a colormap installed */
     *pmaps = GetInstalledColormap(pScreen)->mid;
-    return (1);
+    return 1;
 }
 
 
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
index 167bc78..200cb8f 100644
--- a/hw/xfree86/common/xf86AutoConfig.c
+++ b/hw/xfree86/common/xf86AutoConfig.c
@@ -185,7 +185,7 @@ xf86AutoConfig(void)
     if (ret != CONFIG_OK)
 	xf86Msg(X_ERROR, "Error parsing the built-in default configuration.\n");
 
-    return (ret == CONFIG_OK);
+    return ret == CONFIG_OK;
 }
 
 static void
diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index 7876ba9..90c1914 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -245,7 +245,7 @@ xf86AllocateEntity(void)
     xf86Entities[xf86NumEntities - 1] = xnfcalloc(1,sizeof(EntityRec));
     xf86Entities[xf86NumEntities - 1]->entityPrivates =
                xnfcalloc(sizeof(DevUnion) * xf86EntityPrivateCount, 1);
-    return (xf86NumEntities - 1);
+    return xf86NumEntities - 1;
 }
 
 Bool
@@ -257,9 +257,9 @@ xf86IsEntityPrimary(int entityIndex)
 
     switch (pEnt->bus.type) {
     case BUS_PCI:
-	return (pEnt->bus.id.pci == primaryBus.id.pci);
+	return pEnt->bus.id.pci == primaryBus.id.pci;
     case BUS_SBUS:
-	return (pEnt->bus.id.sbus.fbNum == primaryBus.id.sbus.fbNum);
+	return pEnt->bus.id.sbus.fbNum == primaryBus.id.sbus.fbNum;
     default:
 	return FALSE;
     }
@@ -342,7 +342,7 @@ xf86FindScreenForEntity(int entityIndex)
 	for (i = 0; i < xf86NumScreens; i++) {
 	    for (j = 0; j < xf86Screens[i]->numEntities; j++) {
 		if ( xf86Screens[i]->entityList[j] == entityIndex )
-		    return (xf86Screens[i]);
+		    return xf86Screens[i];
 	    }
 	}
     }
@@ -557,7 +557,7 @@ int
 xf86GetLastScrnFlag(int entityIndex)
 {
     if(entityIndex < xf86NumEntities) {
-        return(xf86Entities[entityIndex]->lastScrnFlag);
+        return xf86Entities[entityIndex]->lastScrnFlag;
     } else {
         return -1;
     }
diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
index c7a68e5..28786ba 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
@@ -163,7 +163,7 @@ xf86GetPathElem(char **pnt)
     **pnt = '\0';
     *pnt += 1;
   }
-  return(p1);
+  return p1;
 }
 
 /*
@@ -239,7 +239,7 @@ xf86ValidateFontPath(char *path)
     strcat(out_pnt, path_elem);
     out_pnt += strlen(path_elem);
   }
-  return(tmp_path);
+  return tmp_path;
 }
 
 
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 394fb06..cd48914 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -1360,7 +1360,7 @@ xf86TokenToString(SymTabPtr table, int token)
     if (table[i].token < 0)
 	return NULL;
     else
-	return(table[i].name);
+	return table[i].name;
 }
 
 int
@@ -1374,7 +1374,7 @@ xf86StringToToken(SymTabPtr table, const char *string)
     for (i = 0; table[i].token >= 0 && xf86NameCmp(string, table[i].name); i++)
 	;
 
-    return(table[i].token);
+    return table[i].token;
 }
 
 /*
@@ -1993,7 +1993,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
 	   ScrnIndex, property, type, format, len, value);
 
     if (ScrnIndex<0 || ScrnIndex>=xf86NumScreens) {
-      return(BadMatch);
+      return BadMatch;
     }
 
     if (xf86RegisteredPropertiesTable &&
@@ -2007,7 +2007,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
 
     if (!pNewProp) {
       if ((pNewProp = (RootWinPropPtr)malloc(sizeof(RootWinProp))) == NULL) {
-	return(BadAlloc);
+	return BadAlloc;
       }
       /*
        * We will put this property at the end of the list so that
@@ -2031,7 +2031,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
       DebugF("creating xf86RegisteredPropertiesTable[] size %d\n",
 	     xf86NumScreens);
       if ( NULL==(xf86RegisteredPropertiesTable=(RootWinPropPtr*)xnfcalloc(sizeof(RootWinProp),xf86NumScreens) )) {
-	return(BadAlloc);
+	return BadAlloc;
       }
       for (i=0; i<xf86NumScreens; i++) {
 	xf86RegisteredPropertiesTable[i] = NULL;
@@ -2056,7 +2056,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
       }
     }
     DebugF("xf86RegisterRootWindowProperty succeeded\n");
-    return(Success);
+    return Success;
 }
 
 Bool
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 98bbd5d..ca532ee 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -294,7 +294,7 @@ xf86CreateRootWindow(WindowPtr pWin)
   }
 
   DebugF("xf86CreateRootWindow() returns %d\n", ret);
-  return (ret);
+  return ret;
 }
 
 
diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c
index 61d0dcc..91a6718 100644
--- a/hw/xfree86/common/xf86Option.c
+++ b/hw/xfree86/common/xf86Option.c
@@ -745,7 +745,7 @@ xf86IsOptionSet(const OptionInfoRec *table, int token)
     OptionInfoPtr p;
 
     p = xf86TokenToOptinfo(table, token);
-    return (p && p->found);
+    return p && p->found;
 }
 
 
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index c3a1ddd..889339a 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -278,9 +278,9 @@ xf86SendDragEvents(DeviceIntPtr	device)
     LocalDevicePtr local = (LocalDevicePtr) device->public.devicePrivate;
     
     if (device->button && device->button->buttonsDown > 0)
-        return (local->flags & XI86_SEND_DRAG_EVENTS);
+        return local->flags & XI86_SEND_DRAG_EVENTS;
     else
-        return (TRUE);
+        return TRUE;
 }
 
 /***********************************************************************
@@ -1193,7 +1193,7 @@ xf86ScaleAxis(int	Cx,
     if (X < Sxlow)
 	X = Sxlow;
     
-    return (X);
+    return X;
 }
 
 /*
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 184f221..1517951 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -465,7 +465,7 @@ xf86PciAddMatchingDev(DriverPtr drvp)
 
     pci_iterator_destroy(iter);
 
-    return (numFound != 0);
+    return numFound != 0;
 }
 
 Bool
diff --git a/hw/xfree86/common/xf86sbusBus.c b/hw/xfree86/common/xf86sbusBus.c
index 30a4202..fe3f0a8 100644
--- a/hw/xfree86/common/xf86sbusBus.c
+++ b/hw/xfree86/common/xf86sbusBus.c
@@ -530,7 +530,7 @@ xf86GetSbusInfoForEntity(int entityIndex)
 
     for (psdpp = xf86SbusInfo; *psdpp != NULL; psdpp++) {
 	if (p->bus.id.sbus.fbNum == (*psdpp)->fbNum)
-	    return (*psdpp);
+	    return *psdpp;
     }
     return NULL;
 }
diff --git a/hw/xfree86/common/xf86xv.c b/hw/xfree86/common/xf86xv.c
index 3d5d9a6..948f82d 100644
--- a/hw/xfree86/common/xf86xv.c
+++ b/hw/xfree86/common/xf86xv.c
@@ -1220,7 +1220,7 @@ xf86XVQueryAdaptors(
   *p_nAdaptors = pxvs->nAdaptors;
   *p_pAdaptors = pxvs->pAdaptors;
 
-  return (Success);
+  return Success;
 }
 
 
diff --git a/hw/xfree86/common/xisb.c b/hw/xfree86/common/xisb.c
index 4455efd..e4c8bf2 100644
--- a/hw/xfree86/common/xisb.c
+++ b/hw/xfree86/common/xisb.c
@@ -69,12 +69,12 @@ XisbNew (int fd, ssize_t size)
 
 	b = malloc(sizeof (XISBuffer));
 	if (!b)
-		return (NULL);
+		return NULL;
 	b->buf = malloc((sizeof (unsigned char) * size));
 	if (!b->buf)
 	{
 		free(b);
-		return (NULL);
+		return NULL;
 	}
 
 	b->fd = fd;
@@ -83,7 +83,7 @@ XisbNew (int fd, ssize_t size)
 	b->current = 1;	/* force it to be past the end to trigger initial read */
 	b->end = 0;
 	b->buffer_size = size;
-	return (b);
+	return b;
 }
 
 void
@@ -103,7 +103,7 @@ XisbRead (XISBuffer *b)
 		if (b->block_duration >= 0)
 		{
 			if (xf86WaitForInput (b->fd, b->block_duration) < 1)
-				return (-1);
+				return -1;
 		}
 		else
 		{
@@ -119,9 +119,9 @@ XisbRead (XISBuffer *b)
 		switch (ret)
 		{
 			case 0:
-				return (-1); /* timeout */
+				return -1; /* timeout */
 			case -1:
-				return (-2); /* error */
+				return -2; /* error */
 			default:
 				b->end = ret;
 				b->current = 0;
@@ -132,7 +132,7 @@ XisbRead (XISBuffer *b)
 		ErrorF ("read 0x%02x (%c)\n", b->buf[b->current], 
 			isprint(b->buf[b->current])?b->buf[b->current]:'.');
 
-	return (b->buf[b->current++]);
+	return b->buf[b->current++];
 }
 
 /* the only purpose of this function is to provide output tracing */
diff --git a/hw/xfree86/ddc/ddc.c b/hw/xfree86/ddc/ddc.c
index e64e2f3..7379e95 100644
--- a/hw/xfree86/ddc/ddc.c
+++ b/hw/xfree86/ddc/ddc.c
@@ -53,8 +53,8 @@ find_start(unsigned int *ptr)
 	}
     }
     for (i=0;i<9;i++)
-	if (test[i]) return (i+1);
-    return (-1);
+	if (test[i]) return i+1;
+    return -1;
 }
 
 static unsigned char *
@@ -75,8 +75,8 @@ find_header(unsigned char *block)
 	if (i==8) break;
 	ptr++; 
     }
-    if (ptr == end) return (NULL);
-    return (ptr);
+    if (ptr == end) return NULL;
+    return ptr;
 }
 
 static unsigned char *
@@ -98,7 +98,7 @@ resort(unsigned char *s_block)
 	if (s_ptr == s_end) s_ptr = s_block;
     }
     free(s_block);
-    return (d_new);
+    return d_new;
 }
 
 static int
@@ -120,7 +120,7 @@ DDC_checksum(unsigned char *block, int len)
     /* catch the trivial case where all bytes are 0 */
     if (!not_null) return 1;
 
-    return (result&0xFF);
+    return result&0xFF;
 }
 
 static unsigned char *
@@ -169,7 +169,7 @@ FetchEDID_DDC1(register ScrnInfoPtr pScrn,
 	*xp = read_DDC(pScrn);
 	xp++;
     } while(--count);
-    return (ptr);
+    return ptr;
 }
 
 /* test if DDC1  return 0 if not */
@@ -184,7 +184,7 @@ TestDDC1(ScrnInfoPtr pScrn, unsigned int (*read_DDC)(ScrnInfoPtr))
 	/* wait for next retrace */
 	if (old != read_DDC(pScrn)) break;
     } while(count--);
-    return (count);
+    return count;
 }
 
 /* 
diff --git a/hw/xfree86/ddc/interpret_edid.c b/hw/xfree86/ddc/interpret_edid.c
index d63e25d..acb7efa 100644
--- a/hw/xfree86/ddc/interpret_edid.c
+++ b/hw/xfree86/ddc/interpret_edid.c
@@ -183,7 +183,7 @@ xf86InterpretEDID(int scrnIndex, Uchar *block)
     handle_edid_quirks(m);
     encode_aspect_ratio(m);
 
-    return (m);
+    return m;
 
  error:
     free(m);
diff --git a/hw/xfree86/dixmods/extmod/xf86dga2.c b/hw/xfree86/dixmods/extmod/xf86dga2.c
index 203fccf..e522b5c 100644
--- a/hw/xfree86/dixmods/extmod/xf86dga2.c
+++ b/hw/xfree86/dixmods/extmod/xf86dga2.c
@@ -692,10 +692,10 @@ ProcXF86DGAGetVideoLL(ClientPtr client)
     rep.sequenceNumber = client->sequence;
 
     if(!DGAAvailable(stuff->screen))
-	return (DGAErrorBase + XF86DGANoDirectVideoMode);
+	return DGAErrorBase + XF86DGANoDirectVideoMode;
 
     if(!(num = DGAGetOldDGAMode(stuff->screen)))
-	return (DGAErrorBase + XF86DGANoDirectVideoMode);
+	return DGAErrorBase + XF86DGANoDirectVideoMode;
 
     /* get the parameters for the mode that best matches */
     DGAGetModeInfo(stuff->screen, &mode, num);
@@ -736,12 +736,12 @@ ProcXF86DGADirectVideo(ClientPtr client)
 
     if (stuff->enable & XF86DGADirectGraphics) {
 	if(!(num = DGAGetOldDGAMode(stuff->screen)))
-	    return (DGAErrorBase + XF86DGANoDirectVideoMode);
+	    return DGAErrorBase + XF86DGANoDirectVideoMode;
     } else
 	num = 0;
 
     if(Success != DGASetMode(stuff->screen, num, &mode, &pix))
-	return (DGAErrorBase + XF86DGAScreenNotActive);
+	return DGAErrorBase + XF86DGAScreenNotActive;
 
     DGASetInputMode (stuff->screen,
 		     (stuff->enable & XF86DGADirectKeyb) != 0,
@@ -785,10 +785,10 @@ ProcXF86DGAGetViewPortSize(ClientPtr client)
     rep.sequenceNumber = client->sequence;
 
     if (!DGAAvailable(stuff->screen))
-	return (DGAErrorBase + XF86DGANoDirectVideoMode);
+	return DGAErrorBase + XF86DGANoDirectVideoMode;
 
     if(!(num = DGAGetOldDGAMode(stuff->screen)))
-	return (DGAErrorBase + XF86DGANoDirectVideoMode);
+	return DGAErrorBase + XF86DGANoDirectVideoMode;
 
     DGAGetModeInfo(stuff->screen, &mode, num);
 
@@ -813,7 +813,7 @@ ProcXF86DGASetViewPort(ClientPtr client)
     REQUEST_SIZE_MATCH(xXF86DGASetViewPortReq);
 
     if (!DGAAvailable(stuff->screen))
-	return (DGAErrorBase + XF86DGANoDirectVideoMode);
+	return DGAErrorBase + XF86DGANoDirectVideoMode;
 
     if (!DGAActive(stuff->screen))
 	return DGAErrorBase + XF86DGADirectNotActivated;
@@ -877,7 +877,7 @@ ProcXF86DGAInstallColormap(ClientPtr client)
     REQUEST_SIZE_MATCH(xXF86DGAInstallColormapReq);
 
     if (!DGAActive(stuff->screen))
-	return (DGAErrorBase + XF86DGADirectNotActivated);
+	return DGAErrorBase + XF86DGADirectNotActivated;
 
     rc = dixLookupResourceByType((pointer *)&pcmp, stuff->id, RT_COLORMAP,
 				 client, DixInstallAccess);
@@ -926,7 +926,7 @@ ProcXF86DGAViewPortChanged(ClientPtr client)
     REQUEST_SIZE_MATCH(xXF86DGAViewPortChangedReq);
 
     if (!DGAActive(stuff->screen))
-	return (DGAErrorBase + XF86DGADirectNotActivated);
+	return DGAErrorBase + XF86DGADirectNotActivated;
 
     rep.type = X_Reply;
     rep.length = 0;
diff --git a/hw/xfree86/dixmods/extmod/xf86vmode.c b/hw/xfree86/dixmods/extmod/xf86vmode.c
index 3631369..0001c9e 100644
--- a/hw/xfree86/dixmods/extmod/xf86vmode.c
+++ b/hw/xfree86/dixmods/extmod/xf86vmode.c
@@ -520,7 +520,7 @@ ProcXF86VidModeGetAllModeLines(ClientPtr client)
 
     modecount = VidModeGetNumOfModes(stuff->screen);
     if (modecount < 1)
-      return (VidModeErrorBase + XF86VidModeExtensionDisabled);
+      return VidModeErrorBase + XF86VidModeExtensionDisabled;
 
     if (!VidModeGetFirstModeline(stuff->screen, &mode, &dotClock))
 	return BadValue;
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index d33b0d1..e20595a 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -949,7 +949,7 @@ DRI2HasSwapControl(ScreenPtr pScreen)
 {
     DRI2ScreenPtr ds = DRI2GetScreen(pScreen);
 
-    return (ds->ScheduleSwap && ds->GetMSC);
+    return ds->ScheduleSwap && ds->GetMSC;
 }
 
 Bool
diff --git a/hw/xfree86/loader/loadext.c b/hw/xfree86/loader/loadext.c
index 8ac50a6..4078b77 100644
--- a/hw/xfree86/loader/loadext.c
+++ b/hw/xfree86/loader/loadext.c
@@ -163,7 +163,7 @@ get_node(const char *name)
     for (n = graph; n && n->n_name && strcmp(n->n_name, name);
 	 n = n->n_next) ;
     if (n)
-	return (n);
+	return n;
 
     n = xnfalloc(sizeof(NODE));
 
@@ -180,7 +180,7 @@ get_node(const char *name)
     n->n_prevp = &graph;
     graph = n;
 
-    return (n);
+    return n;
 }
 
 /*
@@ -285,7 +285,7 @@ find_cycle(NODE * from, NODE * to, int longest_len, int depth)
      * to be acyclic
      */
     if (from->n_flags & (NF_NODEST | NF_MARK | NF_ACYCLIC))
-	return (0);
+	return 0;
     from->n_flags |= NF_MARK;
 
     for (np = from->n_arcs, i = from->n_narcs; --i >= 0; np++) {
@@ -317,7 +317,7 @@ find_cycle(NODE * from, NODE * to, int longest_len, int depth)
 	}
     }
     from->n_flags &= ~NF_MARK;
-    return (longest_len);
+    return longest_len;
 }
 
 /* do topological sort on graph */
diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index defe560..4962443 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -114,7 +114,7 @@ static char **defaultPathList = NULL;
 static Bool
 PathIsAbsolute(const char *path)
 {
-    return (*path == '/');
+    return *path == '/';
 }	
 
 /*
@@ -739,7 +739,7 @@ static ModuleDescPtr
 AddSibling(ModuleDescPtr head, ModuleDescPtr new)
 {
     new->sib = head;
-    return (new);
+    return new;
 }
 
 pointer
@@ -789,7 +789,7 @@ NewModuleDesc(const char *name)
 	mdp->TearDownData = NULL;
     }
 
-    return (mdp);
+    return mdp;
 }
 
 ModuleDescPtr
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index cd978ae..a62a63f 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -577,7 +577,7 @@ xf86OutputInitialRotation (xf86OutputPtr output)
     
     for (i = 0; i < 4; i++)
 	if (xf86nameCompare (direction[i], rotate_name) == 0)
-	    return (1 << i);
+	    return 1 << i;
     return RR_Rotate_0;
 }
 
@@ -2201,7 +2201,7 @@ xf86TargetFallback(ScrnInfoPtr scrn, xf86CrtcConfigPtr config,
 				       target_rotation, width, height);
     }
 
-    return (target_mode != NULL);
+    return target_mode != NULL;
 }
 
 static Bool
@@ -3220,7 +3220,7 @@ xf86_crtc_supports_gamma(ScrnInfoPtr pScrn)
 	    return FALSE;
 	crtc = xf86_config->crtc[0];
 
-	return (crtc->funcs->gamma_set != NULL);
+	return crtc->funcs->gamma_set != NULL;
     }
 
     return FALSE;
diff --git a/hw/xfree86/os-support/bsd/alpha_video.c b/hw/xfree86/os-support/bsd/alpha_video.c
index 18e1e0b..bb3a5cb 100644
--- a/hw/xfree86/os-support/bsd/alpha_video.c
+++ b/hw/xfree86/os-support/bsd/alpha_video.c
@@ -328,7 +328,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 			   "xf86MapVidMem", DEV_MEM, Size, Base, 
 			   strerror(errno));
 	    }
-	    return(base);
+	    return base;
 	}
 		
 	/* else, mmap /dev/vga */
@@ -347,7 +347,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 	    FatalError("xf86MapVidMem: Could not mmap /dev/vga (%s)\n",
 		       strerror(errno));
 	}
-	return(base);
+	return base;
 }
 
 static void
@@ -370,7 +370,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 
 	checkDevMem(TRUE);
 	if (devMemFd == -1) {
-	    return(-1);
+	    return -1;
 	}
 
 	psize = getpagesize();
@@ -384,7 +384,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		xf86Msg(X_WARNING, 
 			"xf86ReadBIOS: %s mmap[s=%x,a=%lx,o=%lx] failed (%s)\n",
 			DEV_MEM, Len, Base, Offset, strerror(errno));
-		return(-1);
+		return -1;
 	}
 #ifdef DEBUG
 	xf86MsgVerb(X_INFO, 3, "xf86ReadBIOS: BIOS at 0x%08x has signature 0x%04x\n",
@@ -397,7 +397,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		"-> %02x %02x %02x %02x...\n",
 		Base, Offset, Len, Buf[0], Buf[1], Buf[2], Buf[3]);
 #endif
-	return(Len);
+	return Len;
 }
 
 
diff --git a/hw/xfree86/os-support/bsd/arm_video.c b/hw/xfree86/os-support/bsd/arm_video.c
index 466a8a0..482d53f 100644
--- a/hw/xfree86/os-support/bsd/arm_video.c
+++ b/hw/xfree86/os-support/bsd/arm_video.c
@@ -201,7 +201,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 			   "xf86MapVidMem", DEV_MEM, Size, Base, 
 			   strerror(errno));
 	    }
-	    return(base);
+	    return base;
 	}
 		
 	/* else, mmap /dev/vga */
@@ -220,7 +220,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 	    FatalError("xf86MapVidMem: Could not mmap /dev/vga (%s)\n",
 		       strerror(errno));
 	}
-	return(base);
+	return base;
 }
 
 static void
@@ -243,7 +243,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 
 	checkDevMem(TRUE);
 	if (devMemFd == -1) {
-	    return(-1);
+	    return -1;
 	}
 
 	psize = getpagesize();
@@ -257,7 +257,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		xf86Msg(X_WARNING, 
 			"xf86ReadBIOS: %s mmap[s=%x,a=%x,o=%x] failed (%s)\n",
 			DEV_MEM, Len, Base, Offset, strerror(errno));
-		return(-1);
+		return -1;
 	}
 #ifdef DEBUG
 	ErrorF("xf86ReadBIOS: BIOS at 0x%08x has signature 0x%04x\n",
@@ -270,7 +270,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		"-> %02x %02x %02x %02x...\n",
 		Base, Offset, Len, Buf[0], Buf[1], Buf[2], Buf[3]);
 #endif
-	return(Len);
+	return Len;
 }
 
 
@@ -430,7 +430,7 @@ armMapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 	    }
 	    
 	    base = xf86MapInfoMap(memInfoP, Base, Size);
-	    return (base);
+	    return base;
 	}
 	return mapVidMem(ScreenNum, Base, Size, flags);
 }
diff --git a/hw/xfree86/os-support/bsd/bsd_VTsw.c b/hw/xfree86/os-support/bsd/bsd_VTsw.c
index 4842be5..57d832a 100644
--- a/hw/xfree86/os-support/bsd/bsd_VTsw.c
+++ b/hw/xfree86/os-support/bsd/bsd_VTsw.c
@@ -57,7 +57,7 @@ xf86VTSwitchPending()
 {
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
 	if (xf86Info.consType == SYSCONS || xf86Info.consType == PCVT) {
-		return(xf86Info.vtRequestsPending ? TRUE : FALSE);
+		return xf86Info.vtRequestsPending ? TRUE : FALSE;
 	}
 #endif
 	return FALSE;
@@ -70,9 +70,9 @@ xf86VTSwitchAway()
 	if (xf86Info.consType == SYSCONS || xf86Info.consType == PCVT) {
 		xf86Info.vtRequestsPending = FALSE;
 		if (ioctl(xf86Info.consoleFd, VT_RELDISP, 1) < 0)
-			return(FALSE);
+			return FALSE;
 		else
-			return(TRUE);
+			return TRUE;
 	}
 #endif
 	return FALSE;
@@ -85,19 +85,19 @@ xf86VTSwitchTo()
 	if (xf86Info.consType == SYSCONS || xf86Info.consType == PCVT) {
 		xf86Info.vtRequestsPending = FALSE;
 		if (ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ) < 0)
-			return(FALSE);
+			return FALSE;
 		else
-			return(TRUE);
+			return TRUE;
 	}
 #endif
-	return(TRUE);
+	return TRUE;
 }
 
 Bool
 xf86VTActivate(int vtno)
 {
 	if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, vtno) < 0) {
-		return(FALSE);
+		return FALSE;
 	}
-	return(TRUE);
+	return TRUE;
 }
diff --git a/hw/xfree86/os-support/bsd/bsd_init.c b/hw/xfree86/os-support/bsd/bsd_init.c
index 7698084..13c6ec3 100644
--- a/hw/xfree86/os-support/bsd/bsd_init.c
+++ b/hw/xfree86/os-support/bsd/bsd_init.c
@@ -724,13 +724,13 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 	if (!strcmp(argv[i], "-keeptty"))
 	{
 		KeepTty = TRUE;
-		return(1);
+		return 1;
 	}
 #if defined (SYSCONS_SUPPORT) || defined (PCVT_SUPPORT)
 	if (!strcmp(argv[i], "-sharevts"))
 	{	
 		ShareVTs = TRUE;
-		return(1);
+		return 1;
 	}
 	if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
 	{
@@ -739,12 +739,12 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 		{
 			UseMsg();
 			VTnum = -1;
-			return(0);
+			return 0;
 		}
-		return(1);
+		return 1;
 	}
 #endif /* SYSCONS_SUPPORT || PCVT_SUPPORT */
-	return(0);
+	return 0;
 }
 
 void
diff --git a/hw/xfree86/os-support/bsd/i386_video.c b/hw/xfree86/os-support/bsd/i386_video.c
index 44abb9d..7aef079 100644
--- a/hw/xfree86/os-support/bsd/i386_video.c
+++ b/hw/xfree86/os-support/bsd/i386_video.c
@@ -246,7 +246,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 			   "xf86MapVidMem", DEV_MEM, Size, Base, 
 			   strerror(errno));
 	    }
-	    return(base);
+	    return base;
 	}
 		
 	/* else, mmap /dev/vga */
@@ -266,7 +266,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 	    FatalError("xf86MapVidMem: Could not mmap /dev/vga (%s)",
 		       strerror(errno));
 	}
-	return(base);
+	return base;
 }
 
 static void
@@ -289,7 +289,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 
 	checkDevMem(TRUE);
 	if (devMemFd == -1) {
-	    return(-1);
+	    return -1;
 	}
 
 	psize = getpagesize();
@@ -308,7 +308,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		    xf86Msg(X_WARNING, SYSCTL_MSG2);
 		} 
 #endif
-		return(-1);
+		return -1;
 	}
 #ifdef DEBUG
 	ErrorF("xf86ReadBIOS: BIOS at 0x%08x has signature 0x%04x\n",
@@ -321,7 +321,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		"-> %02x %02x %02x %02x...\n",
 		Base, Offset, Len, Buf[0], Buf[1], Buf[2], Buf[3]);
 #endif
-	return(Len);
+	return Len;
 }
 
 #ifdef USE_I386_IOPL
diff --git a/hw/xfree86/os-support/bsd/sparc64_video.c b/hw/xfree86/os-support/bsd/sparc64_video.c
index ea520c4..c838792 100644
--- a/hw/xfree86/os-support/bsd/sparc64_video.c
+++ b/hw/xfree86/os-support/bsd/sparc64_video.c
@@ -87,5 +87,5 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	     int Len)
 {
 
-	return (0);
+	return 0;
 }
diff --git a/hw/xfree86/os-support/linux/lnx_agp.c b/hw/xfree86/os-support/linux/lnx_agp.c
index 44db866..c65f1e3 100644
--- a/hw/xfree86/os-support/linux/lnx_agp.c
+++ b/hw/xfree86/os-support/linux/lnx_agp.c
@@ -64,7 +64,7 @@ GARTInit(int screenNum)
 	struct _agp_info agpinf;
 
 	if (initDone)
-		return (gartFd != -1);
+		return gartFd != -1;
 
 	initDone = TRUE;
 
diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c
index 297e7a6..c8cec2e 100644
--- a/hw/xfree86/os-support/linux/lnx_init.c
+++ b/hw/xfree86/os-support/linux/lnx_init.c
@@ -365,17 +365,17 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 	if (!strcmp(argv[i], "-keeptty"))
 	{
 		KeepTty = TRUE;
-		return(1);
+		return 1;
 	}
         if (!strcmp(argv[i], "-novtswitch"))
         {
                 VTSwitch = FALSE;
-                return(1);
+                return 1;
         }
         if (!strcmp(argv[i], "-sharevts"))
         {
                 ShareVTs = TRUE;
-                return(1);
+                return 1;
         }
 	if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
 	{
@@ -383,11 +383,11 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 		{
 			UseMsg();
 			VTnum = -1;
-			return(0);
+			return 0;
 		}
-		return(1);
+		return 1;
 	}
-	return(0);
+	return 0;
 }
 
 void
diff --git a/hw/xfree86/os-support/sco/VTsw_sco.c b/hw/xfree86/os-support/sco/VTsw_sco.c
index 0a59fb9..c9194ec 100644
--- a/hw/xfree86/os-support/sco/VTsw_sco.c
+++ b/hw/xfree86/os-support/sco/VTsw_sco.c
@@ -58,7 +58,7 @@ xf86VTRequest(int sig)
 Bool
 xf86VTSwitchPending(void)
 {
-  return(xf86Info.vtRequestsPending ? TRUE : FALSE);
+  return xf86Info.vtRequestsPending ? TRUE : FALSE;
 }
 
 /*
@@ -79,9 +79,9 @@ xf86VTSwitchAway(void)
 
   xf86Info.vtRequestsPending = FALSE;
   if (ioctl(xf86Info.consoleFd, VT_RELDISP, VT_TRUE) < 0) {
-    return(FALSE);
+    return FALSE;
   } else {
-    return(TRUE);
+    return TRUE;
   }
 }
 
@@ -97,7 +97,7 @@ xf86VTSwitchTo(void)
 
   xf86Info.vtRequestsPending = FALSE;
   if (ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ) < 0) {
-    return(FALSE);
+    return FALSE;
   } else {
     if (sco_ledstatus >= 0) {
       ioctl (xf86Info.consoleFd, KDSETLED, sco_ledstate);
@@ -120,8 +120,8 @@ Bool
 xf86VTActivate(int vtno)
 {
 	if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, vtno - 1) < 0) {
-		return(FALSE);
+		return FALSE;
 	}
 
-	return(TRUE);
+	return TRUE;
 }
diff --git a/hw/xfree86/os-support/sco/sco_init.c b/hw/xfree86/os-support/sco/sco_init.c
index 5f7db34..3322ed5 100644
--- a/hw/xfree86/os-support/sco/sco_init.c
+++ b/hw/xfree86/os-support/sco/sco_init.c
@@ -233,7 +233,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
    */
   if (!strcmp(argv[i], "-keeptty")) {
     KeepTty = TRUE;
-    return(1);
+    return 1;
   }
 
   /*
@@ -246,7 +246,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
    */
   if (!strcmp(argv[i], "-nompxlock")) {
     mpxLock = FALSE;
-    return (1);
+    return 1;
   }
 
   /*
@@ -256,14 +256,14 @@ xf86ProcessArgument(int argc, char *argv[], int i)
     if (sscanf(argv[i], "vt%2d", &VTnum) == 0) {
       UseMsg();
       VTnum = -1;
-      return(0);
+      return 0;
     }
     if (VTnum <= 0) {
       UseMsg();
       VTnum = -1;
-      return(0);
+      return 0;
     }
-    return(1);
+    return 1;
   }
 
   /*
@@ -273,14 +273,14 @@ xf86ProcessArgument(int argc, char *argv[], int i)
     if (++i > argc) {
       UseMsg();
       VTnum = -1;
-      return(0);
+      return 0;
     } else {
       VTnum = -2;
       strlcpy (vtdevice, argv[i], sizeof(vtdevice));
-      return(2);
+      return 2;
     }
   }
-  return(0);
+  return 0;
 }
 
 void
diff --git a/hw/xfree86/os-support/shared/VTsw_noop.c b/hw/xfree86/os-support/shared/VTsw_noop.c
index 3425840..98b3a8d 100644
--- a/hw/xfree86/os-support/shared/VTsw_noop.c
+++ b/hw/xfree86/os-support/shared/VTsw_noop.c
@@ -38,23 +38,23 @@
 Bool
 xf86VTSwitchPending(void)
 {
-	return(FALSE);
+	return FALSE;
 }
 
 Bool
 xf86VTSwitchAway(void)
 {
-	return(FALSE);
+	return FALSE;
 }
 
 Bool
 xf86VTSwitchTo(void)
 {
-	return(TRUE);
+	return TRUE;
 }
 
 Bool
 xf86VTActivate(int vtno)
 {
-	return(TRUE);
+	return TRUE;
 }
diff --git a/hw/xfree86/os-support/shared/VTsw_usl.c b/hw/xfree86/os-support/shared/VTsw_usl.c
index 393f1c0..d4ef0f7 100644
--- a/hw/xfree86/os-support/shared/VTsw_usl.c
+++ b/hw/xfree86/os-support/shared/VTsw_usl.c
@@ -55,7 +55,7 @@ xf86VTRequest(int sig)
 Bool
 xf86VTSwitchPending(void)
 {
-    return(xf86Info.vtRequestsPending ? TRUE : FALSE);
+    return xf86Info.vtRequestsPending ? TRUE : FALSE;
 }
 
 Bool
@@ -64,14 +64,14 @@ xf86VTSwitchAway(void)
 	xf86Info.vtRequestsPending = FALSE;
 	if (ioctl(xf86Info.consoleFd, VT_RELDISP, 1) < 0)
 	{
-		return(FALSE);
+		return FALSE;
 	}
 	else
 	{
 #ifdef OSSWITCHAWAY
 	        OSSWITCHAWAY;
 #endif
-		return(TRUE);
+		return TRUE;
 	}
 }
 
@@ -81,11 +81,11 @@ xf86VTSwitchTo(void)
 	xf86Info.vtRequestsPending = FALSE;
 	if (ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ) < 0)
 	{
-		return(FALSE);
+		return FALSE;
 	}
 	else
 	{
-		return(TRUE);
+		return TRUE;
 	}
 }
 
@@ -94,8 +94,8 @@ xf86VTActivate(int vtno)
 {
 #ifdef VT_ACTIVATE
 	if (ioctl(xf86Info.consoleFd, VT_ACTIVATE, vtno) < 0) {
-		return(FALSE);
+		return FALSE;
 	}
 #endif
-	return(TRUE);
+	return TRUE;
 }
diff --git a/hw/xfree86/os-support/shared/bios_devmem.c b/hw/xfree86/os-support/shared/bios_devmem.c
index 67a14f5..b9dfb7d 100644
--- a/hw/xfree86/os-support/shared/bios_devmem.c
+++ b/hw/xfree86/os-support/shared/bios_devmem.c
@@ -53,7 +53,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	{
 		xf86Msg(X_WARNING, "xf86ReadBIOS: Failed to open %s (%s)\n",
 			DEV_MEM, strerror(errno));
-		return(-1);
+		return -1;
 	}
 
 	if (lseek(fd, (Base+Offset), SEEK_SET) < 0)
@@ -61,15 +61,15 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		xf86Msg(X_WARNING, "xf86ReadBIOS: %s seek failed (%s)\n",
 			DEV_MEM, strerror(errno));
 		close(fd);
-		return(-1);
+		return -1;
 	}
 	if (read(fd, Buf, Len) != Len)
 	{
 		xf86Msg(X_WARNING, "xf86ReadBIOS: %s read failed (%s)\n",
 			DEV_MEM, strerror(errno));
 		close(fd);
-		return(-1);
+		return -1;
 	}
 	close(fd);
-	return(Len);
+	return Len;
 }
diff --git a/hw/xfree86/os-support/shared/bios_mmap.c b/hw/xfree86/os-support/shared/bios_mmap.c
index 40afd5b..33a8df0 100644
--- a/hw/xfree86/os-support/shared/bios_mmap.c
+++ b/hw/xfree86/os-support/shared/bios_mmap.c
@@ -53,7 +53,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	{
 		xf86Msg(X_WARNING, "xf86ReadBIOS: Failed to open %s (%s)\n",
 			DEV_MEM, strerror(errno));
-		return(-1);
+		return -1;
 	}
 	psize = getpagesize();
 	Offset += Base & (psize - 1);
@@ -66,14 +66,14 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 		xf86Msg(X_WARNING, "xf86ReadBIOS: %s mmap failed (%s)\n",
 			DEV_MEM, strerror(errno));
 		close(fd);
-		return(-1);
+		return -1;
 	}
 	DebugF("xf86ReadBIOS: BIOS at 0x%08x has signature 0x%04x\n",
 		Base, ptr[0] | (ptr[1] << 8));
 	(void)memcpy(Buf, (void *)(ptr + Offset), Len);
 	(void)munmap((caddr_t)ptr, mlen);
 	(void)close(fd);
-	return(Len);
+	return Len;
 }
 
 #else /* __alpha__ */
@@ -114,7 +114,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	{
 		xf86Msg(X_WARNING, "xf86ReadBIOS: Failed to open %s (%s)\n",
 			DEV_MEM, strerror(errno));
-		return(-1);
+		return -1;
 	}
 
 	psize = getpagesize();
@@ -128,14 +128,14 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
 	{
 		xf86Msg(X_WARNING, "xf86ReadBIOS: Failed to mmap %s (%s)\n",
 			DEV_MEM, strerror(errno));
-		return(-1);
+		return -1;
 	}
 
 	xf86SlowBCopyFromBus((unsigned char *)(base+Offset), Buf, Len);
 
 	munmap((caddr_t)base, mlen);
 	close(fd);
-	return(Len);
+	return Len;
 }
 
 #endif /* __alpha__ */
diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
index 2e22bc3..1a33070 100644
--- a/hw/xfree86/os-support/shared/posix_tty.c
+++ b/hw/xfree86/os-support/shared/posix_tty.c
@@ -108,7 +108,7 @@ GetBaud (int baudrate)
 	if (baudrate == 460800)
 		return B460800;
 #endif
-	return (0);
+	return 0;
 }
 
 int
@@ -122,7 +122,7 @@ xf86OpenSerial (pointer options)
 	if (!dev)
 	{
 		xf86Msg (X_ERROR, "xf86OpenSerial: No Device specified.\n");
-		return (-1);
+		return -1;
 	}
 
 	SYSCALL (fd = open (dev, O_RDWR | O_NONBLOCK));
@@ -132,14 +132,14 @@ xf86OpenSerial (pointer options)
 			 "xf86OpenSerial: Cannot open device %s\n\t%s.\n",
 			 dev, strerror (errno));
 		free(dev);
-		return (-1);
+		return -1;
 	}
 
 	if (!isatty (fd))
 	{
 		/* Allow non-tty devices to be opened. */
 		free(dev);
-		return (fd);
+		return fd;
 	}
 
 	/* set up default port parameters */
@@ -162,7 +162,7 @@ xf86OpenSerial (pointer options)
 	{
 		SYSCALL (close (fd));
 		free(dev);
-		return (-1);
+		return -1;
 	}
 
 	SYSCALL (i = fcntl (fd, F_GETFL, 0));
@@ -170,7 +170,7 @@ xf86OpenSerial (pointer options)
 	{
 		SYSCALL (close (fd));
 		free(dev);
-		return (-1);
+		return -1;
 	}
 	i &= ~O_NONBLOCK;
 	SYSCALL (i = fcntl (fd, F_SETFL, i));
@@ -178,10 +178,10 @@ xf86OpenSerial (pointer options)
 	{
 		SYSCALL (close (fd));
 		free(dev);
-		return (-1);
+		return -1;
 	}
 	free(dev);
-	return (fd);
+	return fd;
 }
 
 int
@@ -212,7 +212,7 @@ xf86SetSerial (int fd, pointer options)
 		{
 			xf86Msg (X_ERROR,
 				 "Invalid Option BaudRate value: %d\n", val);
-			return (-1);
+			return -1;
 		}
 	}
 
@@ -229,7 +229,7 @@ xf86SetSerial (int fd, pointer options)
 		default:
 			xf86Msg (X_ERROR,
 				 "Invalid Option StopBits value: %d\n", val);
-			return (-1);
+			return -1;
 			break;
 		}
 	}
@@ -257,7 +257,7 @@ xf86SetSerial (int fd, pointer options)
 		default:
 			xf86Msg (X_ERROR,
 				 "Invalid Option DataBits value: %d\n", val);
-			return (-1);
+			return -1;
 			break;
 		}
 	}
@@ -281,7 +281,7 @@ xf86SetSerial (int fd, pointer options)
 		{
 			xf86Msg (X_ERROR, "Invalid Option Parity value: %s\n",
 				 s);
-			return (-1);
+			return -1;
 		}
 	}
 
@@ -317,7 +317,7 @@ xf86SetSerial (int fd, pointer options)
 		{
 			xf86Msg (X_ERROR,
 				 "Invalid Option FlowControl value: %s\n", s);
-			return (-1);
+			return -1;
 		}
 	}
 
@@ -333,7 +333,7 @@ xf86SetSerial (int fd, pointer options)
 #else
 		xf86Msg (X_WARNING,
 			 "Option ClearDTR not supported on this OS\n");
-			return (-1);
+			return -1;
 #endif
 		xf86MarkOptionUsedByName (options, "ClearDTR");
 	}
@@ -342,12 +342,12 @@ xf86SetSerial (int fd, pointer options)
 	{
 		xf86Msg (X_WARNING,
 			 "Option ClearRTS not supported on this OS\n");
-			return (-1);
+			return -1;
 		xf86MarkOptionUsedByName (options, "ClearRTS");
 	}
 
 	SYSCALL (r = tcsetattr (fd, TCSANOW, &t));
-	return (r);
+	return r;
 }
 
 int
@@ -374,11 +374,11 @@ xf86SetSerialSpeed (int fd, int speed)
 	{
 		xf86Msg (X_ERROR,
 			 "Invalid Option BaudRate value: %d\n", speed);
-		return (-1);
+		return -1;
 	}
 
 	SYSCALL (r = tcsetattr (fd, TCSANOW, &t));
-	return (r);
+	return r;
 }
 
 int
@@ -393,7 +393,7 @@ xf86ReadSerial (int fd, void *buf, int count)
 	for (i = 1; i < r; i++)
 	    DebugF(", 0x%x",(unsigned char)*(((unsigned char *)buf) + i));
 	DebugF("\n");
-	return (r);
+	return r;
 }
 
 int
@@ -407,7 +407,7 @@ xf86WriteSerial (int fd, const void *buf, int count)
 	    ErrorF(", 0x%x",(unsigned char)*(((unsigned char *)buf) + i));
 	DebugF("\n");
 	SYSCALL (r = write (fd, buf, count));
-	return (r);
+	return r;
 }
 
 int
@@ -416,7 +416,7 @@ xf86CloseSerial (int fd)
 	int r;
 
 	SYSCALL (r = close (fd));
-	return (r);
+	return r;
 }
 
 int
@@ -442,7 +442,7 @@ xf86WaitForInput (int fd, int timeout)
 	    SYSCALL (r = select (FD_SETSIZE, NULL, NULL, NULL, &to));
 	}
 	xf86ErrorFVerb (9,"select returned %d\n", r);
-	return (r);
+	return r;
 }
 
 int
@@ -451,7 +451,7 @@ xf86SerialSendBreak (int fd, int duration)
 	int r;
 
 	SYSCALL (r = tcsendbreak (fd, duration));
-	return (r);
+	return r;
 	
 }
 
diff --git a/hw/xfree86/os-support/solaris/sun_VTsw.c b/hw/xfree86/os-support/solaris/sun_VTsw.c
index 1e2774b..cff279e 100644
--- a/hw/xfree86/os-support/solaris/sun_VTsw.c
+++ b/hw/xfree86/os-support/solaris/sun_VTsw.c
@@ -66,7 +66,7 @@ xf86VTAcquire(int sig)
 Bool
 xf86VTSwitchPending(void)
 {
-    return(xf86Info.vtRequestsPending ? TRUE : FALSE);
+    return xf86Info.vtRequestsPending ? TRUE : FALSE;
 }
 
 Bool
@@ -81,7 +81,7 @@ xf86VTSwitchAway(void)
 	if (xf86VTPruneDoor) {
 		xf86VTPruneDoor = 0;
 		ioctl(xf86Info.consoleFd, VT_RELDISP, 1);
-		return (TRUE);
+		return TRUE;
 	}
 
 	vt_door_arg.vt_ev = VT_EV_HOTKEYS;
@@ -94,15 +94,15 @@ xf86VTSwitchAway(void)
 	door_arg.desc_num = 0;
 
 	if ((door_fd = open(VT_DAEMON_DOOR_FILE, O_RDONLY)) < 0)
-		return (FALSE);
+		return FALSE;
 
 	if (door_call(door_fd, &door_arg) != 0) {
 		close(door_fd);
-		return (FALSE);
+		return FALSE;
 	}
 
 	close(door_fd);
-	return (TRUE);
+	return TRUE;
 }
 
 Bool
@@ -111,11 +111,11 @@ xf86VTSwitchTo(void)
 	xf86Info.vtRequestsPending = FALSE;
 	if (ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ) < 0)
 	{
-		return(FALSE);
+		return FALSE;
 	}
 	else
 	{
-		return(TRUE);
+		return TRUE;
 	}
 }
 
@@ -125,13 +125,13 @@ xf86VTActivate(int vtno)
 	struct vt_stat state;
 
 	if (ioctl(xf86Info.consoleFd, VT_GETSTATE, &state) < 0)
-		return(FALSE);
+		return FALSE;
 
 	if ((state.v_state & (1 << vtno)) == 0)
-		return(FALSE);
+		return FALSE;
 
 	xf86Info.vtRequestsPending = TRUE;
 	xf86Info.vtPendingNum = vtno;
 
-	return(TRUE);
+	return TRUE;
 }
diff --git a/hw/xfree86/os-support/solaris/sun_agp.c b/hw/xfree86/os-support/solaris/sun_agp.c
index ccecd11..734a6e1 100644
--- a/hw/xfree86/os-support/solaris/sun_agp.c
+++ b/hw/xfree86/os-support/solaris/sun_agp.c
@@ -78,7 +78,7 @@ static Bool
 GARTInit(int screenNum)
 {
 	if (initDone)
-		return (gartFd != -1);
+		return gartFd != -1;
 
 	if (gartFd == -1)
 		gartFd = open(AGP_DEVICE, O_RDWR);
diff --git a/hw/xfree86/os-support/sysv/sysv_init.c b/hw/xfree86/os-support/sysv/sysv_init.c
index 170bb89..9a423ff 100644
--- a/hw/xfree86/os-support/sysv/sysv_init.c
+++ b/hw/xfree86/os-support/sysv/sysv_init.c
@@ -215,7 +215,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 	if (!strcmp(argv[i], "-keeptty"))
 	{
 		KeepTty = TRUE;
-		return(1);
+		return 1;
 	}
 #ifdef SVR4
 	/*
@@ -226,7 +226,7 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 	if (!strcmp(argv[i], "-protect0"))
 	{
 		Protect0 = TRUE;
-		return(1);
+		return 1;
 	}
 #endif
 	if ((argv[i][0] == 'v') && (argv[i][1] == 't'))
@@ -235,11 +235,11 @@ xf86ProcessArgument(int argc, char *argv[], int i)
 		{
 			UseMsg();
 			VTnum = -1;
-			return(0);
+			return 0;
 		}
-		return(1);
+		return 1;
 	}
-	return(0);
+	return 0;
 }
 
 void
diff --git a/hw/xfree86/os-support/sysv/sysv_video.c b/hw/xfree86/os-support/sysv/sysv_video.c
index 43c3062..480abe5 100644
--- a/hw/xfree86/os-support/sysv/sysv_video.c
+++ b/hw/xfree86/os-support/sysv/sysv_video.c
@@ -106,7 +106,7 @@ mmapStat(pointer Base, unsigned long Size) {
 	   }
 	}
 	if (region == -1 && nmmreg > 0) region=region * i;
-	return(region);
+	return region;
 }
 #endif
 
@@ -211,7 +211,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
 			"xf86MapVidMem: SUCCEED Mapping FrameBuffer \n");
 #endif /* HAS_SVR3_MMAPDRV */
 #endif /* SVR4 */
-	return(base);
+	return base;
 }
 
 /* ARGSUSED */
diff --git a/hw/xfree86/parser/Configint.h b/hw/xfree86/parser/Configint.h
index 03509b3..dda020e 100644
--- a/hw/xfree86/parser/Configint.h
+++ b/hw/xfree86/parser/Configint.h
@@ -105,7 +105,7 @@ if( (ptr=calloc(1,sizeof(typerec))) == NULL ) { return; }
 if ((ptr->f=func) == NULL)\
 {\
 	CLEANUP (ptr);\
-	return (NULL);\
+	return NULL;\
 }
 
 #define HANDLE_LIST(field,func,type)\
@@ -114,7 +114,7 @@ type p = func ();\
 if (p == NULL)\
 {\
 	CLEANUP (ptr);\
-	return (NULL);\
+	return NULL;\
 }\
 else\
 {\
diff --git a/hw/xfree86/parser/Device.c b/hw/xfree86/parser/Device.c
index 47ece07..d71abc6 100644
--- a/hw/xfree86/parser/Device.c
+++ b/hw/xfree86/parser/Device.c
@@ -363,9 +363,9 @@ xf86findDevice (const char *ident, XF86ConfDevicePtr p)
 	while (p)
 	{
 		if (xf86nameCompare (ident, p->dev_identifier) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c
index f4fea28..699dc6b 100644
--- a/hw/xfree86/parser/Flags.c
+++ b/hw/xfree86/parser/Flags.c
@@ -318,10 +318,10 @@ xf86findOption (XF86OptionPtr list, const char *name)
 	while (list)
 	{
 		if (xf86nameCompare (list->opt_name, name) == 0)
-			return (list);
+			return list;
 		list = list->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
 /*
@@ -339,11 +339,11 @@ xf86findOptionValue (XF86OptionPtr list, const char *name)
 	if (p)
 	{
 		if (p->opt_val)
-			return (p->opt_val);
+			return p->opt_val;
 		else
 			return "";
 	}
-	return (NULL);
+	return NULL;
 }
 
 XF86OptionPtr
@@ -361,7 +361,7 @@ xf86optionListCreate( const char **options, int count, int used )
 	if( (count % 2) != 0 )
 	{
 		fprintf( stderr, "xf86optionListCreate: count must be an even number.\n" );
-		return (NULL);
+		return NULL;
 	}
 	for (i = 0; i < count; i += 2)
 	{
@@ -375,7 +375,7 @@ xf86optionListCreate( const char **options, int count, int used )
 		p = addNewOption2 (p, t1, t2, used);
 	}
 
-	return (p);
+	return p;
 }
 
 /* the 2 given lists are merged. If an option with the same name is present in
@@ -425,7 +425,7 @@ xf86optionListMerge (XF86OptionPtr head, XF86OptionPtr tail)
 	} else 
 		head = tail;
 
-	return (head);
+	return head;
 }
 
 char *
@@ -452,7 +452,7 @@ xf86parseOption(XF86OptionPtr head)
 	if ((token = xf86getSubToken(&comment)) != STRING) {
 		xf86parseError(BAD_OPTION_MSG, NULL);
 		free(comment);
-		return (head);
+		return head;
 	}
 
 	name = val.str;
@@ -489,7 +489,7 @@ xf86parseOption(XF86OptionPtr head)
 	if (old == NULL)
 		return ((XF86OptionPtr)xf86addListItem((glp)head, (glp)cnew));
 
-	return (head);
+	return head;
 }
 
 void
diff --git a/hw/xfree86/parser/Input.c b/hw/xfree86/parser/Input.c
index 8c8e46f..50869d4 100644
--- a/hw/xfree86/parser/Input.c
+++ b/hw/xfree86/parser/Input.c
@@ -175,11 +175,11 @@ xf86validateInput (XF86ConfigPtr p)
 	while (input) {
 		if (!input->inp_driver) {
 			xf86validationError (UNDEFINED_INPUTDRIVER_MSG, input->inp_identifier);
-			return (FALSE);
+			return FALSE;
 		}
 		input = input->list.next;
 	}
-	return (TRUE);
+	return TRUE;
 }
 
 XF86ConfInputPtr
@@ -188,11 +188,11 @@ xf86findInput (const char *ident, XF86ConfInputPtr p)
 	while (p)
 	{
 		if (xf86nameCompare (ident, p->inp_identifier) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
 XF86ConfInputPtr
@@ -201,10 +201,10 @@ xf86findInputByDriver (const char *driver, XF86ConfInputPtr p)
 	while (p)
 	{
 		if (xf86nameCompare (driver, p->inp_driver) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
diff --git a/hw/xfree86/parser/Layout.c b/hw/xfree86/parser/Layout.c
index 00c1e7d..e1f770b 100644
--- a/hw/xfree86/parser/Layout.c
+++ b/hw/xfree86/parser/Layout.c
@@ -513,7 +513,7 @@ xf86validateLayout (XF86ConfigPtr p)
 			{
 				xf86validationError (UNDEFINED_SCREEN_MSG,
 							   adj->adj_screen_str, layout->lay_identifier);
-				return (FALSE);
+				return FALSE;
 			}
 			else
 				adj->adj_screen = screen;
@@ -529,7 +529,7 @@ xf86validateLayout (XF86ConfigPtr p)
 			{
 				xf86validationError (UNDEFINED_DEVICE_LAY_MSG,
 						iptr->inactive_device_str, layout->lay_identifier);
-				return (FALSE);
+				return FALSE;
 			}
 			else
 				iptr->inactive_device = device;
@@ -541,7 +541,7 @@ xf86validateLayout (XF86ConfigPtr p)
 
 		layout = layout->list.next;
 	}
-	return (TRUE);
+	return TRUE;
 }
 
 XF86ConfLayoutPtr
@@ -550,9 +550,9 @@ xf86findLayout (const char *name, XF86ConfLayoutPtr list)
 	while (list)
 	{
 		if (xf86nameCompare (list->lay_identifier, name) == 0)
-			return (list);
+			return list;
 		list = list->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
diff --git a/hw/xfree86/parser/Monitor.c b/hw/xfree86/parser/Monitor.c
index 50de091..76c35ae 100644
--- a/hw/xfree86/parser/Monitor.c
+++ b/hw/xfree86/parser/Monitor.c
@@ -264,7 +264,7 @@ xf86parseModeLine (void)
 #ifdef DEBUG
 	printf ("ModeLine parsed\n");
 #endif
-	return (ptr);
+	return ptr;
 }
 
 static XF86ConfModeLinePtr
@@ -413,7 +413,7 @@ xf86parseVerboseMode (void)
 #ifdef DEBUG
 	printf ("Verbose Mode parsed\n");
 #endif
-	return (ptr);
+	return ptr;
 }
 
 #undef CLEANUP
@@ -848,11 +848,11 @@ xf86findMonitor (const char *ident, XF86ConfMonitorPtr p)
 	while (p)
 	{
 		if (xf86nameCompare (ident, p->mon_identifier) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
 XF86ConfModesPtr
@@ -861,11 +861,11 @@ xf86findModes (const char *ident, XF86ConfModesPtr p)
 	while (p)
 	{
 		if (xf86nameCompare (ident, p->modes_identifier) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
 XF86ConfModeLinePtr
@@ -874,11 +874,11 @@ xf86findModeLine (const char *ident, XF86ConfModeLinePtr p)
 	while (p)
 	{
 		if (xf86nameCompare (ident, p->ml_identifier) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
 int
@@ -895,10 +895,10 @@ xf86validateMonitor (XF86ConfigPtr p, XF86ConfScreenPtr screen)
 			xf86validationError (UNDEFINED_MODES_MSG, 
 					     modeslnk->ml_modes_str, 
 					     screen->scrn_identifier);
-			return (FALSE);
+			return FALSE;
 		}
 		modeslnk->ml_modes = modes;
 		modeslnk = modeslnk->list.next;
 	}
-	return (TRUE);
+	return TRUE;
 }
diff --git a/hw/xfree86/parser/Screen.c b/hw/xfree86/parser/Screen.c
index b3b004d..dd2319d 100644
--- a/hw/xfree86/parser/Screen.c
+++ b/hw/xfree86/parser/Screen.c
@@ -522,7 +522,7 @@ xf86validateScreen (XF86ConfigPtr p)
 			{
 				screen->scrn_monitor = monitor;
 				if (!xf86validateMonitor(p, screen))
-					return (FALSE);
+					return FALSE;
 			}
 		}
 
@@ -535,13 +535,13 @@ xf86validateScreen (XF86ConfigPtr p)
 			if (!adaptor->al_adaptor)
 			{
 				xf86validationError (UNDEFINED_ADAPTOR_MSG, adaptor->al_adaptor_str, screen->scrn_identifier);
-				return (FALSE);
+				return FALSE;
 			}
 			else if (adaptor->al_adaptor->va_fwdref)
 			{
 				xf86validationError (ADAPTOR_REF_TWICE_MSG, adaptor->al_adaptor_str,
 						     adaptor->al_adaptor->va_fwdref);
-				return (FALSE);
+				return FALSE;
 			}
 
 			adaptor->al_adaptor->va_fwdref = strdup(screen->scrn_identifier);
@@ -551,7 +551,7 @@ xf86validateScreen (XF86ConfigPtr p)
 		screen = screen->list.next;
 	}
 
-	return (TRUE);
+	return TRUE;
 }
 
 XF86ConfScreenPtr
@@ -560,10 +560,10 @@ xf86findScreen (const char *ident, XF86ConfScreenPtr p)
 	while (p)
 	{
 		if (xf86nameCompare (ident, p->scrn_identifier) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
 
diff --git a/hw/xfree86/parser/Video.c b/hw/xfree86/parser/Video.c
index beeb43e..3774387 100644
--- a/hw/xfree86/parser/Video.c
+++ b/hw/xfree86/parser/Video.c
@@ -288,9 +288,9 @@ xf86findVideoAdaptor (const char *ident, XF86ConfVideoAdaptorPtr p)
 	while (p)
 	{
 		if (xf86nameCompare (ident, p->va_identifier) == 0)
-			return (p);
+			return p;
 
 		p = p->list.next;
 	}
-	return (NULL);
+	return NULL;
 }
diff --git a/hw/xfree86/parser/read.c b/hw/xfree86/parser/read.c
index 4e42b24..d4d5252 100644
--- a/hw/xfree86/parser/read.c
+++ b/hw/xfree86/parser/read.c
@@ -87,7 +87,7 @@ xf86validateConfig (XF86ConfigPtr p)
 	if (!xf86validateLayout (p))
 		return FALSE;
 
-	return (TRUE);
+	return TRUE;
 }
 
 XF86ConfigPtr
@@ -113,7 +113,7 @@ xf86readConfigFile (void)
 			{
 				xf86parseError (QUOTE_MSG, "Section");
 				CLEANUP (ptr);
-				return (NULL);
+				return NULL;
 			}
 			xf86setSection (val.str);
 			if (xf86nameCompare (val.str, "files") == 0)
@@ -232,11 +232,11 @@ xf86readConfigFile (void)
 	}
 
 	if (xf86validateConfig (ptr))
-		return (ptr);
+		return ptr;
 	else
 	{
 		CLEANUP (ptr);
-		return (NULL);
+		return NULL;
 	}
 }
 
@@ -263,10 +263,10 @@ xf86addListItem (GenericListPtr head, GenericListPtr new)
 	if (last)
 	{
 		last->next = new;
-		return (head);
+		return head;
 	}
 	else
-		return (new);
+		return new;
 }
 
 /* 
diff --git a/hw/xfree86/parser/scan.c b/hw/xfree86/parser/scan.c
index 05fbc89..5312143 100644
--- a/hw/xfree86/parser/scan.c
+++ b/hw/xfree86/parser/scan.c
@@ -155,11 +155,11 @@ xf86strToUL (char *str)
 		}
 		else
 		{
-			return (tot);
+			return tot;
 		}
 		p++;
 	}
-	return (tot);
+	return tot;
 }
 
 /*
@@ -289,7 +289,7 @@ xf86getNextLine(void)
 
 	} while (!eolFound);
 
-	return (ret);
+	return ret;
 }
 
 /* 
@@ -308,7 +308,7 @@ xf86getToken (xf86ConfigSymTabRec * tab)
 	 * oth * case the next token must be read from the input.
 	 */
 	if (pushToken == EOF_TOKEN)
-		return (EOF_TOKEN);
+		return EOF_TOKEN;
 	else if (pushToken == LOCK_TOKEN)
 	{
 		/*
@@ -350,7 +350,7 @@ again:
 					goto again;
 				}
 				else
-					return (pushToken = EOF_TOKEN);
+					return pushToken = EOF_TOKEN;
 			}
 			configLineNo++;
 			configPos = 0;
@@ -387,7 +387,7 @@ again:
 			 * Use xf86addComment when setting a comment.
 			 */
 			val.str = configRBuf;
-			return (COMMENT);
+			return COMMENT;
 		}
 
 		/* GJA -- handle '-' and ','  * Be careful: "-hsync" is a keyword. */
@@ -436,7 +436,7 @@ again:
 			configRBuf[i] = '\0';
 			val.num = xf86strToUL (configRBuf);
 			val.realnum = atof (configRBuf);
-			return (NUMBER);
+			return NUMBER;
 		}
 
 		/* 
@@ -453,7 +453,7 @@ again:
 			configRBuf[i] = '\0';
 			val.str = malloc (strlen (configRBuf) + 1);
 			strcpy (val.str, configRBuf);	/* private copy ! */
-			return (STRING);
+			return STRING;
 		}
 
 		/* 
@@ -486,9 +486,9 @@ again:
 		pushToken = LOCK_TOKEN;
 
 		if (temp == COMMA || temp == DASH)
-			return (temp);
+			return temp;
 		if (temp == NUMBER || temp == STRING)
-			return (temp);
+			return temp;
 	}
 
 	/* 
@@ -499,12 +499,12 @@ again:
 		i = 0;
 		while (tab[i].token != -1)
 			if (xf86nameCompare (configRBuf, tab[i].name) == 0)
-				return (tab[i].token);
+				return tab[i].token;
 			else
 				i++;
 	}
 
-	return (ERROR_TOKEN);		/* Error catcher */
+	return ERROR_TOKEN;		/* Error catcher */
 }
 
 int
@@ -519,7 +519,7 @@ xf86getSubToken (char **comment)
 				*comment = xf86addComment(*comment, val.str);
 		}
 		else
-			return (token);
+			return token;
 	}
 	/*NOTREACHED*/
 }
@@ -536,7 +536,7 @@ xf86getSubTokenWithTab (char **comment, xf86ConfigSymTabRec *tab)
 				*comment = xf86addComment(*comment, val.str);
 		}
 		else
-			return (token);
+			return token;
 	}
 	/*NOTREACHED*/
 }
@@ -1112,7 +1112,7 @@ StringToToken (char *str, xf86ConfigSymTabRec * tab)
 		if (!xf86nameCompare (tab[i].name, str))
 			return tab[i].token;
 	}
-	return (ERROR_TOKEN);
+	return ERROR_TOKEN;
 }
 
 
@@ -1127,9 +1127,9 @@ xf86nameCompare (const char *s1, const char *s2)
 
 	if (!s1 || *s1 == 0) {
 		if (!s2 || *s2 == 0)
-			return (0);
+			return 0;
 		else
-			return (1);
+			return 1;
 		}
 
 	while (*s1 == '_' || *s1 == ' ' || *s1 == '\t')
@@ -1141,7 +1141,7 @@ xf86nameCompare (const char *s1, const char *s2)
 	while (c1 == c2)
 	{
 		if (c1 == '\0')
-			return (0);
+			return 0;
 		s1++;
 		s2++;
 		while (*s1 == '_' || *s1 == ' ' || *s1 == '\t')
@@ -1151,7 +1151,7 @@ xf86nameCompare (const char *s1, const char *s2)
 		c1 = (isupper (*s1) ? tolower (*s1) : *s1);
 		c2 = (isupper (*s2) ? tolower (*s2) : *s2);
 	}
-	return (c1 - c2);
+	return c1 - c2;
 }
 
 char *
@@ -1161,7 +1161,7 @@ xf86addComment(char *cur, char *add)
 	int len, curlen, iscomment, hasnewline = 0, endnewline;
 
 	if (add == NULL || add[0] == '\0')
-		return (cur);
+		return cur;
 
 	if (cur) {
 		curlen = strlen(cur);
@@ -1186,7 +1186,7 @@ xf86addComment(char *cur, char *add)
 	len +=  1 + iscomment + (!hasnewline) + (!endnewline) + eol_seen;
 
 	if ((str = realloc(cur, len + curlen)) == NULL)
-		return (cur);
+		return cur;
 
 	cur = str;
 
@@ -1198,7 +1198,7 @@ xf86addComment(char *cur, char *add)
 	if (!endnewline)
 		strcat(cur, "\n");
 
-	return (cur);
+	return cur;
 }
 
 Bool
diff --git a/hw/xfree86/ramdac/IBM.c b/hw/xfree86/ramdac/IBM.c
index 2d9fe4d..89fb25c 100644
--- a/hw/xfree86/ramdac/IBM.c
+++ b/hw/xfree86/ramdac/IBM.c
@@ -96,13 +96,13 @@ IBMramdac640CalculateMNPCForClock(
 		  lowestFreqErr = freqErr;
 		  /* Return if we found an exact match */
 		  if (freqErr == 0)
-		    return (ActualClock);
+		    return ActualClock;
 		}
 	    }
 	}
     }
 
-  return (ActualClock);
+  return ActualClock;
 }
 
 unsigned long
@@ -162,13 +162,13 @@ IBMramdac526CalculateMNPCForClock(
 		  lowestFreqErr = freqErr;
 		  /* Return if we found an exact match */
 		  if (freqErr == 0)
-		    return (ActualClock);
+		    return ActualClock;
 		}
 	    }
 	}
     }
 
-  return (ActualClock);
+  return ActualClock;
 }
 
 void
diff --git a/hw/xfree86/ramdac/TI.c b/hw/xfree86/ramdac/TI.c
index 1c541d7..eee5d45 100644
--- a/hw/xfree86/ramdac/TI.c
+++ b/hw/xfree86/ramdac/TI.c
@@ -118,7 +118,7 @@ TIramdacCalculateMNPForClock(
     DebugF( "f_out=%ld f_vco=%.1f n=%d m=%d p=%d\n",
 	    ActualClock, VCO, *rN, *rM, *rP);
 
-    return (ActualClock);
+    return ActualClock;
 }
 
 void
diff --git a/hw/xfree86/ramdac/xf86RamDac.c b/hw/xfree86/ramdac/xf86RamDac.c
index f4d1274..24806b6 100644
--- a/hw/xfree86/ramdac/xf86RamDac.c
+++ b/hw/xfree86/ramdac/xf86RamDac.c
@@ -82,7 +82,7 @@ RamDacInit(ScrnInfoPtr pScrn, RamDacRecPtr ramdacPriv)
 	((RamDacScreenRecPtr) (pScrn)->privates[RamDacGetScreenIndex()].ptr);
     ramdacScrPtr->RamDacRec = ramdacPriv;
 
-    return(TRUE);
+    return TRUE;
 }
 
 void
diff --git a/hw/xfree86/utils/gtf/gtf.c b/hw/xfree86/utils/gtf/gtf.c
index 8ce9327..bd5de7d 100644
--- a/hw/xfree86/utils/gtf/gtf.c
+++ b/hw/xfree86/utils/gtf/gtf.c
@@ -634,7 +634,7 @@ mode *vert_refresh (int h_pixels, int v_lines, float freq,
     m->h_freq = h_freq;
     m->v_freq = freq;
 
-    return (m);
+    return m;
     
 }
 
@@ -686,7 +686,7 @@ options *parse_command_line (int argc, char *argv[])
 
     if (!o->fbmode && !o->xorgmode) o->xorgmode = 1;
     
-    return (o);
+    return o;
     
  bad_option:
 
@@ -713,7 +713,7 @@ options *parse_command_line (int argc, char *argv[])
     fprintf (stderr, "\n");
     
     free (o);
-    return (NULL);
+    return NULL;
 
 }
 
diff --git a/hw/xfree86/vbe/vbe.c b/hw/xfree86/vbe/vbe.c
index 2ace752..0b34648 100644
--- a/hw/xfree86/vbe/vbe.c
+++ b/hw/xfree86/vbe/vbe.c
@@ -370,7 +370,7 @@ VBEGetVBEInfo(vbeInfoPtr pVbe)
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (NULL);
+	return NULL;
 
     block = calloc(sizeof(VbeInfoBlock), 1);
     block->VESASignature[0] = ((char*)pVbe->memory)[0];
@@ -418,7 +418,7 @@ VBEGetVBEInfo(vbeInfoPtr pVbe)
 	memcpy(&block->OemData, ((char*)pVbe->memory) + 256, 256);
     }
 
-    return (block);
+    return block;
 }
 
 void
@@ -493,10 +493,10 @@ VBEGetVBEMode(vbeInfoPtr pVbe, int *mode)
     if (R16(pVbe->pInt10->ax) == 0x4f) {
 	*mode = R16(pVbe->pInt10->bx);
 
-	return (TRUE);
+	return TRUE;
     }
 
-    return (FALSE);
+    return FALSE;
 }
 
 VbeModeInfoBlock *
@@ -525,7 +525,7 @@ VBEGetModeInfo(vbeInfoPtr pVbe, int mode)
     pVbe->pInt10->di = SEG_OFF(pVbe->real_mode_base);
     xf86ExecX86int10(pVbe->pInt10);
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (NULL);
+	return NULL;
 
     block = calloc(sizeof(VbeModeInfoBlock), 1);
 
@@ -591,7 +591,7 @@ VBEGetModeInfo(vbeInfoPtr pVbe, int mode)
     else
 	memcpy(&block->PhysBasePtr, ((char*)pVbe->memory) + 40, 216);
 
-    return (block);
+    return block;
 }
 
 void
@@ -657,7 +657,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
 	    pVbe->pInt10->cx = 0x000f;
 	    xf86ExecX86int10(pVbe->pInt10);
 	    if (R16(pVbe->pInt10->ax) != 0x4f)
-	        return (FALSE);
+	        return FALSE;
 
 	    if (function == MODE_SAVE) {
 	        int npages = (R16(pVbe->pInt10->bx) * 64) / 4096 + 1;
@@ -665,7 +665,7 @@ VBESaveRestore(vbeInfoPtr pVbe, vbeSaveRestoreFunction function,
 						   real_mode_pages)) == NULL) {
 		    xf86DrvMsg(screen, X_ERROR,
 			       "Cannot allocate memory to save SVGA state.\n");
-		    return (FALSE);
+		    return FALSE;
 		}
 	    }
 	    *size = pVbe->pInt10->bx * 64;
@@ -716,9 +716,9 @@ VBEBankSwitch(vbeInfoPtr pVbe, unsigned int iBank, int window)
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (FALSE);
+	return FALSE;
 
-    return (TRUE);
+    return TRUE;
 }
 
 Bool
@@ -726,7 +726,7 @@ VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
 				int width, int *pixels, int *bytes, int *max)
 {
     if (command < SCANWID_SET || command > SCANWID_GET_MAX)
-	return (FALSE);
+	return FALSE;
 
     /*
     Input:
@@ -755,7 +755,7 @@ VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (FALSE);
+	return FALSE;
 
     if (command == SCANWID_GET || command == SCANWID_GET_MAX) {
 	if (pixels)
@@ -766,7 +766,7 @@ VBESetGetLogicalScanlineLength(vbeInfoPtr pVbe, vbeScanwidthCommand command,
 	    *max = R16(pVbe->pInt10->dx);
     }
 
-    return (TRUE);
+    return TRUE;
 }
 
 Bool
@@ -780,9 +780,9 @@ VBESetDisplayStart(vbeInfoPtr pVbe, int x, int y, Bool wait_retrace)
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (FALSE);
+	return FALSE;
 
-    return (TRUE);
+    return TRUE;
 }
 
 Bool
@@ -794,12 +794,12 @@ VBEGetDisplayStart(vbeInfoPtr pVbe, int *x, int *y)
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (FALSE);
+	return FALSE;
 
     *x = pVbe->pInt10->cx;
     *y = pVbe->pInt10->dx;
 
-    return (TRUE);
+    return TRUE;
 }
 
 int
@@ -827,7 +827,7 @@ VBESetGetDACPaletteFormat(vbeInfoPtr pVbe, int bits)
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (0);
+	return 0;
 
     return (bits != 0 ? bits : (pVbe->pInt10->bx >> 8) & 0x00ff);
 }
@@ -878,15 +878,15 @@ VBESetGetPaletteData(vbeInfoPtr pVbe, Bool set, int first, int num,
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (NULL);
+	return NULL;
 
     if (set)
-	return (data);
+	return data;
 
     data = malloc(num * sizeof(CARD32));
     memcpy(data, pVbe->memory, num * sizeof(CARD32));
 
-    return (data);
+    return data;
 }
 
 VBEpmi *
@@ -915,14 +915,14 @@ VBEGetVBEpmi(vbeInfoPtr pVbe)
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (NULL);
+	return NULL;
 
     pmi = malloc(sizeof(VBEpmi));
     pmi->seg_tbl = R16(pVbe->pInt10->es);
     pmi->tbl_off = R16(pVbe->pInt10->di);
     pmi->tbl_len = R16(pVbe->pInt10->cx);
 
-    return (pmi);
+    return pmi;
 }
 
 #if 0
@@ -1034,9 +1034,9 @@ VBEGetPixelClock(vbeInfoPtr pVbe, int mode, int clock)
     xf86ExecX86int10(pVbe->pInt10);
 
     if (R16(pVbe->pInt10->ax) != 0x4f)
-	return (0);
+	return 0;
 
-    return (pVbe->pInt10->cx);
+    return pVbe->pInt10->cx;
 }
 
 Bool
diff --git a/hw/xfree86/vgahw/vgaCmap.c b/hw/xfree86/vgahw/vgaCmap.c
index 4720f4d..83c29c3 100644
--- a/hw/xfree86/vgahw/vgaCmap.c
+++ b/hw/xfree86/vgahw/vgaCmap.c
@@ -51,7 +51,7 @@ vgaListInstalledColormaps(pScreen, pmaps)
    * is always a colormap installed */
   
   *pmaps = GetInstalledmiColormap(pScreen)->mid;
-  return(1);
+  return 1;
 }
 
 int
@@ -63,7 +63,7 @@ vgaGetInstalledColormaps(pScreen, pmaps)
    * is always a colormap installed */
   
   *pmaps = GetInstalledmiColormap(pScreen);
-  return(1);
+  return 1;
 }
 
 int vgaCheckColorMap(ColormapPtr pmap)
diff --git a/hw/xfree86/vgahw/vgaHW.c b/hw/xfree86/vgahw/vgaHW.c
index b6832c3..ee045d1 100644
--- a/hw/xfree86/vgahw/vgaHW.c
+++ b/hw/xfree86/vgahw/vgaHW.c
@@ -658,7 +658,7 @@ vgaHWSaveScreen(ScreenPtr pScreen, int mode)
    if ((pScrn != NULL) && pScrn->vtSema) {
      vgaHWBlankScreen(pScrn, on);
    }
-   return (TRUE);
+   return TRUE;
 }
 
 
@@ -1351,7 +1351,7 @@ vgaHWInit(ScrnInfoPtr scrninfp, DisplayModePtr mode)
     regp->Attribute[19] = 0x00;
     regp->Attribute[20] = 0x00;
 
-    return(TRUE);
+    return TRUE;
 }
 
     /*
diff --git a/hw/xfree86/xaa/xaaFillRect.c b/hw/xfree86/xaa/xaaFillRect.c
index dde31c1..e1fecab 100644
--- a/hw/xfree86/xaa/xaaFillRect.c
+++ b/hw/xfree86/xaa/xaaFillRect.c
@@ -1090,6 +1090,6 @@ XAAGetRectClipBoxes(
     	}
     }
 
-    return(pboxClipped - pboxClippedBase);  
+    return pboxClipped - pboxClippedBase;
 }
 
diff --git a/hw/xfree86/xaa/xaaNonTEText.c b/hw/xfree86/xaa/xaaNonTEText.c
index a7fcf7a..7bfddcb 100644
--- a/hw/xfree86/xaa/xaaNonTEText.c
+++ b/hw/xfree86/xaa/xaaNonTEText.c
@@ -82,7 +82,7 @@ XAAPolyText8NonTEColorExpansion(
  		infoRec->CharInfo);
     }
 
-    return (x + width);
+    return x + width;
 }
 
 
@@ -112,7 +112,7 @@ XAAPolyText16NonTEColorExpansion(
 		infoRec->CharInfo);
     }
 
-    return (x + width);
+    return x + width;
 }
 
 
diff --git a/hw/xnest/Events.c b/hw/xnest/Events.c
index 194ec63..62e17cb 100644
--- a/hw/xnest/Events.c
+++ b/hw/xnest/Events.c
@@ -67,7 +67,7 @@ SetTimeSinceLastInputEvent(void)
 static Bool
 xnestExposurePredicate(Display *display, XEvent *event, char *args)
 {
-  return (event->type == Expose || event->type == ProcessedExpose);
+  return event->type == Expose || event->type == ProcessedExpose;
 }
 
 static Bool
diff --git a/hw/xnest/GCOps.c b/hw/xnest/GCOps.c
index 6b76fc2..829b86b 100644
--- a/hw/xnest/GCOps.c
+++ b/hw/xnest/GCOps.c
@@ -117,7 +117,7 @@ xnestGetImage(DrawablePtr pDrawable, int x, int y, int w, int h,
 static Bool
 xnestBitBlitPredicate(Display *display, XEvent *event, char *args)
 {
-  return (event->type == GraphicsExpose || event->type == NoExpose);
+  return event->type == GraphicsExpose || event->type == NoExpose;
 }
 
 static RegionPtr
@@ -158,7 +158,7 @@ xnestBitBlitHelper(GCPtr pGC)
 
     RegionDestroy(pTmpReg);
     RegionValidate(pReg, &overlap);
-    return(pReg);
+    return pReg;
   }
 }
 
diff --git a/hw/xnest/Pixmap.c b/hw/xnest/Pixmap.c
index a0968b9..3a92ffd 100644
--- a/hw/xnest/Pixmap.c
+++ b/hw/xnest/Pixmap.c
@@ -133,5 +133,5 @@ xnestPixmapToRegion(PixmapPtr pPixmap)
 
   RegionValidate(pReg, &overlap);
 
-  return(pReg);
+  return pReg;
 }
diff --git a/hw/xquartz/darwinXinput.c b/hw/xquartz/darwinXinput.c
index 90e440e..19aefb1 100644
--- a/hw/xquartz/darwinXinput.c
+++ b/hw/xquartz/darwinXinput.c
@@ -210,14 +210,14 @@ ChangeDeviceControl(ClientPtr client, DeviceIntPtr dev,
   DEBUG_LOG("ChangeDeviceControl(%p, %p, %p)\n", client, dev, control);
     switch (control->control) {
     case DEVICE_RESOLUTION:
-	return (BadMatch);
+	return BadMatch;
     case DEVICE_ABS_CALIB:
     case DEVICE_ABS_AREA:
-        return (BadMatch);
+        return BadMatch;
     case DEVICE_CORE:
-        return (BadMatch);
+        return BadMatch;
     default:
-	return (BadMatch);
+	return BadMatch;
     }
 }
 
diff --git a/hw/xquartz/mach-startup/bundle-main.c b/hw/xquartz/mach-startup/bundle-main.c
index 63a185f..6f7bbfd 100644
--- a/hw/xquartz/mach-startup/bundle-main.c
+++ b/hw/xquartz/mach-startup/bundle-main.c
@@ -641,7 +641,7 @@ static int execute(const char *command) {
 
     execvp (newargv[0], (char * const *) newargv);
     perror ("X11.app: Couldn't exec.");
-    return(1);
+    return 1;
 }
 
 static char *command_from_prefs(const char *key, const char *default_value) {
diff --git a/hw/xquartz/xpr/dri.c b/hw/xquartz/xpr/dri.c
index 72a7ecf..dc78003 100644
--- a/hw/xquartz/xpr/dri.c
+++ b/hw/xquartz/xpr/dri.c
@@ -289,7 +289,7 @@ DRIExtensionInit(void)
     DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete,
 						   "DRIDrawable");
 
-    return (DRIDrawablePrivResType != 0);
+    return DRIDrawablePrivResType != 0;
 }
 
 void
diff --git a/hw/xwin/winconfig.c b/hw/xwin/winconfig.c
index c2dd056..ab49aaa 100644
--- a/hw/xwin/winconfig.c
+++ b/hw/xwin/winconfig.c
@@ -730,7 +730,7 @@ winNameCompare (const char *s1, const char *s2)
       c1 = (isupper (*s1) ? tolower (*s1) : *s1);
       c2 = (isupper (*s2) ? tolower (*s2) : *s2);
     }
-  return (c1 - c2);
+  return c1 - c2;
 }
 
 
@@ -765,11 +765,11 @@ winFindOptionValue (XF86OptionPtr list, const char *name)
   if (list)
     {
       if (list->opt_val)
-	return (list->opt_val);
+	return list->opt_val;
       else
 	return "";
     }
-  return (NULL);
+  return NULL;
 }
 
 
diff --git a/include/dix.h b/include/dix.h
index 3d09bbe..a282a08 100644
--- a/include/dix.h
+++ b/include/dix.h
@@ -83,7 +83,7 @@ SOFTWARE.
     if (!LegalNewID(id,client)) \
     {\
 	client->errorValue = id;\
-        return(BadIDChoice);\
+        return BadIDChoice;\
     }
 
 #define VALIDATE_DRAWABLE_AND_GC(drawID, pDraw, mode)\
@@ -95,7 +95,7 @@ SOFTWARE.
 	if (rc != Success)\
 	    return rc;\
 	if ((pGC->depth != pDraw->depth) || (pGC->pScreen != pDraw->pScreen))\
-	    return (BadMatch);\
+	    return BadMatch;\
     }\
     if (pGC->serialNumber != pDraw->serialNumber)\
 	ValidateGC(pDraw, pGC);
diff --git a/mi/miarc.c b/mi/miarc.c
index db21165..881e0db 100644
--- a/mi/miarc.c
+++ b/mi/miarc.c
@@ -1561,7 +1561,7 @@ miGetArcPts(
     cdt = 2 * miDcos(dt);
     if (!(poly = (SppPointPtr) realloc((pointer)*ppPts,
 					(cpt + count) * sizeof(SppPointRec))))
-	return(0);
+	return 0;
     *ppPts = poly;
 
     xc = parc->width/2.0;		/* store half width and half height */
@@ -1598,7 +1598,7 @@ miGetArcPts(
 	poly[cpt +i -1].y = (miDsin(st + et) * parc->height/2.0 + yc);
     }
 
-    return(count);
+    return count;
 }
 
 struct arcData {
diff --git a/mi/mibitblt.c b/mi/mibitblt.c
index 98857e8..49e17bd 100644
--- a/mi/mibitblt.c
+++ b/mi/mibitblt.c
@@ -379,7 +379,7 @@ miGetPlane(
 	    pOut += delta;
 	}
     }
-    return(result);    
+    return result;
 
 }
 
diff --git a/mi/micmap.c b/mi/micmap.c
index 3effe6c..8d76f4d 100644
--- a/mi/micmap.c
+++ b/mi/micmap.c
@@ -47,7 +47,7 @@ miListInstalledColormaps(ScreenPtr pScreen, Colormap *pmaps)
 {
     if (GetInstalledmiColormap(pScreen)) {
 	*pmaps = GetInstalledmiColormap(pScreen)->mid;
-	return (1);
+	return 1;
     }
     return 0;
 }
diff --git a/mi/mifpolycon.c b/mi/mifpolycon.c
index 1be0150..e48686a 100644
--- a/mi/mifpolycon.c
+++ b/mi/mifpolycon.c
@@ -276,5 +276,5 @@ GetFPolyYBounds(
 
     *by = ICEIL(ymin + yFtrans);
     *ty = ICEIL(ymax + yFtrans - 1);
-    return(ptMin-ptsStart);
+    return ptMin-ptsStart;
 }
diff --git a/mi/mioverlay.c b/mi/mioverlay.c
index e7a9401..766c5e7 100644
--- a/mi/mioverlay.c
+++ b/mi/mioverlay.c
@@ -444,7 +444,7 @@ miOverlayMarkOverlappedWindows(
 	MIOVERLAY_GET_SCREEN_PRIVATE(pScreen)->underlayMarked = TRUE;	
     }
 
-    return (underMarked || overMarked);
+    return underMarked || overMarked;
 }
 
 
diff --git a/mi/mipolycon.c b/mi/mipolycon.c
index 2404c56..c201e39 100644
--- a/mi/mipolycon.c
+++ b/mi/mipolycon.c
@@ -104,14 +104,14 @@ miFillConvexPoly(
 
     dy = ymax - ymin + 1;
     if ((count < 3) || (dy < 0))
-	return(TRUE);
+	return TRUE;
     ptsOut = FirstPoint = malloc(sizeof(DDXPointRec)*dy);
     width = FirstWidth = malloc(sizeof(int) * dy);
     if(!FirstPoint || !FirstWidth)
     {
 	free(FirstWidth);
 	free(FirstPoint);
-	return(FALSE);
+	return FALSE;
     }
 
     nextleft = nextright = imin;
@@ -177,7 +177,7 @@ miFillConvexPoly(
         {
 	    free(FirstWidth);
 	    free(FirstPoint);
-	    return(TRUE);
+	    return TRUE;
 	}
         while (i-- > 0) 
         {
@@ -212,7 +212,7 @@ miFillConvexPoly(
 		      1);
     free(FirstWidth);
     free(FirstPoint);
-    return(TRUE);
+    return TRUE;
 }
 
 
@@ -243,5 +243,5 @@ getPolyYBounds(DDXPointPtr pts, int n, int *by, int *ty)
 
     *by = ymin;
     *ty = ymax;
-    return(ptMin-ptsStart);
+    return ptMin-ptsStart;
 }
diff --git a/mi/mipolygen.c b/mi/mipolygen.c
index d975165..7c7c593 100644
--- a/mi/mipolygen.c
+++ b/mi/mipolygen.c
@@ -90,16 +90,16 @@ miFillGeneralPoly(
     int fixWAET = 0;
 
     if (count < 3)
-	return(TRUE);
+	return TRUE;
 
     if(!(pETEs = malloc(sizeof(EdgeTableEntry) * count)))
-	return(FALSE);
+	return FALSE;
     ptsOut = FirstPoint;
     width = FirstWidth;
     if (!miCreateETandAET(count, ptsIn, &ET, &AET, pETEs, &SLLBlock))
     {
 	free(pETEs);
-	return(FALSE);
+	return FALSE;
     }
     pSLL = ET.scanlines.next;
 
@@ -226,5 +226,5 @@ miFillGeneralPoly(
     (*pgc->ops->FillSpans)(dst, pgc, nPts, FirstPoint, FirstWidth, 1);
     free(pETEs);
     miFreeStorage(SLLBlock.next);
-    return(TRUE);
+    return TRUE;
 }
diff --git a/mi/mipolyutil.c b/mi/mipolyutil.c
index c4ce882..d978ee8 100644
--- a/mi/mipolyutil.c
+++ b/mi/mipolyutil.c
@@ -365,7 +365,7 @@ miInsertionSort(EdgeTableEntry *AET)
             changed = 1;
         }
     }
-    return(changed);
+    return changed;
 }
 
 /*
diff --git a/mi/mivaltree.c b/mi/mivaltree.c
index 7e0c22a..0e00c2f 100644
--- a/mi/mivaltree.c
+++ b/mi/mivaltree.c
@@ -809,5 +809,5 @@ miValidateTree (
     RegionUninit(&exposed);
     if (pScreen->ClipNotify)
 	(*pScreen->ClipNotify) (pParent, 0, 0);
-    return (1);
+    return 1;
 }
diff --git a/mi/miwideline.c b/mi/miwideline.c
index 5f3d582..b11b40b 100644
--- a/mi/miwideline.c
+++ b/mi/miwideline.c
@@ -717,7 +717,7 @@ miLineArcI (
 	    *--bwids = slw;
 	}
     }
-    return (pGC->lineWidth);
+    return pGC->lineWidth;
 }
 
 #define CLIPSTEPEDGE(edgey,edge,edgeleft) \
@@ -911,7 +911,7 @@ miLineArcD (
 	    *wids++ = xcr - xcl + 1;
 	}
     }
-    return (pts - points);
+    return pts - points;
 }
 
 static int
diff --git a/miext/rootless/rootlessGC.c b/miext/rootless/rootlessGC.c
index 0bd314d..6af8d85 100644
--- a/miext/rootless/rootlessGC.c
+++ b/miext/rootless/rootlessGC.c
@@ -1276,7 +1276,7 @@ static int RootlessPolyText8(DrawablePtr dst, GCPtr pGC,
 
     GCOP_WRAP(pGC);
     RL_DEBUG_MSG("polytext8 end\n");
-    return (width + x);
+    return width + x;
 }
 
 static void RootlessImageText16(DrawablePtr dst, GCPtr pGC,
diff --git a/os/access.c b/os/access.c
index 36e1b81..5f485c9 100644
--- a/os/access.c
+++ b/os/access.c
@@ -329,7 +329,7 @@ ifioctl (int fd, int cmd, char *arg)
 #ifdef SVR4
 	((struct ifconf *) arg)->ifc_len = ioc.ic_len;
 #endif
-    return(ret);
+    return ret;
 }
 #else /* Case sun, SCO325 and others  */
 #define ifioctl ioctl
@@ -1343,13 +1343,13 @@ AddHost (ClientPtr	client,
 	if ((len = CheckAddr (family, pAddr, length)) < 0)
 	{
 	    client->errorValue = length;
-	    return (BadValue);
+	    return BadValue;
 	}
 	break;
     case FamilyLocal:
     default:
 	client->errorValue = family;
-	return (BadValue);
+	return BadValue;
     }
     if (NewHost (family, pAddr, len, FALSE))
 	return Success;
@@ -1441,13 +1441,13 @@ RemoveHost (
     	if ((len = CheckAddr (family, pAddr, length)) < 0)
     	{
 	    client->errorValue = length;
-            return(BadValue);
+            return BadValue;
     	}
 	break;
     case FamilyLocal:
     default:
 	client->errorValue = family;
-        return(BadValue);
+        return BadValue;
     }
     for (prev = &validhosts;
          (host = *prev) && (!addrEqual (family, pAddr, len, host));
@@ -1458,7 +1458,7 @@ RemoveHost (
         *prev = host->next;
         FreeHost (host);
     }
-    return (Success);
+    return Success;
 }
 
 /* Get all hosts in the access control list */
@@ -1486,7 +1486,7 @@ GetHosts (
         *data = ptr = malloc(n);
 	if (!ptr)
 	{
-	    return(BadAlloc);
+	    return BadAlloc;
 	}
         for (host = validhosts; host; host = host->next)
 	{
@@ -1502,7 +1502,7 @@ GetHosts (
     }
     *pnHosts = nHosts;
     *pLen = n;
-    return(Success);
+    return Success;
 }
 
 /* Check for valid address family and length, and return address length. */
@@ -1555,7 +1555,7 @@ CheckAddr (
       default:
         len = -1;
     }
-    return (len);
+    return len;
 }
 
 /* Check if a host is not in the access control list. 
@@ -1572,7 +1572,7 @@ InvalidHost (
     register HOST 		*selfhost, *host;
 
     if (!AccessEnabled)   /* just let them in */
-        return(0);    
+        return 0;
     family = ConvertAddr (saddr, &len, (pointer *)&addr);
     if (family == -1)
         return 1;
@@ -1600,15 +1600,15 @@ InvalidHost (
     {
 	if ((host->family == FamilyServerInterpreted)) {
 	    if (siAddrMatch (family, addr, len, host, client)) {
-		return (0);
+		return 0;
 	    }
 	} else {
 	    if (addrEqual (family, addr, len, host))
-		return (0);
+		return 0;
 	}
 
     }
-    return (1);
+    return 1;
 }
 
 static int
@@ -1618,7 +1618,7 @@ ConvertAddr (
     pointer			*addr)
 {
     if (*len == 0)
-        return (FamilyLocal);
+        return FamilyLocal;
     switch (saddr->sa_family)
     {
     case AF_UNSPEC:
diff --git a/os/connection.c b/os/connection.c
index 293f31a..cd0ca5e 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -267,7 +267,7 @@ lookup_trans_conn (int fd)
 		return ListenTransConns[i];
     }
 
-    return (NULL);
+    return NULL;
 }
 
 /* Set MaxClients and lastfdesc, and allocate ConnectionTranslation */
diff --git a/os/io.c b/os/io.c
index 02e1ca3..b5f98b7 100644
--- a/os/io.c
+++ b/os/io.c
@@ -508,7 +508,7 @@ InsertFakeRequest(ClientPtr client, char *data, int count)
 
 	ibuf = (char *)realloc(oci->buffer, gotnow + count);
 	if (!ibuf)
-	    return(FALSE);
+	    return FALSE;
 	oci->size = gotnow + count;
 	oci->buffer = ibuf;
 	oci->bufptr = ibuf + oci->bufcnt - gotnow;
@@ -529,7 +529,7 @@ InsertFakeRequest(ClientPtr client, char *data, int count)
 	FD_SET(fd, &ClientsWithInput);
     else
 	YieldControlNoInput(fd);
-    return(TRUE);
+    return TRUE;
 }
 
 /*****************************************************************
@@ -706,7 +706,7 @@ WriteToClient (ClientPtr who, int count, const void *__buf)
     Bool multicount = FALSE;
 #endif
     if (!count || !who || who == serverClient || who->clientGone)
-	return(0);
+	return 0;
     oc = who->osPrivate;
     oco = oc->output;
 #ifdef DEBUG_COMMUNICATION
@@ -826,7 +826,7 @@ WriteToClient (ClientPtr who, int count, const void *__buf)
     FD_SET(oc->fd, &OutputPending);
     memmove((char *)oco->buf + oco->count, buf, count);
     oco->count += count + padBytes;
-    return(count);
+    return count;
 }
 
  /********************
@@ -948,7 +948,7 @@ FlushClient(ClientPtr who, OsCommPtr oc, const void *__extraBuf, int extraCount)
 		    oc->trans_conn = NULL;
 		    MarkClientException(who);
 		    oco->count = 0;
-		    return(-1);
+		    return -1;
 		}
 		oco->size = notWritten + BUFSIZE;
 		oco->buf = obuf;
@@ -981,7 +981,7 @@ FlushClient(ClientPtr who, OsCommPtr oc, const void *__extraBuf, int extraCount)
 	    }
 	    MarkClientException(who);
 	    oco->count = 0;
-	    return(-1);
+	    return -1;
 	}
     }
 
diff --git a/os/strcasecmp.c b/os/strcasecmp.c
index ca1051d..ad6da6a 100644
--- a/os/strcasecmp.c
+++ b/os/strcasecmp.c
@@ -42,7 +42,7 @@ xstrcasecmp(const char *str1, const char *str2)
 
     while (tolower(*us1) == tolower(*us2)) {
         if (*us1++ == '\0')
-            return (0);
+            return 0;
         us2++;
     }
 
diff --git a/os/strcasestr.c b/os/strcasestr.c
index b3d4549..f89b2f2 100644
--- a/os/strcasestr.c
+++ b/os/strcasestr.c
@@ -54,7 +54,7 @@ xstrcasestr(const char *s, const char *find)
                 do {
                         do {
                                 if ((sc = *s++) == 0)
-                                        return (NULL);
+                                        return NULL;
                         } while ((char)tolower((unsigned char)sc) != c);
                 } while (strncasecmp(s, find, len) != 0);
                 s--;
diff --git a/os/strlcpy.c b/os/strlcpy.c
index aa9d042..e8e1b02 100644
--- a/os/strlcpy.c
+++ b/os/strlcpy.c
@@ -50,5 +50,5 @@ strlcpy(char *dst, const char *src, size_t siz)
 			;
 	}
 
-	return(s - src - 1);	/* count does not include NUL */
+	return s - src - 1;	/* count does not include NUL */
 }
diff --git a/os/utils.c b/os/utils.c
index b4a954f..92bfad3 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -548,12 +548,12 @@ void UseMsg(void)
 static int 
 VerifyDisplayName(const char *d)
 {
-    if ( d == (char *)0 ) return( 0 );  /*  null  */
-    if ( *d == '\0' ) return( 0 );  /*  empty  */
-    if ( *d == '-' ) return( 0 );  /*  could be confused for an option  */
-    if ( *d == '.' ) return( 0 );  /*  must not equal "." or ".."  */
-    if ( strchr(d, '/') != (char *)0 ) return( 0 );  /*  very important!!!  */
-    return( 1 );
+    if ( d == (char *)0 ) return 0;  /*  null  */
+    if ( *d == '\0' ) return 0;  /*  empty  */
+    if ( *d == '-' ) return 0;  /*  could be confused for an option  */
+    if ( *d == '.' ) return 0;  /*  must not equal "." or ".."  */
+    if ( strchr(d, '/') != (char *)0 ) return 0;  /*  very important!!!  */
+    return 1;
 }
 
 /*
@@ -1284,7 +1284,7 @@ System(char *command)
     int status;
 
     if (!command)
-	return(1);
+	return 1;
 
 #ifdef SIGCHLD
     csig = signal(SIGCHLD, SIG_DFL);
diff --git a/os/xdmcp.c b/os/xdmcp.c
index e03f17e..8fd903f 100644
--- a/os/xdmcp.c
+++ b/os/xdmcp.c
@@ -251,48 +251,48 @@ XdmcpOptions(int argc, char **argv, int i)
 	get_manager_by_name(argc, argv, i++);
 	XDM_INIT_STATE = XDM_QUERY;
 	AccessUsingXdmcp ();
-	return (i + 1);
+	return i + 1;
     }
     if (strcmp(argv[i], "-broadcast") == 0) {
 	XDM_INIT_STATE = XDM_BROADCAST;
 	AccessUsingXdmcp ();
-	return (i + 1);
+	return i + 1;
     }
 #if defined(IPv6) && defined(AF_INET6)
     if (strcmp(argv[i], "-multicast") == 0) {
 	i = get_mcast_options(argc, argv, ++i);
 	XDM_INIT_STATE = XDM_MULTICAST;
 	AccessUsingXdmcp ();
-	return (i + 1);
+	return i + 1;
     }
 #endif
     if (strcmp(argv[i], "-indirect") == 0) {
 	get_manager_by_name(argc, argv, i++);
 	XDM_INIT_STATE = XDM_INDIRECT;
 	AccessUsingXdmcp ();
-	return (i + 1);
+	return i + 1;
     }
     if (strcmp(argv[i], "-port") == 0) {
         if (++i == argc)  {
 	    FatalError("Xserver: missing port number in command line\n");
 	}
 	xdm_udp_port = (unsigned short) atoi(argv[i]);
-	return (i + 1);
+	return i + 1;
     }
     if (strcmp(argv[i], "-from") == 0) {
 	get_fromaddr_by_name(argc, argv, ++i);
-	return (i + 1);
+	return i + 1;
     }
     if (strcmp(argv[i], "-once") == 0) {
 	OneSession = TRUE;
-	return (i + 1);
+	return i + 1;
     }
     if (strcmp(argv[i], "-class") == 0) {
         if (++i == argc)  {
 	    FatalError("Xserver: missing class name in command line\n");
 	}
 	defaultDisplayClass = argv[i];
-	return (i + 1);
+	return i + 1;
     }
 #ifdef HASXDMAUTH
     if (strcmp(argv[i], "-cookie") == 0) {
@@ -300,7 +300,7 @@ XdmcpOptions(int argc, char **argv, int i)
 	    FatalError("Xserver: missing cookie data in command line\n");
 	}
 	xdmAuthCookie = argv[i];
-	return (i + 1);
+	return i + 1;
     }
 #endif
     if (strcmp(argv[i], "-displayID") == 0) {
@@ -308,9 +308,9 @@ XdmcpOptions(int argc, char **argv, int i)
 	    FatalError("Xserver: missing displayID in command line\n");
 	}
 	XdmcpRegisterManufacturerDisplayID (argv[i], strlen (argv[i]));
-	return (i + 1);
+	return i + 1;
     }
-    return (i);
+    return i;
 }
 
 /*
diff --git a/randr/rrproperty.c b/randr/rrproperty.c
index 481eb86..ba04c16 100644
--- a/randr/rrproperty.c
+++ b/randr/rrproperty.c
@@ -154,7 +154,7 @@ RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
     {
 	prop = RRCreateOutputProperty (property);
 	if (!prop)
-	    return(BadAlloc);
+	    return BadAlloc;
 	add = TRUE;
 	mode = PropModeReplace;
     }
@@ -169,9 +169,9 @@ RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
      "PropModeReplace" since they will be written over. */
 
     if ((format != prop_value->format) && (mode != PropModeReplace))
-	return(BadMatch);
+	return BadMatch;
     if ((prop_value->type != type) && (mode != PropModeReplace))
-	return(BadMatch);
+	return BadMatch;
     new_value = *prop_value;
     if (mode == PropModeReplace)
 	total_len = len;
@@ -221,7 +221,7 @@ RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
 					   prop->propertyName, &new_value))
 	{
 	    free(new_value.data);
-	    return (BadValue);
+	    return BadValue;
 	}
 	free(prop_value->data);
 	*prop_value = new_value;
@@ -251,7 +251,7 @@ RRChangeOutputProperty (RROutputPtr output, Atom property, Atom type,
 	event.timestamp = currentTime.milliseconds;
 	RRDeliverPropertyEvent (output->pScreen, (xEvent *)&event);
     }
-    return(Success);
+    return Success;
 }
 
 Bool
@@ -341,10 +341,10 @@ RRConfigureOutputProperty (RROutputPtr output, Atom property,
     {
         prop = RRCreateOutputProperty (property);
 	if (!prop)
-	    return(BadAlloc);
+	    return BadAlloc;
 	add = TRUE;
     } else if (prop->immutable && !immutable)
-	return(BadAccess);
+	return BadAccess;
     
     /*
      * ranges must have even number of values
@@ -401,7 +401,7 @@ ProcRRListOutputProperties (ClientPtr client)
 	numProps++;
     if (numProps)
         if(!(pAtoms = (Atom *)malloc(numProps * sizeof(Atom))))
-            return(BadAlloc);
+            return BadAlloc;
 
     rep.type = X_Reply;
     rep.length = bytes_to_int32(numProps * sizeof(Atom));
@@ -530,12 +530,12 @@ ProcRRChangeOutputProperty (ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
 	client->errorValue = stuff->property;
-	return(BadAtom);
+	return BadAtom;
     }
     if (!ValidAtom(stuff->type))
     {
 	client->errorValue = stuff->type;
-	return(BadAtom);
+	return BadAtom;
     }
 
     err = RRChangeOutputProperty(output, stuff->property,
@@ -560,7 +560,7 @@ ProcRRDeleteOutputProperty (ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
 	client->errorValue = stuff->property;
-	return (BadAtom);
+	return BadAtom;
     }
 
 
@@ -588,17 +588,17 @@ ProcRRGetOutputProperty (ClientPtr client)
     if (!ValidAtom(stuff->property))
     {
 	client->errorValue = stuff->property;
-	return(BadAtom);
+	return BadAtom;
     }
     if ((stuff->delete != xTrue) && (stuff->delete != xFalse))
     {
 	client->errorValue = stuff->delete;
-	return(BadValue);
+	return BadValue;
     }
     if ((stuff->type != AnyPropertyType) && !ValidAtom(stuff->type))
     {
 	client->errorValue = stuff->type;
-	return(BadAtom);
+	return BadAtom;
     }
 
     for (prev = &output->properties; (prop = *prev); prev = &prop->next)
diff --git a/render/render.c b/render/render.c
index 40401a4..ef233e4 100644
--- a/render/render.c
+++ b/render/render.c
@@ -852,7 +852,7 @@ ProcRenderTriStrip (ClientPtr client)
 	pFormat = 0;
     npoints = ((client->req_len << 2) - sizeof (xRenderTriStripReq));
     if (npoints & 4)
-	return(BadLength);
+	return BadLength;
     npoints >>= 3;
     if (npoints >= 3)
 	CompositeTriStrip (stuff->op, pSrc, pDst, pFormat,
@@ -892,7 +892,7 @@ ProcRenderTriFan (ClientPtr client)
 	pFormat = 0;
     npoints = ((client->req_len << 2) - sizeof (xRenderTriStripReq));
     if (npoints & 4)
-	return(BadLength);
+	return BadLength;
     npoints >>= 3;
     if (npoints >= 3)
 	CompositeTriFan (stuff->op, pSrc, pDst, pFormat,
@@ -1461,7 +1461,7 @@ ProcRenderFillRectangles (ClientPtr client)
     
     things = (client->req_len << 2) - sizeof(xRenderFillRectanglesReq);
     if (things & 4)
-	return(BadLength);
+	return BadLength;
     things >>= 3;
     
     CompositeRects (stuff->op,
@@ -1530,10 +1530,10 @@ ProcRenderCreateCursor (ClientPtr client)
 	return BadAlloc;
     if ( stuff->x > width 
       || stuff->y > height )
-	return (BadMatch);
+	return BadMatch;
     argbbits = malloc(width * height * sizeof (CARD32));
     if (!argbbits)
-	return (BadAlloc);
+	return BadAlloc;
     
     stride = BitmapBytePad(width);
     nbytes_mono = stride*height;
@@ -1541,14 +1541,14 @@ ProcRenderCreateCursor (ClientPtr client)
     if (!srcbits)
     {
 	free(argbbits);
-	return (BadAlloc);
+	return BadAlloc;
     }
     mskbits = calloc(1, nbytes_mono);
     if (!mskbits)
     {
 	free(argbbits);
 	free(srcbits);
-	return (BadAlloc);
+	return BadAlloc;
     }
 
     if (pSrc->format == PICT_a8r8g8b8)
@@ -1570,7 +1570,7 @@ ProcRenderCreateCursor (ClientPtr client)
 	    free(argbbits);
 	    free(srcbits);
 	    free(mskbits);
-	    return (BadImplementation);
+	    return BadImplementation;
 	}
 	pPixmap = (*pScreen->CreatePixmap) (pScreen, width, height, 32,
 					    CREATE_PIXMAP_USAGE_SCRATCH);
@@ -1579,7 +1579,7 @@ ProcRenderCreateCursor (ClientPtr client)
 	    free(argbbits);
 	    free(srcbits);
 	    free(mskbits);
-	    return (BadAlloc);
+	    return BadAlloc;
 	}
 	pPicture = CreatePicture (0, &pPixmap->drawable, pFormat, 0, 0, 
 				  client, &error);
@@ -2703,7 +2703,7 @@ PanoramiXRenderCreatePicture (ClientPtr client)
     else 
 	free(newPict);
 
-    return (result);
+    return result;
 }
 
 static int
@@ -2723,7 +2723,7 @@ PanoramiXRenderChangePicture (ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 static int
@@ -2743,7 +2743,7 @@ PanoramiXRenderSetPictureClipRectangles (ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 static int
@@ -2763,7 +2763,7 @@ PanoramiXRenderSetPictureTransform (ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 static int
@@ -2783,7 +2783,7 @@ PanoramiXRenderSetPictureFilter (ClientPtr client)
         if(result != Success) break;
     }
 
-    return (result);
+    return result;
 }
 
 static int
@@ -2809,7 +2809,7 @@ PanoramiXRenderFreePicture (ClientPtr client)
     /* Since ProcRenderFreePicture is using FreeResource, it will free
 	our resource for us on the last pass through the loop above */
  
-    return (result);
+    return result;
 }
 
 static int
diff --git a/xfixes/cursor.c b/xfixes/cursor.c
index a9f089f..41ba0fb 100644
--- a/xfixes/cursor.c
+++ b/xfixes/cursor.c
@@ -269,7 +269,7 @@ ProcXFixesSelectCursorInput (ClientPtr client)
     if (stuff->eventMask & ~CursorAllEvents)
     {
 	client->errorValue = stuff->eventMask;
-	return( BadValue );
+	return BadValue;
     }
     return XFixesSelectCursorInput (client, pWin, stuff->eventMask);
 }
@@ -732,7 +732,7 @@ static Bool
 TestForCursorName (CursorPtr pCursor, pointer closure)
 {
     Atom *pName = closure;
-    return (pCursor->name == *pName);
+    return pCursor->name == *pName;
 }
 
 int
diff --git a/xfixes/region.c b/xfixes/region.c
index 4a3ec33..42d5d7c 100644
--- a/xfixes/region.c
+++ b/xfixes/region.c
@@ -63,7 +63,7 @@ XFixesRegionInit (void)
 {
     RegionResType = CreateNewResourceType(RegionResFree, "XFixesRegion");
 
-    return (RegionResType != 0);
+    return RegionResType != 0;
 }
 
 int
diff --git a/xfixes/saveset.c b/xfixes/saveset.c
index 3c0504f..35d8e17 100644
--- a/xfixes/saveset.c
+++ b/xfixes/saveset.c
@@ -43,17 +43,17 @@ ProcXFixesChangeSaveSet(ClientPtr client)
     if ((stuff->mode != SetModeInsert) && (stuff->mode != SetModeDelete))
     {
 	client->errorValue = stuff->mode;
-	return( BadValue );
+	return BadValue;
     }
     if ((stuff->target != SaveSetNearest) && (stuff->target != SaveSetRoot))
     {
 	client->errorValue = stuff->target;
-	return( BadValue );
+	return BadValue;
     }
     if ((stuff->map != SaveSetMap) && (stuff->map != SaveSetUnmap))
     {
 	client->errorValue = stuff->map;
-	return( BadValue );
+	return BadValue;
     }
     toRoot = (stuff->target == SaveSetRoot);
     map = (stuff->map == SaveSetMap);
diff --git a/xfixes/select.c b/xfixes/select.c
index 3aa26d3..baf1ef8 100644
--- a/xfixes/select.c
+++ b/xfixes/select.c
@@ -211,7 +211,7 @@ ProcXFixesSelectSelectionInput (ClientPtr client)
     if (stuff->eventMask & ~SelectionAllEvents)
     {
 	client->errorValue = stuff->eventMask;
-	return( BadValue );
+	return BadValue;
     }
     return XFixesSelectSelectionInput (client, stuff->selection,
 				       pWin, stuff->eventMask);
diff --git a/xkb/xkbAccessX.c b/xkb/xkbAccessX.c
index be1dcee..b5486b7 100644
--- a/xkb/xkbAccessX.c
+++ b/xkb/xkbAccessX.c
@@ -394,7 +394,7 @@ XkbSrvLedInfoPtr	sli;
 	unsigned timeElapsed = (now-xkbi->lastPtrEventTime);
 
 	if (timeToWait > timeElapsed)
-	    return (timeToWait - timeElapsed);
+	    return timeToWait - timeElapsed;
     }
     old= *ctrls;
     xkbi->shiftKeyCount= 0;
diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c
index ae3666f..f617537 100644
--- a/xkb/xkbLEDs.c
+++ b/xkb/xkbLEDs.c
@@ -166,7 +166,7 @@ XkbStatePtr	state;
 	    }
 	}
     }
-    return (stateChange || ctrlChange);
+    return stateChange || ctrlChange;
 }
 	
 	/*
diff --git a/xkb/xkbfmisc.c b/xkb/xkbfmisc.c
index 103e609..7aa9863 100644
--- a/xkb/xkbfmisc.c
+++ b/xkb/xkbfmisc.c
@@ -437,5 +437,5 @@ XkbNameMatchesPattern(char *name,char *ptrn)
 	ptrn++;
     }
     /* if we get here, the pattern is exhausted (-:just like me:-) */
-    return (name[0]=='\0');
+    return name[0]=='\0';
 }
commit d1b4beecbc16448282dcc825dd5c354e96e48eca
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:53 2010 -0700

    xfree86: Add MatchOS InputClass entry for operating system matching
    
    Allow InputClass sections to match against the running operating system
    to narrow the application of rules. An example where this could be used
    is to specify that the default input driver on Linux is evdev while it's
    mouse/kbd everywhere else.
    
    The operating system name is the same as `uname -s`, and matching is
    case-insensitive.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/configure.ac b/configure.ac
index c8b49de..81b6e4c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -123,7 +123,7 @@ AM_CONDITIONAL(SPECIAL_DTRACE_OBJECTS, [test "x$SPECIAL_DTRACE_OBJECTS" = "xyes"
 
 AC_HEADER_DIRENT
 AC_HEADER_STDC
-AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h dlfcn.h stropts.h fnmatch.h])
+AC_CHECK_HEADERS([fcntl.h stdlib.h string.h unistd.h dlfcn.h stropts.h fnmatch.h sys/utsname.h])
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 58e09cc..0f6ccc1 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -80,6 +80,9 @@
 #ifdef HAVE_FNMATCH_H
 #include <fnmatch.h>
 #endif
+#ifdef HAVE_SYS_UTSNAME_H
+#include <sys/utsname.h>
+#endif
 
 #include "extnsionst.h"
 
@@ -496,6 +499,31 @@ AddOtherInputDevices(void)
 {
 }
 
+/*
+ * Get the operating system name from uname and store it statically to avoid
+ * repeating the system call each time MatchOS is checked.
+ */
+static const char *
+HostOS(void)
+{
+#ifdef HAVE_SYS_UTSNAME_H
+    struct utsname name;
+    static char host_os[sizeof(name.sysname)] = "";
+
+    if (*host_os == '\0') {
+        if (uname(&name) >= 0)
+            strcpy(host_os, name.sysname);
+        else {
+            strncpy(host_os, "unknown", sizeof(host_os));
+            host_os[sizeof(host_os)-1] = '\0';
+        }
+    }
+    return host_os;
+#else
+    return "";
+#endif
+}
+
 static int
 match_substring(const char *attr, const char *pattern)
 {
@@ -558,6 +586,10 @@ InputClassMatches(const XF86ConfInputClassPtr iclass,
     if (!MatchAttrToken(attrs->device, iclass->match_device, match_path_pattern))
         return FALSE;
 
+    /* MatchOS case-insensitive string */
+    if (!MatchAttrToken(HostOS(), iclass->match_os, strcasecmp))
+        return FALSE;
+
     /*
      * MatchTag string
      * See if any of the device's tags match any of the MatchTag tokens.
diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre
index 9075db6..50d4f36 100644
--- a/hw/xfree86/doc/man/xorg.conf.man.pre
+++ b/hw/xfree86/doc/man/xorg.conf.man.pre
@@ -1086,6 +1086,15 @@ This entry can be used to check if the device file matches the
 pathname pattern. Multiple patterns can be matched by separating arguments
 with a '|' character.
 .TP 7
+.BI "MatchOS \*q" matchos \*q
+This entry can be used to check if the operating system matches the
+case-insensitive
+.RI \*q matchos \*q
+string. This entry is only supported on platforms providing the
+.BR uname (2)
+system call. Multiple operating systems can be matched by separating arguments
+with a '|' character.
+.TP 7
 .BI "MatchTag \*q" matchtag \*q
 This entry can be used to check if tags assigned by the config backend
 matches the
diff --git a/hw/xfree86/parser/InputClass.c b/hw/xfree86/parser/InputClass.c
index 7fb2866..20ebfb5 100644
--- a/hw/xfree86/parser/InputClass.c
+++ b/hw/xfree86/parser/InputClass.c
@@ -47,6 +47,7 @@ xf86ConfigSymTabRec InputClassTab[] =
     {MATCH_PRODUCT, "matchproduct"},
     {MATCH_VENDOR, "matchvendor"},
     {MATCH_DEVICE_PATH, "matchdevicepath"},
+    {MATCH_OS, "matchos"},
     {MATCH_TAG, "matchtag"},
     {MATCH_IS_KEYBOARD, "matchiskeyboard"},
     {MATCH_IS_POINTER, "matchispointer"},
@@ -108,6 +109,11 @@ xf86parseInputClassSection(void)
                 Error(QUOTE_MSG, "MatchDevicePath");
             ptr->match_device = xstrtokenize(val.str, TOKEN_SEP);
             break;
+        case MATCH_OS:
+            if (xf86getSubToken(&(ptr->comment)) != STRING)
+                Error(QUOTE_MSG, "MatchOS");
+            ptr->match_os = xstrtokenize(val.str, TOKEN_SEP);
+            break;
         case MATCH_TAG:
             if (xf86getSubToken(&(ptr->comment)) != STRING)
                 Error(QUOTE_MSG, "MatchTag");
@@ -217,6 +223,14 @@ xf86printInputClassSection (FILE * cf, XF86ConfInputClassPtr ptr)
                         *list);
             fprintf(cf, "\"\n");
         }
+        if (ptr->match_os) {
+            fprintf(cf, "\tMatchOS         \"");
+            for (list = ptr->match_os; *list; list++)
+                fprintf(cf, "%s%s",
+                        list == ptr->match_os ? "" : TOKEN_SEP,
+                        *list);
+            fprintf(cf, "\"\n");
+        }
         if (ptr->match_tag) {
             fprintf(cf, "\tMatchTag \"");
             for (list = ptr->match_tag; *list; list++)
@@ -273,6 +287,11 @@ xf86freeInputClassList (XF86ConfInputClassPtr ptr)
                 free(*list);
             free(ptr->match_device);
         }
+        if (ptr->match_os) {
+            for (list = ptr->match_os; *list; list++)
+                free(*list);
+            free(ptr->match_os);
+        }
         if (ptr->match_tag) {
             for (list = ptr->match_tag; *list; list++)
                 free(*list);
diff --git a/hw/xfree86/parser/xf86Parser.h b/hw/xfree86/parser/xf86Parser.h
index d79544a..3623ca1 100644
--- a/hw/xfree86/parser/xf86Parser.h
+++ b/hw/xfree86/parser/xf86Parser.h
@@ -346,6 +346,7 @@ typedef struct
 	char **match_product;
 	char **match_vendor;
 	char **match_device;
+	char **match_os;
 	char **match_tag;
 	xf86TriState is_keyboard;
 	xf86TriState is_pointer;
diff --git a/hw/xfree86/parser/xf86tokens.h b/hw/xfree86/parser/xf86tokens.h
index cb60070..fd13d6d 100644
--- a/hw/xfree86/parser/xf86tokens.h
+++ b/hw/xfree86/parser/xf86tokens.h
@@ -279,6 +279,7 @@ typedef enum {
     MATCH_PRODUCT,
     MATCH_VENDOR,
     MATCH_DEVICE_PATH,
+    MATCH_OS,
     MATCH_TAG,
     MATCH_IS_KEYBOARD,
     MATCH_IS_POINTER,
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index 7759aac..6a33264 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -222,6 +222,9 @@
 /* Define to 1 if you have the <sys/types.h> header file. */
 #undef HAVE_SYS_TYPES_H
 
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+#undef HAVE_SYS_UTSNAME_H
+
 /* Define to 1 if you have the <sys/vm86.h> header file. */
 #undef HAVE_SYS_VM86_H
 
commit 9b30fa9f8fedb7ddb5672f93ed1a154d13578c47
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:52 2010 -0700

    xfree86: Refactor InputClass matching code
    
    InputClassMatches was starting to get a little hairy with all the loops
    over the tokenized match strings. This adds code, but makes it easier to
    read and add new matches.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Jamey Sharp <jamey at minilop.net>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 6e5132c..58e09cc 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -496,6 +496,48 @@ AddOtherInputDevices(void)
 {
 }
 
+static int
+match_substring(const char *attr, const char *pattern)
+{
+    return (strstr(attr, pattern)) ? 0 : -1;
+}
+
+#ifdef HAVE_FNMATCH_H
+static int
+match_path_pattern(const char *attr, const char *pattern)
+{
+    return fnmatch(pattern, attr, FNM_PATHNAME);
+}
+#else
+#define match_path_pattern match_substring
+#endif
+
+/*
+ * Match an attribute against a NULL terminated list of patterns. If any
+ * pattern is matched, return TRUE.
+ */
+static Bool
+MatchAttrToken(const char *attr, char **patterns,
+               int (*compare)(const char *attr, const char *pattern))
+{
+    char **cur;
+
+    /* If there are no patterns, accept the match */
+    if (!patterns)
+        return TRUE;
+
+    /* If there are patterns but no attribute, reject the match */
+    if (!attr)
+        return FALSE;
+
+    /* Otherwise, iterate the patterns looking for a match */
+    for (cur = patterns; *cur; cur++)
+        if ((*compare)(attr, *cur) == 0)
+            return TRUE;
+
+    return FALSE;
+}
+
 /*
  * Classes without any Match statements match all devices. Otherwise, all
  * statements must match.
@@ -504,67 +546,39 @@ static Bool
 InputClassMatches(const XF86ConfInputClassPtr iclass,
                   const InputAttributes *attrs)
 {
-    char **cur;
-    Bool match;
+    /* MatchProduct substring */
+    if (!MatchAttrToken(attrs->product, iclass->match_product, match_substring))
+        return FALSE;
 
-    if (iclass->match_product) {
-        if (!attrs->product)
-            return FALSE;
-        /* see if any of the values match */
-        for (cur = iclass->match_product, match = FALSE; *cur; cur++)
-            if (strstr(attrs->product, *cur)) {
-                match = TRUE;
-                break;
-            }
-        if (!match)
-            return FALSE;
-    }
-    if (iclass->match_vendor) {
-        if (!attrs->vendor)
-            return FALSE;
-        /* see if any of the values match */
-        for (cur = iclass->match_vendor, match = FALSE; *cur; cur++)
-            if (strstr(attrs->vendor, *cur)) {
-                match = TRUE;
-                break;
-            }
-        if (!match)
-            return FALSE;
-    }
-    if (iclass->match_device) {
-        if (!attrs->device)
-            return FALSE;
-        /* see if any of the values match */
-        for (cur = iclass->match_device, match = FALSE; *cur; cur++)
-#ifdef HAVE_FNMATCH_H
-            if (fnmatch(*cur, attrs->device, FNM_PATHNAME) == 0) {
-#else
-            if (strstr(attrs->device, *cur)) {
-#endif
-                match = TRUE;
-                break;
-            }
-        if (!match)
-            return FALSE;
-    }
+    /* MatchVendor substring */
+    if (!MatchAttrToken(attrs->vendor, iclass->match_vendor, match_substring))
+        return FALSE;
+
+    /* MatchDevicePath pattern */
+    if (!MatchAttrToken(attrs->device, iclass->match_device, match_path_pattern))
+        return FALSE;
+
+    /*
+     * MatchTag string
+     * See if any of the device's tags match any of the MatchTag tokens.
+     */
     if (iclass->match_tag) {
+        char * const *tag;
+        Bool match;
+
         if (!attrs->tags)
             return FALSE;
-
-        for (cur = iclass->match_tag, match = FALSE; *cur && !match; cur++) {
-            char * const *tag;
-            for(tag = attrs->tags; *tag; tag++) {
-                if (!strcmp(*tag, *cur)) {
-                    match = TRUE;
-                    break;
-                }
+        for (tag = attrs->tags, match = FALSE; *tag; tag++) {
+            if (MatchAttrToken(*tag, iclass->match_tag, strcmp)) {
+                match = TRUE;
+                break;
             }
         }
-
         if (!match)
             return FALSE;
     }
 
+    /* MatchIs* booleans */
     if (iclass->is_keyboard.set &&
         iclass->is_keyboard.val != !!(attrs->flags & ATTR_KEYBOARD))
         return FALSE;
@@ -583,6 +597,7 @@ InputClassMatches(const XF86ConfInputClassPtr iclass,
     if (iclass->is_touchscreen.set &&
         iclass->is_touchscreen.val != !!(attrs->flags & ATTR_TOUCHSCREEN))
         return FALSE;
+
     return TRUE;
 }
 
commit d09bc8f8e5bb92899f7c90eab6b0907920c7d643
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:51 2010 -0700

    xfree86: Constify InputClass functions
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index c3a1ddd..6e5132c 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -501,7 +501,8 @@ AddOtherInputDevices(void)
  * statements must match.
  */
 static Bool
-InputClassMatches(XF86ConfInputClassPtr iclass, InputAttributes *attrs)
+InputClassMatches(const XF86ConfInputClassPtr iclass,
+                  const InputAttributes *attrs)
 {
     char **cur;
     Bool match;
@@ -591,7 +592,7 @@ InputClassMatches(XF86ConfInputClassPtr iclass, InputAttributes *attrs)
  * well as any previous InputClass sections.
  */
 static int
-MergeInputClasses(IDevPtr idev, InputAttributes *attrs)
+MergeInputClasses(const IDevPtr idev, const InputAttributes *attrs)
 {
     XF86ConfInputClassPtr cl;
     XF86OptionPtr classopts, mergedopts = NULL;
@@ -630,7 +631,7 @@ MergeInputClasses(IDevPtr idev, InputAttributes *attrs)
  * value of the last matching class and holler when returning TRUE.
  */
 static Bool
-IgnoreInputClass(IDevPtr idev, InputAttributes *attrs)
+IgnoreInputClass(const IDevPtr idev, const InputAttributes *attrs)
 {
     XF86ConfInputClassPtr cl;
     Bool ignore = FALSE;
commit 61c35d8ac4b6423caf2dcecb4ff25baaaaa14b1c
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:50 2010 -0700

    config/hal: Missing newline in log message
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/hal.c b/config/hal.c
index b5a350f..e0ff842 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -622,7 +622,7 @@ config_hal_init(void)
     }
 
     /* verbose message */
-    LogMessageVerb(X_INFO,7,"config/hal: initialized");
+    LogMessageVerb(X_INFO,7,"config/hal: initialized\n");
 
     return 1;
 }
commit 697c5b010d7f6df0ec9cae6352b125c4cbdbaad3
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:49 2010 -0700

    config/udev: Add verbose info when fetching udev properties
    
    Give the user a chance to see why their input devices are being ignored,
    even if they have to start the server with -logverbose.
    
    Signed-off-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/udev.c b/config/udev.c
index 5e8d8da..5d001de 100644
--- a/config/udev.c
+++ b/config/udev.c
@@ -37,6 +37,17 @@
 
 #define UDEV_XKB_PROP_KEY "xkb"
 
+#define LOG_PROPERTY(path, prop, val)                                   \
+    LogMessageVerb(X_INFO, 10,                                          \
+                   "config/udev: getting property %s on %s "            \
+                   "returned \"%s\"\n",                                 \
+                   (prop), (path), (val) ? (val) : "(null)")
+#define LOG_SYSATTR(path, attr, val)                                    \
+    LogMessageVerb(X_INFO, 10,                                          \
+                   "config/udev: getting attribute %s on %s "           \
+                   "returned \"%s\"\n",                                 \
+                   (attr), (path), (val) ? (val) : "(null)")
+
 static struct udev_monitor *udev_monitor;
 
 static void
@@ -45,6 +56,7 @@ device_added(struct udev_device *udev_device)
     const char *path, *name = NULL;
     char *config_info = NULL;
     const char *syspath;
+    const char *tags_prop;
     const char *key, *value, *tmp;
     InputOption *options = NULL, *tmpo;
     InputAttributes attrs = {};
@@ -60,8 +72,13 @@ device_added(struct udev_device *udev_device)
     if (!path || !syspath)
         return;
 
-    if (!udev_device_get_property_value(udev_device, "ID_INPUT"))
+    if (!udev_device_get_property_value(udev_device, "ID_INPUT")) {
+        LogMessageVerb(X_INFO, 10,
+                       "config/udev: ignoring device %s without "
+                       "property ID_INPUT set\n",
+                       path);
         return;
+    }
 
     options = calloc(sizeof(*options), 1);
     if (!options)
@@ -74,9 +91,14 @@ device_added(struct udev_device *udev_device)
 
     parent = udev_device_get_parent(udev_device);
     if (parent) {
+        const char *ppath = udev_device_get_devnode(parent);
+
         name = udev_device_get_sysattr_value(parent, "name");
-        if (!name)
+        LOG_SYSATTR(ppath, "name", name);
+        if (!name) {
             name = udev_device_get_property_value(parent, "NAME");
+            LOG_PROPERTY(ppath, "NAME", name);
+        }
     }
     if (!name)
         name = "(unnamed)";
@@ -87,7 +109,10 @@ device_added(struct udev_device *udev_device)
     add_option(&options, "path", path);
     add_option(&options, "device", path);
     attrs.device = path;
-    attrs.tags = xstrtokenize(udev_device_get_property_value(udev_device, "ID_INPUT.tags"), ",");
+
+    tags_prop = udev_device_get_property_value(udev_device, "ID_INPUT.tags");
+    LOG_PROPERTY(path, "ID_INPUT.tags", tags_prop);
+    attrs.tags = xstrtokenize(tags_prop, ",");
 
     config_info = Xprintf("udev:%s", syspath);
     if (!config_info)
@@ -107,6 +132,7 @@ device_added(struct udev_device *udev_device)
         value = udev_list_entry_get_value(entry);
         if (!strncasecmp(key, UDEV_XKB_PROP_KEY,
                                 sizeof(UDEV_XKB_PROP_KEY) - 1)) {
+            LOG_PROPERTY(path, key, value);
             tmp = key + sizeof(UDEV_XKB_PROP_KEY) - 1;
             if (!strcasecmp(tmp, "rules"))
                 add_option(&options, "xkb_rules", value);
@@ -119,18 +145,25 @@ device_added(struct udev_device *udev_device)
             else if (!strcasecmp(tmp, "options"))
                 add_option(&options, "xkb_options", value);
         } else if (!strcmp(key, "ID_VENDOR")) {
+            LOG_PROPERTY(path, key, value);
             attrs.vendor = value;
         } else if (!strcmp(key, "ID_INPUT_KEY")) {
+            LOG_PROPERTY(path, key, value);
             attrs.flags |= ATTR_KEYBOARD;
         } else if (!strcmp(key, "ID_INPUT_MOUSE")) {
+            LOG_PROPERTY(path, key, value);
             attrs.flags |= ATTR_POINTER;
         } else if (!strcmp(key, "ID_INPUT_JOYSTICK")) {
+            LOG_PROPERTY(path, key, value);
             attrs.flags |= ATTR_JOYSTICK;
         } else if (!strcmp(key, "ID_INPUT_TABLET")) {
+            LOG_PROPERTY(path, key, value);
             attrs.flags |= ATTR_TABLET;
         } else if (!strcmp(key, "ID_INPUT_TOUCHPAD")) {
+            LOG_PROPERTY(path, key, value);
             attrs.flags |= ATTR_TOUCHPAD;
         } else if (!strcmp(key, "ID_INPUT_TOUCHSCREEN")) {
+            LOG_PROPERTY(path, key, value);
             attrs.flags |= ATTR_TOUCHSCREEN;
         }
     }
commit 94547b2d1448232ae316c228d65482cc0b646ac2
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Mon Jun 7 20:39:48 2010 -0700

    config/hal: don't leak the input.tags property
    
    Signed-off-by: Julien Cristau <jcristau at debian.org>
    Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
    Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
    Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>

diff --git a/config/hal.c b/config/hal.c
index 5938d4e..b5a350f 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -129,6 +129,7 @@ static void
 device_added(LibHalContext *hal_ctx, const char *udi)
 {
     char *path = NULL, *driver = NULL, *name = NULL, *config_info = NULL;
+    char *hal_tags;
     InputOption *options = NULL, *tmpo = NULL;
     InputAttributes attrs = {0};
     DeviceIntPtr dev = NULL;
@@ -164,7 +165,9 @@ device_added(LibHalContext *hal_ctx, const char *udi)
         attrs.product = xstrdup(name);
 
     attrs.vendor = get_prop_string(hal_ctx, udi, "info.vendor");
-    attrs.tags = xstrtokenize(get_prop_string(hal_ctx, udi, "input.tags"), ",");
+    hal_tags = get_prop_string(hal_ctx, udi, "input.tags");
+    attrs.tags = xstrtokenize(hal_tags, ",");
+    free(hal_tags);
 
     if (libhal_device_query_capability(hal_ctx, udi, "input.keys", NULL))
         attrs.flags |= ATTR_KEYBOARD;
commit b3a7b229e1e1f212bdd185af5443311091824005
Author: Keith Packard <keithp at keithp.com>
Date:   Mon Jun 7 21:49:43 2010 -0700

    Make DRI_SCREEN_PRIV just return NULL when DRI isn't initialized
    
    The code relied upon the previous devPrivate implementation which
    offered this convenience.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/dri/dristruct.h b/hw/xfree86/dri/dristruct.h
index fc929c2..a834bbf 100644
--- a/hw/xfree86/dri/dristruct.h
+++ b/hw/xfree86/dri/dristruct.h
@@ -62,7 +62,8 @@ struct _DRIContextPrivRec
 };
 
 #define DRI_SCREEN_PRIV(pScreen) ((DRIScreenPrivPtr) \
-    dixLookupPrivate(&(pScreen)->devPrivates, DRIScreenPrivKey))
+    (dixPrivateKeyRegistered(DRIScreenPrivKey) ?			\
+     dixLookupPrivate(&(pScreen)->devPrivates, DRIScreenPrivKey) : NULL))
 
 #define DRI_SCREEN_PRIV_FROM_INDEX(screenIndex) ((DRIScreenPrivPtr) \
     dixLookupPrivate(&screenInfo.screens[screenIndex]->devPrivates, \
commit f7af00e9f0e0e1d854b0e882378c032518ab71ca
Author: Ben Skeggs <bskeggs at redhat.com>
Date:   Mon Jun 7 10:21:18 2010 +1000

    randr: prevent an unnecessary screen resize with multiple displays
    
    crtc->{x,y} is always 0 when xf86DefaultScreenLimits() is called, so we
    calculate too small an area for the initial framebuffer and force a resize
    to happen.
    
    This commit fixes the code to use desired{X,Y} instead, which contains the
    initial output positions.
    
    Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
    Reviewed-by: Dave Airlie <airlied at redhat.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index 304d503..cd978ae 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -1038,8 +1038,8 @@ xf86DefaultScreenLimits (ScrnInfoPtr scrn, int *widthp, int *heightp,
 
 	if (crtc->enabled)
 	{
-	    crtc_width = crtc->x + xf86ModeWidth (&crtc->desiredMode, crtc->desiredRotation);
-	    crtc_height = crtc->y + xf86ModeHeight (&crtc->desiredMode, crtc->desiredRotation);
+	    crtc_width = crtc->desiredX + xf86ModeWidth (&crtc->desiredMode, crtc->desiredRotation);
+	    crtc_height = crtc->desiredY + xf86ModeHeight (&crtc->desiredMode, crtc->desiredRotation);
 	}
 	if (!canGrow) {
 	    for (o = 0; o < config->num_output; o++)


More information about the Xquartz-changes mailing list