Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

strange argv quoting behaviour



I just noticed the following oddity. Trivial test program foo.c:

#include <stdio.h>

int main(int argc, char **argv)
{
        printf("%d: (%s) (%s)\n", argc, argv[1], argv[2]);

        return 0;
}

% ./foo *
3: (foo) (foo.c)
% ./foo abc
2: (abc) ((null))
% ./foo 'abc'
2: (abc) ((null))
% ./foo abc *
4: (abc) (foo)
% ./foo 'abc' *
4: (\a\b\c) (foo)

That last case suggests some aggressive overquoting - but it only happens
if there is a '*' as an argument afterwards!
(Checked on a yesterday current box, csh)

Cheers,

Patrick


Home | Main Index | Thread Index | Old Index