X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ffifo_defs.h;h=d0e21fafe871dcabdf738af30d624102beeb43e8;hp=f4dd7be324f5af882ace62ace931c0d592b7c1cf;hb=8d8a3537cd58af7879c6e1921235daeed2b74926;hpb=661078ddbde3ce0f3b06e95642fbb9b5fef7dca1 diff --git a/ncurses/fifo_defs.h b/ncurses/fifo_defs.h index f4dd7be3..d0e21faf 100644 --- a/ncurses/fifo_defs.h +++ b/ncurses/fifo_defs.h @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998 Free Software Foundation, Inc. * + * Copyright (c) 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,26 +34,52 @@ /* * Common macros for lib_getch.c, lib_ungetch.c * - * $Id: fifo_defs.h,v 1.2 1998/02/11 12:13:56 tom Exp $ + * $Id: fifo_defs.h,v 1.8 2016/09/10 21:59:25 tom Exp $ */ #ifndef FIFO_DEFS_H #define FIFO_DEFS_H 1 -#define head SP->_fifohead -#define tail SP->_fifotail +#define head sp->_fifohead +#define tail sp->_fifotail /* peek points to next uninterpreted character */ -#define peek SP->_fifopeek +#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();} -#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 */