spaces in pathnames

Roland Mainz roland.mainz at nrubsig.org
Sun Jun 29 19:18:16 PDT 2008


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.

AFAIK on any POSIX-like shell a simple...
-- snip --
IFS=''
-- snip --
... should fix the problem. The arguments passed to shell functions and
external commands are split using the elements of the IFS variable and
setting it to an empty string will disable the field splitting
completely (amd therefore any problems with spaces in filenames (and see
http://www.opensolaris.org/os/project/shell/shellstyle/#use_empty_ifs_to_handle_spaces
- most of the items labelled with "ksh93" apply to "bash", too)).

----

Bye,
Roland

-- 
  __ .  . __
 (o.\ \/ /.o) roland.mainz at nrubsig.org
  \__\/\/__/  MPEG specialist, C&&JAVA&&Sun&&Unix programmer
  /O /==\ O\  TEL <currently fluctuating>
 (;O/ \/ \O;)



More information about the xorg mailing list