Include sys/modem.h if we have it; this is needed on HP-UX to provide
constants used by other macros from the headers.

Conditionalize VREPRINT and VDISCARD; these are not available on HP-UX.

This closes bug #417418.
diff --git a/Modules/termios.c b/Modules/termios.c
index f586bb1..109faf3 100644
--- a/Modules/termios.c
+++ b/Modules/termios.c
@@ -16,6 +16,14 @@
 #include <unistd.h>
 #endif
 
+/* HP-UX requires that this be included to pick up MDCD, MCTS, MDSR,
+ * MDTR, MRI, and MRTS (appearantly used internally by some things
+ * defined as macros; these are not used here directly).
+ */
+#ifdef HAVE_SYS_MODEM_H
+#include <sys/modem.h>
+#endif
+
 static char termios__doc__[] = "\
 This module provides an interface to the Posix calls for tty I/O control.\n\
 For a complete description of these calls, see the Posix or Unix manual\n\
@@ -528,8 +536,12 @@
 	{"VSTOP", VSTOP},
 	{"VSUSP", VSUSP},
 	{"VEOL", VEOL},
+#ifndef VREPRINT
 	{"VREPRINT", VREPRINT},
+#endif
+#ifndef VDISCARD
 	{"VDISCARD", VDISCARD},
+#endif
 	{"VWERASE", VWERASE},
 	{"VLNEXT", VLNEXT},
 	{"VEOL2", VEOL2},