X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ffifo_defs.h;h=ab9266d636bb3f89465ea32d3c60819b2b3d9b58;hp=9655b417d6e73ccc20eb77fe5f6fbf4a141492e4;hb=c976a90788f3e50afc773670ff74c5270ecb48df;hpb=ed530db2c5b10aa19d06104dfe82cf248a813860 diff --git a/ncurses/fifo_defs.h b/ncurses/fifo_defs.h index 9655b417..ab9266d6 100644 --- a/ncurses/fifo_defs.h +++ b/ncurses/fifo_defs.h @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998,2002 Free Software Foundation, Inc. * + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2012,2016 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -34,7 +35,7 @@ /* * Common macros for lib_getch.c, lib_ungetch.c * - * $Id: fifo_defs.h,v 1.5 2008/05/03 20:08:16 tom Exp $ + * $Id: fifo_defs.h,v 1.9 2020/02/02 23:34:34 tom Exp $ */ #ifndef FIFO_DEFS_H @@ -45,15 +46,41 @@ /* peek points to next uninterpreted character */ #define peek sp->_fifopeek -#define h_inc() { head == FIFO_SIZE-1 ? head = 0 : head++; if (head == tail) head = -1, tail = 0;} -#define h_dec() { head == 0 ? head = FIFO_SIZE-1 : head--; if (head == tail) tail = -1;} -#define t_inc() { tail == FIFO_SIZE-1 ? tail = 0 : tail++; if (tail == head) tail = -1;} -#define t_dec() { tail == 0 ? tail = FIFO_SIZE-1 : tail--; if (head == tail) fifo_clear(sp);} -#define p_inc() { peek == FIFO_SIZE-1 ? peek = 0 : peek++;} +#define h_inc() { \ + (head >= FIFO_SIZE-1) \ + ? head = 0 \ + : head++; \ + if (head == tail) \ + head = -1, tail = 0; \ + } +#define h_dec() { \ + (head <= 0) \ + ? head = FIFO_SIZE-1 \ + : head--; \ + if (head == tail) \ + tail = -1; \ + } +#define t_inc() { \ + (tail >= FIFO_SIZE-1) \ + ? tail = 0 \ + : tail++; \ + if (tail == head) \ + tail = -1; \ + } +#define t_dec() { \ + (tail <= 0) \ + ? tail = FIFO_SIZE-1 \ + : tail--; \ + if (head == tail) \ + fifo_clear(sp); \ + } +#define p_inc() { \ + (peek >= FIFO_SIZE-1) \ + ? peek = 0 \ + : peek++; \ + } -#define cooked_key_in_fifo() ((head != -1) && (peek != head)) -#define raw_key_in_fifo() ((head != -1) && (peek != tail)) - -#undef HIDE_EINTR +#define cooked_key_in_fifo() ((head >= 0) && (peek != head)) +#define raw_key_in_fifo() ((head >= 0) && (peek != tail)) #endif /* FIFO_DEFS_H */