1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +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);
}
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 Backend *back;
@ -106,7 +106,7 @@ int platform_default_i(const char *name, int def)
if (!strcmp(name, "TermWidth") ||
!strcmp(name, "TermHeight")) {
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 def;
@ -180,7 +180,7 @@ void ldisc_update(void *frontend, int echo, int edit)
*/
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. */
@ -366,7 +366,7 @@ char *get_ttymode(void *frontend, const char *mode)
void cleanup_termios(void)
{
if (local_tty)
tcsetattr(0, TCSANOW, &orig_termios);
tcsetattr(STDIN_FILENO, TCSANOW, &orig_termios);
}
bufchain stdout_data, stderr_data;
@ -374,7 +374,7 @@ bufchain stdout_data, stderr_data;
void try_output(int is_stderr)
{
bufchain *chain = (is_stderr ? &stderr_data : &stdout_data);
int fd = (is_stderr ? 2 : 1);
int fd = (is_stderr ? STDERR_FILENO : STDOUT_FILENO);
void *senddata;
int sendlen, ret;
@ -398,10 +398,10 @@ int from_backend(void *frontend_handle, int is_stderr,
if (is_stderr) {
bufchain_add(&stderr_data, data, len);
try_output(1);
try_output(TRUE);
} else {
bufchain_add(&stdout_data, data, len);
try_output(0);
try_output(FALSE);
}
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
* console.
*/
local_tty = (tcgetattr(0, &orig_termios) == 0);
local_tty = (tcgetattr(STDIN_FILENO, &orig_termios) == 0);
atexit(cleanup_termios);
ldisc_update(NULL, 1, 1);
@ -889,13 +889,13 @@ int main(int argc, char **argv)
/*
* Make sure that stdout/err are non-blocking.
*/
if ((fl = fcntl(1, F_GETFL)) == -1 ||
fcntl(1, F_SETFL, fl | O_NONBLOCK) == -1) {
if ((fl = fcntl(STDOUT_FILENO, F_GETFL)) == -1 ||
fcntl(STDOUT_FILENO, F_SETFL, fl | O_NONBLOCK) == -1) {
perror("stdout");
exit(1);
}
if ((fl = fcntl(2, F_GETFL)) == -1 ||
fcntl(2, F_SETFL, fl | O_NONBLOCK) == -1) {
if ((fl = fcntl(STDERR_FILENO, F_GETFL)) == -1 ||
fcntl(STDERR_FILENO, F_SETFL, fl | O_NONBLOCK) == -1) {
perror("stderr");
exit(1);
}
@ -921,17 +921,17 @@ int main(int argc, char **argv)
back->sendok(backhandle) &&
back->sendbuffer(backhandle) < MAX_STDIN_BACKLOG) {
/* 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 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 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. */
@ -1028,12 +1028,12 @@ int main(int argc, char **argv)
back->size(backhandle, size.ws_col, size.ws_row);
}
if (FD_ISSET(0, &rset)) {
if (FD_ISSET(STDIN_FILENO, &rset)) {
char buf[4096];
int ret;
if (connopen && back->connected(backhandle)) {
ret = read(0, buf, sizeof(buf));
ret = read(STDIN_FILENO, buf, sizeof(buf));
if (ret < 0) {
perror("stdin: read");
exit(1);
@ -1049,12 +1049,12 @@ int main(int argc, char **argv)
}
}
if (FD_ISSET(1, &wset)) {
try_output(0);
if (FD_ISSET(STDOUT_FILENO, &wset)) {
try_output(FALSE);
}
if (FD_ISSET(2, &wset)) {
try_output(1);
if (FD_ISSET(STDERR_FILENO, &wset)) {
try_output(TRUE);
}
if ((!connopen || !back->connected(backhandle)) &&