Fix compilation on Free and OpenBSD.
[apps/madtty.git] / madtty / madtty.c
index 8994454..95ea5e2 100644 (file)
@@ -24,7 +24,6 @@
 #include <ctype.h>
 #include <errno.h>
 #include <fcntl.h>
-#include <pty.h>
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <sys/types.h>
 #include <termios.h>
 #include <wchar.h>
-
+#ifdef __linux__
+# include <pty.h>
+#elif defined(__FreeBSD__)
+# include <libutil.h>
+#elif defined(__OpenBSD__)
+# include <util.h>
+#endif
 #include "madtty.h"
 
+#ifndef NCURSES_ATTR_SHIFT
+# define NCURSES_ATTR_SHIFT 8
+#endif
+
 #define IS_CONTROL(ch) !((ch) & 0xffffff60UL)
 
 static int has_default = 0;
@@ -612,6 +621,17 @@ static void try_interpret_escape_seq(madtty_t *t)
 
     if (t->elen + 1 >= (int)sizeof(t->ebuf)) {
 cancel:
+#ifndef NDEBUG
+        fprintf(stderr, "cancelled: \\033");
+        for (int i = 0; i < (int)t->elen; i++) {
+            if (isprint(t->ebuf[i])) {
+                fputc(t->ebuf[i], stderr);
+            } else {
+                fprintf(stderr, "\\%03o", t->ebuf[i]);
+            }
+        }
+        fputc('\n', stderr);
+#endif
         cancel_escape_sequence(t);
     }
 }