mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Fix use of guile function introduced in 2.0.10, not available in Ubuntu14.04.
Also generalize KVP type detection so that signed and unsigned values\nare appropriately converted.
This commit is contained in:
parent
6e9025d2f9
commit
19412de221
@ -27,16 +27,21 @@ gnc_scm_to_kvp_value_ptr(SCM val)
|
||||
{
|
||||
if (scm_is_rational(val))
|
||||
{
|
||||
if (scm_is_exact_integer(val) &&
|
||||
scm_is_signed_integer(val, INT64_MIN, INT64_MAX))
|
||||
if (scm_is_exact(val) &&
|
||||
(scm_is_signed_integer(val, INT64_MIN, INT64_MAX) ||
|
||||
scm_is_unsigned_integer(val, INT64_MIN, INT64_MAX)))
|
||||
{
|
||||
return new KvpValue{scm_to_int64(val)};
|
||||
}
|
||||
else if (scm_is_exact(val) &&
|
||||
scm_is_signed_integer(scm_numerator(val),
|
||||
INT64_MIN, INT64_MAX) &&
|
||||
scm_is_signed_integer(scm_denominator(val),
|
||||
INT64_MIN, INT64_MAX))
|
||||
(scm_is_signed_integer(scm_numerator(val),
|
||||
INT64_MIN, INT64_MAX) ||
|
||||
scm_is_unsigned_integer(scm_numerator(val),
|
||||
INT64_MIN, INT64_MAX)) &&
|
||||
(scm_is_signed_integer(scm_denominator(val),
|
||||
INT64_MIN, INT64_MAX) ||
|
||||
(scm_is_unsigned_integer(scm_denominator(val),
|
||||
INT64_MIN, INT64_MAX))))
|
||||
{
|
||||
return new KvpValue{gnc_scm_to_numeric(val)};
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user