From 6256bdb15a7c43b644132ae8c78adf31bcae4d28 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 12 Aug 2020 20:12:39 +0200 Subject: implement #6478, but untested as shown by FIXMEs --- src/util/amount.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/util/amount.c') diff --git a/src/util/amount.c b/src/util/amount.c index b5e28051c..5b0c3af53 100644 --- a/src/util/amount.c +++ b/src/util/amount.c @@ -390,6 +390,35 @@ TALER_amount_cmp (const struct TALER_Amount *a1, } +/** + * Compare the value/fraction of two amounts. Does not compare the currency. + * Comparing amounts of different currencies will cause the program to abort(). + * If unsure, check with #TALER_amount_cmp_currency() first to be sure that + * the currencies of the two amounts are identical. NBO variant. + * + * @param a1 first amount + * @param a2 second amount + * @return result of the comparison + * -1 if `a1 < a2` + * 1 if `a1 > a2` + * 0 if `a1 == a2`. + */ +int +TALER_amount_cmp_nbo (const struct TALER_AmountNBO *a1, + const struct TALER_AmountNBO *a2) +{ + struct TALER_Amount h1; + struct TALER_Amount h2; + + TALER_amount_ntoh (&h1, + a1); + TALER_amount_ntoh (&h2, + a2); + return TALER_amount_cmp (&h1, + &h2); +} + + /** * Perform saturating subtraction of amounts. * -- cgit v1.2.3