psychiatric help

Ray Andrews <[email protected]> Sat, 4 Apr 2026 14:44:39 -0700
Newsgroups gmane.comp.shells.zsh.user
Message-ID <[email protected]>
This is a difficult question to ask because I don't know if my little 
problem IS a problem at all:

5 /aWorking/Zsh/Source/Wk 11 % ls test\ ?
'test a'  'test b'

... yer basic 'ls'.  'l' is my wrapper around 'ls', however as '$@' is 
passed to my function, it loses the backslash before the space, it 
becomes: >    test ?    <.  Easy to cope with, I just single quote:

5 /aWorking/Zsh/Source/Wk 11 % l ,v 'test\ ?'

  0 [26-04-04--09:00] test a
  0 [26-04-04--09:03] test b

... but my sense of symmetry has me wanting the args to look identical. 
I can hack it by replacing '$@' like this in test function 'll':

out=${@//\ /\\ }

... and using '$out' in place of '$@' and it works by doubling the 
backslash:

5 /aWorking/Zsh/Source/Wk 11 %  ll test\ ?

  0 [26-04-04--09:00] test a
  0 [26-04-04--09:03] test b

... but I'm wondering if there's a less hacky way of protecting the 
backslash.  ' ${(q)@}' comes close but it also backslashes the question 
mark.  Or should I use my little hack above, OR ... do I need therapy?  
Which is to say, is this a problem at all?  Should I just happily add 
the single quotes?  Should I even want to 'solve' this?  Sorry, I know 
this is a rather strange post.  I'd be very happy to hear that this 
shouldn't bother me at all.  In practical terms it's hardly an issue.  
But one could wish for some way of taking any argument(s) to a function 
and passing them along from one function to the next 'intact', so that 
there's never the need to reprocess them.