spaces in pathnames

Adam Jackson ajax at nwnk.net
Mon Jun 30 10:11:49 PDT 2008


On Mon, 2008-06-30 at 15:11 +0100, Glynn Clements wrote:
> Jeremy Huddleston wrote:
> 
> > So I just pushed a patch to xinit that addresses some issues with  
> > spaces in pathnames.  One issue remains, and I'm not sure if there's a  
> > clean way to address it.  At first, I thought I could do something  
> > like this:
> > 
> > -    serverargs=${serverargs}" -auth "${xserverauthfile}
> > +    serverargs=${serverargs}" -auth '"${xserverauthfile}"'"
> > 
> > but that doesn't work.  example:
> > 
> > $ mya="Some thing with spaces"
> > $ myargs="1 2 '$mya'"
> > $ ./printargs $myargs
> > argv[0] = ./printargs
> > argv[1] = 1
> > argv[2] = 2
> > argv[3] = 'Some
> > argv[4] = thing
> > argv[5] = with
> > argv[6] = spaces'
> > 
> > So... any thoughts on how to overcome this cleanly?  And no, telling  
> > people to not use spaces is unfortunately not an option... and neither  
> > is hitting them over the head with a do-better stick.
> 
> IMHO, it's a lost cause.
> 
> The only clean solution is to use a language which has a list datatype
> (or equivalent), as well as an "exec" primitive which accepts a list
> argument.
> 
> It's practically impossible to get this 100% right if you're limited
> to the Bourne shell.

Then maybe it's time to stop caring about portability to useless shells.

More broadly, it's probably time to deprecate startx and xinit, strongly
recommend the use of a display manager like gdm, and write a minimal
replacement in some sensible subset of bash/ksh.

- ajax




More information about the xorg mailing list