Add more protection around the VSWTC/VSWTCH, CRTSCTS, and XTABS symbols;
these can be missing on some (all?) Irix and Tru64 versions.

Protect the CRTSCTS value with a cast; this can be a larger value on
Solaris/SPARC.

This should fix SF tracker items #405092, #405350, and #405355.
diff --git a/Modules/termios.c b/Modules/termios.c
index 16a6d38..9ed1921 100644
--- a/Modules/termios.c
+++ b/Modules/termios.c
@@ -391,7 +391,9 @@
 	{"TAB1", TAB1},
 	{"TAB2", TAB2},
 	{"TAB3", TAB3},
+#ifdef XTABS
 	{"XTABS", XTABS},
+#endif
 	{"BS0", BS0},
 	{"BS1", BS1},
 	{"VT0", VT0},
@@ -410,7 +412,9 @@
 #ifdef CIBAUD
 	{"CIBAUD", CIBAUD},
 #endif
-	{"CRTSCTS", CRTSCTS},
+#ifdef CRTSCTS
+	{"CRTSCTS", (long)CRTSCTS},
+#endif
 
 	/* struct termios.c_cflag-related values (character size) */
 	{"CS5", CS5},
@@ -449,8 +453,12 @@
 	{"VEOF", VEOF},
 	{"VTIME", VTIME},
 	{"VMIN", VMIN},
+#ifdef VSWTC
+	/* The #defines above ensure that if either is defined, both are,
+         * but both may be omitted by the system headers.  ;-(  */
 	{"VSWTC", VSWTC},
 	{"VSWTCH", VSWTCH},
+#endif
 	{"VSTART", VSTART},
 	{"VSTOP", VSTOP},
 	{"VSUSP", VSUSP},