Sophie

Sophie

distrib > Mandriva > 2009.1 > i586 > media > main-release-src > by-pkgid > 6b75c305c3851fb26258231ad6db3692 > files > 3

xinit-1.1.0-3mdv2009.1.src.rpm

diff -p -up ./startx.cpp.startx ./startx.cpp
--- ./startx.cpp.startx	2008-06-12 21:25:46.000000000 +0200
+++ ./startx.cpp	2008-06-16 12:20:42.000000000 +0200
@@ -74,8 +74,6 @@ sysclientrc=XINITDIR/xinitrc
 
 userserverrc=$HOME/.xserverrc
 sysserverrc=XINITDIR/xserverrc
-defaultclient=XTERM
-defaultserver=XSERVER
 defaultclientargs=""
 defaultserverargs=""
 defaultdisplay=":0"
@@ -168,13 +166,13 @@ while [ x"$1" != x ]; do
     /''*|\./''*)
 	if [ "$whoseargs" = "client" ]; then
 	    if [ x"$clientargs" = x ]; then
-		client="$1"
+		clientargs="$1"
 	    else
 		clientargs="$clientargs $1"
 	    fi
 	else
 	    if [ x"$serverargs" = x ]; then
-		server="$1"
+		serverargs="$1"
 	    else
 		serverargs="$serverargs $1"
 	    fi
@@ -179,12 +177,17 @@ while [ x"$1" != x ]; do
 	;;
     *)
 	if [ "$whoseargs" = "client" ]; then
-	    clientargs="$clientargs $1"
+	   if [ "x$clientargs" = x ]; then
+	       clientargs="$defaultclientargs $1"
+	   else
+	       clientargs="$clientargs $1"
+	   fi
 	else
 	    XCOMM display must be the FIRST server argument
 	    if [ x"$serverargs" = x ] && @@
 		 expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
 		display="$1"
+		serverargs="$1"
 	    else
 		serverargs="$serverargs $1"
 	    fi
@@ -200,32 +203,12 @@ while [ x"$1" != x ]; do
     shift
 done
 
-XCOMM process client arguments
-if [ x"$client" = x ]; then
-    XCOMM if no client arguments either, use rc file instead
-    if [ x"$clientargs" = x ]; then
-	client="$defaultclientargs"
-    else
-	client=$defaultclient
-    fi
+if [ x"$clientargs" = x ]; then
+    clientargs="$defaultclientargs"
 fi
 
-XCOMM process server arguments
-if [ x"$server" = x ]; then
-    server=$defaultserver
-
-    XCOMM if no server arguments or display either, use defaults
-    if [ x"$serverargs" = x -a x"$display" = x ]; then
-	XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments
-	if [ -f $userserverrc ]; then
-	    server=$userserverrc
-	elif [ -f $sysserverrc ]; then
-	    server=$sysserverrc
-	fi
-
-	serverargs=$defaultserverargs
-	display=$defaultdisplay
-    fi
+if [ x"$serverargs" = x ]; then
+    serverargs="$defaultserverargs"
 fi
 
 if [ x"$enable_xauth" = x1 ] ; then
@@ -285,10 +273,11 @@ if [ "$REMOTE_SERVER" = "TRUE" ]; then
 else
         XINIT $client $clientargs -- $server $display $serverargs
 fi
-#else
-XINIT $client $clientargs -- $server $display $serverargs
 #endif
 
+cleanup() {
+    [ -n "$PID" ] && kill $PID > /dev/null 2>&1
+
 if [ x"$enable_xauth" = x1 ] ; then
     if [ x"$removelist" != x ]; then
         XAUTH remove $removelist
@@ -315,3 +304,15 @@ screenrestore
 #if defined(sun)
 kbd_mode -a
 #endif
+}
+
+
+trap cleanup 0
+
+xinit $clientargs -- $serverargs -deferglyphs 16 &
+
+PID=$!
+
+wait $PID
+
+unset PID
--- ./xinit.c.startx	2008-03-06 23:08:48.000000000 +0100
+++ ./xinit.c	2008-04-15 23:03:37.000000000 +0200
@@ -168,7 +168,7 @@ char xserverrcbuf[256];
 
 static char *default_server = "X";
 static char *default_display = ":0";		/* choose most efficient */
-static char *default_client[] = {"xterm", "-geometry", "+1+1", "-n", "login", NULL};
+static char *default_client[] = {"xvt", "-geometry", "+1+1", NULL};
 static char *serverargv[100];
 static char *clientargv[100];
 static char **server = serverargv + 2;		/* make sure room for sh .xserverrc args */