summaryrefslogtreecommitdiffstats
path: root/usr.sbin/sysinstall/termcap.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/sysinstall/termcap.c')
-rw-r--r--usr.sbin/sysinstall/termcap.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/usr.sbin/sysinstall/termcap.c b/usr.sbin/sysinstall/termcap.c
new file mode 100644
index 0000000..e05b82d
--- /dev/null
+++ b/usr.sbin/sysinstall/termcap.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 1994, Paul Richards.
+ *
+ * All rights reserved.
+ *
+ * This software may be used, modified, copied, distributed, and sold, in both
+ * source and binary form provided that the above copyright and these terms
+ * are retained, verbatim, as the first lines of this file. Under no
+ * circumstances is the author responsible for the proper functioning of this
+ * software, nor does the author assume any responsibility for damages
+ * incurred with its use.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdarg.h>
+#include <fcntl.h>
+#include <sys/ioctl.h>
+#include <machine/console.h>
+
+#include "sysinstall.h"
+
+int
+set_termcap(void)
+{
+ char *term;
+ extern const char termcap_vt100[];
+ extern const char termcap_cons25[];
+ extern const char termcap_cons25_m[];
+
+ term = getenv("TERM");
+ if (term == NULL) {
+ int color_display;
+
+ if (ioctl(STDERR_FILENO, GIO_COLOR, &color_display) < 0) {
+ if (setenv("TERM", "vt100", 1) < 0)
+ return -1;
+ if (setenv("TERMCAP", termcap_vt100, 1) < 0)
+ return -1;
+ DebugFD = dup(1);
+ OnSerial = TRUE;
+ } else if (color_display) {
+ if (setenv("TERM", "cons25", 1) < 0)
+ return -1;
+ if (setenv("TERMCAP", termcap_cons25, 1) < 0)
+ return -1;
+ DebugFD = open("/dev/ttyv1",O_WRONLY);
+ } else {
+ if (setenv("TERM", "cons25-m", 1) < 0)
+ return -1;
+ if (setenv("TERMCAP", termcap_cons25_m, 1) < 0)
+ return -1;
+ DebugFD = open("/dev/ttyv1",O_WRONLY);
+ }
+ } else {
+ DebugFD = open("sysinstall.debug",
+ O_WRONLY|O_CREAT|O_TRUNC,0644);
+ }
+ return 0;
+}
OpenPOWER on IntegriCloud