Sophie

Sophie

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

xinit-1.3.2-5.mga3.src.rpm

--- xinit-1.3.2/startx.cpp.curvt	2012-04-06 16:05:49.731992634 +0100
+++ xinit-1.3.2/startx.cpp	2012-04-06 16:53:08.345125235 +0100
@@ -78,6 +78,7 @@
 defaultdisplay=":0"
 clientargs=""
 serverargs=""
+gotvt=no
 
 #ifdef __APPLE__
 
@@ -206,6 +207,9 @@
 		display="$1"
                 serverargs="$1"
 	    else
+		if expr "$1" : '^vt[0-9][0-9]*$' > /dev/null 2>&1; then
+		    gotvt=yes
+		fi
 		serverargs="$serverargs $1"
 	    fi
 	fi
@@ -224,6 +228,19 @@
     serverargs=$defaultserverargs
 fi
 
+XCOMM we need to find the vt number to pass to X to prevent a vt switch
+if [ "$gotvt" = "yes" ]; then
+    echo "Warning: Using user supplied vt number. This could affect user permissions." >&2
+else
+    tty=`cat /sys/class/tty/tty0/active`
+    if expr "$tty" : '^tty[0-9][0-9]*$' > /dev/null 2>&1; then
+        vt=`echo $tty | sed 's,^tty,,'`
+        serverargs="$serverargs vt$vt"
+    else
+        echo "Warning: Cound not find vt number. This could affect user permissions." >&2
+    fi
+fi
+
 XCOMM if no display, use default
 if [ x"$display" = x ]; then
     display=$defaultdisplay