chore: 清理残余文件
This commit is contained in:
89
node_modules/node-pty/deps/winpty/misc/UnixEcho.cc
generated
vendored
Normal file
89
node_modules/node-pty/deps/winpty/misc/UnixEcho.cc
generated
vendored
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* Unix test code that puts the terminal into raw mode, then echos typed
|
||||
* characters to stdout. Derived from sample code in the Stevens book, posted
|
||||
* online at http://www.lafn.org/~dave/linux/terminalIO.html.
|
||||
*/
|
||||
|
||||
#include <termios.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "FormatChar.h"
|
||||
|
||||
static struct termios save_termios;
|
||||
static int term_saved;
|
||||
|
||||
/* RAW! mode */
|
||||
int tty_raw(int fd)
|
||||
{
|
||||
struct termios buf;
|
||||
|
||||
if (tcgetattr(fd, &save_termios) < 0) /* get the original state */
|
||||
return -1;
|
||||
|
||||
buf = save_termios;
|
||||
|
||||
/* echo off, canonical mode off, extended input
|
||||
processing off, signal chars off */
|
||||
buf.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
|
||||
|
||||
/* no SIGINT on BREAK, CR-to-NL off, input parity
|
||||
check off, don't strip the 8th bit on input,
|
||||
ouput flow control off */
|
||||
buf.c_iflag &= ~(BRKINT | ICRNL | ISTRIP | IXON);
|
||||
|
||||
/* clear size bits, parity checking off */
|
||||
buf.c_cflag &= ~(CSIZE | PARENB);
|
||||
|
||||
/* set 8 bits/char */
|
||||
buf.c_cflag |= CS8;
|
||||
|
||||
/* output processing off */
|
||||
buf.c_oflag &= ~(OPOST);
|
||||
|
||||
buf.c_cc[VMIN] = 1; /* 1 byte at a time */
|
||||
buf.c_cc[VTIME] = 0; /* no timer on input */
|
||||
|
||||
if (tcsetattr(fd, TCSAFLUSH, &buf) < 0)
|
||||
return -1;
|
||||
|
||||
term_saved = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* set it to normal! */
|
||||
int tty_reset(int fd)
|
||||
{
|
||||
if (term_saved)
|
||||
if (tcsetattr(fd, TCSAFLUSH, &save_termios) < 0)
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int main()
|
||||
{
|
||||
tty_raw(0);
|
||||
|
||||
int count = 0;
|
||||
while (true) {
|
||||
char ch;
|
||||
char buf[16];
|
||||
int actual = read(0, &ch, 1);
|
||||
if (actual != 1) {
|
||||
perror("read error");
|
||||
break;
|
||||
}
|
||||
formatChar(buf, ch);
|
||||
fputs(buf, stdout);
|
||||
fflush(stdout);
|
||||
if (ch == 3) // Ctrl-C
|
||||
break;
|
||||
}
|
||||
|
||||
tty_reset(0);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user