startx.cpp and default server (patch provided)

Jeremy C. Reed reed at
Thu Apr 17 14:19:23 PDT 2008

startx.cpp has a default server (full path) like: defaultserver=XSERVER 
which defaults to ${bindir}/X at configure time.

But if no command line arguments and no ~/.xserverrc and no system 
xserverrc configuration, the server gets reset. So xinit uses its builtin 
X choice (default_server does't have full path). So the problem is the 
startx script doesn't use its builtin setting, so wrong X may be started.

I have been using the following fix for a while now and I want to commit. 
(I updated the following patch now for the recent __APPLE__ changes.)

Can someone please give this an extra set of eyes? Am I understanding this 

diff --git a/startx.cpp b/startx.cpp
index 7e67769..9931281 100644
--- a/startx.cpp
+++ b/startx.cpp
@@ -216,17 +216,17 @@ XCOMM process server arguments
 if [ x"$server" = x ]; then
     XCOMM if no server arguments or display either, use rc file instead
     if [ x"$serverargs" = x -a x"$display" = x ]; then
 #ifdef __APPLE__
-	server="$defaultserverargs"
+	server="$defaultserver $defaultserverargs"
 if [ x"$enable_xauth" = x1 ] ; then
     if [ x"$XAUTHORITY" = x ]; then

Also related: shouldn't the configure script define the DEFAULT_XINIT to 
full path like it does for DEFAULT_XSERVER? (that way the correct xinit is 
used)? For now, I use --with-xinit, but I don't have to use --with-xserver 
since configure does the right thing for XSERVER.

More information about the xorg mailing list