From c63f08e06f1b5348761de6ec8fb103bdce565fa5 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Sun, 3 Sep 2006 17:46:32 +0000 Subject: [PATCH] Allow trailing ',' in lists, and '_' in names --- ChangeLog | 7 +++++++ src/conf.c | 5 ++++- tests/confdata/fc4.conf | 3 ++- tests/confdata/fc4.out | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4d6a1f30a9..54df75baff 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Sun Sep 3 12:50:12 EDT 2006 Daniel Berrange + + * src/conf.c: Allow '_' in variable names, and don't fail if there + is a trailing ',' at the end of a list. + * tests/confdata/fc4.conf, tests/confdata/fc4.out: Expand test + config to include a '_' in a name, and a trailing ',' in a list. + Sun Sep 3 12:47:42 EDT 2006 Daniel Berrange * tests/.cvsignore, tests/confdata/.cvsignore: Ignore autogenerated diff --git a/src/conf.c b/src/conf.c index 5c0707cf24..2950c28f58 100644 --- a/src/conf.c +++ b/src/conf.c @@ -443,6 +443,9 @@ virConfParseValue(virConfParserCtxtPtr ctxt) } NEXT; SKIP_BLANKS; + if (CUR == ']') { + break; + } tmp = virConfParseValue(ctxt); if (tmp == NULL) { virConfFreeList(lst); @@ -508,7 +511,7 @@ virConfParseName(virConfParserCtxtPtr ctxt) virConfError(NULL, VIR_ERR_CONF_SYNTAX, "expecting a name", ctxt->line); return(NULL); } - while ((ctxt->cur < ctxt->end) && ((IS_CHAR(CUR)) || (IS_DIGIT(CUR)))) + while ((ctxt->cur < ctxt->end) && ((IS_CHAR(CUR)) || (IS_DIGIT(CUR)) || (CUR == '_'))) NEXT; ret = strndup(base, ctxt->cur - base); if (ret == NULL) { diff --git a/tests/confdata/fc4.conf b/tests/confdata/fc4.conf index 745a4c409c..b64a0c49ef 100644 --- a/tests/confdata/fc4.conf +++ b/tests/confdata/fc4.conf @@ -2,9 +2,10 @@ kernel="/boot/vmlinuz-2.6.15-1.2054_FC5xenU" ramdisk="/boot/initrd-2.6.15-1.2054_FC5xenU.img" memory=128 # should be enough name="fc4" -vif = [ 'mac=aa:00:00:00:00:11, bridge=xenbr0' ] +vif = [ 'mac=aa:00:00:00:00:11, bridge=xenbr0', ] disk = ['file:/xen/fc4.img,sda1,w'] root = "/dev/sda1" extra = "ro selinux=0 3" +on_reboot = 'restart' # just for testing ... tst = [ 1, 2, [ 3, 4 ], 5] diff --git a/tests/confdata/fc4.out b/tests/confdata/fc4.out index 1fad85ceb2..a4638da645 100644 --- a/tests/confdata/fc4.out +++ b/tests/confdata/fc4.out @@ -6,5 +6,6 @@ vif = [ "mac=aa:00:00:00:00:11, bridge=xenbr0" ] disk = [ "file:/xen/fc4.img,sda1,w" ] root = "/dev/sda1" extra = "ro selinux=0 3" +on_reboot = "restart" # just for testing ... tst = [ 1, 2, [ 3, 4 ], 5 ]