diff options
Diffstat (limited to 'x11-apps/xinit/files/gentoo-startx-customization-0.99.4.patch')
-rw-r--r-- | x11-apps/xinit/files/gentoo-startx-customization-0.99.4.patch | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/x11-apps/xinit/files/gentoo-startx-customization-0.99.4.patch b/x11-apps/xinit/files/gentoo-startx-customization-0.99.4.patch new file mode 100644 index 000000000000..2544fb0f4414 --- /dev/null +++ b/x11-apps/xinit/files/gentoo-startx-customization-0.99.4.patch @@ -0,0 +1,154 @@ +--- startx.cpp.old 2005-11-11 12:29:49.244146352 -0700 ++++ startx.cpp 2005-11-11 12:34:11.169327672 -0700 +@@ -64,8 +64,6 @@ + + userserverrc=$HOME/.xserverrc + sysserverrc=XINITDIR/xserverrc +-defaultclient=XTERM +-defaultserver=XSERVER + defaultclientargs="" + defaultserverargs="-nolisten tcp -br" + clientargs="" +@@ -107,60 +105,41 @@ + whoseargs="client" + while [ x"$1" != x ]; do + case "$1" in +- XCOMM '' required to prevent cpp from treating "/*" as a C comment. +- /''*|\./''*) +- if [ "$whoseargs" = "client" ]; then +- if [ x"$clientargs" = x ]; then +- client="$1" +- else +- clientargs="$clientargs $1" +- fi +- else +- if [ x"$serverargs" = x ]; then +- server="$1" +- else +- serverargs="$serverargs $1" +- fi +- fi +- ;; +- --) +- whoseargs="server" +- ;; +- *) +- if [ "$whoseargs" = "client" ]; then +- clientargs="$clientargs $1" +- 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" +- else +- serverargs="$serverargs $1" +- fi +- fi +- ;; ++ /''*|\.*) if [ "$whoseargs" = "client" ]; then ++ if [ "x$clientargs" = x ]; then ++ clientargs="$1" ++ else ++ clientargs="$clientargs $1" ++ fi ++ else ++ if [ "x$serverargs" = x ]; then ++ serverargs="$1" ++ else ++ serverargs="$serverargs $1" ++ fi ++ fi ;; ++ --) whoseargs="server" ;; ++ *) if [ "$whoseargs" = "client" ]; then ++ if [ "x$clientargs" = x ]; then ++ clientargs="$defaultclientargs $1" ++ else ++ clientargs="$clientargs $1" ++ fi ++ else ++ case "$1" in ++ :[0-9]*) display="$1"; serverargs="$serverargs $1";; ++ *) serverargs="$serverargs $1" ;; ++ esac ++ fi ;; + esac + 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 +- XCOMM if no server arguments or display either, use rc file instead +- if [ x"$serverargs" = x -a x"$display" = x ]; then +- server="$defaultserverargs" +- else +- server=$defaultserver +- fi ++if [ x"$serverargs" = x ]; then ++ serverargs="$defaultserverargs" + fi + + if [ x"$XAUTHORITY" = x ]; then +@@ -217,15 +196,8 @@ + + #endif + +-#if defined(__SCO__) || defined(__UNIXWARE__) +-if [ "$REMOTE_SERVER" = "TRUE" ]; then +- exec SHELL_CMD ${client} +-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"$removelist" != x ]; then + BINDIR/xauth remove $removelist +@@ -251,3 +223,15 @@ + #if defined(sun) + kbd_mode -a + #endif ++} ++ ++ ++trap cleanup 0 ++ ++xinit $clientargs -- $serverargs -deferglyphs 16 & ++ ++PID=$! ++ ++wait $PID ++ ++unset PID +--- xinit.c.old 2005-11-11 12:30:19.199592432 -0700 ++++ xinit.c 2005-11-11 12:30:47.983216656 -0700 +@@ -446,6 +446,7 @@ + signal(SIGINT, sigCatch); + signal(SIGHUP, sigCatch); + signal(SIGPIPE, sigCatch); ++ signal(SIGTERM, sigCatch); + #else + /* Let those signal interrupt the wait() call in the main loop */ + memset(&sa, 0, sizeof sa); +@@ -458,6 +459,7 @@ + sigaction(SIGINT, &sa, NULL); + sigaction(SIGHUP, &sa, NULL); + sigaction(SIGPIPE, &sa, NULL); ++ sigaction(SIGTERM, &sa, NULL); + #endif + signal(SIGALRM, sigAlarm); + signal(SIGUSR1, sigUsr1); |