Lines Matching refs:TT
98 TT.sc = 0;
100 TT.speeds[TT.sc] = encode(ptr);
101 if (TT.speeds[TT.sc] < 0) perror_exit("bad speed");
102 if (++TT.sc > 10) perror_exit("too many speeds, max is 10");
111 if (*++toys.optargs) TT.tty_name = xmprintf("%s", *toys.optargs);
113 TT.tty_name = xmprintf("%s", *toys.optargs);
122 if (strcmp(TT.tty_name, "-")) {
123 if (*(TT.tty_name) != '/') TT.tty_name = xmprintf("/dev/%s", TT.tty_name);
131 xopen_stdio(TT.tty_name, O_RDWR|O_NDELAY|O_CLOEXEC);
136 if (!isatty(0)) perror_exit("/dev/%s: not a tty", TT.tty_name);
137 chown(TT.tty_name, 0, 0); // change ownership, Hope login will change this
138 chmod(TT.tty_name, 0620);
149 if (tcgetattr(STDIN_FILENO, &TT.termios) < 0) perror_exit("tcgetattr");
152 TT.termios.c_cflag &= (0|CSTOPB|PARENB|PARODD);
154 if (toys.optflags & FLAG_h) TT.termios.c_cflag |= CRTSCTS;
156 if (toys.optflags & FLAG_L) TT.termios.c_cflag |= CLOCAL;
157 TT.termios.c_cc[VTIME] = 0;
158 TT.termios.c_cc[VMIN] = 1;
159 TT.termios.c_oflag = OPOST|ONLCR;
160 TT.termios.c_cflag |= CS8|CREAD|HUPCL|CBAUDEX;
162 TT.termios.c_lflag |= ISIG|ICANON|ECHO|ECHOE|ECHOK|ECHOKE;
163 TT.termios.c_cc[VINTR] = CTL('C');
164 TT.termios.c_cc[VQUIT] = CTL('\\');
165 TT.termios.c_cc[VEOF] = CTL('D');
166 TT.termios.c_cc[VEOL] = '\n';
167 TT.termios.c_cc[VKILL] = CTL('U');
168 TT.termios.c_cc[VERASE] = 127; // CERASE
169 TT.termios.c_iflag = ICRNL|IXON|IXOFF;
171 if (TT.speeds[0] != B0) cfsetspeed(&TT.termios, TT.speeds[0]);
172 if (tcsetattr(STDIN_FILENO, TCSANOW, &TT.termios) < 0)
184 vmin = TT.termios.c_cc[VMIN]; // Store old
185 TT.termios.c_cc[VMIN] = 0; // No block even queue is empty.
186 if (tcsetattr(STDIN_FILENO, TCSANOW, &TT.termios) < 0)
188 size = readall(STDIN_FILENO, TT.buff, sizeof(TT.buff)-1);
190 for (ptr = TT.buff; ptr < TT.buff+size; ptr++) {
193 if (speed > 0) cfsetspeed(&TT.termios,speed);
198 TT.termios.c_cc[VMIN] = vmin; //restore old value
199 if (tcsetattr(STDIN_FILENO, TCSANOW, &TT.termios) < 0)
224 int size, fd = open(TT.issue_str, O_RDONLY);
236 if (*ch == 'l') fputs(TT.tty_name, stdout);
248 if (!(toys.optflags & FLAG_i)) write_issue(TT.issue_str);
250 TT.buff[0] = getchar();
251 if (!TT.buff[0] && TT.sc > 1) return 0; // Switch speed
252 if (TT.buff[0] == '\n') continue;
253 if (TT.buff[0] != '\n')
254 if (!fgets(&TT.buff[1], HOSTNAME_SIZE-1, stdin)) _exit(1);
255 while (i < HOSTNAME_SIZE-1 && isgraph(TT.buff[i])) i++;
256 TT.buff[i] = 0;
281 if (strlen(TT.host_str) > UT_HOSTSIZE) perror_msg_raw(utmperr);
282 else xstrncpy(entry.ut_host, TT.host_str, UT_HOSTSIZE);
289 if (strlen(TT.host_str) > UT_HOSTSIZE) perror_msg_raw(utmperr);
290 else xstrncpy(entry.ut_host, TT.host_str, UT_HOSTSIZE);
301 if (!(toys.optflags & FLAG_f)) TT.issue_str = "/etc/issue";
302 if (toys.optflags & FLAG_l) ptr[0] = TT.login_str;
309 writeall(STDOUT_FILENO,TT.init_str,strlen(TT.init_str));
311 if (toys.optflags & FLAG_t) alarm(TT.timeout);
325 index = index % TT.sc;
326 cfsetspeed(&TT.termios, TT.speeds[index]); // Select from multiple speeds
328 if (tcsetattr(STDIN_FILENO, TCSANOW, &TT.termios) < 0)
331 ptr[1]=TT.buff; //put the username in the login command line