the QIF parser was too order dependent

This commit is contained in:
John Wiegley 2004-08-19 20:54:19 -04:00
parent 7e2af9b73d
commit 9d4f839263

12
qif.cc
View file

@ -31,6 +31,10 @@ unsigned int parse_qif_file(std::istream& in, journal_t * journal,
account_t * misc = journal->find_account("Miscellaneous"); account_t * misc = journal->find_account("Miscellaneous");
unsigned int count; unsigned int count;
entry.reset(new entry_t);
xact = new transaction_t(master);
entry->add_transaction(xact);
path = journal->sources.back(); path = journal->sources.back();
linenum = 1; linenum = 1;
@ -65,10 +69,6 @@ unsigned int parse_qif_file(std::istream& in, journal_t * journal,
break; break;
case 'D': case 'D':
entry.reset(new entry_t);
xact = new transaction_t(master);
entry->add_transaction(xact);
in >> line; in >> line;
if (! parse_date(line, &entry->date)) if (! parse_date(line, &entry->date))
throw parse_error(path, linenum, "Failed to parse date"); throw parse_error(path, linenum, "Failed to parse date");
@ -150,6 +150,10 @@ unsigned int parse_qif_file(std::istream& in, journal_t * journal,
if (journal->add_entry(entry.release())) if (journal->add_entry(entry.release()))
count++; count++;
entry.reset(new entry_t);
xact = new transaction_t(master);
entry->add_transaction(xact);
break; break;
} }
} }