Added a new valexpr function: format_date
This can be used to format dates with a specific pattern, such as:
format_date(entry.date, "%Y/%m/%d")
This is used by the print command to ensure that Ledger is able to parse
back what it prints.
This commit is contained in:
parent
c0fd8d5e15
commit
f6b93a3f5a
2 changed files with 11 additions and 0 deletions
|
|
@ -244,6 +244,11 @@ value_t report_t::fn_join(call_scope_t& args)
|
|||
return string_value(out.str());
|
||||
}
|
||||
|
||||
value_t report_t::fn_format_date(call_scope_t& args)
|
||||
{
|
||||
return string_value(format_date(args[0].to_date(), args[1].to_string()));
|
||||
}
|
||||
|
||||
namespace {
|
||||
template <class Type = xact_t,
|
||||
class handler_ptr = xact_handler_ptr,
|
||||
|
|
@ -567,6 +572,11 @@ expr_t::ptr_op_t report_t::lookup(const string& name)
|
|||
return MAKE_FUNCTOR(report_t::fn_display_total);
|
||||
break;
|
||||
|
||||
case 'f':
|
||||
if (is_eq(p, "format_date"))
|
||||
return MAKE_FUNCTOR(report_t::fn_format_date);
|
||||
break;
|
||||
|
||||
case 'j':
|
||||
if (is_eq(p, "join"))
|
||||
return MAKE_FUNCTOR(report_t::fn_join);
|
||||
|
|
|
|||
|
|
@ -137,6 +137,7 @@ public:
|
|||
value_t fn_truncate(call_scope_t& scope);
|
||||
value_t fn_quoted(call_scope_t& scope);
|
||||
value_t fn_join(call_scope_t& scope);
|
||||
value_t fn_format_date(call_scope_t& scope);
|
||||
|
||||
value_t fn_options(call_scope_t& scope) {
|
||||
return value_t(static_cast<scope_t *>(this));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue