diff options
Diffstat (limited to 'app/xinit/startx.cpp')
-rw-r--r-- | app/xinit/startx.cpp | 76 |
1 files changed, 24 insertions, 52 deletions
diff --git a/app/xinit/startx.cpp b/app/xinit/startx.cpp index c595b8487..1c6fce085 100644 --- a/app/xinit/startx.cpp +++ b/app/xinit/startx.cpp @@ -14,7 +14,7 @@ XCOMM unset DBUS_SESSION_BUS_ADDRESS unset SESSION_MANAGER -#if defined(__SCO__) || defined(__UNIXWARE__) || defined(__APPLE__) +#ifdef __APPLE__ XCOMM Check for /usr/bin/X11 and BINDIR in the path, if not add them. XCOMM This allows startx to be placed in a place like /usr/bin or /usr/local/bin @@ -33,11 +33,7 @@ case $PATH in esac XCOMM Now the "old" compiled path -#ifdef __APPLE__ oldbindir=/usr/X11R6/bin -#else -oldbindir=/usr/bin/X11 -#endif if [ -d "$oldbindir" ] ; then case $PATH in @@ -51,24 +47,8 @@ XCOMM so export the new PATH just in case the user changes the shell export PATH #endif -#if defined(__SCO__) || defined(__UNIXWARE__) -XCOMM Set up the XMERGE env var so that dos merge is happy under X - -if [ -f /usr/lib/merge/xmergeset.sh ]; then - . /usr/lib/merge/xmergeset.sh -elif [ -f /usr/lib/merge/console.disp ]; then - XMERGE=`cat /usr/lib/merge/console.disp` - export XMERGE -fi - -userclientrc=$HOME/.startxrc -sysclientrc=LIBDIR/sys.startxrc -scouserclientrc=$HOME/.xinitrc -scosysclientrc=XINITDIR/xinitrc -#else userclientrc=$HOME/.xinitrc sysclientrc=XINITDIR/xinitrc -#endif userserverrc=$HOME/.xserverrc sysserverrc=XINITDIR/xserverrc @@ -79,6 +59,7 @@ defaultserverargs="" defaultdisplay=":0" clientargs="" serverargs="" +vtarg="" #ifdef __APPLE__ @@ -145,21 +126,6 @@ done defaultdisplay=":$d" unset d -#if defined(__SCO__) || defined(__UNIXWARE__) - -XCOMM SCO -t option: do not start an X server -case $1 in - -t) if [ -n "$DISPLAY" ]; then - REMOTE_SERVER=TRUE - shift - else - echo "DISPLAY environment variable not set" - exit 1 - fi - ;; -esac -#endif - whoseargs="client" while [ x"$1" != x ]; do case "$1" in @@ -209,12 +175,6 @@ if [ x"$client" = x ]; 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 @@ -228,6 +188,17 @@ XCOMM process server arguments if [ x"$server" = x ]; then server=$defaultserver +#ifdef __linux__ + XCOMM When starting the defaultserver start X on the current tty to avoid + XCOMM the startx session being seen as inactive: + XCOMM "https://bugzilla.redhat.com/show_bug.cgi?id=806491" + tty=$(tty) + if expr match "$tty" '^/dev/tty[0-9]\+$' > /dev/null; then + tty_num=$(echo "$tty" | grep -oE '[0-9]+$') + vtarg="vt$tty_num" + fi +#endif + 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 @@ -243,6 +214,17 @@ if [ x"$serverargs" = x ]; then serverargs=$defaultserverargs fi +XCOMM if no vt is specified add vtarg (which may be empty) +have_vtarg="no" +for i in $serverargs; do + if expr match "$i" '^vt[0-9]\+$' > /dev/null; then + have_vtarg="yes" + fi +done +if [ "$have_vtarg" = "no" ]; then + serverargs="$serverargs $vtarg" +fi + XCOMM if no display, use default if [ x"$display" = x ]; then display=$defaultdisplay @@ -319,21 +301,11 @@ 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=$? if [ x"$enable_xauth" = x1 ] ; then |