diff options
author | Michael Budde <mbudde@gmail.com> | 2019-02-16 21:24:44 +0100 |
---|---|---|
committer | Martin Michlmayr <tbm@cyrius.com> | 2019-03-30 20:31:28 +0700 |
commit | fbf8b2458c6ae3ad2ed2bf0575b94800722d5a04 (patch) | |
tree | 46d550893231e0111d1453c695684413de8593bf /src/item.cc | |
parent | 13044f9c8d5757b6885d78cb5f7f37770e3750ab (diff) | |
download | fork-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.cc | 2 |
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); |