diff options
author | John Wiegley <johnw@newartisans.com> | 2006-02-15 20:46:07 +0000 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2008-04-13 02:41:22 -0400 |
commit | 110a23d2f06565204e509b60b0bc28d5ef61a2ae (patch) | |
tree | 32f573f2079cc5198e412afafc9cda45ca0bd601 | |
parent | 27273bb2f46a964ef3262c99e503aab005fe59d1 (diff) | |
download | fork-ledger-110a23d2f06565204e509b60b0bc28d5ef61a2ae.tar.gz fork-ledger-110a23d2f06565204e509b60b0bc28d5ef61a2ae.tar.bz2 fork-ledger-110a23d2f06565204e509b60b0bc28d5ef61a2ae.zip |
Added in.clear() before resetting I/Os streams. Again, thanks to the
list.
-rw-r--r-- | binary.cc | 1 | ||||
-rw-r--r-- | gnucash.cc | 1 | ||||
-rw-r--r-- | ofx.cc | 4 | ||||
-rw-r--r-- | qif.cc | 1 | ||||
-rw-r--r-- | textual.cc | 1 | ||||
-rw-r--r-- | xml.cc | 3 |
6 files changed, 11 insertions, 0 deletions
@@ -489,6 +489,7 @@ bool binary_parser_t::test(std::istream& in) const read_binary_number<unsigned long>(in) == format_version) return true; + in.clear(); in.seekg(0, std::ios::beg); return false; } @@ -345,6 +345,7 @@ bool gnucash_parser_t::test(std::istream& in) const { char buf[5]; in.read(buf, 5); + in.clear(); in.seekg(0, std::ios::beg); return std::strncmp(buf, "<?xml", 5) == 0; @@ -172,10 +172,12 @@ bool ofx_parser_t::test(std::istream& in) const in.getline(buf, 79); if (std::strncmp(buf, "OFXHEADER", 9) == 0) { + in.clear(); in.seekg(0, std::ios::beg); return true; } else if (std::strncmp(buf, "<?xml", 5) != 0) { + in.clear(); in.seekg(0, std::ios::beg); return false; } @@ -183,10 +185,12 @@ bool ofx_parser_t::test(std::istream& in) const in.getline(buf, 79); if (std::strncmp(buf, "<?OFX", 5) != 0 && std::strncmp(buf, "<?ofx", 5) != 0) { + in.clear(); in.seekg(0, std::ios::beg); return false; } + in.clear(); in.seekg(0, std::ios::beg); return true; } @@ -30,6 +30,7 @@ bool qif_parser_t::test(std::istream& in) const char magic[sizeof(unsigned int) + 1]; in.read(magic, sizeof(unsigned int)); magic[sizeof(unsigned int)] = '\0'; + in.clear(); in.seekg(0, std::ios::beg); return (std::strcmp(magic, "!Typ") == 0 || @@ -457,6 +457,7 @@ bool textual_parser_t::test(std::istream& in) const #endif } + in.clear(); in.seekg(0, std::ios::beg); assert(in.good()); return true; @@ -158,16 +158,19 @@ bool xml_parser_t::test(std::istream& in) const in.getline(buf, 79); if (std::strncmp(buf, "<?xml", 5) != 0) { + in.clear(); in.seekg(0, std::ios::beg); return false; } in.getline(buf, 79); if (! std::strstr(buf, "<ledger")) { + in.clear(); in.seekg(0, std::ios::beg); return false; } + in.clear(); in.seekg(0, std::ios::beg); return true; } |