/****************************************************************************
- * Copyright (c) 1998 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 *
/*
* 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.9 2020/02/02 23:34:34 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 */