Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > c294b4eebf6feb078f309dbd94dd23cc > files > 4

xinit-1.3.2-5.mga3.src.rpm

--- startx.cpp.orig	2012-01-28 08:12:51.000000000 +0100
+++ startx.cpp	2012-02-25 16:53:41.000000000 +0100
@@ -72,8 +72,6 @@ sysclientrc=XINITDIR/xinitrc
 
 userserverrc=$HOME/.xserverrc
 sysserverrc=XINITDIR/xserverrc
-defaultclient=XTERM
-defaultserver=XSERVER
 defaultclientargs=""
 defaultserverargs=""
 defaultdisplay=":0"
@@ -143,6 +141,18 @@ done
 defaultdisplay=":$d"
 unset d
 
+if [ -f $userclientrc ]; then
+    defaultclientargs=$userclientrc
+elif [ -f $sysclientrc ]; then
+    defaultclientargs=$sysclientrc
+#if defined(__SCO__) || defined(__UNIXWARE__)
+elif [ -f $scouserclientrc ]; then
+    defaultclientargs=$scouserclientrc
+elif [ -f $scosysclientrc ]; then
+    defaultclientargs=$scosysclientrc
+#endif
+fi
+
 #if defined(__SCO__) || defined(__UNIXWARE__)
 
 XCOMM SCO -t option: do not start an X server
@@ -165,13 +175,13 @@ while [ x"$1" != x ]; do
     /''*|\./''*)
 	if [ "$whoseargs" = "client" ]; then
 	    if [ x"$client" = x ] && [ x"$clientargs" = x ]; then
-		client="$1"
+		clientargs="$1"
 	    else
 		clientargs="$clientargs $1"
 	    fi
 	else
 	    if [ x"$server" = x ] && [ x"$serverargs" = x ]; then
-		server="$1"
+		serverargs="$1"
 	    else
 		serverargs="$serverargs $1"
 	    fi
@@ -182,12 +192,18 @@ 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
@@ -197,45 +213,11 @@ while [ x"$1" != x ]; do
     shift
 done
 
-XCOMM process client arguments
-if [ x"$client" = x ]; then
-    client=$defaultclient
-
-    XCOMM For compatibility reasons, only use startxrc if there were no client command line arguments
-    if [ x"$clientargs" = x ]; then
-        if [ -f "$userclientrc" ]; then
-            client=$userclientrc
-        elif [ -f "$sysclientrc" ]; then
-            client=$sysclientrc
-#if defined(__SCO__) || defined(__UNIXWARE__)
-        elif [ -f "$scouserclientrc" ]; then
-            client=$scouserclientrc
-        elif [ -f "$scosysclientrc" ]; then
-            client=$scosysclientrc
-#endif
-        fi
-    fi
-fi
-
 XCOMM if no client arguments, use defaults
 if [ x"$clientargs" = x ]; then
     clientargs=$defaultclientargs
 fi
 
-XCOMM process server arguments
-if [ x"$server" = x ]; then
-    server=$defaultserver
-
-    XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments
-    if [ x"$serverargs" = x -a x"$display" = x ]; then
-	if [ -f "$userserverrc" ]; then
-	    server=$userserverrc
-	elif [ -f "$sysserverrc" ]; then
-	    server=$sysserverrc
-	fi
-    fi
-fi
-
 XCOMM if no server arguments, use defaults
 if [ x"$serverargs" = x ]; then
     serverargs=$defaultserverargs
@@ -317,22 +299,9 @@ EOF
     done
 fi
 
-#if defined(__SCO__) || defined(__UNIXWARE__)
-if [ "$REMOTE_SERVER" = "TRUE" ]; then
-        exec SHELL_CMD ${client}
-else
-        XINIT "$client" $clientargs -- "$server" $display $serverargs
-fi
-#else
 
-#if defined(__APPLE__) || defined(__CYGWIN__)
-eval XINIT \"$client\" $clientargs -- \"$server\" $display $serverargs
-#else
-XINIT "$client" $clientargs -- "$server" $display $serverargs
-#endif
-
-#endif
-retval=$?
+cleanup () {
+    [ -n "$PID" ] && kill $PID > /dev/null 2>&1
 
 if [ x"$enable_xauth" = x1 ] ; then
     if [ x"$removelist" != x ]; then
@@ -360,6 +329,31 @@ screenrestore
 #if defined(sun)
 kbd_mode -a
 #endif
+}
+
+trap cleanup 0
+
+#if defined(__SCO__) || defined(__UNIXWARE__)
+if [ "$REMOTE_SERVER" = "TRUE" ]; then
+        exec SHELL_CMD ${client}
+else
+        XINIT "$client" $clientargs -- "$server" $display $serverargs
+	retval=$?
+fi
+#else
+
+#if defined(__APPLE__) || defined(__CYGWIN__)
+eval XINIT \"$client\" $clientargs -- \"$server\" $display $serverargs
+retval=$?
+#else
+xinit $clientargs -- $serverargs -deferglyphs 16 &
+PID=$!
+wait $PID
+retval=$?
+unset PID
+#endif
+
+#endif
 
-exit $retval
 
+exit $retval