diff options
author | 2019-05-20 05:35:46 +0000 | |
---|---|---|
committer | 2019-05-20 05:35:46 +0000 | |
commit | 7cb3d29bdb5d8e34a6dbc7288c3fa09c0c61e44f (patch) | |
tree | b7485e5b8f832b94b8e86320114a15f68b2b723c /usr.bin/tmux/input.c | |
parent | Remove unused variables; no binary change. (diff) | |
download | wireguard-openbsd-7cb3d29bdb5d8e34a6dbc7288c3fa09c0c61e44f.tar.xz wireguard-openbsd-7cb3d29bdb5d8e34a6dbc7288c3fa09c0c61e44f.zip |
Fix the color space parameter in RGB SGR, from Brad Town.
Diffstat (limited to 'usr.bin/tmux/input.c')
-rw-r--r-- | usr.bin/tmux/input.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/usr.bin/tmux/input.c b/usr.bin/tmux/input.c index 0b98386f04c..76d2f7063ad 100644 --- a/usr.bin/tmux/input.c +++ b/usr.bin/tmux/input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: input.c,v 1.153 2019/05/13 20:10:23 nicm Exp $ */ +/* $OpenBSD: input.c,v 1.154 2019/05/20 05:35:46 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott <nicholas.marriott@gmail.com> @@ -1938,23 +1938,25 @@ input_csi_dispatch_sgr_colon(struct input_ctx *ictx, u_int i) } return; } - if (p[0] != 38 && p[0] != 48) + if (n < 2 || (p[0] != 38 && p[0] != 48)) return; - if (p[1] == -1) - i = 2; - else - i = 1; - switch (p[i]) { + switch (p[1]) { case 2: - if (n < i + 4) + if (n < 3) + break; + if (n == 5) + i = 2; + else + i = 3; + if (n < i + 3) break; - input_csi_dispatch_sgr_rgb_do(ictx, p[0], p[i + 1], p[i + 2], - p[i + 3]); + input_csi_dispatch_sgr_rgb_do(ictx, p[0], p[i], p[i + 1], + p[i + 2]); break; case 5: - if (n < i + 2) + if (n < 3) break; - input_csi_dispatch_sgr_256_do(ictx, p[0], p[i + 1]); + input_csi_dispatch_sgr_256_do(ictx, p[0], p[2]); break; } } |