summaryrefslogtreecommitdiff
path: root/src/item.cc
diff options
context:
space:
mode:
authorMichael Budde <mbudde@gmail.com>2019-02-16 21:24:44 +0100
committerMartin Michlmayr <tbm@cyrius.com>2019-03-30 20:31:28 +0700
commitfbf8b2458c6ae3ad2ed2bf0575b94800722d5a04 (patch)
tree46d550893231e0111d1453c695684413de8593bf /src/item.cc
parent13044f9c8d5757b6885d78cb5f7f37770e3750ab (diff)
downloadfork-ledger-fbf8b2458c6ae3ad2ed2bf0575b94800722d5a04.tar.gz
fork-ledger-fbf8b2458c6ae3ad2ed2bf0575b94800722d5a04.tar.bz2
fork-ledger-fbf8b2458c6ae3ad2ed2bf0575b94800722d5a04.zip
Fix tag value parsing
If a tag is more than 2 characters from the beginning of the comment the tag value offset will be wrong. #1702 gives an example where the tag line starts with `;;` and the tag value thus becomes `: Bar` because of this bug. The use `index` in the offset calulation seems to be a lucky coincidence that works in the common case: "; tag: value" Fixes #1702
Diffstat (limited to 'src/item.cc')
-rw-r--r--src/item.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/item.cc b/src/item.cc
index 7132103e..d46fba8b 100644
--- a/src/item.cc
+++ b/src/item.cc
@@ -198,7 +198,7 @@ void item_t::parse_tags(const char * p,
tag = string(q, len - index);
string_map::iterator i;
- string field(p + len + index);
+ string field(p + (q - buf.get()) + len);
trim(field);
if (by_value) {
bind_scope_t bound_scope(scope, *this);