1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-06-30 11:02:48 -05:00

Cleanups from yesterday's destabilisation: lots of stuff in

terminal.c was apparently relying on implicit initialisation to
zero, and also I've removed the backends' dependency on terminal.h
by having terminal sizes explicitly passed in to back->size().

[originally from svn r2117]
This commit is contained in:
Simon Tatham
2002-10-23 12:41:35 +00:00
parent bddc6d16ee
commit a9bd716df8
6 changed files with 83 additions and 46 deletions

View File

@ -18,7 +18,6 @@
#include <sys/ioctl.h>
#include "putty.h"
#include "terminal.h"
#ifndef FALSE
#define FALSE 0
@ -60,6 +59,7 @@ static char pty_name[FILENAME_MAX];
static int pty_stamped_utmp = 0;
static int pty_child_pid;
static int pty_utmp_helper_pid, pty_utmp_helper_pipe;
static int pty_term_width, pty_term_height;
static sig_atomic_t pty_child_dead;
#ifndef OMIT_UTMP
static struct utmp utmp_entry;
@ -71,8 +71,6 @@ int pty_child_is_dead(void)
return pty_child_dead;
}
static void pty_size(void);
static void setup_utmp(char *ttyname, char *location)
{
#ifndef OMIT_UTMP
@ -379,6 +377,9 @@ static char *pty_init(void *frontend,
int slavefd;
pid_t pid, pgrp;
pty_term_width = cfg.width;
pty_term_height = cfg.height;
if (pty_master_fd < 0)
pty_open_master();
@ -519,14 +520,17 @@ static int pty_sendbuffer(void)
/*
* Called to set the size of the window
*/
static void pty_size(void)
static void pty_size(int width, int height)
{
struct winsize size;
size.ws_row = (unsigned short)term->rows;
size.ws_col = (unsigned short)term->cols;
size.ws_xpixel = (unsigned short) term->cols * font_dimension(0);
size.ws_ypixel = (unsigned short) term->rows * font_dimension(1);
pty_term_width = width;
pty_term_height = height;
size.ws_row = (unsigned short)pty_term_height;
size.ws_col = (unsigned short)pty_term_width;
size.ws_xpixel = (unsigned short) pty_term_width * font_dimension(0);
size.ws_ypixel = (unsigned short) pty_term_height * font_dimension(1);
ioctl(pty_master_fd, TIOCSWINSZ, (void *)&size);
return;
}