1641N/A--- a/luit.c.orig Fri Jun 3 00:19:19 2016
1641N/A+++ b/luit.c Wed Jul 6 23:43:47 2016
1641N/A@@ -30,6 +30,7 @@
1641N/A #include <string.h>
1641N/A #include <locale.h>
1641N/A #include <sys/types.h>
1641N/A+#include <sys/strredir.h>
1641N/A #include <fcntl.h>
1641N/A #include <unistd.h>
1641N/A #include <errno.h>
1641N/A@@ -64,6 +65,7 @@
1641N/A
1641N/A static volatile int sigwinch_queued = 0;
1641N/A static volatile int sigchld_queued = 0;
1641N/A+int Console = 0;
1641N/A
1641N/A static int convert(int, int);
1641N/A static int condom(int, char **);
1641N/A@@ -303,6 +305,9 @@
1641N/A FatalError("-encoding requires an argument\n");
1641N/A locale_name = argv[i + 1];
1641N/A i += 2;
1641N/A+ } else if (!strcmp(argv[i], "-C")) {
1641N/A+ Console = 1;
1641N/A+ i += 1;
1641N/A } else if (!strcmp(argv[i], "-p")) {
1641N/A pipe_option = 1;
1641N/A i += 1;
1641N/A@@ -650,6 +655,14 @@
1641N/A close_waitpipe(0);
1641N/A }
1641N/A
1641N/A+ if (Console) {
1641N/A+ int consfd = open("/dev/console", O_RDONLY);
1641N/A+ if (consfd >= 0) {
1641N/A+ if (ioctl(consfd, SRIOCSREDIR, 0) != -1)
1641N/A+ close(consfd);
1641N/A+ }
1641N/A+ }
1641N/A+
1641N/A execvp(path, argv);
1641N/A perror("Couldn't exec");
1641N/A ExitProgram(1);