Cygwin XFree86 startx Problem

Igor Pechtchanski pechtcha@cs.nyu.edu
Tue Dec 2 20:44:00 GMT 2003


On Sat, 29 Nov 2003, Igor Pechtchanski wrote:

> On Sat, 22 Nov 2003, Harold L Hunt II wrote:
>
> > Igor,
> >
> > Igor Pechtchanski wrote:
> > > On Fri, 21 Nov 2003, Harold L Hunt II wrote:
> > >
> > >>Igor,
> > >>
> > >>Igor Pechtchanski wrote:
> > >>
> > >>
> > >>>On Fri, 21 Nov 2003, Chan Seng Loong wrote:
> > >>>
> > >>>>hi again...
> > >>>>
> > >>>>Thanks to Mr. Igor Pechtchanski, the "[: Seng: unknown
> > >>>>operand" problem is eleminated with the power of ""
> > >>>>qutoes :-D
> > >>>
> > >>>Good.  Harold, how do you want to go about incorporating the patch?
> > >>
> > >>As you suspected, I think this is actually a generated file.  Granted,
> > >>the input is similar to the output, but it is a different file that
> > >>needs to be patched.  Again, I cannot check this right now.
> > >>
> > >>As far as what to do with the patch, it is hard to say.  Are you just
> > >>asking about how it will get into my next release?  That should be easy.
> > >>  As far as finding it an upstream home, we still have to wait for the
> > >>tree on freedesktop.org to finish being setup.
> > >>
> > >>Harold
> > >
> > > Ok, I'll try to checkout the CVS tree at some point soon and produce this
> > > patch off the correct file.
> >
> > Base the patch off of the SourceForge tree that we have for now:
> >
> > http://sourceforge.net/projects/xoncygwin/
> >
> > That's what I essentially do my builds from, so it should work.
> > Hopefully the file in question is actually in that tree... if not, then
> > just wait until our freedesktop.org tree is ready.
> >
> > Harold
>
> Harold,
>
> The file (startx.cpp) is in xc/programs/xinit, and the xoncygwin tree only
> has xc/programs/Xserver.  Are you going to use the tree on freedesktop.org
> (which is already set up at "xorg") for further builds of the non-server
> parts?  If so, should I use the MAIN branch there, or the XORG-CURRENT
> branch?
>         Igor

Harold,

Here's a patch against the HEAD of the MAIN branch in the xorg tree at
freedesktop.org.  ChangeLog is below.  Let me know if there's a problem.
	Igor
==============================================================================
ChangeLog:
2003-12-02  Igor Pechtchanski  <pechtcha@cs.nyu.edu>
	* xc/programs/xinit/startx.cpp: Make space-friendly.

-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_		pechtcha@cs.nyu.edu
ZZZzz /,`.-'`'    -.  ;-;;,_		igor@watson.ibm.com
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"I have since come to realize that being between your mentor and his route
to the bathroom is a major career booster."  -- Patrick Naughton
-------------- next part --------------
--- xc/programs/xinit/startx.cpp-orig	2003-12-02 13:10:12.000000000 -0500
+++ xc/programs/xinit/startx.cpp	2003-12-02 13:45:06.566899200 -0500
@@ -48,8 +48,9 @@ fi
 scoclientrc=$HOME/.startxrc
 #endif
 
-userclientrc=$HOME/.xinitrc
-userserverrc=$HOME/.xserverrc
+userclientrc="$HOME/.xinitrc"
+userserverrc="$HOME/.xserverrc"
+/* Note: XINITDIR and BINDIR should be space-free */
 sysclientrc=XINITDIR/xinitrc
 sysserverrc=XINITDIR/xserverrc
 defaultclient=BINDIR/xterm
@@ -64,19 +65,19 @@ if [ -f $scoclientrc ]; then
     defaultclientargs=$scoclientrc
 else
 #endif
-if [ -f $userclientrc ]; then
-    defaultclientargs=$userclientrc
-elif [ -f $sysclientrc ]; then
-    defaultclientargs=$sysclientrc
+if [ -f "$userclientrc" ]; then
+    defaultclientargs="\"$userclientrc\""
+elif [ -f "$sysclientrc" ]; then
+    defaultclientargs="\"$sysclientrc\""
 fi
 #ifdef SCO
 fi
 #endif
 
-if [ -f $userserverrc ]; then
-    defaultserverargs=$userserverrc
-elif [ -f $sysserverrc ]; then
-    defaultserverargs=$sysserverrc
+if [ -f "$userserverrc" ]; then
+    defaultserverargs="\"$userserverrc\""
+elif [ -f "$sysserverrc" ]; then
+    defaultserverargs="\"$sysserverrc\""
 fi
 
 whoseargs="client"
@@ -86,15 +87,15 @@ while [ x"$1" != x ]; do
     /''*|\./''*)
 	if [ "$whoseargs" = "client" ]; then
 	    if [ x"$clientargs" = x ]; then
-		client="$1"
+		client="\"$1\""
 	    else
-		clientargs="$clientargs $1"
+		clientargs="$clientargs \"$1\""
 	    fi
 	else
 	    if [ x"$serverargs" = x ]; then
-		server="$1"
+		server="\"$1\""
 	    else
-		serverargs="$serverargs $1"
+		serverargs="$serverargs \"$1\""
 	    fi
 	fi
 	;;
@@ -103,14 +104,14 @@ while [ x"$1" != x ]; do
 	;;
     *)
 	if [ "$whoseargs" = "client" ]; then
-	    clientargs="$clientargs $1"
+	    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"
+		display="\"$1\""
 	    else
-		serverargs="$serverargs $1"
+		serverargs="$serverargs \"$1\""
 	    fi
 	fi
 	;;
@@ -124,7 +125,7 @@ if [ x"$client" = x ]; then
     if [ x"$clientargs" = x ]; then
 	client="$defaultclientargs"
     else
-	client=$defaultclient
+	client="$defaultclient"
     fi
 fi
 
@@ -134,12 +135,12 @@ if [ x"$server" = x ]; then
     if [ x"$serverargs" = x -a x"$display" = x ]; then
 	server="$defaultserverargs"
     else
-	server=$defaultserver
+	server="$defaultserver"
     fi
 fi
 
 if [ x"$XAUTHORITY" = x ]; then
-    XAUTHORITY=$HOME/.Xauthority
+    XAUTHORITY="$HOME/.Xauthority"
     export XAUTHORITY
 fi
 
@@ -172,9 +173,13 @@ EOF
 done
 #endif
 
-xinit $client $clientargs -- $server $display $serverargs
+XCOMM correctly process quotes, etc
+eval "set -- $client $clientargs -- $server $display $serverargs"
+
+xinit "$@"
 
 if [ x"$removelist" != x ]; then
+    XCOMM Note: this is still not space-friendly!
     xauth remove $removelist
 fi
 


More information about the Cygwin-xfree mailing list