Allow balance values to be compared < or > 0
This commit is contained in:
parent
018c812fda
commit
8ca91c1196
1 changed files with 42 additions and 0 deletions
42
src/value.cc
42
src/value.cc
|
|
@ -769,6 +769,27 @@ bool value_t::is_less_than(const value_t& val) const
|
|||
}
|
||||
break;
|
||||
|
||||
case BALANCE:
|
||||
switch (val.type()) {
|
||||
case INTEGER:
|
||||
if (val.as_long() != 0)
|
||||
break;
|
||||
// fall through...
|
||||
case AMOUNT:
|
||||
if (val.is_nonzero())
|
||||
break;
|
||||
|
||||
foreach (const balance_t::amounts_map::value_type& pair,
|
||||
as_balance().amounts) {
|
||||
if (pair.second > 0L)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case STRING:
|
||||
if (val.is_string())
|
||||
return as_string() < val.as_string();
|
||||
|
|
@ -818,6 +839,27 @@ bool value_t::is_greater_than(const value_t& val) const
|
|||
}
|
||||
break;
|
||||
|
||||
case BALANCE:
|
||||
switch (val.type()) {
|
||||
case INTEGER:
|
||||
if (val.as_long() != 0)
|
||||
break;
|
||||
// fall through...
|
||||
case AMOUNT:
|
||||
if (val.is_nonzero())
|
||||
break;
|
||||
|
||||
foreach (const balance_t::amounts_map::value_type& pair,
|
||||
as_balance().amounts) {
|
||||
if (pair.second < 0L)
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case STRING:
|
||||
if (val.is_string())
|
||||
return as_string() > val.as_string();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue