Rely on vt to supply geometry.
[rsc] --rw-rw-r-- M 786594 glenda sys 7906 Dec 5 15:35 sys/src/cmd/ssh/cmsg.c
/n/sourcesdump/2005/1205/plan9/sys/src/cmd/ssh/cmsg.c:252,303 -
/n/sourcesdump/2005/1206/plan9/sys/src/cmd/ssh/cmsg.c:252,276
}
/*
- * clumsy hack -- rather than open the font and fetch
- * the real character width and height, we assume that
- * LINES and COLS are initially correct and use them to
- * derive cwidth, cheight. this is definitely a mistake,
- * but i don't care. if you do, fix it.
+ * assumes that if you care, you're running under vt
+ * and therefore these are set.
*/
int
readgeom(int *nrow, int *ncol, int *width, int *height)
{
- int ret;
- static int first=1;
static int fd = -1;
- static int cwidth, cheight;
char buf[64];
- int n;
- ret = 0;
- /* defaults */
- *width = 640;
- *height = 480;
-
- if(fd < 0)
- fd = open("/dev/wctl", OREAD);
- if(fd >= 0){
- n = read(fd, buf, sizeof(buf));
- if(n < 48){
- close(fd);
- fd = -1;
- ret = -1;
- goto Out;
- }
- }
- *width = atoi(&buf[2*12]) - atoi(&buf[0*12]);
- *height = atoi(&buf[3*12]) - atoi(&buf[1*12]);
-
- Out:
- *nrow = intgetenv("LINES", 0);
- *ncol = intgetenv("COLS", 0);
- if(first){
- first = 0;
- if(*nrow)
- cwidth = *width/(*nrow);
- if(*ncol)
- cheight = *height/(*ncol);
- }
- return ret;
+ if(fd < 0 && (fd = open("/dev/wctl", OREAD)) < 0)
+ return -1;
+ /* wait for event, but don't care what it says */
+ if(read(fd, buf, sizeof buf) < 0)
+ return -1;
+ *nrow = intgetenv("LINES", 24);
+ *ncol = intgetenv("COLS", 80);
+ *width = intgetenv("XPIXELS", 640);
+ *height = intgetenv("YPIXELS", 480);
+ return 0;
}
void
[rsc] --rw-rw-r-- M 786594 glenda sys 9671 Dec 5 17:20 sys/src/cmd/ssh/ssh.c
/n/sourcesdump/2005/1205/plan9/sys/src/cmd/ssh/ssh.c:59,65 -
/n/sourcesdump/2005/1206/plan9/sys/src/cmd/ssh/ssh.c:59,65
void
usage(void)
{
- fprint(2, "usage: ssh [-CiImPpRrw] [-A authlist] [-c cipherlist] [user@]hostname [cmd [args]]\n");
+ fprint(2, "usage: ssh [-CiImPpRr] [-A authlist] [-c cipherlist] [user@]hostname [cmd [args]]\n");
exits("usage");
}
/n/sourcesdump/2005/1205/plan9/sys/src/cmd/ssh/ssh.c:78,83 -
/n/sourcesdump/2005/1206/plan9/sys/src/cmd/ssh/ssh.c:78,85
atexitkill(getpid());
dowinchange = 0;
+ if(getenv("LINES"))
+ dowinchange = 1;
usepty = -1;
user = nil;
ARGBEGIN{
/n/sourcesdump/2005/1205/plan9/sys/src/cmd/ssh/ssh.c:127,135 -
/n/sourcesdump/2005/1206/plan9/sys/src/cmd/ssh/ssh.c:129,134
break;
case 'r':
crstrip = 1;
- break;
- case 'w':
- dowinchange = 1;
break;
default:
usage();
[rsc] --rw-rw-r-- M 786594 glenda sys 9671 Dec 5 17:20 sys/src/cmd/ssh/ssh.c
|