summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2007-08-26 04:12:51 +0000
committerMike Buland <eichlan@xagasoft.com>2007-08-26 04:12:51 +0000
commitecedf7a7d87553116c570ba789b6405ac5eff92d (patch)
tree754eccf96c99ef0acd3a49d99e6a2a44447d3c90
parent4873aad0fe15b3f46c6372b661ce926795922a6e (diff)
downloadlibbu++-ecedf7a7d87553116c570ba789b6405ac5eff92d.tar.gz
libbu++-ecedf7a7d87553116c570ba789b6405ac5eff92d.tar.bz2
libbu++-ecedf7a7d87553116c570ba789b6405ac5eff92d.tar.xz
libbu++-ecedf7a7d87553116c570ba789b6405ac5eff92d.zip
Corrected a bug in the Bu::TafReader, it was getting confused when a stray colon
(common in web addresses) was put in the middle of a property list, now it doesn't get confused, it just complains bitterly and refuses to work.
-rw-r--r--src/tafreader.cpp2
-rw-r--r--src/tests/taf.cpp8
-rw-r--r--test.taf13
3 files changed, 12 insertions, 11 deletions
diff --git a/src/tafreader.cpp b/src/tafreader.cpp
index db465e9..0d28cd0 100644
--- a/src/tafreader.cpp
+++ b/src/tafreader.cpp
@@ -49,6 +49,8 @@ void Bu::TafReader::groupContent( Bu::TafGroup *pGroup )
49 return; 49 return;
50 else if( c == '/' && la == '*' ) 50 else if( c == '/' && la == '*' )
51 pGroup->addChild( readComment() ); 51 pGroup->addChild( readComment() );
52 else if( c == ':' )
53 throw TafException("Encountered stray ':' in taf stream.");
52 else 54 else
53 pGroup->addChild( readProperty() ); 55 pGroup->addChild( readProperty() );
54 } 56 }
diff --git a/src/tests/taf.cpp b/src/tests/taf.cpp
index e3da120..cb9b75f 100644
--- a/src/tests/taf.cpp
+++ b/src/tests/taf.cpp
@@ -8,16 +8,16 @@ int main()
8 Bu::TafReader tr( f ); 8 Bu::TafReader tr( f );
9 9
10 Bu::TafGroup *pGroup = tr.readGroup(); 10 Bu::TafGroup *pGroup = tr.readGroup();
11 11/*
12 const Bu::TafGroup *pStats = pGroup->getChild("stats"); 12 const Bu::TafGroup *pStats = pGroup->getChild("stats");
13 printf("%s\n", pStats->getName().getStr() ); 13 printf("%s\n", pStats->getName().getStr() );
14 printf(" str = %s\n", pStats->getProperty("str").getStr() ); 14 printf(" str = %s\n", pStats->getProperty("str").getStr() );*/
15 15/*
16 { 16 {
17 Bu::File fo("out.taf", "wb"); 17 Bu::File fo("out.taf", "wb");
18 Bu::TafWriter tw( fo ); 18 Bu::TafWriter tw( fo );
19 tw.writeGroup( pGroup ); 19 tw.writeGroup( pGroup );
20 } 20 }*/
21 21
22 delete pGroup; 22 delete pGroup;
23} 23}
diff --git a/test.taf b/test.taf
index 1d4e7d1..f9f6e6a 100644
--- a/test.taf
+++ b/test.taf
@@ -1,7 +1,6 @@
1{"player": "password"="aoeuaoeuao" "userclass"="implementor" "species"="human" "sex"="male" "active" "startroom"="Salourn::Xagafinelle's Room" {"stats": "str"="14" "dex"="12" "spd"="12" "enr"="7" "rea"="12" "wil"="10" "int"="13" "cha"="14" }{"hp": "cur"="100" "max"="100" }{"en": "cur"="100" "max"="100" }"attackrate"="30" "gold"="0" 1{test:
2 2 {repo:
3 /* Hey, the inventory is next...isn't that cool? Oooooh yeah! */ 3 url = http://svn.xagasoft.com/libbu++
4 4 name = libbu++
5{"inventory": {: "count"="1" "id"="Salourn::Dark Blade" }{: "count"="1" "id"="Salourn::Dark Suit" }{: "count"="3" "id"="Salourn::Small Fig" }}{"aliases": {: "key"="." "value"="say" }{: "key"="," "value"="yell" }{: "key"="li" "value"="lightning" }}"description"="They appear to be rather average looking, not particularly 5 }
6 tall or short, with facial features that are difficult to remember even 6}
7 seconds after witnessing them." }