1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00

Manifest constants are good. Introduce plink to STD{IN,OUT,ERR}_FILENO,

TRUE, and FALSE.

[originally from svn r7741]
This commit is contained in:
Ben Harris 2007-09-24 21:31:45 +00:00
parent d0db31a1ca
commit 57c3ac7f14

View File

@ -80,7 +80,7 @@ void cmdline_error(char *p, ...)
exit(1); exit(1);
} }
static int local_tty = 0; /* do we have a local tty? */ static int local_tty = FALSE; /* do we have a local tty? */
static struct termios orig_termios; static struct termios orig_termios;
static Backend *back; static Backend *back;
@ -106,7 +106,7 @@ int platform_default_i(const char *name, int def)
if (!strcmp(name, "TermWidth") || if (!strcmp(name, "TermWidth") ||
!strcmp(name, "TermHeight")) { !strcmp(name, "TermHeight")) {
struct winsize size; struct winsize size;
if (ioctl(0, TIOCGWINSZ, (void *)&size) >= 0) if (ioctl(STDIN_FILENO, TIOCGWINSZ, (void *)&size) >= 0)
return (!strcmp(name, "TermWidth") ? size.ws_col : size.ws_row); return (!strcmp(name, "TermWidth") ? size.ws_col : size.ws_row);
} }
return def; return def;
@ -180,7 +180,7 @@ void ldisc_update(void *frontend, int echo, int edit)
*/ */
mode.c_iflag = (mode.c_iflag | INPCK | PARMRK) & ~IGNPAR; mode.c_iflag = (mode.c_iflag | INPCK | PARMRK) & ~IGNPAR;
tcsetattr(0, TCSANOW, &mode); tcsetattr(STDIN_FILENO, TCSANOW, &mode);
} }
/* Helper function to extract a special character from a termios. */ /* Helper function to extract a special character from a termios. */
@ -366,7 +366,7 @@ char *get_ttymode(void *frontend, const char *mode)
void cleanup_termios(void) void cleanup_termios(void)
{ {
if (local_tty) if (local_tty)
tcsetattr(0, TCSANOW, &orig_termios); tcsetattr(STDIN_FILENO, TCSANOW, &orig_termios);
} }
bufchain stdout_data, stderr_data; bufchain stdout_data, stderr_data;
@ -374,7 +374,7 @@ bufchain stdout_data, stderr_data;
void try_output(int is_stderr) void try_output(int is_stderr)
{ {
bufchain *chain = (is_stderr ? &stderr_data : &stdout_data); bufchain *chain = (is_stderr ? &stderr_data : &stdout_data);
int fd = (is_stderr ? 2 : 1); int fd = (is_stderr ? STDERR_FILENO : STDOUT_FILENO);
void *senddata; void *senddata;
int sendlen, ret; int sendlen, ret;
@ -398,10 +398,10 @@ int from_backend(void *frontend_handle, int is_stderr,
if (is_stderr) { if (is_stderr) {
bufchain_add(&stderr_data, data, len); bufchain_add(&stderr_data, data, len);
try_output(1); try_output(TRUE);
} else { } else {
bufchain_add(&stdout_data, data, len); bufchain_add(&stdout_data, data, len);
try_output(0); try_output(FALSE);
} }
osize = bufchain_size(&stdout_data); osize = bufchain_size(&stdout_data);
@ -880,7 +880,7 @@ int main(int argc, char **argv)
* fails, because we know we aren't necessarily running in a * fails, because we know we aren't necessarily running in a
* console. * console.
*/ */
local_tty = (tcgetattr(0, &orig_termios) == 0); local_tty = (tcgetattr(STDIN_FILENO, &orig_termios) == 0);
atexit(cleanup_termios); atexit(cleanup_termios);
ldisc_update(NULL, 1, 1); ldisc_update(NULL, 1, 1);
@ -889,13 +889,13 @@ int main(int argc, char **argv)
/* /*
* Make sure that stdout/err are non-blocking. * Make sure that stdout/err are non-blocking.
*/ */
if ((fl = fcntl(1, F_GETFL)) == -1 || if ((fl = fcntl(STDOUT_FILENO, F_GETFL)) == -1 ||
fcntl(1, F_SETFL, fl | O_NONBLOCK) == -1) { fcntl(STDOUT_FILENO, F_SETFL, fl | O_NONBLOCK) == -1) {
perror("stdout"); perror("stdout");
exit(1); exit(1);
} }
if ((fl = fcntl(2, F_GETFL)) == -1 || if ((fl = fcntl(STDERR_FILENO, F_GETFL)) == -1 ||
fcntl(2, F_SETFL, fl | O_NONBLOCK) == -1) { fcntl(STDERR_FILENO, F_SETFL, fl | O_NONBLOCK) == -1) {
perror("stderr"); perror("stderr");
exit(1); exit(1);
} }
@ -921,17 +921,17 @@ int main(int argc, char **argv)
back->sendok(backhandle) && back->sendok(backhandle) &&
back->sendbuffer(backhandle) < MAX_STDIN_BACKLOG) { back->sendbuffer(backhandle) < MAX_STDIN_BACKLOG) {
/* If we're OK to send, then try to read from stdin. */ /* If we're OK to send, then try to read from stdin. */
FD_SET_MAX(0, maxfd, rset); FD_SET_MAX(STDIN_FILENO, maxfd, rset);
} }
if (bufchain_size(&stdout_data) > 0) { if (bufchain_size(&stdout_data) > 0) {
/* If we have data for stdout, try to write to stdout. */ /* If we have data for stdout, try to write to stdout. */
FD_SET_MAX(1, maxfd, wset); FD_SET_MAX(STDOUT_FILENO, maxfd, wset);
} }
if (bufchain_size(&stderr_data) > 0) { if (bufchain_size(&stderr_data) > 0) {
/* If we have data for stderr, try to write to stderr. */ /* If we have data for stderr, try to write to stderr. */
FD_SET_MAX(2, maxfd, wset); FD_SET_MAX(STDERR_FILENO, maxfd, wset);
} }
/* Count the currently active fds. */ /* Count the currently active fds. */
@ -1028,12 +1028,12 @@ int main(int argc, char **argv)
back->size(backhandle, size.ws_col, size.ws_row); back->size(backhandle, size.ws_col, size.ws_row);
} }
if (FD_ISSET(0, &rset)) { if (FD_ISSET(STDIN_FILENO, &rset)) {
char buf[4096]; char buf[4096];
int ret; int ret;
if (connopen && back->connected(backhandle)) { if (connopen && back->connected(backhandle)) {
ret = read(0, buf, sizeof(buf)); ret = read(STDIN_FILENO, buf, sizeof(buf));
if (ret < 0) { if (ret < 0) {
perror("stdin: read"); perror("stdin: read");
exit(1); exit(1);
@ -1049,12 +1049,12 @@ int main(int argc, char **argv)
} }
} }
if (FD_ISSET(1, &wset)) { if (FD_ISSET(STDOUT_FILENO, &wset)) {
try_output(0); try_output(FALSE);
} }
if (FD_ISSET(2, &wset)) { if (FD_ISSET(STDERR_FILENO, &wset)) {
try_output(1); try_output(TRUE);
} }
if ((!connopen || !back->connected(backhandle)) && if ((!connopen || !back->connected(backhandle)) &&