ncurses 6.1 - patch 20180922
[ncurses.git] / ncurses / fifo_defs.h
index 67799577aeadabfe268a7ce373dfca867b882a97..d0e21fafe871dcabdf738af30d624102beeb43e8 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998,2002 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            *
 /*
  * Common macros for lib_getch.c, lib_ungetch.c
  *
- * $Id: fifo_defs.h,v 1.4 2002/03/16 20:47:50 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 */