From be8c539171d49d116cfe877cef1b5da21066314c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Sat, 9 Jun 2018 01:07:16 -0400
Subject: [PATCH] rational: fix comparison with integer

Change-Id: I77ef41dca57022836681f9b4359fcba0e5b5bd0f
Reviewed-by: Philippe Gorley <philippe.gorley@savoirfairelinux.com>
---
 src/rational.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/rational.h b/src/rational.h
index c9263e263b..bab02e1213 100644
--- a/src/rational.h
+++ b/src/rational.h
@@ -125,8 +125,8 @@ public:
     bool operator!= (const rational& r) const { return num_ * r.den_ != den_ * r.num_; }
 
     // Comparison with integers
-    bool operator< (I i) const { return num_ < i * den_; }
-    bool operator> (I i) const { return num_ > i * den_; }
+    bool operator< (I i) const { return den_ < 0 ? (num_ > i * den_) : (num_ < i * den_); }
+    bool operator> (I i) const { return den_ < 0 ? (num_ < i * den_) : (num_ > i * den_); }
     bool operator== (I i) const { return num_ == i * den_; }
     bool operator!= (I i) const { return num_ != i * den_; }
 private:
-- 
GitLab