diff options
author | Tommi Komulainen <tommi.komulainen@iki.fi> | 2018-05-26 09:36:45 +0200 |
---|---|---|
committer | Tommi Komulainen <tommi.komulainen@iki.fi> | 2018-06-13 18:36:59 +0200 |
commit | 850a2cec794ef0d98dbaaf83e5ddce4ecb819e27 (patch) | |
tree | ca6a22b00a072541695b856989d53f5970583335 /src/print.cc | |
parent | db42d7b25232c2cfd25de4f795bf3b0d2fb4479d (diff) | |
download | fork-ledger-850a2cec794ef0d98dbaaf83e5ddce4ecb819e27.tar.gz fork-ledger-850a2cec794ef0d98dbaaf83e5ddce4ecb819e27.tar.bz2 fork-ledger-850a2cec794ef0d98dbaaf83e5ddce4ecb819e27.zip |
Fix garbled dates when using --date-format
Capture the `std::string` value from options in a local variable that
lives as long as the `c_str()` taken from it to ensure it does not get
freed prematurely.
Fixes: #546
Diffstat (limited to 'src/print.cc')
-rw-r--r-- | src/print.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/print.cc b/src/print.cc index 9fa75eab..92323777 100644 --- a/src/print.cc +++ b/src/print.cc @@ -103,11 +103,13 @@ namespace { void print_xact(report_t& report, std::ostream& out, xact_t& xact) { format_type_t format_type = FMT_WRITTEN; + string format_str; optional<const char *> format; if (report.HANDLED(date_format_)) { format_type = FMT_CUSTOM; - format = report.HANDLER(date_format_).str().c_str(); + format_str = report.HANDLER(date_format_).str(); + format = format_str.c_str(); } std::ostringstream buf; |