From 03af1408410e3e1ab0952e1fab6d7acf94b014ef Mon Sep 17 00:00:00 2001 From: Bobby Bingham Date: Mon, 24 Aug 2015 21:45:08 -0500 Subject: use xor instead of incrementing blink Because blink is a signed integer, an eventual overflow would result in undefined behavior. --- dblbuf.c | 2 +- main.c | 2 +- xlib.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dblbuf.c b/dblbuf.c index f6cbd88..afa180c 100644 --- a/dblbuf.c +++ b/dblbuf.c @@ -176,7 +176,7 @@ void uudisp_refresh(struct uudisp *d, struct uuterm *t) blit_slice(d, idx, x1, x2); } - if (d->blink & 1) { + if (d->blink) { unsigned long rev = expand_color(d, 15); int idx = t->rows[t->y]->idx; b->slices[idx].colors[2*t->x] ^= rev; diff --git a/main.c b/main.c index 784f7f2..422d707 100644 --- a/main.c +++ b/main.c @@ -66,7 +66,7 @@ int main(int argc, char *argv[]) tv.tv_sec = 0; tv.tv_usec = 250000; if (select(max, &fds, &wfds, NULL, &tv) <= 0) { - d.blink++; + d.blink ^= 1; FD_ZERO(&fds); } diff --git a/xlib.c b/xlib.c index d5c078c..a94e8f8 100644 --- a/xlib.c +++ b/xlib.c @@ -405,7 +405,7 @@ void uudisp_refresh(struct uudisp *d, struct uuterm *t) int x1, x2, idx, y; /* Clean up cursor first.. */ - if (p->curs_on && (!(d->blink&1) || t->x != p->curs_x || t->y != p->curs_y)) { + if (p->curs_on && (!d->blink || t->x != p->curs_x || t->y != p->curs_y)) { idx = t->rows[p->curs_y]->idx; if ((unsigned)p->slices_y[idx] < d->h) blit_slice(d, idx, p->curs_x, p->curs_x); -- cgit v1.2.3