summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/textual.cc25
-rw-r--r--test/regress/6D9066DD.test17
2 files changed, 41 insertions, 1 deletions
diff --git a/src/textual.cc b/src/textual.cc
index 362bed4d..ab87a945 100644
--- a/src/textual.cc
+++ b/src/textual.cc
@@ -1732,7 +1732,30 @@ xact_t * instance_t::parse_xact(char * line,
// Parse the description text
if (next && *next) {
- char * p = next_element(next, true);
+ char * p = next;
+ std::size_t spaces = 0;
+ std::size_t tabs = 0;
+ while (*p) {
+ if (*p == ' ') {
+ ++spaces;
+ }
+ else if (*p == '\t') {
+ ++tabs;
+ }
+ else if (*p == ';' && (tabs > 0 || spaces > 1)) {
+ char *q = p - 1;
+ while (q > next && std::isspace(*q))
+ --q;
+ if (q > next)
+ *(q + 1) = '\0';
+ break;
+ }
+ else {
+ spaces = 0;
+ tabs = 0;
+ }
+ ++p;
+ }
xact->payee = context.journal->register_payee(next, xact.get());
next = p;
} else {
diff --git a/test/regress/6D9066DD.test b/test/regress/6D9066DD.test
new file mode 100644
index 00000000..aa885f7d
--- /dev/null
+++ b/test/regress/6D9066DD.test
@@ -0,0 +1,17 @@
+2009/09/23 * (EFT) Elec Ext Deposit AMAZON.COM FZXXOLTQ - Retail dis payments.amazon.com
+ Assets:Checking $39.05
+ Assets:Receivable:Amazon
+
+2007/10/15 * FOO ; :USA:
+ Assets:NRL:Checking $1,726.18
+ Assets:Receivable:CEG ; [2007/10/05]
+
+test print
+2009/09/23 * (EFT) Elec Ext Deposit AMAZON.COM FZXXOLTQ - Retail dis payments.amazon.com
+ Assets:Checking $39.05
+ Assets:Receivable:Amazon
+
+2007/10/15 * FOO ; :USA:
+ Assets:NRL:Checking $1,726.18
+ Assets:Receivable:CEG ; [2007/10/05]
+end test