diff options
author | Mike Buland <eichlan@xagasoft.com> | 2007-08-26 04:12:51 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2007-08-26 04:12:51 +0000 |
commit | ecedf7a7d87553116c570ba789b6405ac5eff92d (patch) | |
tree | 754eccf96c99ef0acd3a49d99e6a2a44447d3c90 | |
parent | 4873aad0fe15b3f46c6372b661ce926795922a6e (diff) | |
download | libbu++-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.cpp | 2 | ||||
-rw-r--r-- | src/tests/taf.cpp | 8 | ||||
-rw-r--r-- | test.taf | 13 |
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 | } |
@@ -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." } | ||