parent
9d64c05a68
commit
d24e64f9be
@ -1 +1,2 @@
|
|||||||
screen-4.0.3.tar.gz
|
screen-4.0.3.tar.gz
|
||||||
|
/screen-20101110git066b098.tar.bz2
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
--- ansi.c.orig 2003-12-04 10:59:05.000000000 -0500
|
|
||||||
+++ ansi.c 2003-12-04 10:59:20.000000000 -0500
|
|
||||||
@@ -559,7 +559,7 @@
|
|
||||||
{
|
|
||||||
case '0': case '1': case '2': case '3': case '4':
|
|
||||||
case '5': case '6': case '7': case '8': case '9':
|
|
||||||
- if (curr->w_NumArgs < MAXARGS)
|
|
||||||
+ if (curr->w_NumArgs >= 0 && curr->w_NumArgs < MAXARGS)
|
|
||||||
{
|
|
||||||
if (curr->w_args[curr->w_NumArgs] < 100000000)
|
|
||||||
curr->w_args[curr->w_NumArgs] =
|
|
||||||
--- resize.c.old 2003-11-27 02:55:07.000000000 +0200
|
|
||||||
+++ resize.c 2003-11-27 02:58:33.000000000 +0200
|
|
||||||
@@ -682,6 +682,17 @@
|
|
||||||
if (wi == 0)
|
|
||||||
he = hi = 0;
|
|
||||||
|
|
||||||
+ if (wi > 1000)
|
|
||||||
+ {
|
|
||||||
+ Msg(0, "Window width too large, truncated");
|
|
||||||
+ wi = 1000;
|
|
||||||
+ }
|
|
||||||
+ if (he > 1000)
|
|
||||||
+ {
|
|
||||||
+ Msg(0, "Window height too large, truncated");
|
|
||||||
+ he = 1000;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (p->w_width == wi && p->w_height == he && p->w_histheight == hi)
|
|
||||||
{
|
|
||||||
debug("ChangeWindowSize: No change.\n");
|
|
@ -1,11 +0,0 @@
|
|||||||
--- screen-4.0.2/screen.h.maxstr 2006-07-10 13:37:11.000000000 +0200
|
|
||||||
+++ screen-4.0.2/screen.h 2006-07-10 13:36:36.000000000 +0200
|
|
||||||
@@ -86,7 +86,7 @@
|
|
||||||
|
|
||||||
#define Ctrl(c) ((c)&037)
|
|
||||||
|
|
||||||
-#define MAXSTR 256
|
|
||||||
+#define MAXSTR 4096
|
|
||||||
#define MAXARGS 64
|
|
||||||
#define MSGWAIT 5
|
|
||||||
#define MSGMINWAIT 1
|
|
@ -1,20 +0,0 @@
|
|||||||
diff -up screen-4.0.3/config.h.in.configh screen-4.0.3/config.h.in
|
|
||||||
--- screen-4.0.3/config.h.in.configh 2006-10-23 15:06:32.000000000 +0200
|
|
||||||
+++ screen-4.0.3/config.h.in 2008-05-19 15:47:19.000000000 +0200
|
|
||||||
@@ -291,7 +291,7 @@
|
|
||||||
* Define USE_LOCALE if you want screen to use the locale names
|
|
||||||
* for the name of the month and day of the week.
|
|
||||||
*/
|
|
||||||
-#define USE_LOCALE
|
|
||||||
+#undef USE_LOCALE
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Define USE_PAM if your system supports PAM (Pluggable Authentication
|
|
||||||
@@ -563,7 +563,6 @@
|
|
||||||
* If you are on a SYS V machine that restricts filename length to 14
|
|
||||||
* characters, you may need to enforce that by setting NAME_MAX to 14
|
|
||||||
*/
|
|
||||||
-#undef NAME_MAX /* KEEP_UNDEF_HERE override system value */
|
|
||||||
#undef NAME_MAX
|
|
||||||
|
|
||||||
/*
|
|
@ -1,339 +0,0 @@
|
|||||||
diff -up screen-4.0.3/doc/screen.1.ipv6 screen-4.0.3/doc/screen.1
|
|
||||||
--- screen-4.0.3/doc/screen.1.ipv6 2003-12-05 14:51:57.000000000 +0100
|
|
||||||
+++ screen-4.0.3/doc/screen.1 2010-11-12 14:29:52.125028912 +0100
|
|
||||||
@@ -366,6 +366,12 @@ Send the specified command to a running
|
|
||||||
the \fB-d\fP or \fB-r\fP option to tell screen to look only for
|
|
||||||
attached or detached screen sessions. Note that this command doesn't
|
|
||||||
work if the session is password protected.
|
|
||||||
+.TP 5
|
|
||||||
+.B \-4
|
|
||||||
+Resolve hostnames only to IPv4 addresses.
|
|
||||||
+.TP 5
|
|
||||||
+.B \-6
|
|
||||||
+Resolve hostnames only to IPv6 addresses.
|
|
||||||
|
|
||||||
|
|
||||||
.SH "DEFAULT KEY BINDINGS"
|
|
||||||
--- screen-4.0.3/window.h.ipv6 2003-08-21 16:57:30.000000000 +0200
|
|
||||||
+++ screen-4.0.3/window.h 2006-11-15 13:36:57.000000000 +0100
|
|
||||||
@@ -254,7 +254,7 @@
|
|
||||||
struct display *w_zdisplay;
|
|
||||||
#endif
|
|
||||||
#ifdef BUILTIN_TELNET
|
|
||||||
- struct sockaddr_in w_telsa;
|
|
||||||
+ struct sockaddr_storage w_telsa;
|
|
||||||
char w_telbuf[IOSIZE];
|
|
||||||
int w_telbufl;
|
|
||||||
char w_telmopts[256];
|
|
||||||
--- screen-4.0.3/window.c.ipv6 2003-12-05 14:45:41.000000000 +0100
|
|
||||||
+++ screen-4.0.3/window.c 2006-11-15 13:39:27.000000000 +0100
|
|
||||||
@@ -582,6 +582,13 @@
|
|
||||||
n = pp - wtab;
|
|
||||||
debug1("Makewin creating %d\n", n);
|
|
||||||
|
|
||||||
+#ifdef BUILTIN_TELNET
|
|
||||||
+ if(!strcmp(nwin.args[0], "//telnet")) {
|
|
||||||
+ type = W_TYPE_TELNET;
|
|
||||||
+ TtyName = "telnet";
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
if ((f = OpenDevice(nwin.args, nwin.lflag, &type, &TtyName)) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
@@ -736,7 +743,7 @@
|
|
||||||
#ifdef BUILTIN_TELNET
|
|
||||||
if (type == W_TYPE_TELNET)
|
|
||||||
{
|
|
||||||
- if (TelConnect(p))
|
|
||||||
+ if (TelOpenAndConnect(p))
|
|
||||||
{
|
|
||||||
FreeWindow(p);
|
|
||||||
return -1;
|
|
||||||
@@ -834,6 +841,13 @@
|
|
||||||
int lflag, f;
|
|
||||||
|
|
||||||
lflag = nwin_default.lflag;
|
|
||||||
+#ifdef BUILTIN_TELNET
|
|
||||||
+ if(!strcmp(p->w_cmdargs[0], "//telnet")) {
|
|
||||||
+ p->w_type = W_TYPE_TELNET;
|
|
||||||
+ TtyName = "telnet";
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+#endif
|
|
||||||
if ((f = OpenDevice(p->w_cmdargs, lflag, &p->w_type, &TtyName)) < 0)
|
|
||||||
return -1;
|
|
||||||
|
|
||||||
@@ -864,7 +878,7 @@
|
|
||||||
#ifdef BUILTIN_TELNET
|
|
||||||
if (p->w_type == W_TYPE_TELNET)
|
|
||||||
{
|
|
||||||
- if (TelConnect(p))
|
|
||||||
+ if (TelOpenAndConnect(p))
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
@@ -1007,16 +1021,6 @@
|
|
||||||
|
|
||||||
if (!arg)
|
|
||||||
return -1;
|
|
||||||
-#ifdef BUILTIN_TELNET
|
|
||||||
- if (strcmp(arg, "//telnet") == 0)
|
|
||||||
- {
|
|
||||||
- f = TelOpen(args + 1);
|
|
||||||
- lflag = 0;
|
|
||||||
- *typep = W_TYPE_TELNET;
|
|
||||||
- *namep = "telnet";
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
-#endif
|
|
||||||
if ((stat(arg, &st)) == 0 && S_ISCHR(st.st_mode))
|
|
||||||
{
|
|
||||||
if (access(arg, R_OK | W_OK) == -1)
|
|
||||||
--- screen-4.0.3/teln.c.ipv6 2003-09-08 16:26:56.000000000 +0200
|
|
||||||
+++ screen-4.0.3/teln.c 2006-11-15 13:36:57.000000000 +0100
|
|
||||||
@@ -25,6 +25,7 @@
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <netdb.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
@@ -37,12 +38,13 @@
|
|
||||||
extern struct layer *flayer;
|
|
||||||
extern int visual_bell;
|
|
||||||
extern char screenterm[];
|
|
||||||
+extern int af;
|
|
||||||
|
|
||||||
static void TelReply __P((struct win *, char *, int));
|
|
||||||
static void TelDocmd __P((struct win *, int, int));
|
|
||||||
static void TelDosub __P((struct win *));
|
|
||||||
-
|
|
||||||
-#define TEL_DEFPORT 23
|
|
||||||
+// why TEL_DEFPORT has "
|
|
||||||
+#define TEL_DEFPORT "23"
|
|
||||||
#define TEL_CONNECTING (-2)
|
|
||||||
|
|
||||||
#define TC_IAC 255
|
|
||||||
@@ -99,86 +101,78 @@
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
-TelOpen(args)
|
|
||||||
-char **args;
|
|
||||||
-{
|
|
||||||
- int fd;
|
|
||||||
- int on = 1;
|
|
||||||
-
|
|
||||||
- if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
|
|
||||||
- {
|
|
||||||
- Msg(errno, "TelOpen: socket");
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- if (setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)))
|
|
||||||
- Msg(errno, "TelOpen: setsockopt SO_OOBINLINE");
|
|
||||||
- return fd;
|
|
||||||
-}
|
|
||||||
-
|
|
||||||
-int
|
|
||||||
-TelConnect(p)
|
|
||||||
-struct win *p;
|
|
||||||
-{
|
|
||||||
- int port = TEL_DEFPORT;
|
|
||||||
- struct hostent *hp;
|
|
||||||
- char **args;
|
|
||||||
+TelOpenAndConnect(struct win *p) {
|
|
||||||
+ int fd, on = 1;
|
|
||||||
char buf[256];
|
|
||||||
|
|
||||||
- args = p->w_cmdargs + 1;
|
|
||||||
-
|
|
||||||
- if (!*args)
|
|
||||||
- {
|
|
||||||
- Msg(0, "Usage: screen //telnet host [port]");
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- if (args[1])
|
|
||||||
- port = atoi(args[1]);
|
|
||||||
- p->w_telsa.sin_family = AF_INET;
|
|
||||||
- if((p->w_telsa.sin_addr.s_addr = inet_addr(*args)) == -1)
|
|
||||||
- {
|
|
||||||
- if ((hp = gethostbyname(*args)) == NULL)
|
|
||||||
- {
|
|
||||||
- Msg(0, "unknown host: %s", *args);
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- if (hp->h_length != sizeof(p->w_telsa.sin_addr.s_addr) || hp->h_addrtype != AF_INET)
|
|
||||||
- {
|
|
||||||
- Msg(0, "Bad address type for %s", hp->h_name);
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- bcopy((char *)hp->h_addr,(char *)&p->w_telsa.sin_addr.s_addr, hp->h_length);
|
|
||||||
- p->w_telsa.sin_family = hp->h_addrtype;
|
|
||||||
- }
|
|
||||||
- p->w_telsa.sin_port = htons(port);
|
|
||||||
- if (port != TEL_DEFPORT)
|
|
||||||
- sprintf(buf, "Trying %s %d...", inet_ntoa(p->w_telsa.sin_addr), port);
|
|
||||||
- else
|
|
||||||
- sprintf(buf, "Trying %s...", inet_ntoa(p->w_telsa.sin_addr));
|
|
||||||
- WriteString(p, buf, strlen(buf));
|
|
||||||
- if (connect(p->w_ptyfd, (struct sockaddr *)&p->w_telsa, sizeof(p->w_telsa)))
|
|
||||||
- {
|
|
||||||
- if (errno == EINPROGRESS)
|
|
||||||
- {
|
|
||||||
- p->w_telstate = TEL_CONNECTING;
|
|
||||||
- p->w_telconnev.fd = p->w_ptyfd;
|
|
||||||
- p->w_telconnev.handler = tel_connev_fn;
|
|
||||||
- p->w_telconnev.data = (char *)p;
|
|
||||||
- p->w_telconnev.type = EV_WRITE;
|
|
||||||
- p->w_telconnev.pri = 1;
|
|
||||||
- debug("telnet connect in progress...\n");
|
|
||||||
- evenq(&p->w_telconnev);
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- {
|
|
||||||
- Msg(errno, "TelOpen: connect");
|
|
||||||
- return -1;
|
|
||||||
- }
|
|
||||||
- }
|
|
||||||
- else
|
|
||||||
- WriteString(p, "connected.\r\n", 12);
|
|
||||||
- if (port == TEL_DEFPORT)
|
|
||||||
- TelReply(p, (char *)tn_init, sizeof(tn_init));
|
|
||||||
- return 0;
|
|
||||||
+ struct addrinfo hints, *res0, *res;
|
|
||||||
+
|
|
||||||
+ if (!(p->w_cmdargs[1])) {
|
|
||||||
+ Msg(0, "Usage: screen //telnet host [port]");
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ memset(&hints, 0, sizeof(hints));
|
|
||||||
+ hints.ai_family = af;
|
|
||||||
+ hints.ai_socktype = SOCK_STREAM;
|
|
||||||
+ hints.ai_protocol = IPPROTO_TCP;
|
|
||||||
+ if(getaddrinfo(p->w_cmdargs[1], p->w_cmdargs[2] ? p->w_cmdargs[2] : TEL_DEFPORT,
|
|
||||||
+ &hints, &res0)) {
|
|
||||||
+ Msg(0, "unknown host: %s", p->w_cmdargs[1]);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ for(res = res0; res; res = res->ai_next) {
|
|
||||||
+ if((fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) == -1) {
|
|
||||||
+ if(res->ai_next)
|
|
||||||
+ continue;
|
|
||||||
+ else {
|
|
||||||
+ Msg(errno, "TelOpenAndConnect: socket");
|
|
||||||
+ freeaddrinfo(res0);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)))
|
|
||||||
+ Msg(errno, "TelOpenAndConnect: setsockopt SO_OOBINLINE");
|
|
||||||
+
|
|
||||||
+ if (p->w_cmdargs[2] && strcmp(p->w_cmdargs[2], TEL_DEFPORT))
|
|
||||||
+ snprintf(buf, 256, "Trying %s %s...", p->w_cmdargs[1], p->w_cmdargs[2]);
|
|
||||||
+ else
|
|
||||||
+ snprintf(buf, 256, "Trying %s...", p->w_cmdargs[1]);
|
|
||||||
+ WriteString(p, buf, strlen(buf));
|
|
||||||
+ if (connect(fd, res->ai_addr, res->ai_addrlen)) {
|
|
||||||
+ if (errno == EINPROGRESS) {
|
|
||||||
+ p->w_telstate = TEL_CONNECTING;
|
|
||||||
+ p->w_telconnev.fd = fd;
|
|
||||||
+ p->w_telconnev.handler = tel_connev_fn;
|
|
||||||
+ p->w_telconnev.data = (char *)p;
|
|
||||||
+ p->w_telconnev.type = EV_WRITE;
|
|
||||||
+ p->w_telconnev.pri = 1;
|
|
||||||
+ debug("telnet connect in progress...\n");
|
|
||||||
+ evenq(&p->w_telconnev);
|
|
||||||
+ }
|
|
||||||
+ else {
|
|
||||||
+ close(fd);
|
|
||||||
+ if(res->ai_next)
|
|
||||||
+ continue;
|
|
||||||
+ else {
|
|
||||||
+ Msg(errno, "TelOpenAndConnect: connect");
|
|
||||||
+ freeaddrinfo(res0);
|
|
||||||
+ return -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ WriteString(p, "connected.\r\n", 12);
|
|
||||||
+ if (!(p->w_cmdargs[2] && strcmp(p->w_cmdargs[2], TEL_DEFPORT)))
|
|
||||||
+ TelReply(p, (char *)tn_init, sizeof(tn_init));
|
|
||||||
+ p->w_ptyfd = fd;
|
|
||||||
+ memcpy(&p->w_telsa, &res->ai_addr, sizeof(res->ai_addr));
|
|
||||||
+ freeaddrinfo(res0);
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
--- screen-4.0.3/help.c.ipv6 2003-09-08 16:25:33.000000000 +0200
|
|
||||||
+++ screen-4.0.3/help.c 2006-11-15 13:36:57.000000000 +0100
|
|
||||||
@@ -49,6 +49,10 @@
|
|
||||||
{
|
|
||||||
printf("Use: %s [-opts] [cmd [args]]\n", myname);
|
|
||||||
printf(" or: %s -r [host.tty]\n\nOptions:\n", myname);
|
|
||||||
+#ifdef BUILTIN_TELNET
|
|
||||||
+ printf("-4 Resolve hostnames only to IPv4 addresses.\n");
|
|
||||||
+ printf("-6 Resolve hostnames only to IPv6 addresses.\n");
|
|
||||||
+#endif
|
|
||||||
printf("-a Force all capabilities into each window's termcap.\n");
|
|
||||||
printf("-A -[r|R] Adapt all windows to the new display width & height.\n");
|
|
||||||
printf("-c file Read configuration file instead of '.screenrc'.\n");
|
|
||||||
--- screen-4.0.3/screen.c.ipv6 2003-09-08 16:26:41.000000000 +0200
|
|
||||||
+++ screen-4.0.3/screen.c 2006-11-15 13:36:57.000000000 +0100
|
|
||||||
@@ -231,8 +231,9 @@
|
|
||||||
struct win *fore;
|
|
||||||
struct win *windows;
|
|
||||||
struct win *console_window;
|
|
||||||
-
|
|
||||||
-
|
|
||||||
+#ifdef BUILTIN_TELNET
|
|
||||||
+int af;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Do this last
|
|
||||||
@@ -471,6 +472,9 @@
|
|
||||||
nwin = nwin_undef;
|
|
||||||
nwin_options = nwin_undef;
|
|
||||||
strcpy(screenterm, "screen");
|
|
||||||
+#ifdef BUILTIN_TELNET
|
|
||||||
+ af = AF_UNSPEC;
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
logreopen_register(lf_secreopen);
|
|
||||||
|
|
||||||
@@ -505,6 +509,14 @@
|
|
||||||
{
|
|
||||||
switch (*ap)
|
|
||||||
{
|
|
||||||
+#ifdef BUILTIN_TELNET
|
|
||||||
+ case '4':
|
|
||||||
+ af = AF_INET;
|
|
||||||
+ break;
|
|
||||||
+ case '6':
|
|
||||||
+ af = AF_INET6;
|
|
||||||
+ break;
|
|
||||||
+#endif
|
|
||||||
case 'a':
|
|
||||||
nwin_options.aflag = 1;
|
|
||||||
break;
|
|
||||||
--- screen-4.0.3/extern.h.ipv6 2003-08-22 14:27:57.000000000 +0200
|
|
||||||
+++ screen-4.0.3/extern.h 2006-11-15 13:36:57.000000000 +0100
|
|
||||||
@@ -446,8 +446,7 @@
|
|
||||||
|
|
||||||
/* teln.c */
|
|
||||||
#ifdef BUILTIN_TELNET
|
|
||||||
-extern int TelOpen __P((char **));
|
|
||||||
-extern int TelConnect __P((struct win *));
|
|
||||||
+extern int TelOpenAndConnect __P((struct win *));
|
|
||||||
extern int TelIsline __P((struct win *p));
|
|
||||||
extern void TelProcessLine __P((char **, int *));
|
|
||||||
extern int DoTelnet __P((char *, int *, int));
|
|
@ -1,116 +0,0 @@
|
|||||||
commit 45d0c395945d2ae0f99748d030a8bffcb4cb46f9
|
|
||||||
Author: Sadrul Habib Chowdhury <sadrul@users.sourceforge.net>
|
|
||||||
Date: Wed Sep 23 16:22:06 2009 -0400
|
|
||||||
|
|
||||||
Fix a crash when resizing.
|
|
||||||
|
|
||||||
The alternate screen has to be reset after a resize. Thanks to
|
|
||||||
Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de> for pointing
|
|
||||||
this out. Closes savannah bug #26742.
|
|
||||||
|
|
||||||
diff --git a/src/resize.c b/src/resize.c
|
|
||||||
index 0bf5f3d..5477bb7 100644
|
|
||||||
--- a/src/resize.c
|
|
||||||
+++ b/src/resize.c
|
|
||||||
@@ -497,6 +497,7 @@ CheckMaxSize(wi)
|
|
||||||
int wi;
|
|
||||||
{
|
|
||||||
unsigned char *oldnull = null;
|
|
||||||
+ unsigned char *oldblank = blank;
|
|
||||||
struct win *p;
|
|
||||||
int i;
|
|
||||||
struct mline *ml;
|
|
||||||
@@ -542,49 +543,34 @@ int wi;
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#define RESET_AFC(x, bl) do { if (x == old##bl) x = bl; } while (0)
|
|
||||||
+
|
|
||||||
+#define RESET_LINES(lines, count) \
|
|
||||||
+ do { \
|
|
||||||
+ ml = lines; \
|
|
||||||
+ for (i = 0; i < count; i++, ml++) \
|
|
||||||
+ { \
|
|
||||||
+ RESET_AFC(ml->image, blank); \
|
|
||||||
+ RESET_AFC(ml->attr, null); \
|
|
||||||
+ IFFONT(RESET_AFC(ml->font, null)); \
|
|
||||||
+ IFCOLOR(RESET_AFC(ml->color, null)); \
|
|
||||||
+ IFCOLORX(RESET_AFC(ml->colorx, null)); \
|
|
||||||
+ } \
|
|
||||||
+ } while (0)
|
|
||||||
+
|
|
||||||
/* We have to run through all windows to substitute
|
|
||||||
- * the null references.
|
|
||||||
+ * the null and blank references.
|
|
||||||
*/
|
|
||||||
for (p = windows; p; p = p->w_next)
|
|
||||||
{
|
|
||||||
- ml = p->w_mlines;
|
|
||||||
- for (i = 0; i < p->w_height; i++, ml++)
|
|
||||||
- {
|
|
||||||
- if (ml->attr == oldnull)
|
|
||||||
- ml->attr = null;
|
|
||||||
-#ifdef FONT
|
|
||||||
- if (ml->font == oldnull)
|
|
||||||
- ml->font = null;
|
|
||||||
-#endif
|
|
||||||
-#ifdef COLOR
|
|
||||||
- if (ml->color == oldnull)
|
|
||||||
- ml->color= null;
|
|
||||||
-#ifdef COLORS256
|
|
||||||
- if (ml->colorx == oldnull)
|
|
||||||
- ml->colorx = null;
|
|
||||||
-#endif
|
|
||||||
-#endif
|
|
||||||
- }
|
|
||||||
+ RESET_LINES(p->w_mlines, p->w_height);
|
|
||||||
+
|
|
||||||
#ifdef COPY_PASTE
|
|
||||||
- ml = p->w_hlines;
|
|
||||||
- for (i = 0; i < p->w_histheight; i++, ml++)
|
|
||||||
- {
|
|
||||||
- if (ml->attr == oldnull)
|
|
||||||
- ml->attr = null;
|
|
||||||
-# ifdef FONT
|
|
||||||
- if (ml->font == oldnull)
|
|
||||||
- ml->font = null;
|
|
||||||
-# endif
|
|
||||||
-# ifdef COLOR
|
|
||||||
- if (ml->color == oldnull)
|
|
||||||
- ml->color= null;
|
|
||||||
-# ifdef COLORS256
|
|
||||||
- if (ml->colorx == oldnull)
|
|
||||||
- ml->colorx = null;
|
|
||||||
-# endif
|
|
||||||
-# endif
|
|
||||||
- }
|
|
||||||
+ RESET_LINES(p->w_hlines, p->w_histheight);
|
|
||||||
+ RESET_LINES(p->w_alt_hlines, p->w_alt_histheight);
|
|
||||||
#endif
|
|
||||||
+
|
|
||||||
+ RESET_LINES(p->w_alt_mlines, p->w_alt_height);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
commit 7cb17d54cc8fca88e17d6d1e7be2fd49daef1b9d
|
|
||||||
Author: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
|
|
||||||
Date: Wed Sep 23 16:24:21 2009 -0400
|
|
||||||
|
|
||||||
Typo fix.
|
|
||||||
|
|
||||||
Fixing this typo fixes this crash:
|
|
||||||
https://bugzilla.redhat.com/show_bug.cgi?id=515055
|
|
||||||
|
|
||||||
diff --git a/src/resize.c b/src/resize.c
|
|
||||||
index 5477bb7..9c7b70f 100644
|
|
||||||
--- a/src/resize.c
|
|
||||||
+++ b/src/resize.c
|
|
||||||
@@ -517,7 +517,7 @@ int wi;
|
|
||||||
#ifdef COLOR
|
|
||||||
mline_old.color = (unsigned char *)xrealloc((char *)mline_old.color, maxwidth);
|
|
||||||
# ifdef COLORS256
|
|
||||||
- mline_old.colorx = (unsigned char *)xrealloc((char *)mline_old.color, maxwidth);
|
|
||||||
+ mline_old.colorx = (unsigned char *)xrealloc((char *)mline_old.colorx, maxwidth);
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
if (!(blank && null && mline_old.image && mline_old.attr IFFONT(&& mline_old.font) IFCOLOR(&& mline_old.color) IFCOLORX(&& mline_old.colorx)))
|
|
@ -1,48 +0,0 @@
|
|||||||
diff -up screen-4.0.3/tty.sh.stropts screen-4.0.3/tty.sh
|
|
||||||
--- screen-4.0.3/tty.sh.stropts 2003-09-08 16:24:25.000000000 +0200
|
|
||||||
+++ screen-4.0.3/tty.sh 2008-04-07 11:28:34.000000000 +0200
|
|
||||||
@@ -76,7 +76,7 @@ exit 0
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
-#ifdef SVR4
|
|
||||||
+#if 0
|
|
||||||
#include <sys/stropts.h> /* for I_POP */
|
|
||||||
#endif
|
|
||||||
|
|
||||||
diff -up screen-4.0.3/screen.c.stropts screen-4.0.3/screen.c
|
|
||||||
--- screen-4.0.3/screen.c.stropts 2008-04-07 11:25:21.000000000 +0200
|
|
||||||
+++ screen-4.0.3/screen.c 2008-04-07 11:29:14.000000000 +0200
|
|
||||||
@@ -50,7 +50,7 @@
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
-#ifdef SVR4
|
|
||||||
+#if 0
|
|
||||||
# include <sys/stropts.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
diff -up screen-4.0.3/process.c.stropts screen-4.0.3/process.c
|
|
||||||
--- screen-4.0.3/process.c.stropts 2003-09-18 14:53:54.000000000 +0200
|
|
||||||
+++ screen-4.0.3/process.c 2008-04-07 11:29:47.000000000 +0200
|
|
||||||
@@ -37,7 +37,7 @@
|
|
||||||
#include "config.h"
|
|
||||||
|
|
||||||
/* for solaris 2.1, Unixware (SVR4.2) and possibly others: */
|
|
||||||
-#ifdef SVR4
|
|
||||||
+#if 0
|
|
||||||
# include <sys/stropts.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
diff -up screen-4.0.3/pty.c.stropts screen-4.0.3/pty.c
|
|
||||||
--- screen-4.0.3/pty.c.stropts 2003-09-08 16:26:18.000000000 +0200
|
|
||||||
+++ screen-4.0.3/pty.c 2008-04-07 11:30:07.000000000 +0200
|
|
||||||
@@ -34,7 +34,7 @@
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* for solaris 2.1, Unixware (SVR4.2) and possibly others */
|
|
||||||
-#ifdef HAVE_SVR4_PTYS
|
|
||||||
+#if 0
|
|
||||||
# include <sys/stropts.h>
|
|
||||||
#endif
|
|
||||||
|
|
@ -0,0 +1,345 @@
|
|||||||
|
diff -up screen/src/doc/screen.1.ipv6 screen/src/doc/screen.1
|
||||||
|
--- screen/src/doc/screen.1.ipv6 2010-11-11 03:47:46.000000000 +0100
|
||||||
|
+++ screen/src/doc/screen.1 2011-02-03 16:05:35.957087079 +0100
|
||||||
|
@@ -398,6 +398,12 @@ Send the specified command to a running
|
||||||
|
the \fB-d\fP or \fB-r\fP option to tell screen to look only for
|
||||||
|
attached or detached screen sessions. Note that this command doesn't
|
||||||
|
work if the session is password protected.
|
||||||
|
+.TP 5
|
||||||
|
+.B \-4
|
||||||
|
+Resolve hostnames only to IPv4 addresses.
|
||||||
|
+.TP 5
|
||||||
|
+.B \-6
|
||||||
|
+Resolve hostnames only to IPv6 addresses.
|
||||||
|
|
||||||
|
.SH "DEFAULT KEY BINDINGS"
|
||||||
|
.ta 12n 26n
|
||||||
|
diff -up screen/src/extern.h.ipv6 screen/src/extern.h
|
||||||
|
--- screen/src/extern.h.ipv6 2010-11-11 03:47:46.000000000 +0100
|
||||||
|
+++ screen/src/extern.h 2011-02-03 16:04:35.995743620 +0100
|
||||||
|
@@ -455,8 +455,7 @@ extern void ExitOverlayPage __P((void))
|
||||||
|
|
||||||
|
/* teln.c */
|
||||||
|
#ifdef BUILTIN_TELNET
|
||||||
|
-extern int TelOpen __P((char **));
|
||||||
|
-extern int TelConnect __P((struct win *));
|
||||||
|
+extern int TelOpenAndConnect __P((struct win *));
|
||||||
|
extern int TelIsline __P((struct win *p));
|
||||||
|
extern void TelProcessLine __P((char **, int *));
|
||||||
|
extern int DoTelnet __P((char *, int *, int));
|
||||||
|
diff -up screen/src/help.c.ipv6 screen/src/help.c
|
||||||
|
--- screen/src/help.c.ipv6 2010-11-11 03:47:46.000000000 +0100
|
||||||
|
+++ screen/src/help.c 2011-02-03 16:04:35.992744154 +0100
|
||||||
|
@@ -66,6 +66,10 @@ char *myname, *message, *arg;
|
||||||
|
{
|
||||||
|
printf("Use: %s [-opts] [cmd [args]]\n", myname);
|
||||||
|
printf(" or: %s -r [host.tty]\n\nOptions:\n", myname);
|
||||||
|
+#ifdef BUILTIN_TELNET
|
||||||
|
+ printf("-4 Resolve hostnames only to IPv4 addresses.\n");
|
||||||
|
+ printf("-6 Resolve hostnames only to IPv6 addresses.\n");
|
||||||
|
+#endif
|
||||||
|
printf("-a Force all capabilities into each window's termcap.\n");
|
||||||
|
printf("-A -[r|R] Adapt all windows to the new display width & height.\n");
|
||||||
|
printf("-c file Read configuration file instead of '.screenrc'.\n");
|
||||||
|
diff -up screen/src/screen.c.ipv6 screen/src/screen.c
|
||||||
|
--- screen/src/screen.c.ipv6 2010-11-11 03:47:46.000000000 +0100
|
||||||
|
+++ screen/src/screen.c 2011-02-03 16:04:35.994743798 +0100
|
||||||
|
@@ -248,8 +248,9 @@ struct layer *flayer;
|
||||||
|
struct win *fore;
|
||||||
|
struct win *windows;
|
||||||
|
struct win *console_window;
|
||||||
|
-
|
||||||
|
-
|
||||||
|
+#ifdef BUILTIN_TELNET
|
||||||
|
+int af;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Do this last
|
||||||
|
@@ -507,6 +508,9 @@ char **av;
|
||||||
|
nwin = nwin_undef;
|
||||||
|
nwin_options = nwin_undef;
|
||||||
|
strcpy(screenterm, "screen");
|
||||||
|
+#ifdef BUILTIN_TELNET
|
||||||
|
+ af = AF_UNSPEC;
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
logreopen_register(lf_secreopen);
|
||||||
|
|
||||||
|
@@ -541,6 +545,14 @@ char **av;
|
||||||
|
{
|
||||||
|
switch (*ap)
|
||||||
|
{
|
||||||
|
+#ifdef BUILTIN_TELNET
|
||||||
|
+ case '4':
|
||||||
|
+ af = AF_INET;
|
||||||
|
+ break;
|
||||||
|
+ case '6':
|
||||||
|
+ af = AF_INET6;
|
||||||
|
+ break;
|
||||||
|
+#endif
|
||||||
|
case 'a':
|
||||||
|
nwin_options.aflag = 1;
|
||||||
|
break;
|
||||||
|
diff -up screen/src/teln.c.ipv6 screen/src/teln.c
|
||||||
|
--- screen/src/teln.c.ipv6 2010-11-11 03:47:46.000000000 +0100
|
||||||
|
+++ screen/src/teln.c 2011-02-03 16:04:35.992744154 +0100
|
||||||
|
@@ -30,6 +30,7 @@
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
+#include <stdio.h>
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
|
||||||
|
@@ -42,12 +43,13 @@ extern struct win *fore;
|
||||||
|
extern struct layer *flayer;
|
||||||
|
extern int visual_bell;
|
||||||
|
extern char screenterm[];
|
||||||
|
+extern int af;
|
||||||
|
|
||||||
|
static void TelReply __P((struct win *, char *, int));
|
||||||
|
static void TelDocmd __P((struct win *, int, int));
|
||||||
|
static void TelDosub __P((struct win *));
|
||||||
|
-
|
||||||
|
-#define TEL_DEFPORT 23
|
||||||
|
+// why TEL_DEFPORT has "
|
||||||
|
+#define TEL_DEFPORT "23"
|
||||||
|
#define TEL_CONNECTING (-2)
|
||||||
|
|
||||||
|
#define TC_IAC 255
|
||||||
|
@@ -105,86 +107,78 @@ char *data;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
-TelOpen(args)
|
||||||
|
-char **args;
|
||||||
|
-{
|
||||||
|
- int fd;
|
||||||
|
- int on = 1;
|
||||||
|
-
|
||||||
|
- if ((fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
|
||||||
|
- {
|
||||||
|
- Msg(errno, "TelOpen: socket");
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
- if (setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)))
|
||||||
|
- Msg(errno, "TelOpen: setsockopt SO_OOBINLINE");
|
||||||
|
- return fd;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
-int
|
||||||
|
-TelConnect(p)
|
||||||
|
-struct win *p;
|
||||||
|
-{
|
||||||
|
- int port = TEL_DEFPORT;
|
||||||
|
- struct hostent *hp;
|
||||||
|
- char **args;
|
||||||
|
+TelOpenAndConnect(struct win *p) {
|
||||||
|
+ int fd, on = 1;
|
||||||
|
char buf[256];
|
||||||
|
|
||||||
|
- args = p->w_cmdargs + 1;
|
||||||
|
-
|
||||||
|
- if (!*args)
|
||||||
|
- {
|
||||||
|
- Msg(0, "Usage: screen //telnet host [port]");
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
- if (args[1])
|
||||||
|
- port = atoi(args[1]);
|
||||||
|
- p->w_telsa.sin_family = AF_INET;
|
||||||
|
- if((p->w_telsa.sin_addr.s_addr = inet_addr(*args)) == -1)
|
||||||
|
- {
|
||||||
|
- if ((hp = gethostbyname(*args)) == NULL)
|
||||||
|
- {
|
||||||
|
- Msg(0, "unknown host: %s", *args);
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
- if (hp->h_length != sizeof(p->w_telsa.sin_addr.s_addr) || hp->h_addrtype != AF_INET)
|
||||||
|
- {
|
||||||
|
- Msg(0, "Bad address type for %s", hp->h_name);
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
- bcopy((char *)hp->h_addr,(char *)&p->w_telsa.sin_addr.s_addr, hp->h_length);
|
||||||
|
- p->w_telsa.sin_family = hp->h_addrtype;
|
||||||
|
- }
|
||||||
|
- p->w_telsa.sin_port = htons(port);
|
||||||
|
- if (port != TEL_DEFPORT)
|
||||||
|
- sprintf(buf, "Trying %s %d...", inet_ntoa(p->w_telsa.sin_addr), port);
|
||||||
|
- else
|
||||||
|
- sprintf(buf, "Trying %s...", inet_ntoa(p->w_telsa.sin_addr));
|
||||||
|
- WriteString(p, buf, strlen(buf));
|
||||||
|
- if (connect(p->w_ptyfd, (struct sockaddr *)&p->w_telsa, sizeof(p->w_telsa)))
|
||||||
|
- {
|
||||||
|
- if (errno == EINPROGRESS)
|
||||||
|
- {
|
||||||
|
- p->w_telstate = TEL_CONNECTING;
|
||||||
|
- p->w_telconnev.fd = p->w_ptyfd;
|
||||||
|
- p->w_telconnev.handler = tel_connev_fn;
|
||||||
|
- p->w_telconnev.data = (char *)p;
|
||||||
|
- p->w_telconnev.type = EV_WRITE;
|
||||||
|
- p->w_telconnev.pri = 1;
|
||||||
|
- debug("telnet connect in progress...\n");
|
||||||
|
- evenq(&p->w_telconnev);
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- Msg(errno, "TelOpen: connect");
|
||||||
|
- return -1;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
- WriteString(p, "connected.\r\n", 12);
|
||||||
|
- if (port == TEL_DEFPORT)
|
||||||
|
- TelReply(p, (char *)tn_init, sizeof(tn_init));
|
||||||
|
- return 0;
|
||||||
|
+ struct addrinfo hints, *res0, *res;
|
||||||
|
+
|
||||||
|
+ if (!(p->w_cmdargs[1])) {
|
||||||
|
+ Msg(0, "Usage: screen //telnet host [port]");
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ memset(&hints, 0, sizeof(hints));
|
||||||
|
+ hints.ai_family = af;
|
||||||
|
+ hints.ai_socktype = SOCK_STREAM;
|
||||||
|
+ hints.ai_protocol = IPPROTO_TCP;
|
||||||
|
+ if(getaddrinfo(p->w_cmdargs[1], p->w_cmdargs[2] ? p->w_cmdargs[2] : TEL_DEFPORT,
|
||||||
|
+ &hints, &res0)) {
|
||||||
|
+ Msg(0, "unknown host: %s", p->w_cmdargs[1]);
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ for(res = res0; res; res = res->ai_next) {
|
||||||
|
+ if((fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) == -1) {
|
||||||
|
+ if(res->ai_next)
|
||||||
|
+ continue;
|
||||||
|
+ else {
|
||||||
|
+ Msg(errno, "TelOpenAndConnect: socket");
|
||||||
|
+ freeaddrinfo(res0);
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (setsockopt(fd, SOL_SOCKET, SO_OOBINLINE, (char *)&on, sizeof(on)))
|
||||||
|
+ Msg(errno, "TelOpenAndConnect: setsockopt SO_OOBINLINE");
|
||||||
|
+
|
||||||
|
+ if (p->w_cmdargs[2] && strcmp(p->w_cmdargs[2], TEL_DEFPORT))
|
||||||
|
+ snprintf(buf, 256, "Trying %s %s...", p->w_cmdargs[1], p->w_cmdargs[2]);
|
||||||
|
+ else
|
||||||
|
+ snprintf(buf, 256, "Trying %s...", p->w_cmdargs[1]);
|
||||||
|
+ WriteString(p, buf, strlen(buf));
|
||||||
|
+ if (connect(fd, res->ai_addr, res->ai_addrlen)) {
|
||||||
|
+ if (errno == EINPROGRESS) {
|
||||||
|
+ p->w_telstate = TEL_CONNECTING;
|
||||||
|
+ p->w_telconnev.fd = fd;
|
||||||
|
+ p->w_telconnev.handler = tel_connev_fn;
|
||||||
|
+ p->w_telconnev.data = (char *)p;
|
||||||
|
+ p->w_telconnev.type = EV_WRITE;
|
||||||
|
+ p->w_telconnev.pri = 1;
|
||||||
|
+ debug("telnet connect in progress...\n");
|
||||||
|
+ evenq(&p->w_telconnev);
|
||||||
|
+ }
|
||||||
|
+ else {
|
||||||
|
+ close(fd);
|
||||||
|
+ if(res->ai_next)
|
||||||
|
+ continue;
|
||||||
|
+ else {
|
||||||
|
+ Msg(errno, "TelOpenAndConnect: connect");
|
||||||
|
+ freeaddrinfo(res0);
|
||||||
|
+ return -1;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ WriteString(p, "connected.\r\n", 12);
|
||||||
|
+ if (!(p->w_cmdargs[2] && strcmp(p->w_cmdargs[2], TEL_DEFPORT)))
|
||||||
|
+ TelReply(p, (char *)tn_init, sizeof(tn_init));
|
||||||
|
+ p->w_ptyfd = fd;
|
||||||
|
+ memcpy(&p->w_telsa, &res->ai_addr, sizeof(res->ai_addr));
|
||||||
|
+ freeaddrinfo(res0);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
diff -up screen/src/window.c.ipv6 screen/src/window.c
|
||||||
|
--- screen/src/window.c.ipv6 2010-11-11 03:47:46.000000000 +0100
|
||||||
|
+++ screen/src/window.c 2011-02-03 16:30:56.900750293 +0100
|
||||||
|
@@ -605,6 +605,13 @@ struct NewWindow *newwin;
|
||||||
|
n = pp - wtab;
|
||||||
|
debug1("Makewin creating %d\n", n);
|
||||||
|
|
||||||
|
+#ifdef BUILTIN_TELNET
|
||||||
|
+ if(!strcmp(nwin.args[0], "//telnet")) {
|
||||||
|
+ type = W_TYPE_TELNET;
|
||||||
|
+ TtyName = "telnet";
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+#endif
|
||||||
|
if ((f = OpenDevice(nwin.args, nwin.lflag, &type, &TtyName)) < 0)
|
||||||
|
return -1;
|
||||||
|
if (type == W_TYPE_GROUP)
|
||||||
|
@@ -766,7 +773,7 @@ struct NewWindow *newwin;
|
||||||
|
#ifdef BUILTIN_TELNET
|
||||||
|
if (type == W_TYPE_TELNET)
|
||||||
|
{
|
||||||
|
- if (TelConnect(p))
|
||||||
|
+ if (TelOpenAndConnect(p))
|
||||||
|
{
|
||||||
|
FreeWindow(p);
|
||||||
|
return -1;
|
||||||
|
@@ -878,6 +885,13 @@ struct win *p;
|
||||||
|
int lflag, f;
|
||||||
|
|
||||||
|
lflag = nwin_default.lflag;
|
||||||
|
+#ifdef BUILTIN_TELNET
|
||||||
|
+ if(!strcmp(p->w_cmdargs[0], "//telnet")) {
|
||||||
|
+ p->w_type = W_TYPE_TELNET;
|
||||||
|
+ TtyName = "telnet";
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+#endif
|
||||||
|
if ((f = OpenDevice(p->w_cmdargs, lflag, &p->w_type, &TtyName)) < 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
@@ -909,7 +923,7 @@ struct win *p;
|
||||||
|
#ifdef BUILTIN_TELNET
|
||||||
|
if (p->w_type == W_TYPE_TELNET)
|
||||||
|
{
|
||||||
|
- if (TelConnect(p))
|
||||||
|
+ if (TelOpenAndConnect(p))
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
@@ -1068,16 +1082,6 @@ char **namep;
|
||||||
|
*namep = "telnet";
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
-#ifdef BUILTIN_TELNET
|
||||||
|
- if (strcmp(arg, "//telnet") == 0)
|
||||||
|
- {
|
||||||
|
- f = TelOpen(args + 1);
|
||||||
|
- lflag = 0;
|
||||||
|
- *typep = W_TYPE_TELNET;
|
||||||
|
- *namep = "telnet";
|
||||||
|
- }
|
||||||
|
- else
|
||||||
|
-#endif
|
||||||
|
if (strncmp(arg, "//", 2) == 0)
|
||||||
|
{
|
||||||
|
Msg(0, "Invalid argument '%s'", arg);
|
||||||
|
diff -up screen/src/window.h.ipv6 screen/src/window.h
|
||||||
|
--- screen/src/window.h.ipv6 2010-11-11 03:47:46.000000000 +0100
|
||||||
|
+++ screen/src/window.h 2011-02-03 16:04:35.989744687 +0100
|
||||||
|
@@ -268,7 +268,7 @@ struct win
|
||||||
|
struct display *w_zdisplay;
|
||||||
|
#endif
|
||||||
|
#ifdef BUILTIN_TELNET
|
||||||
|
- struct sockaddr_in w_telsa;
|
||||||
|
+ struct sockaddr_storage w_telsa;
|
||||||
|
char w_telbuf[IOSIZE];
|
||||||
|
int w_telbufl;
|
||||||
|
char w_telmopts[256];
|
Loading…
Reference in new issue