title: Proxying arguments from one function to a command
body: <p>I have function <code>bajouras.fish</code> which calls another function, let's say <code>scarabosses</code>:</p>
  
  <pre><code>function bajouras
    scarabosses "someCMD" $argv
  end
  </code></pre>
  
  <p>so the function <code>scarabosses</code> will get the first argument "someCMD" and any extra arguments passed to <code>bajouras</code>.</p>
  
  <p>Inside <code>scarabosses</code> I'm doing something like this:</p>
  
  <pre><code>function scarabosses
    if test "$count" -ge 2
      set args $argv[2..-1]
    else
      set args ""
    end
  
    eval (type -fP $argv[1]) $args
  end
  </code></pre>
  
  <p>Now the problem is that if I pass some string to the <code>bajouras</code></p>
  
  <p><code>bajouras -v -t "some cool (string)"</code></p>
  
  <p>and echo the <code>$argv</code> my string although is a parameter, no longer is a string. So by the time I pass that to <code>scarabosses</code> this is what I get:</p>
  
  <pre><code>someCMD -v -t some cool (string)
  </code></pre>
  
  <p>And since I'm no longer passing a string to <code>scarabosses</code> fish will try to do some command substitution and I will get an error.</p>
  
  <p>Is there a way to ensure that whatever I pass to <code>bajouras</code> will stay that way?</p>