Empty notes and tags now return null values

This commit is contained in:
John Wiegley 2010-05-30 02:55:02 -06:00
parent 647d4aac2f
commit 4f3b39e22c
5 changed files with 56 additions and 47 deletions

View file

@ -69,6 +69,7 @@ void post_splitter::operator()(post_t& post)
bind_scope_t bound_scope(report, post);
value_t result(group_by_expr.calc(bound_scope));
if (! result.is_null()) {
value_to_posts_map::iterator i = posts_map.find(result);
if (i != posts_map.end()) {
(*i).second.push_back(&post);
@ -78,6 +79,7 @@ void post_splitter::operator()(post_t& post)
assert(inserted.second);
(*inserted.first).second.push_back(&post);
}
}
}
pass_down_posts::pass_down_posts(post_handler_ptr handler,
@ -837,6 +839,7 @@ void transfer_details::operator()(post_t& post)
bind_scope_t bound_scope(scope, temp);
value_t substitute(expr.calc(bound_scope));
if (! substitute.is_null()) {
switch (which_element) {
case SET_DATE:
temp.xdata().date = substitute.to_date();
@ -873,6 +876,7 @@ void transfer_details::operator()(post_t& post)
assert(false);
break;
}
}
item_handler<post_t>::operator()(temp);
}

View file

@ -227,7 +227,7 @@ namespace {
return NULL_VALUE;
}
value_t get_note(item_t& item) {
return string_value(item.note ? *item.note : empty_string);
return item.note ? string_value(*item.note) : NULL_VALUE;
}
value_t has_tag(call_scope_t& args) {
@ -260,7 +260,8 @@ namespace {
return false;
}
value_t get_tag(call_scope_t& args) {
value_t get_tag(call_scope_t& args)
{
item_t& item(find_scope<item_t>(args));
optional<string> str;
@ -292,14 +293,14 @@ namespace {
if (str)
return string_value(*str);
else
return string_value(empty_string);
return NULL_VALUE;
}
value_t get_pathname(item_t& item) {
if (item.pos)
return string_value(item.pos->pathname.string());
else
return string_value(empty_string);
return NULL_VALUE;
}
value_t get_beg_pos(item_t& item) {

View file

@ -150,7 +150,7 @@ namespace {
if (post.xact->code)
return string_value(*post.xact->code);
else
return string_value(empty_string);
return NULL_VALUE;
}
value_t get_payee(post_t& post) {
@ -158,9 +158,13 @@ namespace {
}
value_t get_note(post_t& post) {
if (post.note || post.xact->note) {
string note = post.note ? *post.note : empty_string;
note += post.xact->note ? *post.xact->note : empty_string;
return string_value(note);
} else {
return NULL_VALUE;
}
}
value_t get_magnitude(post_t& post) {

View file

@ -468,7 +468,7 @@ namespace {
if (xact.code)
return string_value(*xact.code);
else
return string_value(empty_string);
return NULL_VALUE;
}
value_t get_payee(xact_t& xact) {

View file

@ -28,7 +28,7 @@ reg --payee=code
08-Feb-01 102 Assets:Cash $-20.00 0
08-Feb-28 103 Expenses:Books $20.00 $20.00
08-Feb-28 103 Assets:Cash $-20.00 0
08-Mar-01 Expenses:Books $30.00 $30.00
08-Mar-01 Assets:Cash $-30.00 0
08-Mar-01 March Expenses:Books $30.00 $30.00
08-Mar-01 March Assets:Cash $-30.00 0
>>>2
=== 0