SHA256
1
0
forked from pool/screen

- update to screen-4.0.4devel

OBS-URL: https://build.opensuse.org/package/show/Base:System/screen?expand=0&rev=28
This commit is contained in:
Michael Schröder 2012-06-11 16:04:07 +00:00 committed by Git OBS Bridge
parent d497c7617b
commit d629827c7c
11 changed files with 212 additions and 12510 deletions

28
libtinfo.diff Normal file
View File

@ -0,0 +1,28 @@
--- ./configure.in.orig 2012-06-11 14:43:51.000000000 +0000
+++ ./configure.in 2012-06-11 14:45:19.000000000 +0000
@@ -668,8 +668,8 @@ tgetent((char *)0, (char *)0);
LIBS="-ltermcap $olibs"
AC_CHECKING(libtermcap)
AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
-LIBS="-ltermlib $olibs"
-AC_CHECKING(libtermlib)
+LIBS="-ltinfo $olibs"
+AC_CHECKING(libtinfo)
AC_TRY_LINK(,tgetent((char *)0, (char *)0);,,
LIBS="-lncursesw $olibs"
AC_CHECKING(libncursesw)
--- ./configure.orig 2012-06-11 14:43:37.000000000 +0000
+++ ./configure 2012-06-11 14:45:41.000000000 +0000
@@ -6296,9 +6296,9 @@ else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- LIBS="-ltermlib $olibs"
-{ $as_echo "$as_me:$LINENO: checking libtermlib..." >&5
-$as_echo "$as_me: checking libtermlib..." >&6;}
+ LIBS="-ltinfo $olibs"
+{ $as_echo "$as_me:$LINENO: checking libtinfo..." >&5
+$as_echo "$as_me: checking libtinfo..." >&6;}
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF

View File

@ -1,17 +0,0 @@
---
window.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: screen-4.0.3/window.c
===================================================================
--- screen-4.0.3.orig/window.c
+++ screen-4.0.3/window.c
@@ -1121,7 +1121,7 @@ char **args, *ttyn;
{
int pid;
char tebuf[25];
- char ebuf[10];
+ char ebuf[25]; // WINDOW=%d needs to be at least 3 digit!
char shellbuf[7 + MAXPATHLEN];
char *proc;
#ifndef TIOCSWINSZ

File diff suppressed because it is too large Load Diff

View File

@ -1,97 +1,70 @@
---
extern.h | 3 -
help.c | 4 +
screen.c | 16 +++++-
teln.c | 154 ++++++++++++++++++++++++++++++---------------------------------
window.c | 28 ++++++-----
window.h | 2
6 files changed, 110 insertions(+), 97 deletions(-)
--- ./extern.h.orig 2012-06-08 15:20:18.000000000 +0000
+++ ./extern.h 2012-06-08 15:58:08.000000000 +0000
@@ -458,8 +458,7 @@ extern void LayProcessMouseSwitch __P((
Index: screen-4.0.3/window.h
===================================================================
--- screen-4.0.3.orig/window.h
+++ screen-4.0.3/window.h
@@ -254,7 +254,7 @@ struct win
struct display *w_zdisplay;
#endif
/* teln.c */
#ifdef BUILTIN_TELNET
- struct sockaddr_in w_telsa;
+ struct sockaddr_storage w_telsa;
char w_telbuf[IOSIZE];
int w_telbufl;
char w_telmopts[256];
Index: screen-4.0.3/window.c
===================================================================
--- screen-4.0.3.orig/window.c
+++ screen-4.0.3/window.c
@@ -582,6 +582,13 @@ struct NewWindow *newwin;
n = pp - wtab;
debug1("Makewin creating %d\n", n);
-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));
--- ./help.c.orig 2012-06-08 15:20:18.000000000 +0000
+++ ./help.c 2012-06-08 15:58:08.000000000 +0000
@@ -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
+ if(!strcmp(nwin.args[0], "//telnet")) {
+ type = W_TYPE_TELNET;
+ TtyName = "telnet";
+ }
+ else
+ printf("-4 Use IPv4.\n");
+ printf("-6 Use IPv6.\n");
+#endif
if ((f = OpenDevice(nwin.args, nwin.lflag, &type, &TtyName)) < 0)
return -1;
@@ -736,7 +743,7 @@ struct NewWindow *newwin;
#ifdef BUILTIN_TELNET
if (type == W_TYPE_TELNET)
{
- if (TelConnect(p))
+ if (TelOpenAndConnect(p))
{
FreeWindow(p);
return -1;
@@ -834,6 +841,13 @@ struct win *p;
int lflag, f;
lflag = nwin_default.lflag;
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.c.orig 2012-06-08 15:20:18.000000000 +0000
+++ ./screen.c 2012-06-08 15:58:08.000000000 +0000
@@ -248,8 +248,9 @@ struct layer *flayer;
struct win *fore;
struct win *windows;
struct win *console_window;
-
-
+#ifdef BUILTIN_TELNET
+ if(!strcmp(p->w_cmdargs[0], "//telnet")) {
+ p->w_type = W_TYPE_TELNET;
+ TtyName = "telnet";
+ }
+ else
+int af;
+#endif
if ((f = OpenDevice(p->w_cmdargs, lflag, &p->w_type, &TtyName)) < 0)
return -1;
@@ -864,7 +878,7 @@ struct win *p;
#ifdef BUILTIN_TELNET
if (p->w_type == W_TYPE_TELNET)
{
- if (TelConnect(p))
+ if (TelOpenAndConnect(p))
return -1;
}
else
@@ -1007,16 +1021,6 @@ char **namep;
/*
* 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
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))
logreopen_register(lf_secreopen);
@@ -541,6 +545,14 @@ char **av;
{
if (access(arg, R_OK | W_OK) == -1)
Index: screen-4.0.3/teln.c
===================================================================
--- screen-4.0.3.orig/teln.c
+++ screen-4.0.3/teln.c
@@ -25,6 +25,7 @@
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;
--- ./teln.c.orig 2009-07-22 15:59:27.000000000 +0000
+++ ./teln.c 2012-06-08 15:58:08.000000000 +0000
@@ -30,6 +30,7 @@
#include <sys/socket.h>
#include <fcntl.h>
#include <netdb.h>
@ -99,7 +72,7 @@ Index: screen-4.0.3/teln.c
#include "config.h"
@@ -37,12 +38,13 @@ extern struct win *fore;
@@ -42,12 +43,13 @@ extern struct win *fore;
extern struct layer *flayer;
extern int visual_bell;
extern char screenterm[];
@ -115,7 +88,7 @@ Index: screen-4.0.3/teln.c
#define TEL_CONNECTING (-2)
#define TC_IAC 255
@@ -99,86 +101,78 @@ char *data;
@@ -105,86 +107,78 @@ char *data;
}
int
@ -272,73 +245,79 @@ Index: screen-4.0.3/teln.c
}
int
Index: screen-4.0.3/help.c
===================================================================
--- screen-4.0.3.orig/help.c
+++ screen-4.0.3/help.c
@@ -49,6 +49,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 Use IPv4.\n");
+ printf("-6 Use IPv6.\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");
Index: screen-4.0.3/screen.c
===================================================================
--- screen-4.0.3.orig/screen.c
+++ screen-4.0.3/screen.c
@@ -231,8 +231,9 @@ struct layer *flayer;
struct win *fore;
struct win *windows;
struct win *console_window;
-
-
+#ifdef BUILTIN_TELNET
+int af;
+#endif
--- ./window.c.orig 2012-06-08 15:20:18.000000000 +0000
+++ ./window.c 2012-06-08 16:01:54.000000000 +0000
@@ -607,6 +607,13 @@ struct NewWindow *newwin;
n = pp - wtab;
debug1("Makewin creating %d\n", n);
/*
* Do this last
@@ -471,6 +472,9 @@ char **av;
nwin = nwin_undef;
nwin_options = nwin_undef;
strcpy(screenterm, "screen");
+#ifdef BUILTIN_TELNET
+ af = AF_UNSPEC;
+ if(!strcmp(nwin.args[0], "//telnet")) {
+ type = W_TYPE_TELNET;
+ TtyName = "telnet";
+ }
+ else
+#endif
logreopen_register(lf_secreopen);
@@ -505,6 +509,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;
Index: screen-4.0.3/extern.h
===================================================================
--- screen-4.0.3.orig/extern.h
+++ screen-4.0.3/extern.h
@@ -446,8 +446,7 @@ extern void ExitOverlayPage __P((void))
/* teln.c */
if ((f = OpenDevice(nwin.args, nwin.lflag, &type, &TtyName)) < 0)
return -1;
if (type == W_TYPE_GROUP)
@@ -768,7 +775,7 @@ struct NewWindow *newwin;
#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));
if (type == W_TYPE_TELNET)
{
- if (TelConnect(p))
+ if (TelOpenAndConnect(p))
{
FreeWindow(p);
return -1;
@@ -880,6 +887,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;
@@ -913,7 +927,7 @@ struct win *p;
#ifdef BUILTIN_TELNET
if (p->w_type == W_TYPE_TELNET)
{
- if (TelConnect(p))
+ if (TelOpenAndConnect(p))
return -1;
}
else
@@ -1072,16 +1086,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);
--- ./window.h.orig 2012-06-08 15:20:18.000000000 +0000
+++ ./window.h 2012-06-08 15:58:08.000000000 +0000
@@ -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];

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:774bc863dc555a7ea974023d0836307d09ddca5abac8afd50a91635a3590853f
size 741741

3
screen-4.0.4.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b18a0a2227c6e486d567a4bd952b27f0cd63ed91bd485bb7c1051e9bbd771129
size 837276

View File

@ -1,53 +0,0 @@
---
fileio.c | 2 +-
utmp.c | 8 ++++++--
2 files changed, 7 insertions(+), 3 deletions(-)
Index: screen-4.0.3/fileio.c
===================================================================
--- screen-4.0.3.orig/fileio.c
+++ screen-4.0.3/fileio.c
@@ -779,7 +779,7 @@ char *cmd;
#ifdef SIGPIPE
signal(SIGPIPE, SIG_DFL);
#endif
- execl("/bin/sh", "sh", "-c", cmd, 0);
+ execl("/bin/sh", "sh", "-c", cmd, (char*)0);
Panic(errno, "/bin/sh");
default:
break;
Index: screen-4.0.3/utmp.c
===================================================================
--- screen-4.0.3.orig/utmp.c
+++ screen-4.0.3/utmp.c
@@ -604,6 +604,7 @@ struct utmp *u;
char *line, *user;
int pid;
{
+ time_t t;
u->ut_type = USER_PROCESS;
strncpy(u->ut_user, user, sizeof(u->ut_user));
/* Now the tricky part... guess ut_id */
@@ -618,7 +619,8 @@ int pid;
#endif /* sgi */
strncpy(u->ut_line, line, sizeof(u->ut_line));
u->ut_pid = pid;
- (void)time((time_t *)&u->ut_time);
+ (void)time(&t);
+ u->ut_time = t;
}
static slot_t
@@ -726,9 +728,11 @@ struct utmp *u;
char *line, *user;
int pid;
{
+ time_t t;
strncpy(u->ut_line, line, sizeof(u->ut_line));
strncpy(u->ut_name, user, sizeof(u->ut_name));
- (void)time((time_t *)&u->ut_time);
+ (void)time(&t);
+ u->ut_time = t;
}
static slot_t

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Fri Jun 8 18:03:57 CEST 2012 - mls@suse.de
- update to screen-4.0.4devel
* support for multiple layouts
* no more stuck screen sessions
-------------------------------------------------------------------
Mon Nov 21 14:55:17 UTC 2011 - coolo@suse.com

View File

@ -1,7 +1,7 @@
#
# spec file for package screen
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -25,23 +25,22 @@ BuildRequires: utempter-devel
%else
BuildRequires: utempter
%endif
PreReq: %install_info_prereq
Version: 4.0.4
Release: 0
Summary: A program to allow multiple screens on a VT100/ANSI Terminal
License: GPL-2.0+
Group: System/Console
PreReq: %install_info_prereq
Version: 4.0.3
Release: 19
Summary: A program to allow multiple screens on a VT100/ANSI Terminal
Source: %{name}-%{version}.tar.bz2
Source: %{name}-%{version}.tar.gz
Source1: screen.conf
Patch: screen-4.0.2.dif
Patch0: screen-4.0.2.dif
Patch1: screen-__P.diff
Patch2: screen-gcc4.diff
Patch4: screen-man-loginshell.diff
Patch5: screen-4.0.3-ipv6.patch
Patch2: screen-man-loginshell.diff
Patch3: screen-4.0.3-ipv6.patch
# upstream savannah#30880
Patch6: term_too_long.diff
Patch7: maxwin99bug.patch
Patch8: sort_command.patch
Patch4: term_too_long.diff
Patch5: sort_command.patch
Patch6: libtinfo.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
@ -53,14 +52,13 @@ Documentation: man page
%prep
%setup
%patch
%patch0
%patch1
%patch2 -p1
%patch3
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch5
%patch6
%build
CFLAGS="-DMAXWIN=1000 $RPM_OPT_FLAGS" %configure --prefix=/usr --infodir=%{_infodir} \

View File

@ -1,48 +1,31 @@
screen: Introduce sort command
:sort
will sort all active screen windows ordered by title.
Limitations:
- Will only work in overview window (CTRL-a-")
- For unknown reasons does not always work.
Encountered on a screen session with about 100 active
windows and several users active, that the sorting
does not always take place.
Still, this command is very helpful for users who use
screen sessions with a huge amount of active windows.
Might apply with line offset to latest screen sources.
Got tested intensively with our screen over the last
years.
Please apply.
Signed-off-by: Thomas Renninger <trenn@suse.de>
comm.c | 1 +
doc/screen.1 | 5 +++++
process.c | 41 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 47 insertions(+)
Index: screen-4.0.3/comm.c
===================================================================
--- screen-4.0.3.orig/comm.c
+++ screen-4.0.3/comm.c
@@ -283,6 +283,7 @@ struct comm comms[RC_LAST + 1] =
--- ./comm.c.orig 2012-06-08 15:20:17.000000000 +0000
+++ ./comm.c 2012-06-08 16:03:10.000000000 +0000
@@ -297,6 +297,7 @@ struct comm comms[RC_LAST + 1] =
{ "sleep", ARGS_1 },
{ "slowpaste", NEED_FORE|ARGS_01 },
{ "sorendition", ARGS_012 },
+ { "sort", ARGS_0 },
{ "source", ARGS_1 },
{ "split", NEED_DISPLAY|ARGS_0 },
{ "split", NEED_DISPLAY|ARGS_01 },
{ "startup_message", ARGS_1 },
Index: screen-4.0.3/process.c
===================================================================
--- screen-4.0.3.orig/process.c
+++ screen-4.0.3/process.c
@@ -2794,6 +2794,47 @@ int key;
WindowChanged((struct win *)0, 0);
--- ./doc/screen.1.orig 2012-06-08 16:02:58.000000000 +0000
+++ ./doc/screen.1 2012-06-08 16:03:10.000000000 +0000
@@ -3015,6 +3015,11 @@ underlying system exposes flow control p
text.
.sp
.ne 3
+.B sort
+.PP
+Sort the windows in alphabetical order of the window tiles.
+.sp
+.ne 3
.BI "source " file
.PP
Read and execute commands from file \fIfile\fP. Source commands may
--- ./process.c.orig 2012-06-08 15:20:18.000000000 +0000
+++ ./process.c 2012-06-08 16:03:10.000000000 +0000
@@ -3024,6 +3024,47 @@ int key;
}
}
break;
+ case RC_SORT:
@ -89,19 +72,3 @@ Index: screen-4.0.3/process.c
case RC_SILENCE:
n = fore->w_silence != 0;
i = fore->w_silencewait;
Index: screen-4.0.3/doc/screen.1
===================================================================
--- screen-4.0.3.orig/doc/screen.1
+++ screen-4.0.3/doc/screen.1
@@ -2678,6 +2678,11 @@ underlying system exposes flow control p
text.
.sp
.ne 3
+.B sort
+.PP
+Sort the windows in alphabetical order of the window tiles.
+.sp
+.ne 3
.BI "source " file
.PP
Read and execute commands from file \fIfile\fP. Source commands may

View File

@ -31,5 +31,5 @@ Index: screen-4.0.3/screen.h
- char envterm[20 + 1]; /* terminal type */
+ char envterm[42 + 1]; /* terminal type */
int encoding; /* encoding of display */
int detachfirst; /* whether to detach remote sessions first */
}
attach;