about summary refs log tree commit diff stats
path: root/src/display
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2023-06-10 01:56:08 +0200
committerbptato <nincsnevem662@gmail.com>2023-06-10 01:56:08 +0200
commit1bd7651f70ef7ba7a3506f12d4c9f4d7735180f5 (patch)
treef05b9750153e18e2d3856869e7df4a2ea69f58ea /src/display
parente8e9d27c9496ee5a0679197272d5ca8d1b5a2953 (diff)
downloadchawan-1bd7651f70ef7ba7a3506f12d4c9f4d7735180f5.tar.gz
approximateANSIColor: fix possible underflow
Diffstat (limited to 'src/display')
-rw-r--r--src/display/term.nim7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/display/term.nim b/src/display/term.nim
index fa3c5e7f..332ecd33 100644
--- a/src/display/term.nim
+++ b/src/display/term.nim
@@ -12,6 +12,7 @@ import config/config
 import data/charset
 import encoding/encoderstream
 import io/window
+import utils/chamath
 import utils/twtstr
 import types/color
 
@@ -217,9 +218,9 @@ proc approximateANSIColor(rgb: RGBColor, exclude = -1): int =
     if i == exclude: continue
     let color = ANSIColorMap[i]
     if color == rgb: return i
-    let x = uint16(color.r - rgb.r) ^ 2
-    let y = uint16(color.g - rgb.b) ^ 2
-    let z = uint16(color.g - rgb.g) ^ 2
+    let x = uint16(absSub(color.r, rgb.r)) ^ 2
+    let y = uint16(absSub(color.g, rgb.b)) ^ 2
+    let z = uint16(absSub(color.g, rgb.g)) ^ 2
     let b = x + y + z
     if n == -1 or b < a:
       n = i