
On Tue, Feb 27, 2007 at 07:45:45PM +0900, Saori Fukuta wrote:
When I specified -t (or -q) option with virsh command, the result is something wrong.
I think the cause is missing a conditional before getopt_long at vshParseArgv and add to check whether "o->has_arg" is 1 or not.
Yes, your patch below does look like it is doing the correct thing. I'll apply it to CVS shortly.
Index: virsh.c =================================================================== RCS file: /data/cvs/libvirt/src/virsh.c,v retrieving revision 1.55 diff -u -p -r1.55 virsh.c --- virsh.c 23 Feb 2007 10:27:53 -0000 1.55 +++ virsh.c 27 Feb 2007 07:35:28 -0000 @@ -3344,12 +3344,14 @@ vshParseArgv(vshControl * ctl, int argc, int sz = strlen(last);
for (o = opt; o->name; o++) { - if (sz == 2 && *(last + 1) == o->val) - /* valid virsh short option */ - valid = TRUE; - else if (sz > 2 && strcmp(o->name, last + 2) == 0) - /* valid virsh long option */ - valid = TRUE; + if (o->has_arg == 1){ + if (sz == 2 && *(last + 1) == o->val) + /* valid virsh short option */ + valid = TRUE; + else if (sz > 2 && strcmp(o->name, last + 2) == 0) + /* valid virsh long option */ + valid = TRUE; + }
Regards, Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|