debian/0000755000000000000000000000000012173305445007172 5ustar debian/patches/0000755000000000000000000000000012173244664010626 5ustar debian/patches/32misc_minor_fixes.patch0000644000000000000000000000110111732171510015327 0ustar Author: Description: Remove an unconditional nethack message. (# 512299) Index: screen/attacher.c =================================================================== --- screen.orig/attacher.c 2011-10-08 19:58:41.000000000 +0200 +++ screen/attacher.c 2011-10-08 19:59:12.000000000 +0200 @@ -621,7 +621,7 @@ { fcntl(0, F_SETFL, 0); SetTTY(0, &attach_Mode); - printf("\nSuddenly the Dungeon collapses!! - You die...\n"); + printf("\nError: Cannot find master process to attach to!\n"); eexit(1); } #ifdef BSDJOBS debian/patches/52fix_screen_utf8_nfd.patch0000644000000000000000000000274311732174633015744 0ustar ## 52fix_screen_utf8_nfd.dpatch by Nobuhiro Iwamatsu ## ## DP: screen outputs screen "ÿ" after a connected character. ## DP: This is a character without the need. ## DP: This happens in UTF-8 environment. ## DP: Before : screen$ ruby1.9.1 -e 'puts "\u304b\u3099.."' ## DP: がÿ... ## DP: patch applied : screen $ ruby1.9.1 -e 'puts "\u304b\u3099.."' ## DP: が.. ## DP: Report from http://d.hatena.ne.jp/mrkn/20101014/fix_screen_utf8_nfd_bug ## DP: Copyright Kenta Murata (mrkn) ## DP: Modified by Nobuhiro Iwamatsu Index: screen/ansi.c =================================================================== --- screen.orig/ansi.c 2012-03-20 22:15:02.000000000 +0100 +++ screen/ansi.c 2012-03-20 22:41:45.000000000 +0100 @@ -725,6 +725,10 @@ LPutChar(&curr->w_layer, &omc, ox, oy); LGotoPos(&curr->w_layer, curr->w_x, curr->w_y); } + if (curr->w_mbcs) + { + curr->w_rend.mbcs = curr->w_mbcs = 0; + } break; } font = curr->w_rend.font; Index: screen/display.c =================================================================== --- screen.orig/display.c 2012-03-20 22:41:28.000000000 +0100 +++ screen/display.c 2012-03-20 22:41:45.000000000 +0100 @@ -603,7 +603,7 @@ D_x += D_AM ? 1 : -1; D_mbcs = 0; } - else if (utf8_isdouble(c)) + else if (utf8_isdouble(c) || (c >= 0xd800 && c < 0xe000)) { D_mbcs = c; D_x++; debian/patches/51fix-utf8-status-padding-bug.patch0000644000000000000000000000471511732174626017176 0ustar fix-utf8-status-padding-bug Ensure that multibyte UTF8 characters are counted correctly when calculating and displaying the caption and hardstatus lines. Based on an earlier version by Kees Cook Signed-off-by: Dustin Kirkland === modified file 'src/display.c' Index: screen/display.c =================================================================== --- screen.orig/display.c 2012-03-20 22:15:02.000000000 +0100 +++ screen/display.c 2012-03-20 22:41:28.000000000 +0100 @@ -2155,7 +2155,7 @@ { int chars = strlen_onscreen((unsigned char *)(s + start), (unsigned char *)(s + max)); D_encoding = 0; - PutWinMsg(s, start, max); + PutWinMsg(s, start, max + ((max - start) - chars)); /* Multibyte count */ D_encoding = UTF8; D_x -= (max - chars); /* Yak! But this is necessary to count for the fact that not every byte represents a @@ -2249,11 +2249,15 @@ RefreshHStatus() { char *buf; - +#ifdef UTF8 + int extrabytes = strlen(hstatusstring) - strlen_onscreen(hstatusstring, NULL); +#else + int extrabytes = 0; +#endif evdeq(&D_hstatusev); if (D_status == STATUS_ON_HS) return; - buf = MakeWinMsgEv(hstatusstring, D_fore, '%', (D_HS && D_has_hstatus == HSTATUS_HS && D_WS > 0) ? D_WS : D_width - !D_CLP, &D_hstatusev, 0); + buf = MakeWinMsgEv(hstatusstring, D_fore, '%', (D_HS && D_has_hstatus == HSTATUS_HS && D_WS > 0) ? D_WS : D_width - !D_CLP + extrabytes, &D_hstatusev, 0); if (buf && *buf) { ShowHStatus(buf); @@ -2348,8 +2352,13 @@ { if (y == cv->c_ye + 1 && from >= cv->c_xs && from <= cv->c_xe) { +#ifdef UTF8 + int extrabytes = strlen(captionstring) - strlen_onscreen(captionstring, NULL); +#else + int extrabytes = 0; +#endif p = Layer2Window(cv->c_layer); - buf = MakeWinMsgEv(captionstring, p, '%', cv->c_xe - cv->c_xs + (cv->c_xe + 1 < D_width || D_CLP), &cv->c_captev, 0); + buf = MakeWinMsgEv(captionstring, p, '%', cv->c_xe - cv->c_xs + (cv->c_xe + 1 < D_width || D_CLP) + extrabytes, &cv->c_captev, 0); if (cv->c_captev.timeout.tv_sec) evenq(&cv->c_captev); xx = to > cv->c_xe ? cv->c_xe : to; @@ -2358,7 +2367,7 @@ SetRendition(&mchar_so); if (l > xx - cv->c_xs + 1) l = xx - cv->c_xs + 1; - l = PrePutWinMsg(buf, from - cv->c_xs, l); + l = PrePutWinMsg(buf, from - cv->c_xs, l + extrabytes); from = cv->c_xs + l; for (; from <= xx; from++) PUTCHARLP(' '); debian/patches/22exchange_file_mode.patch0000644000000000000000000000166411732171510015574 0ustar Author: Description: Make it a bit harder to shoot oneself in the foot by keeping the umask tight by default when creating the screen exchange file. Fearless users may still chmod it. Index: screen/fileio.c =================================================================== --- screen.orig/fileio.c 2011-10-08 19:54:19.000000000 +0200 +++ screen/fileio.c 2011-10-08 19:58:46.000000000 +0200 @@ -413,11 +413,6 @@ char *mode = "w"; #ifdef COPY_PASTE int public = 0; -# ifdef _MODE_T - mode_t old_umask; -# else - int old_umask; -# endif # ifdef HAVE_LSTAT struct stat stb, stb2; int fd, exists = 0; @@ -480,7 +475,6 @@ #ifdef COPY_PASTE if (dump == DUMP_EXCHANGE && public) { - old_umask = umask(0); # ifdef HAVE_LSTAT if (exists) { @@ -501,7 +495,6 @@ # else f = fopen(fn, mode); # endif - umask(old_umask); } else #endif /* COPY_PASTE */ debian/patches/60-644788-screen-4.1.0-4.0.3-interoperability.patch0000644000000000000000000001056112025345271020607 0ustar Author: Julien Cristau Debian-Bug: #644788 Author: Axel Beckert Debian-Bug: #684342 The following patch, while not all that pretty, seems to allow me to attach to a screen started with either the squeeze or sid version. I'm sure there's corner cases, but. Cheers, Julien Index: screen/screen.h =================================================================== --- screen.orig/screen.h 2012-08-09 01:01:28.000000000 +0200 +++ screen/screen.h 2012-08-09 01:01:28.000000000 +0200 @@ -240,6 +240,57 @@ struct msg } m; }; +struct old_msg +{ + int protocol_revision; /* reduce harm done by incompatible messages */ + int type; + char m_tty[MAXPATHLEN]; /* ttyname */ + union + { + struct + { + int lflag; + int aflag; + int flowflag; + int hheight; /* size of scrollback buffer */ + int nargs; + char line[MAXPATHLEN]; + char dir[MAXPATHLEN]; + char screenterm[20]; /* is screen really "screen" ? */ + } + create; + struct + { + char auser[20 + 1]; /* username */ + int apid; /* pid of frontend */ + int adaptflag; /* adapt window size? */ + int lines, columns; /* display size */ + char preselect[20]; + int esc; /* his new escape character unless -1 */ + int meta_esc; /* his new meta esc character unless -1 */ + char envterm[20 + 1]; /* terminal type */ + int encoding; /* encoding of display */ + } + attach; + struct + { + char duser[20 + 1]; /* username */ + int dpid; /* pid of frontend */ + } + detach; + struct + { + char auser[20 + 1]; /* username */ + int nargs; + char cmd[MAXPATHLEN]; /* command */ + int apid; /* pid of frontend */ + char preselect[20]; + } + command; + char message[MAXPATHLEN * 2]; + } m; +}; + /* * And the signals the attacher receives from the backend */ Index: screen/socket.c =================================================================== --- screen.orig/socket.c 2012-08-09 01:01:28.000000000 +0200 +++ screen/socket.c 2012-08-09 01:01:29.000000000 +0200 @@ -1067,7 +1067,9 @@ ReceiveMsg() } if (left > 0) { - if (left != sizeof(m)) + if (left == sizeof(struct msg) - sizeof(struct old_msg)) + ;/* old format message, ignore */ + else if (left != sizeof(m)) Msg(0, "Message %d of %d bytes too small", left, (int)sizeof(m)); else debug("No data on socket.\n"); Index: screen/attacher.c =================================================================== --- screen.orig/attacher.c 2012-08-09 01:01:28.000000000 +0200 +++ screen/attacher.c 2012-08-09 01:32:08.000000000 +0200 @@ -133,6 +133,48 @@ struct msg *m; return 0; } +int +WriteOldMessage(struct msg *m) +{ + sleep(1); /* give the server some time to reopen the pipe */ + if (m->type == MSG_ATTACH && (m->m.attach.detachfirst == MSG_ATTACH || + m->m.attach.detachfirst == MSG_DETACH || + m->m.attach.detachfirst == MSG_POW_DETACH)) + { + struct old_msg old_m; + int s; + int r, l = sizeof(old_m); + + s = MakeClientSocket(0); + if (s < 0) + return 0; + old_m.protocol_revision = (('m'<<24) | ('s'<<16) | ('g'<<8) | 0); + old_m.type = m->type; + memcpy(old_m.m_tty, m->m_tty, sizeof(old_m.m_tty)); + memcpy(old_m.m.attach.auser, m->m.attach.auser, sizeof(old_m.m.attach.auser)); + old_m.m.attach.apid = m->m.attach.apid; + old_m.m.attach.adaptflag = m->m.attach.adaptflag; + old_m.m.attach.lines = m->m.attach.lines; + old_m.m.attach.columns = m->m.attach.columns; + memcpy(old_m.m.attach.preselect, m->m.attach.preselect, sizeof(old_m.m.attach.preselect)); + old_m.m.attach.esc = m->m.attach.esc; + old_m.m.attach.meta_esc = m->m.attach.meta_esc; + memcpy(old_m.m.attach.envterm, m->m.attach.envterm, sizeof(old_m.m.attach.envterm)); + old_m.m.attach.encoding = m->m.attach.encoding; + while(l > 0) + { + r = write(s, (char *)&old_m + (sizeof(struct old_msg) - l), l); + if (r == -1 && errno == EINTR) + continue; + if (r == -1 || r == 0) + return -1; + l -= r; + } + close(s); + } + return 0; +} + int Attach(how) @@ -397,6 +439,7 @@ int how; if (WriteMessage(lasts, &m)) Panic(errno, "WriteMessage"); close(lasts); + WriteOldMessage(&m); debug1("Attach(%d): sent\n", m.type); #ifdef MULTIUSER if (multi && (how == MSG_ATTACH || how == MSG_CONT)) debian/patches/24option_parser.patch0000644000000000000000000000107611732171510014672 0ustar Author: Description: This is not getopt() and we don't have two leading dashes, so parse and match the long options in full. Index: screen/screen.c =================================================================== --- screen.orig/screen.c 2011-10-08 19:58:51.000000000 +0200 +++ screen/screen.c 2011-10-08 19:58:56.000000000 +0200 @@ -655,6 +655,8 @@ } break; case 'w': + if (strcmp(ap+1, "ipe")) + exit_with_usage(myname, "Unknown option %s", --ap); lsflag = 1; wipeflag = 1; if (ac > 1 && !SockMatch) debian/patches/61-allow-dev-console-to-be-a-symlink.patch0000644000000000000000000000166612173167564020347 0ustar Description: /dev/console may be a symlink See http://lists.debian.org/debian-devel/2013/01/msg00576.html In case of SunOS kernel (illumos) it is not possible for a device file to have st_nlink != 1, so do not bother with "/devices/" Debian-Bug: 701173 Author: Igor Pashev Index: screen/tty.sh =================================================================== --- screen.orig/tty.sh 2013-01-27 02:16:57.916935245 +0000 +++ screen/tty.sh 2013-01-27 02:33:12.831241123 +0000 @@ -1506,11 +1506,21 @@ char *tty; { struct stat st; + char * real; + int rc; - if (lstat(tty, &st) || !S_ISCHR(st.st_mode) || - (st.st_nlink > 1 && strncmp(tty, "/dev/", 5))) + real = realpath(tty, NULL); + if (!real) return -1; - return 0; + + if (lstat(real, &st) || !S_ISCHR(st.st_mode) || + (st.st_nlink > 1 && strncmp(real, "/dev/", 5))) + rc = -1; + else + rc = 0; + + free(real); + return rc; } /* debian/patches/26source_encoding.patch0000644000000000000000000004077611732176054015200 0ustar Author: Ben Finney Description: Replace the composed characters with their respective description. --- a/process.c +++ b/process.c @@ -250,177 +250,177 @@ /* digraph table taken from old vim and rfc1345 */ static struct digraph digraphs[MAX_DIGRAPH + 1] = { - {{' ', ' '}, 160}, /* */ - {{'N', 'S'}, 160}, /* */ - {{'~', '!'}, 161}, /* */ - {{'!', '!'}, 161}, /* */ - {{'!', 'I'}, 161}, /* */ - {{'c', '|'}, 162}, /* */ - {{'c', 't'}, 162}, /* */ - {{'$', '$'}, 163}, /* */ - {{'P', 'd'}, 163}, /* */ - {{'o', 'x'}, 164}, /* */ - {{'C', 'u'}, 164}, /* */ - {{'C', 'u'}, 164}, /* */ - {{'E', 'u'}, 164}, /* */ - {{'Y', '-'}, 165}, /* */ - {{'Y', 'e'}, 165}, /* */ - {{'|', '|'}, 166}, /* */ - {{'B', 'B'}, 166}, /* */ - {{'p', 'a'}, 167}, /* */ - {{'S', 'E'}, 167}, /* */ - {{'"', '"'}, 168}, /* */ - {{'\'', ':'}, 168}, /* */ - {{'c', 'O'}, 169}, /* */ - {{'C', 'o'}, 169}, /* */ - {{'a', '-'}, 170}, /* */ - {{'<', '<'}, 171}, /* */ - {{'-', ','}, 172}, /* */ - {{'N', 'O'}, 172}, /* */ - {{'-', '-'}, 173}, /* */ - {{'r', 'O'}, 174}, /* */ - {{'R', 'g'}, 174}, /* */ - {{'-', '='}, 175}, /* */ - {{'\'', 'm'}, 175}, /* */ - {{'~', 'o'}, 176}, /* */ - {{'D', 'G'}, 176}, /* */ - {{'+', '-'}, 177}, /* */ - {{'2', '2'}, 178}, /* */ - {{'2', 'S'}, 178}, /* */ - {{'3', '3'}, 179}, /* */ - {{'3', 'S'}, 179}, /* */ - {{'\'', '\''}, 180}, /* */ - {{'j', 'u'}, 181}, /* */ - {{'M', 'y'}, 181}, /* */ - {{'p', 'p'}, 182}, /* */ - {{'P', 'I'}, 182}, /* */ - {{'~', '.'}, 183}, /* */ - {{'.', 'M'}, 183}, /* */ - {{',', ','}, 184}, /* */ - {{'\'', ','}, 184}, /* */ - {{'1', '1'}, 185}, /* */ - {{'1', 'S'}, 185}, /* */ - {{'o', '-'}, 186}, /* */ - {{'>', '>'}, 187}, /* */ - {{'1', '4'}, 188}, /* */ - {{'1', '2'}, 189}, /* */ - {{'3', '4'}, 190}, /* */ - {{'~', '?'}, 191}, /* */ - {{'?', '?'}, 191}, /* */ - {{'?', 'I'}, 191}, /* */ - {{'A', '`'}, 192}, /* */ - {{'A', '!'}, 192}, /* */ - {{'A', '\''}, 193}, /* */ - {{'A', '^'}, 194}, /* */ - {{'A', '>'}, 194}, /* */ - {{'A', '~'}, 195}, /* */ - {{'A', '?'}, 195}, /* */ - {{'A', '"'}, 196}, /* */ - {{'A', ':'}, 196}, /* */ - {{'A', '@'}, 197}, /* */ - {{'A', 'A'}, 197}, /* */ - {{'A', 'E'}, 198}, /* */ - {{'C', ','}, 199}, /* */ - {{'E', '`'}, 200}, /* */ - {{'E', '!'}, 200}, /* */ - {{'E', '\''}, 201}, /* */ - {{'E', '^'}, 202}, /* */ - {{'E', '>'}, 202}, /* */ - {{'E', '"'}, 203}, /* */ - {{'E', ':'}, 203}, /* */ - {{'I', '`'}, 204}, /* */ - {{'I', '!'}, 204}, /* */ - {{'I', '\''}, 205}, /* */ - {{'I', '^'}, 206}, /* */ - {{'I', '>'}, 206}, /* */ - {{'I', '"'}, 207}, /* */ - {{'I', ':'}, 207}, /* */ - {{'D', '-'}, 208}, /* */ - {{'N', '~'}, 209}, /* */ - {{'N', '?'}, 209}, /* */ - {{'O', '`'}, 210}, /* */ - {{'O', '!'}, 210}, /* */ - {{'O', '\''}, 211}, /* */ - {{'O', '^'}, 212}, /* */ - {{'O', '>'}, 212}, /* */ - {{'O', '~'}, 213}, /* */ - {{'O', '?'}, 213}, /* */ - {{'O', '"'}, 214}, /* */ - {{'O', ':'}, 214}, /* */ - {{'/', '\\'}, 215}, /* */ - {{'*', 'x'}, 215}, /* */ - {{'O', '/'}, 216}, /* */ - {{'U', '`'}, 217}, /* */ - {{'U', '!'}, 217}, /* */ - {{'U', '\''}, 218}, /* */ - {{'U', '^'}, 219}, /* */ - {{'U', '>'}, 219}, /* */ - {{'U', '"'}, 220}, /* */ - {{'U', ':'}, 220}, /* */ - {{'Y', '\''}, 221}, /* */ - {{'I', 'p'}, 222}, /* */ - {{'T', 'H'}, 222}, /* */ - {{'s', 's'}, 223}, /* */ - {{'s', '"'}, 223}, /* */ - {{'a', '`'}, 224}, /* */ - {{'a', '!'}, 224}, /* */ - {{'a', '\''}, 225}, /* */ - {{'a', '^'}, 226}, /* */ - {{'a', '>'}, 226}, /* */ - {{'a', '~'}, 227}, /* */ - {{'a', '?'}, 227}, /* */ - {{'a', '"'}, 228}, /* */ - {{'a', ':'}, 228}, /* */ - {{'a', 'a'}, 229}, /* */ - {{'a', 'e'}, 230}, /* */ - {{'c', ','}, 231}, /* */ - {{'e', '`'}, 232}, /* */ - {{'e', '!'}, 232}, /* */ - {{'e', '\''}, 233}, /* */ - {{'e', '^'}, 234}, /* */ - {{'e', '>'}, 234}, /* */ - {{'e', '"'}, 235}, /* */ - {{'e', ':'}, 235}, /* */ - {{'i', '`'}, 236}, /* */ - {{'i', '!'}, 236}, /* */ - {{'i', '\''}, 237}, /* */ - {{'i', '^'}, 238}, /* */ - {{'i', '>'}, 238}, /* */ - {{'i', '"'}, 239}, /* */ - {{'i', ':'}, 239}, /* */ - {{'d', '-'}, 240}, /* */ - {{'n', '~'}, 241}, /* */ - {{'n', '?'}, 241}, /* */ - {{'o', '`'}, 242}, /* */ - {{'o', '!'}, 242}, /* */ - {{'o', '\''}, 243}, /* */ - {{'o', '^'}, 244}, /* */ - {{'o', '>'}, 244}, /* */ - {{'o', '~'}, 245}, /* */ - {{'o', '?'}, 245}, /* */ - {{'o', '"'}, 246}, /* */ - {{'o', ':'}, 246}, /* */ - {{':', '-'}, 247}, /* */ - {{'o', '/'}, 248}, /* */ - {{'u', '`'}, 249}, /* */ - {{'u', '!'}, 249}, /* */ - {{'u', '\''}, 250}, /* */ - {{'u', '^'}, 251}, /* */ - {{'u', '>'}, 251}, /* */ - {{'u', '"'}, 252}, /* */ - {{'u', ':'}, 252}, /* */ - {{'y', '\''}, 253}, /* */ - {{'i', 'p'}, 254}, /* */ - {{'t', 'h'}, 254}, /* */ - {{'y', '"'}, 255}, /* */ - {{'y', ':'}, 255}, /* */ - {{'"', '['}, 196}, /* */ - {{'"', '\\'}, 214}, /* */ - {{'"', ']'}, 220}, /* */ - {{'"', '{'}, 228}, /* */ - {{'"', '|'}, 246}, /* */ - {{'"', '}'}, 252}, /* */ - {{'"', '~'}, 223} /* */ + {{' ', ' '}, 0x00a0}, /* NO-BREAK SPACE */ + {{'N', 'S'}, 0x00a0}, /* NO-BREAK SPACE */ + {{'~', '!'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */ + {{'!', '!'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */ + {{'!', 'I'}, 0x00a1}, /* INVERTED EXCLAMATION MARK */ + {{'c', '|'}, 0x00a2}, /* CENT SIGN */ + {{'c', 't'}, 0x00a2}, /* CENT SIGN */ + {{'$', '$'}, 0x00a3}, /* POUND SIGN */ + {{'P', 'd'}, 0x00a3}, /* POUND SIGN */ + {{'o', 'x'}, 0x00a4}, /* CURRENCY SIGN */ + {{'C', 'u'}, 0x00a4}, /* CURRENCY SIGN */ + {{'C', 'u'}, 0x00a4}, /* CURRENCY SIGN */ + {{'E', 'u'}, 0x00a4}, /* CURRENCY SIGN */ + {{'Y', '-'}, 0x00a5}, /* YEN SIGN */ + {{'Y', 'e'}, 0x00a5}, /* YEN SIGN */ + {{'|', '|'}, 0x00a6}, /* BROKEN BAR */ + {{'B', 'B'}, 0x00a6}, /* BROKEN BAR */ + {{'p', 'a'}, 0x00a7}, /* SECTION SIGN */ + {{'S', 'E'}, 0x00a7}, /* SECTION SIGN */ + {{'"', '"'}, 0x00a8}, /* DIAERESIS */ + {{'\'', ':'}, 0x00a8}, /* DIAERESIS */ + {{'c', 'O'}, 0x00a9}, /* COPYRIGHT SIGN */ + {{'C', 'o'}, 0x00a9}, /* COPYRIGHT SIGN */ + {{'-', 'a'}, 0x00aa}, /* FEMININE ORDINAL INDICATOR */ + {{'<', '<'}, 0x00ab}, /* LEFT-POINTING DOUBLE ANGLE QUOTATION MARK */ + {{'-', ','}, 0x00ac}, /* NOT SIGN */ + {{'N', 'O'}, 0x00ac}, /* NOT SIGN */ + {{'-', '-'}, 0x00ad}, /* SOFT HYPHEN */ + {{'r', 'O'}, 0x00ae}, /* REGISTERED SIGN */ + {{'R', 'g'}, 0x00ae}, /* REGISTERED SIGN */ + {{'-', '='}, 0x00af}, /* MACRON */ + {{'\'', 'm'}, 0x00af}, /* MACRON */ + {{'~', 'o'}, 0x00b0}, /* DEGREE SIGN */ + {{'D', 'G'}, 0x00b0}, /* DEGREE SIGN */ + {{'+', '-'}, 0x00b1}, /* PLUS-MINUS SIGN */ + {{'2', '2'}, 0x00b2}, /* SUPERSCRIPT TWO */ + {{'2', 'S'}, 0x00b2}, /* SUPERSCRIPT TWO */ + {{'3', '3'}, 0x00b3}, /* SUPERSCRIPT THREE */ + {{'3', 'S'}, 0x00b3}, /* SUPERSCRIPT THREE */ + {{'\'', '\''}, 0x00b4}, /* ACUTE ACCENT */ + {{'j', 'u'}, 0x00b5}, /* MICRO SIGN */ + {{'M', 'y'}, 0x00b5}, /* MICRO SIGN */ + {{'p', 'p'}, 0x00b6}, /* PILCROW SIGN */ + {{'P', 'I'}, 0x00b6}, /* PILCROW SIGN */ + {{'~', '.'}, 0x00b7}, /* MIDDLE DOT */ + {{'.', 'M'}, 0x00b7}, /* MIDDLE DOT */ + {{',', ','}, 0x00b8}, /* CEDILLA */ + {{'\'', ','}, 0x00b8}, /* CEDILLA */ + {{'1', '1'}, 0x00b9}, /* SUPERSCRIPT ONE */ + {{'1', 'S'}, 0x00b9}, /* SUPERSCRIPT ONE */ + {{'-', 'o'}, 0x00ba}, /* MASCULINE ORDINAL INDICATOR */ + {{'>', '>'}, 0x00bb}, /* RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK */ + {{'1', '4'}, 0x00bc}, /* VULGAR FRACTION ONE QUARTER */ + {{'1', '2'}, 0x00bd}, /* VULGAR FRACTION ONE HALF */ + {{'3', '4'}, 0x00be}, /* VULGAR FRACTION THREE QUARTERS */ + {{'~', '?'}, 0x00bf}, /* INVERTED QUESTION MARK */ + {{'?', '?'}, 0x00bf}, /* INVERTED QUESTION MARK */ + {{'?', 'I'}, 0x00bf}, /* INVERTED QUESTION MARK */ + {{'A', '`'}, 0x00c0}, /* LATIN CAPITAL LETTER A WITH GRAVE */ + {{'A', '!'}, 0x00c0}, /* LATIN CAPITAL LETTER A WITH GRAVE */ + {{'A', '\''}, 0x00c1}, /* LATIN CAPITAL LETTER A WITH ACUTE */ + {{'A', '^'}, 0x00c2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ + {{'A', '>'}, 0x00c2}, /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */ + {{'A', '~'}, 0x00c3}, /* LATIN CAPITAL LETTER A WITH TILDE */ + {{'A', '?'}, 0x00c3}, /* LATIN CAPITAL LETTER A WITH TILDE */ + {{'A', '"'}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */ + {{'A', ':'}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */ + {{'A', '@'}, 0x00c5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */ + {{'A', 'A'}, 0x00c5}, /* LATIN CAPITAL LETTER A WITH RING ABOVE */ + {{'A', 'E'}, 0x00c6}, /* LATIN CAPITAL LETTER AE */ + {{'C', ','}, 0x00c7}, /* LATIN CAPITAL LETTER C WITH CEDILLA */ + {{'E', '`'}, 0x00c8}, /* LATIN CAPITAL LETTER E WITH GRAVE */ + {{'E', '!'}, 0x00c8}, /* LATIN CAPITAL LETTER E WITH GRAVE */ + {{'E', '\''}, 0x00c9}, /* LATIN CAPITAL LETTER E WITH ACUTE */ + {{'E', '^'}, 0x00ca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ + {{'E', '>'}, 0x00ca}, /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */ + {{'E', '"'}, 0x00cb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */ + {{'E', ':'}, 0x00cb}, /* LATIN CAPITAL LETTER E WITH DIAERESIS */ + {{'I', '`'}, 0x00cc}, /* LATIN CAPITAL LETTER I WITH GRAVE */ + {{'I', '!'}, 0x00cc}, /* LATIN CAPITAL LETTER I WITH GRAVE */ + {{'I', '\''}, 0x00cd}, /* LATIN CAPITAL LETTER I WITH ACUTE */ + {{'I', '^'}, 0x00ce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ + {{'I', '>'}, 0x00ce}, /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */ + {{'I', '"'}, 0x00cf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */ + {{'I', ':'}, 0x00cf}, /* LATIN CAPITAL LETTER I WITH DIAERESIS */ + {{'D', '-'}, 0x00d0}, /* LATIN CAPITAL LETTER ETH */ + {{'N', '~'}, 0x00d1}, /* LATIN CAPITAL LETTER N WITH TILDE */ + {{'N', '?'}, 0x00d1}, /* LATIN CAPITAL LETTER N WITH TILDE */ + {{'O', '`'}, 0x00d2}, /* LATIN CAPITAL LETTER O WITH GRAVE */ + {{'O', '!'}, 0x00d2}, /* LATIN CAPITAL LETTER O WITH GRAVE */ + {{'O', '\''}, 0x00d3}, /* LATIN CAPITAL LETTER O WITH ACUTE */ + {{'O', '^'}, 0x00d4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ + {{'O', '>'}, 0x00d4}, /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */ + {{'O', '~'}, 0x00d5}, /* LATIN CAPITAL LETTER O WITH TILDE */ + {{'O', '?'}, 0x00d5}, /* LATIN CAPITAL LETTER O WITH TILDE */ + {{'O', '"'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */ + {{'O', ':'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */ + {{'/', '\\'}, 0x00d7}, /* MULTIPLICATION SIGN */ + {{'*', 'x'}, 0x00d7}, /* MULTIPLICATION SIGN */ + {{'O', '/'}, 0x00d8}, /* LATIN CAPITAL LETTER O WITH STROKE */ + {{'U', '`'}, 0x00d9}, /* LATIN CAPITAL LETTER U WITH GRAVE */ + {{'U', '!'}, 0x00d9}, /* LATIN CAPITAL LETTER U WITH GRAVE */ + {{'U', '\''}, 0x00da}, /* LATIN CAPITAL LETTER U WITH ACUTE */ + {{'U', '^'}, 0x00db}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ + {{'U', '>'}, 0x00db}, /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */ + {{'U', '"'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */ + {{'U', ':'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */ + {{'Y', '\''}, 0x00dd}, /* LATIN CAPITAL LETTER Y WITH ACUTE */ + {{'I', 'p'}, 0x00de}, /* LATIN CAPITAL LETTER THORN */ + {{'T', 'H'}, 0x00de}, /* LATIN CAPITAL LETTER THORN */ + {{'s', 's'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */ + {{'s', '"'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */ + {{'a', '`'}, 0x00e0}, /* LATIN SMALL LETTER A WITH GRAVE */ + {{'a', '!'}, 0x00e0}, /* LATIN SMALL LETTER A WITH GRAVE */ + {{'a', '\''}, 0x00e1}, /* LATIN SMALL LETTER A WITH ACUTE */ + {{'a', '^'}, 0x00e2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */ + {{'a', '>'}, 0x00e2}, /* LATIN SMALL LETTER A WITH CIRCUMFLEX */ + {{'a', '~'}, 0x00e3}, /* LATIN SMALL LETTER A WITH TILDE */ + {{'a', '?'}, 0x00e3}, /* LATIN SMALL LETTER A WITH TILDE */ + {{'a', '"'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */ + {{'a', ':'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */ + {{'a', 'a'}, 0x00e5}, /* LATIN SMALL LETTER A WITH RING ABOVE */ + {{'a', 'e'}, 0x00e6}, /* LATIN SMALL LETTER AE */ + {{'c', ','}, 0x00e7}, /* LATIN SMALL LETTER C WITH CEDILLA */ + {{'e', '`'}, 0x00e8}, /* LATIN SMALL LETTER E WITH GRAVE */ + {{'e', '!'}, 0x00e8}, /* LATIN SMALL LETTER E WITH GRAVE */ + {{'e', '\''}, 0x00e9}, /* LATIN SMALL LETTER E WITH ACUTE */ + {{'e', '^'}, 0x00ea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */ + {{'e', '>'}, 0x00ea}, /* LATIN SMALL LETTER E WITH CIRCUMFLEX */ + {{'e', '"'}, 0x00eb}, /* LATIN SMALL LETTER E WITH DIAERESIS */ + {{'e', ':'}, 0x00eb}, /* LATIN SMALL LETTER E WITH DIAERESIS */ + {{'i', '`'}, 0x00ec}, /* LATIN SMALL LETTER I WITH GRAVE */ + {{'i', '!'}, 0x00ec}, /* LATIN SMALL LETTER I WITH GRAVE */ + {{'i', '\''}, 0x00ed}, /* LATIN SMALL LETTER I WITH ACUTE */ + {{'i', '^'}, 0x00ee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */ + {{'i', '>'}, 0x00ee}, /* LATIN SMALL LETTER I WITH CIRCUMFLEX */ + {{'i', '"'}, 0x00ef}, /* LATIN SMALL LETTER I WITH DIAERESIS */ + {{'i', ':'}, 0x00ef}, /* LATIN SMALL LETTER I WITH DIAERESIS */ + {{'d', '-'}, 0x00f0}, /* LATIN SMALL LETTER ETH */ + {{'n', '~'}, 0x00f1}, /* LATIN SMALL LETTER N WITH TILDE */ + {{'n', '?'}, 0x00f1}, /* LATIN SMALL LETTER N WITH TILDE */ + {{'o', '`'}, 0x00f2}, /* LATIN SMALL LETTER O WITH GRAVE */ + {{'o', '!'}, 0x00f2}, /* LATIN SMALL LETTER O WITH GRAVE */ + {{'o', '\''}, 0x00f3}, /* LATIN SMALL LETTER O WITH ACUTE */ + {{'o', '^'}, 0x00f4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */ + {{'o', '>'}, 0x00f4}, /* LATIN SMALL LETTER O WITH CIRCUMFLEX */ + {{'o', '~'}, 0x00f5}, /* LATIN SMALL LETTER O WITH TILDE */ + {{'o', '?'}, 0x00f5}, /* LATIN SMALL LETTER O WITH TILDE */ + {{'o', '"'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */ + {{'o', ':'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */ + {{'-', ':'}, 0x00f7}, /* DIVISION SIGN */ + {{'o', '/'}, 0x00f8}, /* LATIN SMALL LETTER O WITH STROKE */ + {{'u', '`'}, 0x00f9}, /* LATIN SMALL LETTER U WITH GRAVE */ + {{'u', '!'}, 0x00f9}, /* LATIN SMALL LETTER U WITH GRAVE */ + {{'u', '\''}, 0x00fa}, /* LATIN SMALL LETTER U WITH ACUTE */ + {{'u', '^'}, 0x00fb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */ + {{'u', '>'}, 0x00fb}, /* LATIN SMALL LETTER U WITH CIRCUMFLEX */ + {{'u', '"'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */ + {{'u', ':'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */ + {{'y', '\''}, 0x00fd}, /* LATIN SMALL LETTER Y WITH ACUTE */ + {{'i', 'p'}, 0x00fe}, /* LATIN SMALL LETTER THORN */ + {{'t', 'h'}, 0x00fe}, /* LATIN SMALL LETTER THORN */ + {{'y', '"'}, 0x00ff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */ + {{'y', ':'}, 0x00ff}, /* LATIN SMALL LETTER Y WITH DIAERESIS */ + {{'"', '['}, 0x00c4}, /* LATIN CAPITAL LETTER A WITH DIAERESIS */ + {{'"', '\\'}, 0x00d6}, /* LATIN CAPITAL LETTER O WITH DIAERESIS */ + {{'"', ']'}, 0x00dc}, /* LATIN CAPITAL LETTER U WITH DIAERESIS */ + {{'"', '{'}, 0x00e4}, /* LATIN SMALL LETTER A WITH DIAERESIS */ + {{'"', '|'}, 0x00f6}, /* LATIN SMALL LETTER O WITH DIAERESIS */ + {{'"', '}'}, 0x00fc}, /* LATIN SMALL LETTER U WITH DIAERESIS */ + {{'"', '~'}, 0x00df}, /* LATIN SMALL LETTER SHARP S */ }; #define RESIZE_FLAG_H 1 debian/patches/45suppress_remap.patch0000644000000000000000000000041211732171510015052 0ustar Author: Loic Minier Description: Unbreak several useful keybindings. --- a/termcap.c +++ b/termcap.c @@ -552,8 +552,6 @@ else break; } - if (n < KMAP_KEYS) - domap = 1; if (map == 0 && domap) return 0; if (map && !domap) debian/patches/48screen-ipv6.patch0000644000000000000000000002331011732174600014153 0ustar Author: Description: Some patches stolen from the fedora package for better error checking and tty security. Index: screen/doc/screen.1 =================================================================== --- screen.orig/doc/screen.1 2012-03-20 22:41:10.000000000 +0100 +++ screen/doc/screen.1 2012-03-20 22:41:13.000000000 +0100 @@ -398,6 +398,12 @@ 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 Index: screen/extern.h =================================================================== --- screen.orig/extern.h 2012-03-20 22:41:12.000000000 +0100 +++ screen/extern.h 2012-03-20 22:41:13.000000000 +0100 @@ -459,8 +459,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)); Index: screen/help.c =================================================================== --- screen.orig/help.c 2012-03-20 22:14:48.000000000 +0100 +++ screen/help.c 2012-03-20 22:41:13.000000000 +0100 @@ -66,6 +66,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"); Index: screen/screen.c =================================================================== --- screen.orig/screen.c 2012-03-20 22:41:12.000000000 +0100 +++ screen/screen.c 2012-03-20 22:41:13.000000000 +0100 @@ -248,8 +248,9 @@ struct win *fore; struct win *windows; struct win *console_window; - - +#ifdef BUILTIN_TELNET +int af; +#endif /* * Do this last @@ -507,6 +508,9 @@ 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 @@ { 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/teln.c =================================================================== --- screen.orig/teln.c 2012-03-20 22:14:48.000000000 +0100 +++ screen/teln.c 2012-03-20 22:41:13.000000000 +0100 @@ -30,6 +30,7 @@ #include #include #include +#include #include "config.h" @@ -42,12 +43,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 @@ -105,86 +107,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; + struct addrinfo hints, *res0, *res; - 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; + 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; + } } - 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; - } + + 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 (port == TEL_DEFPORT) - TelReply(p, (char *)tn_init, sizeof(tn_init)); - return 0; + 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 Index: screen/window.c =================================================================== --- screen.orig/window.c 2012-03-20 22:35:13.000000000 +0100 +++ screen/window.c 2012-03-20 22:41:13.000000000 +0100 @@ -607,6 +607,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; if (type == W_TYPE_GROUP) @@ -768,7 +775,7 @@ #ifdef BUILTIN_TELNET if (type == W_TYPE_TELNET) { - if (TelConnect(p)) + if (TelOpenAndConnect(p)) { FreeWindow(p); return -1; @@ -880,6 +887,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; @@ -913,7 +927,7 @@ #ifdef BUILTIN_TELNET if (p->w_type == W_TYPE_TELNET) { - if (TelConnect(p)) + if (TelOpenAndConnect(p)) return -1; } else @@ -1072,16 +1086,6 @@ *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); Index: screen/window.h =================================================================== --- screen.orig/window.h 2012-03-20 22:14:48.000000000 +0100 +++ screen/window.h 2012-03-20 22:41:13.000000000 +0100 @@ -268,7 +268,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]; debian/patches/23exitcode_q_ls.patch0000644000000000000000000000150411732171510014623 0ustar Author: Description: Make the exitcode of '-q -ls' and friends ('-qr -ls' and even '-qdr -ls') match the documentation. Index: screen/screen.c =================================================================== --- screen.orig/screen.c 2011-10-08 19:58:41.000000000 +0200 +++ screen/screen.c 2011-10-08 19:58:51.000000000 +0200 @@ -1164,8 +1164,12 @@ #endif SET_GUID(); i = FindSocket((int *)NULL, &fo, &oth, SockMatch); - if (quietflag) - exit(8 + (fo ? ((oth || i) ? 2 : 1) : 0) + i); + if (quietflag) { + if (rflag) + exit(10 + i); + else + exit(9 + (fo || oth ? 1 : 0) + fo); + } if (fo == 0) Panic(0, "No Sockets found in %s.\n", SockPath); Panic(0, "%d Socket%s in %s.\n", fo, fo > 1 ? "s" : "", SockPath); debian/patches/11replace_doc_paths.patch0000644000000000000000000001675611732174014015456 0ustar Author: Description: Fix the references to configuration and pipe paths to match the locations Debian uses. Index: screen/doc/screen.1 =================================================================== --- screen.orig/doc/screen.1 2012-03-20 22:34:27.000000000 +0100 +++ screen/doc/screen.1 2012-03-20 22:35:03.000000000 +0100 @@ -101,7 +101,7 @@ the invoking shell to the application (emacs in this case), because it is forked from the parent screen process, not from the invoking shell. .PP -If \*Q/etc/utmp\*U is writable by +If \*Q/var/run/utmp\*U is writable by .IR screen , an appropriate record will be written to this file for each window, and removed when the window is terminated. @@ -230,7 +230,7 @@ The use of this option is discouraged. .TP 5 .BR \-l " and " \-ln -turns login mode on or off (for /etc/utmp updating). +turns login mode on or off (for /var/run/utmp updating). This can also be defined through the \*Qdeflogin\*U .screenrc command. .TP 5 .BR \-ls " [" \fImatch ] @@ -620,7 +620,7 @@ .SH CUSTOMIZATION The \*Qsocket directory\*U defaults either to $HOME/.screen or simply to -/tmp/screens or preferably to /usr/local/screens chosen at compile-time. If +/tmp/screens or preferably to /var/run/screen chosen at compile-time. If .I screen is installed setuid-root, then the administrator should compile @@ -633,7 +633,7 @@ When .I screen is invoked, it executes initialization commands from the files -\*Q/usr/local/etc/screenrc\*U and +\*Q/etc/screenrc\*U and \*Q.screenrc\*U in the user's home directory. These are the \*Qprogrammer's defaults\*U that can be overridden in the following ways: for the global screenrc file @@ -1835,7 +1835,7 @@ The echo command may be used to annoy .I screen users with a 'message of the -day'. Typically installed in a global /local/etc/screenrc. +day'. Typically installed in a global /etc/screenrc. The option \*Q-n\*U may be used to suppress the line feed. See also \*Qsleep\*U. Echo is also useful for online checking of environment variables. @@ -4844,14 +4844,14 @@ .I screen distribution package for private and global initialization files. .IP $SYSSCREENRC -.IP /usr/local/etc/screenrc +.IP /etc/screenrc .I screen initialization commands .IP $SCREENRC .IP $HOME/.screenrc -Read in after /usr/local/etc/screenrc +Read in after /etc/screenrc .IP $SCREENDIR/S- -.IP /local/screens/S- +.IP /var/run/screen/S- Socket directories (default) .IP /usr/tmp/screens/S- Alternate socket directories. @@ -4870,7 +4870,7 @@ or .IP /etc/termcap Terminal capability databases -.IP /etc/utmp +.IP /var/run/utmp Login records .IP $LOCKPRG Program that locks a terminal. @@ -4992,9 +4992,9 @@ must be installed as set-uid with owner root on most systems in order to be able to correctly change the owner of the tty device file for each window. -Special permission may also be required to write the file \*Q/etc/utmp\*U. +Special permission may also be required to write the file \*Q/var/run/utmp\*U. .IP \(bu -Entries in \*Q/etc/utmp\*U are not removed when +Entries in \*Q/var/run/utmp\*U are not removed when .I screen is killed with SIGKILL. This will cause some programs (like "w" or "rwho") Index: screen/doc/screen.texinfo =================================================================== --- screen.orig/doc/screen.texinfo 2012-03-20 22:34:27.000000000 +0100 +++ screen/doc/screen.texinfo 2012-03-20 22:35:03.000000000 +0100 @@ -182,7 +182,7 @@ the invoking shell to the application (emacs in this case), because it is forked from the parent screen process, not from the invoking shell. -If @file{/etc/utmp} is writable by @code{screen}, an appropriate record +If @file{/var/run/utmp} is writable by @code{screen}, an appropriate record will be written to this file for each window, and removed when the window is closed. This is useful for working with @code{talk}, @code{script}, @code{shutdown}, @code{rsend}, @code{sccs} and other @@ -311,7 +311,7 @@ @item -l @itemx -ln -Turn login mode on or off (for @file{/etc/utmp} updating). This option +Turn login mode on or off (for @file{/var/run/utmp} updating). This option is equivalent to the @code{deflogin} command (@pxref{Login}). @item -ls [@var{match}] @@ -485,7 +485,7 @@ @cindex screenrc When @code{screen} is invoked, it executes initialization commands from the files @file{.screenrc} in the user's home directory and -@file{/usr/local/etc/screenrc}. These defaults can be overridden in the +@file{/etc/screenrc}. These defaults can be overridden in the following ways: For the global screenrc file @code{screen} searches for the environment variable @code{$SYSSCREENRC} (this override feature may be disabled at @@ -1069,7 +1069,7 @@ @item logfile @var{filename} Place where to collect logfiles. @xref{Log}. @item login [@var{state}] -Log the window in @file{/etc/utmp}. @xref{Login}. +Log the window in @file{/var/run/utmp}. @xref{Login}. @item logtstamp [@var{state}] Configure logfile time-stamps. @xref{Log}. @item mapdefault @@ -2318,7 +2318,7 @@ * Naming Windows:: Control the name of the window * Console:: See the host's console messages * Kill:: Destroy an unwanted window -* Login:: Control @file{/etc/utmp} logging +* Login:: Control @file{/var/run/utmp} logging * Mode:: Control the file mode of the pty * Monitor:: Watch for activity or inactivity in a window * Windows:: List the active windows @@ -2527,7 +2527,7 @@ @kindex L @deffn Command login [state] (@kbd{C-a L})@* -Adds or removes the entry in @file{/etc/utmp} for the current window. +Adds or removes the entry in @file{/var/run/utmp} for the current window. This controls whether or not the window is @dfn{logged in}. In addition to this toggle, it is convenient to have ``log in'' and ``log out'' keys. For instance, @code{bind I login on} and @code{bind O @@ -5670,17 +5670,17 @@ global initialization files. @item @code{$SYSSCREENRC} -@itemx /local/etc/screenrc +@itemx /etc/screenrc @code{screen} initialization commands @item @code{$SCREENRC} @itemx @code{$HOME}/.iscreenrc @itemx @code{$HOME}/.screenrc -Read in after /local/etc/screenrc +Read in after /etc/screenrc @item @code{$SCREENDIR}/S-@var{login} -@item /local/screens/S-@var{login} +@item /var/run/screen/S-@var{login} Socket directories (default) @item /usr/tmp/screens/S-@var{login} @@ -5703,7 +5703,7 @@ @itemx /etc/termcap Terminal capability databases -@item /etc/utmp +@item /var/run/utmp Login records @item @code{$LOCKPRG} @@ -5809,10 +5809,10 @@ in order to be able to correctly change the owner of the tty device file for each window. Special permission may also be required to write the file -@file{/etc/utmp}. +@file{/var/run/utmp}. @item -Entries in @file{/etc/utmp} are not removed when @code{screen} is killed +Entries in @file{/var/run/utmp} are not removed when @code{screen} is killed with SIGKILL. This will cause some programs (like "w" or "rwho") to advertise that a user is logged on who really isn't. @@ -5893,7 +5893,7 @@ @cindex socket directory The socket directory defaults either to @file{$HOME/.screen} or simply to -@file{/tmp/screens} or preferably to @file{/usr/local/screens} chosen at +@file{/tmp/screens} or preferably to @file{/var/run/screen} chosen at compile-time. If @code{screen} is installed setuid root, then the administrator should compile screen with an adequate (not NFS mounted) @code{SOCKDIR}. If @code{screen} is not debian/patches/47screen-cc.patch0000644000000000000000000001756011732171510013662 0ustar Author: Description: Some patches stolen from the fedora package for better error checking and tty security. Index: screen/utmp.c =================================================================== --- screen.orig/utmp.c 2011-10-08 19:54:17.000000000 +0200 +++ screen/utmp.c 2011-10-08 19:59:23.000000000 +0200 @@ -361,7 +361,7 @@ char *tty; debug("couln't zap slot -> do mesg n\n"); D_loginttymode = 0; - if ((tty = ttyname(D_userfd)) && stat(tty, &stb) == 0 && (int)stb.st_uid == real_uid && ((int)stb.st_mode & 0777) != 0666) + if ((tty = ttyname(D_userfd)) && stat(tty, &stb) == 0 && (int)stb.st_uid == real_uid && !CheckTtyname(tty) && ((int)stb.st_mode & 0777) != 0666) { D_loginttymode = (int)stb.st_mode & 0777; chmod(D_usertty, stb.st_mode & 0600); @@ -387,7 +387,7 @@ } UT_CLOSE; D_loginslot = (slot_t)0; - if (D_loginttymode && (tty = ttyname(D_userfd))) + if (D_loginttymode && (tty = ttyname(D_userfd)) && !CheckTtyname(tty)) chmod(tty, D_loginttymode); } @@ -575,7 +575,7 @@ return ut_delete_user(slot, u.ut_pid, 0, 0) != 0; #endif #ifdef HAVE_UTEMPTER - if (eff_uid && wi->w_ptyfd != -1) + if (eff_uid && wi && wi->w_ptyfd != -1) { /* sigh, linux hackers made the helper functions void */ if (SLOT_USED(u)) @@ -853,7 +853,7 @@ for (fd = 0; fd <= 2 && (tty = ttyname(fd)) == NULL; fd++) ; - if ((tty == NULL) || ((fd = open(UTMP_FILE, O_RDONLY)) < 0)) + if ((tty == NULL) || CheckTtyname(tty) || ((fd = open(UTMP_FILE, O_RDONLY)) < 0)) return NULL; tty = stripdev(tty); retbuf[0] = '\0'; Index: screen/extern.h =================================================================== --- screen.orig/extern.h 2011-10-08 19:54:16.000000000 +0200 +++ screen/extern.h 2011-10-08 19:59:23.000000000 +0200 @@ -110,6 +110,7 @@ extern struct baud_values *lookup_baud __P((int bps)); extern int SetBaud __P((struct mode *, int, int)); extern int SttyMode __P((struct mode *, char *)); +extern int CheckTtyname __P((char *)); /* mark.c */ Index: screen/screen.c =================================================================== --- screen.orig/screen.c 2011-10-08 19:58:56.000000000 +0200 +++ screen/screen.c 2011-10-08 19:59:23.000000000 +0200 @@ -972,8 +972,13 @@ else \ attach_tty = ""; \ } \ - else if (stat(attach_tty, &st)) \ - Panic(errno, "Cannot access '%s'", attach_tty); \ + else \ + { \ + if (stat(attach_tty, &st)) \ + Panic(errno, "Cannot access '%s'", attach_tty); \ + if (CheckTtyname(attach_tty)) \ + Panic(0, "Bad tty '%s'", attach_tty); \ + } \ if (strlen(attach_tty) >= MAXPATHLEN) \ Panic(0, "TtyName too long - sorry."); \ } while (0) Index: screen/tty.sh =================================================================== --- screen.orig/tty.sh 2011-10-08 19:58:28.000000000 +0200 +++ screen/tty.sh 2011-10-08 19:59:23.000000000 +0200 @@ -60,6 +60,7 @@ #include #include #include +#include #ifndef sgi # include #endif @@ -1499,6 +1500,19 @@ return 0; } + +int +CheckTtyname (tty) +char *tty; +{ + struct stat st; + + if (lstat(tty, &st) || !S_ISCHR(st.st_mode) || + (st.st_nlink > 1 && strncmp(tty, "/dev/", 5))) + return -1; + return 0; +} + /* * Write out the mode struct in a readable form */ Index: screen/socket.c =================================================================== --- screen.orig/socket.c 2011-10-08 19:54:17.000000000 +0200 +++ screen/socket.c 2011-10-08 19:59:23.000000000 +0200 @@ -722,6 +722,7 @@ char *args[MAXARGS]; register int n; register char **pp = args, *p = mp->m.create.line; + char buf[20]; nwin = nwin_undef; n = mp->m.create.nargs; @@ -731,7 +732,6 @@ if (n) { int l, num; - char buf[20]; l = strlen(p); if (IsNumColon(p, 10, buf, sizeof(buf))) Index: screen/braille_tsi.c =================================================================== --- screen.orig/braille_tsi.c 2011-10-08 19:54:17.000000000 +0200 +++ screen/braille_tsi.c 2011-10-08 19:59:23.000000000 +0200 @@ -127,7 +127,6 @@ r = read(bd.bd_fd,ibuf,1); if (r != 1) return -1; - if (r != -1) if (ibuf[0] == 'V') r = read(bd.bd_fd, ibuf, 3); else Index: screen/fileio.c =================================================================== --- screen.orig/fileio.c 2011-10-08 19:58:46.000000000 +0200 +++ screen/fileio.c 2011-10-08 19:59:23.000000000 +0200 @@ -80,8 +80,6 @@ } else { - if (len1 == 0) - return 0; if ((cp = malloc((unsigned) len1 + add_colon + 1)) == NULL) Panic(0, "%s", strnomem); cp[len1 + add_colon] = '\0'; Index: screen/attacher.c =================================================================== --- screen.orig/attacher.c 2011-10-08 19:59:12.000000000 +0200 +++ screen/attacher.c 2011-10-08 19:59:23.000000000 +0200 @@ -185,8 +185,8 @@ if (ret == SIG_POWER_BYE) { int ppid; - setgid(real_gid); - setuid(real_uid); + if (setgid(real_gid) || setuid(real_uid)) + Panic(errno, "setuid/gid"); if ((ppid = getppid()) > 1) Kill(ppid, SIGHUP); exit(0); @@ -282,7 +282,10 @@ #ifdef MULTIUSER if (!multiattach) #endif - setuid(real_uid); + { + if (setuid(real_uid)) + Panic(errno, "setuid"); + } #if defined(MULTIUSER) && defined(USE_SETEUID) else { @@ -290,7 +293,8 @@ xseteuid(real_uid); /* multi_uid, allow backend to send signals */ } #endif - setgid(real_gid); + if (setgid(real_gid)) + Panic(errno, "setgid"); eff_uid = real_uid; eff_gid = real_gid; @@ -486,7 +490,8 @@ #ifdef MULTIUSER if (tty_oldmode >= 0) { - setuid(own_uid); + if (setuid(own_uid)) + Panic(errno, "setuid"); chmod(attach_tty, tty_oldmode); } #endif @@ -504,11 +509,14 @@ if (multiattach) exit(SIG_POWER_BYE); #endif - setgid(real_gid); + if (setgid(real_gid)) + Panic(errno, "setgid"); #ifdef MULTIUSER - setuid(own_uid); + if (setuid(own_uid)) + Panic(errno, "setuid"); #else - setuid(real_uid); + if (setuid(real_uid)) + Panic(errno, "setuid"); #endif /* we don't want to disturb init (even if we were root), eh? jw */ if ((ppid = getppid()) > 1) @@ -679,11 +687,14 @@ LockHup SIGDEFARG { int ppid = getppid(); - setgid(real_gid); + if (setgid(real_gid)) + Panic(errno, "setgid"); #ifdef MULTIUSER - setuid(own_uid); + if (setuid(own_uid)) + Panic(errno, "setuid"); #else - setuid(real_uid); + if (setuid(real_uid)) + Panic(errno, "setuid"); #endif if (ppid > 1) Kill(ppid, SIGHUP); @@ -710,11 +721,14 @@ if ((pid = fork()) == 0) { /* Child */ - setgid(real_gid); + if (setgid(real_gid)) + Panic(errno, "setgid"); #ifdef MULTIUSER - setuid(own_uid); + if (setuid(own_uid)) + Panic(errno, "setuid"); #else - setuid(real_uid); /* this should be done already */ + if (setuid(real_uid)) /* this should be done already */ + Panic(errno, "setuid"); #endif closeallfiles(0); /* important: /etc/shadow may be open */ execl(prg, "SCREEN-LOCK", NULL); @@ -847,6 +861,7 @@ #ifdef USE_PAM pam_handle_t *pamh = 0; int pam_error; + char *tty_name; #endif char *pass = 0, mypass[16 + 1], salt[3]; int using_pam = 1; @@ -926,6 +941,15 @@ pam_error = pam_start("screen", ppp->pw_name, &PAM_conversation, &pamh); if (pam_error != PAM_SUCCESS) AttacherFinit(SIGARG); /* goodbye */ + + if (strncmp(attach_tty, "/dev/", 5) == 0) + tty_name = attach_tty + 5; + else + tty_name = attach_tty; + pam_error = pam_set_item(pamh, PAM_TTY, tty_name); + if (pam_error != PAM_SUCCESS) + AttacherFinit(SIGARG); /* goodbye */ + pam_error = pam_authenticate(pamh, 0); pam_end(pamh, pam_error); PAM_conversation.appdata_ptr = 0; debian/patches/series0000644000000000000000000000202412173167564012044 0ustar # 01-08: fixes to configure, altering preprocessor macros etc. 01configure_fix_alpha_vsprintf.patch 03-fix-terminal-handling-on-kfreebsd.patch 05fix_osdef_include.patch 06-fix-parallel-build.patch # 10-79: "regular" code and documentation fixes 10norootpassword.patch 11replace_doc_paths.patch 12kfreebsd_ctty.patch 13split_info_files.patch 14size_matters.patch 16fix_gcc_warnings.patch 22exchange_file_mode.patch 23exitcode_q_ls.patch 24option_parser.patch 26source_encoding.patch 32misc_minor_fixes.patch 45suppress_remap.patch 46fix-keybinding-typo-in-manpage.patch 47screen-cc.patch 48screen-ipv6.patch 49long-usernames.patch 50increase-max-TERM-length.patch 51fix-utf8-status-padding-bug.patch #52fix_screen_utf8_nfd.patch 53fix-startup-race-condition.patch 58-show-encoding-hardstatus.patch 59-fix-manpage-warnings.patch 60-644788-screen-4.1.0-4.0.3-interoperability.patch 61-allow-dev-console-to-be-a-symlink.patch 62-prevent-repeated-title-prompt.patch # 80-99: experimental patches, new features etc. 80EXP_session_creation_time.patch debian/patches/14size_matters.patch0000644000000000000000000000467011732174024014524 0ustar Author: Description: * Increase the MAXSTR macro to suit present-day needs. * Increase the maximum length of the input line buffer likewise. Index: screen/input.c =================================================================== --- screen.orig/input.c 2012-03-20 22:34:27.000000000 +0100 +++ screen/input.c 2012-03-20 22:35:13.000000000 +0100 @@ -43,7 +43,7 @@ struct inpline { - char buf[101]; /* text buffer */ + char buf[MAXSTR+1]; /* text buffer */ int len; /* length of the editible string */ int pos; /* cursor position in editable string */ struct inpline *next, *prev; @@ -58,7 +58,7 @@ struct inpdata { struct inpline inp; - int inpmaxlen; /* 100, or less, if caller has shorter buffer */ + int inpmaxlen; /* MAXSTR, or less, if caller has shorter buffer */ char *inpstring; /* the prompt */ int inpstringlen; /* length of the prompt */ int inpmode; /* INP_NOECHO, INP_RAW, INP_EVERY */ @@ -134,8 +134,8 @@ if (!flayer) return; - if (len > 100) - len = 100; + if (len > MAXSTR) + len = MAXSTR; if (!(mode & INP_NOECHO)) { maxlen = flayer->l_width - 1 - strlen(istr); Index: screen/process.c =================================================================== --- screen.orig/process.c 2012-03-20 22:34:27.000000000 +0100 +++ screen/process.c 2012-03-20 22:35:13.000000000 +0100 @@ -2097,7 +2097,7 @@ ChangeAKA(fore, *args, strlen(*args)); break; case RC_COLON: - Input(":", 100, INP_EVERY, Colonfin, NULL, 0); + Input(":", MAXSTR, INP_EVERY, Colonfin, NULL, 0); if (*args && **args) { s = *args; Index: screen/screen.h =================================================================== --- screen.orig/screen.h 2012-03-20 22:34:27.000000000 +0100 +++ screen/screen.h 2012-03-20 22:35:13.000000000 +0100 @@ -91,7 +91,7 @@ #define Ctrl(c) ((c)&037) -#define MAXSTR 512 +#define MAXSTR 768 #define MAXARGS 64 #define MSGWAIT 5 #define MSGMINWAIT 1 Index: screen/window.c =================================================================== --- screen.orig/window.c 2012-03-20 22:34:27.000000000 +0100 +++ screen/window.c 2012-03-20 22:35:13.000000000 +0100 @@ -2233,7 +2233,7 @@ return; } flayer = &p->w_layer; - Input(":", 100, INP_COOKED, zmodem_fin, NULL, 0); + Input(":", MAXSTR, INP_COOKED, zmodem_fin, NULL, 0); s = send ? zmodem_sendcmd : zmodem_recvcmd; n = strlen(s); LayProcess(&s, &n); debian/patches/03-fix-terminal-handling-on-kfreebsd.patch0000644000000000000000000000223211762745454020452 0ustar Description: Add some missing defined(__GLIBC__) to get linux-ish terminal handling. Author: Axel Beckert Thanks: Jan Christoph Nordholz Closes: #660567 Index: screen-4.1.0~20120320gitdb59704/pty.c =================================================================== --- screen-4.1.0~20120320gitdb59704.orig/pty.c 2011-10-05 00:32:21.000000000 +0200 +++ screen-4.1.0~20120320gitdb59704/pty.c 2012-06-03 21:42:56.000000000 +0200 @@ -136,7 +136,7 @@ { if (f < 0) return; -#if defined(I_PUSH) && defined(HAVE_SVR4_PTYS) && !defined(sgi) && !defined(linux) && !defined(__osf__) && !defined(M_UNIX) +#if defined(I_PUSH) && defined(HAVE_SVR4_PTYS) && !defined(sgi) && !defined(linux) && !defined(__GLIBC__) && !defined(__osf__) && !defined(M_UNIX) if (ioctl(f, I_PUSH, "ptem")) Panic(errno, "InitPTY: cannot I_PUSH ptem"); if (ioctl(f, I_PUSH, "ldterm")) @@ -260,7 +260,7 @@ sigret_t (*sigcld)__P(SIGPROTOARG); strcpy(PtyName, "/dev/ptmx"); -#if defined(HAVE_GETPT) && defined(linux) +#if defined(HAVE_GETPT) && (defined(linux) || defined(__GLIBC__)) if ((f = getpt()) == -1) #else if ((f = open(PtyName, O_RDWR | O_NOCTTY)) == -1) debian/patches/80EXP_session_creation_time.patch0000644000000000000000000002272211765116313017120 0ustar Author: Description: Add lookup code for the creation time of each session. Requires digging in /proc/$pid and /proc/uptime, though, so it's definitely no candidate for the Beautiful C contest. Affects screen's behaviour in the following situations: * 'screen -ls' lists available sessions sorted chronologically * 'screen -RR' now picks the youngest session instead of an arbitrary one Index: screen/doc/screen.1 =================================================================== --- screen.orig/doc/screen.1 2012-03-20 22:41:13.000000000 +0100 +++ screen/doc/screen.1 2012-03-20 22:41:52.000000000 +0100 @@ -242,7 +242,7 @@ .IR screen , but prints a list of .I pid.tty.host -strings identifying your +strings and creation timestamps identifying your .I screen sessions. Sessions marked `detached' can be resumed with \*Qscreen \-r\*U. Those marked @@ -340,7 +340,7 @@ sessions in another user's directory. This requires setuid-root. .TP 5 .B \-R -attempts to resume the first detached +attempts to resume the youngest (in terms of creation time) detached .I screen session it finds. If successful, all other command-line options are ignored. If no detached session exists, starts a new session using the specified @@ -350,6 +350,8 @@ .I screen is run as a login-shell (actually screen uses \*Q\-xRR\*U in that case). For combinations with the \fB\-d\fP/\fB\-D\fP option see there. +.B Note: +Time-based session selection is a Debian addition. .TP 5 .BI "\-s " program sets the default shell to the program specified, instead of the value Index: screen/doc/screen.texinfo =================================================================== --- screen.orig/doc/screen.texinfo 2012-03-20 22:41:10.000000000 +0100 +++ screen/doc/screen.texinfo 2012-03-20 22:41:52.000000000 +0100 @@ -318,7 +318,8 @@ @itemx -list [@var{match}] Do not start @code{screen}, but instead print a list of session identification strings (usually of the form @var{pid.tty.host}; -@pxref{Session Name}). Sessions marked @samp{detached} can be resumed +@pxref{Session Name}) and the corresponding creation timestamps. +Sessions marked @samp{detached} can be resumed with @code{screen -r}. Those marked @samp{attached} are running and have a controlling terminal. If the session runs in multiuser mode, it is marked @samp{multi}. Sessions marked as @samp{unreachable} either @@ -404,14 +405,15 @@ sessions in another user's directory. This requires setuid-root. @item -R -Resume the first appropriate detached @code{screen} session. If -successful, all other command-line options are ignored. If no detached +Resume the most-recently created appropriate detached @code{screen} session. +If successful, all other command-line options are ignored. If no detached session exists, start a new session using the specified options, just as if @samp{-R} had not been specified. This option is set by default if screen is run as a login-shell (actually screen uses @samp{-xRR} in that case). For combinations with the @samp{-D}/@samp{-d} option see there. +@samp{Note:} Time-based session selection is a Debian addition. @item -s @var{program} Set the default shell to be @var{program}. By default, @code{screen} Index: screen/extern.h =================================================================== --- screen.orig/extern.h 2012-03-20 22:41:13.000000000 +0100 +++ screen/extern.h 2012-03-20 22:41:52.000000000 +0100 @@ -390,6 +390,8 @@ #else extern int xsnprintf __P(()); #endif +extern time_t SessionCreationTime __P((const char *)); +extern time_t GetUptime __P((void)); /* acl.c */ Index: screen/misc.c =================================================================== --- screen.orig/misc.c 2012-03-20 22:14:48.000000000 +0100 +++ screen/misc.c 2012-03-20 22:41:52.000000000 +0100 @@ -29,6 +29,7 @@ #include #include /* mkdir() declaration */ #include +#include #include "config.h" #include "screen.h" @@ -769,3 +770,40 @@ } #endif + +time_t SessionCreationTime(const char *fifo) { + char ppath[20]; + int pfd; + char pdata[512]; + char *jiffies; + + int pid = atoi(fifo); + if (pid <= 0) return 0; + sprintf(ppath, "/proc/%u/stat", pid); + pfd = open(ppath, O_RDONLY); + if (pfd < 0) return 0; + while (1) { + int R=0, RR; + RR = read(pfd, pdata + R, 512-R); + if (RR < 0) {close(pfd); return 0;} + else if (RR == 0) break; + } + close(pfd); + + for (pfd=21, jiffies=pdata; pfd; --pfd) { + jiffies = strchr(jiffies, ' '); + if (!jiffies) break; else ++jiffies; + } + if (!jiffies) return 0; + + return atol(jiffies) / 100; +} + +time_t GetUptime(void) { + char uptimestr[32]; + int fd = open("/proc/uptime", O_RDONLY); + if (fd < 0) return 0; + (void)read(fd, uptimestr, 32); + close(fd); + return atol(uptimestr); +} Index: screen/socket.c =================================================================== --- screen.orig/socket.c 2012-03-20 22:41:12.000000000 +0100 +++ screen/socket.c 2012-03-20 22:41:52.000000000 +0100 @@ -125,16 +125,18 @@ int sdirlen; int matchlen = 0; char *name, *n; - int firsts = -1, sockfd; - char *firstn = NULL; + int sockfd = -1; int nfound = 0, ngood = 0, ndead = 0, nwipe = 0, npriv = 0; int nperfect = 0; + time_t sysboot = time(NULL) - GetUptime(); struct sent { struct sent *next; int mode; char *name; - } *slist, **slisttail, *sent, *nsent; + time_t created; + int good; + } *slist, **slisttail, *sent, *nsent, *schosen = NULL; if (match) { @@ -161,7 +163,6 @@ Panic(errno, "Cannot opendir %s", SockPath); slist = 0; - slisttail = &slist; while ((dp = readdir(dirp))) { int cmatch = 0; @@ -173,7 +174,7 @@ { n = name; /* if we don't want to match digits. Skip them */ - if ((*match <= '0' || *match > '9') && (*n > '0' && *n <= '9')) + if ((*match < '0' || *match > '9') && (*n >= '0' && *n <= '9')) { while (*n >= '0' && *n <= '9') n++; @@ -252,12 +253,24 @@ debug(" store it.\n"); if ((sent = (struct sent *)malloc(sizeof(struct sent))) == 0) continue; - sent->next = 0; sent->name = SaveStr(name); sent->mode = mode; + sent->created = sysboot + SessionCreationTime(name); + sent->good = 0; + + for (slisttail = &slist; *slisttail; slisttail = &((*slisttail)->next)) + { + if ((*slisttail)->created < sent->created) break; + } + + sent->next = *slisttail; *slisttail = sent; - slisttail = &sent->next; nfound++; + if (sockfd >= 0) + { + close(sockfd); + sockfd = -1; + } sockfd = MakeClientSocket(0); #ifdef USE_SETEUID /* MakeClientSocket sets ids back to eff */ @@ -316,6 +329,7 @@ (!dflag && !rflag && !xflag)) { close(sockfd); + sockfd = -1; debug(" no!\n"); npriv++; /* a good socket that was not for us */ continue; @@ -323,19 +337,8 @@ ngood++; if (cmatch) nperfect++; - if (fdp && (firsts == -1 || (cmatch && nperfect == 1))) - { - if (firsts != -1) - close(firsts); - firsts = sockfd; - firstn = sent->name; - debug(" taken.\n"); - } - else - { - debug(" discarded.\n"); - close(sockfd); - } + sent->good = 1; + debug(" added to list.\n"); } (void)closedir(dirp); if (!lsflag && nperfect == 1) @@ -356,34 +359,42 @@ } for (sent = slist; sent; sent = sent->next) { + char timestr[64]; + if (sent->created == 0) + { + sprintf(timestr, "???"); + } else { + strftime(timestr, 64, "%x %X", localtime(&sent->created)); + } + printf("\t%s\t(%s)", sent->name, timestr); switch (sent->mode) { case 0700: - printf("\t%s\t(Attached)\n", sent->name); + printf("\t(Attached)\n"); break; case 0600: - printf("\t%s\t(Detached)\n", sent->name); + printf("\t(Detached)\n"); break; #ifdef MULTIUSER case 0701: - printf("\t%s\t(Multi, attached)\n", sent->name); + printf("\t(Multi, attached)\n"); break; case 0601: - printf("\t%s\t(Multi, detached)\n", sent->name); + printf("\t(Multi, detached)\n"); break; #endif case -1: /* No trigraphs here! */ - printf("\t%s\t(Dead ?%c?)\n", sent->name, '?'); + printf("\t(Dead ?%c?)\n", '?'); break; case -2: - printf("\t%s\t(Removed)\n", sent->name); + printf("\t(Removed)\n"); break; case -3: - printf("\t%s\t(Remote or dead)\n", sent->name); + printf("\t(Remote or dead)\n"); break; case -4: - printf("\t%s\t(Private)\n", sent->name); + printf("\t(Private)\n"); break; } } @@ -396,13 +407,37 @@ else Msg(0, m, ndead > 1 ? "s" : "", ndead > 1 ? "" : "es"); /* other args for nethack */ } - if (firsts != -1) + for (sent = slist; sent; sent = sent->next) { - sprintf(SockPath + sdirlen, "/%s", firstn); - *fdp = firsts; + if (sent->good) + { + schosen = sent; + break; + } + } + if (schosen && fdp) + { + if (sockfd >= 0 && !strcmp(SockPath + sdirlen + 1, schosen->name)) + { + *fdp = sockfd; + sockfd = -1; + } + else + { + sprintf(SockPath + sdirlen, "/%s", schosen->name); + *fdp = MakeClientSocket(0); +#ifdef USE_SETEUID + xseteuid(real_uid); + xsetegid(real_gid); +#endif + } } else SockPath[sdirlen] = 0; + if (sockfd >= 0) + { + close(sockfd); + } for (sent = slist; sent; sent = nsent) { nsent = sent->next; debian/patches/05fix_osdef_include.patch0000644000000000000000000000062611732171510015456 0ustar Author: Description: Add a missing include to get a few prototypes that caused build issues on kfreebsd-amd64. (See #357232) --- a/osdef.h.in +++ b/osdef.h.in @@ -106,6 +106,7 @@ extern char *tgoto __P((char *, int, int)); #ifdef POSIX +#include extern int setsid __P((void)); extern int setpgid __P((int, int)); extern int tcsetpgrp __P((int, int)); debian/patches/01configure_fix_alpha_vsprintf.patch0000644000000000000000000000124011732174003017721 0ustar Author: Description: Enhance the vsprintf() test to also succeed on Alpha. Cf. #213842. Index: screen/configure.in =================================================================== --- screen.orig/configure.in 2012-03-20 22:34:28.000000000 +0100 +++ screen/configure.in 2012-03-20 22:34:53.000000000 +0100 @@ -1212,7 +1212,7 @@ AC_SYS_LONG_FILE_NAMES AC_MSG_CHECKING(for vsprintf) -AC_TRY_LINK(,[vsprintf(0,0,0);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no)) +AC_TRY_LINK([#include ],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no)) AC_HEADER_DIRENT debian/patches/62-prevent-repeated-title-prompt.patch0000644000000000000000000000231212173167564020005 0ustar Description: Ensure that the title prompt only appears once Windows in screen can be renamed using C-a A (title). This can be done repeatedly so that any number of prompts for a new window name overlay each other. Once the user entered a name in the topmost prompt and presses enter, he has to do it again for all the prompts underneath. This can be very confusing in case the user hit C-a A several times without noticing or realizing. Author: Tobias Wulff Debian-Bug: 625866 Index: screen/process.c =================================================================== --- screen.orig/process.c 2013-07-14 23:43:28.058810093 +0200 +++ screen/process.c 2013-07-14 23:43:28.050810057 +0200 @@ -478,6 +478,8 @@ char *noargs[1]; +int enter_window_name_mode = 0; + void InitKeytab() { @@ -5745,6 +5747,8 @@ ASSERT(display); if (len && fore) ChangeAKA(fore, buf, strlen(buf)); + + enter_window_name_mode = 0; } static void @@ -5752,6 +5756,11 @@ { char *s, *ss; int n; + + if (enter_window_name_mode == 1) return; + + enter_window_name_mode = 1; + Input("Set window's title to: ", sizeof(fore->w_akabuf) - 1, INP_COOKED, AKAfin, NULL, 0); s = fore->w_title; if (!s) debian/patches/53fix-startup-race-condition.patch0000644000000000000000000000112111770460433017170 0ustar Fixes directory creation race condition (#653434) Index: screen/screen.c =================================================================== --- screen.orig/screen.c 2012-06-21 01:43:09.000000000 +0200 +++ screen/screen.c 2012-06-21 01:44:31.000000000 +0200 @@ -1127,7 +1127,7 @@ sprintf(SockPath, "%s/S-%s", SockDir, LoginName); if (access(SockPath, F_OK)) { - if (mkdir(SockPath, 0700) == -1) + if (mkdir(SockPath, 0700) == -1 && errno != EEXIST) Panic(errno, "Cannot make directory '%s'", SockPath); (void) chown(SockPath, real_uid, real_gid); } debian/patches/49long-usernames.patch0000644000000000000000000000720111732171510014750 0ustar Description: Patch to allow usernames longer than 20 characters. Source: http://www.mail-archive.com/screen-devel@gnu.org/msg00186.html Author: Steve Kemp Upstream-Bug: http://savannah.gnu.org/bugs/?21653 Debian-Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=560231 Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/screen/+bug/582153 Index: screen/acconfig.h =================================================================== --- screen.orig/acconfig.h 2011-10-08 21:20:48.000000000 +0200 +++ screen/acconfig.h 2011-10-08 21:20:57.000000000 +0200 @@ -39,6 +39,13 @@ #endif /* + * Length of longest username. + */ +#ifndef MAX_USERNAME_LEN +# define MAX_USERNAME_LEN 50 +#endif + +/* * Define SOCKDIR to be the directory to contain the named sockets * screen creates. This should be in a common subdirectory, such as * /usr/local or /tmp. It makes things a little more secure if you Index: screen/acls.c =================================================================== --- screen.orig/acls.c 2011-10-08 21:20:48.000000000 +0200 +++ screen/acls.c 2011-10-08 21:20:57.000000000 +0200 @@ -182,7 +182,7 @@ #endif (*up)->u_Esc = DefaultEsc; (*up)->u_MetaEsc = DefaultMetaEsc; - strncpy((*up)->u_name, name, 20); + strncpy((*up)->u_name, name, MAX_USERNAME_LEN); (*up)->u_password = NULL; if (pass) (*up)->u_password = SaveStr(pass); @@ -318,8 +318,8 @@ return UserAdd(name, pass, up); if (!strcmp(name, "nobody")) /* he remains without password */ return -1; - strncpy((*up)->u_password, pass ? pass : "", 20); - (*up)->u_password[20] = '\0'; + strncpy((*up)->u_password, pass ? pass : "", MAX_USERNAME_LEN); + (*up)->u_password[MAX_USERNAME_LEN] = '\0'; return 0; } #endif Index: screen/acls.h =================================================================== --- screen.orig/acls.h 2011-10-08 21:20:48.000000000 +0200 +++ screen/acls.h 2011-10-08 21:20:57.000000000 +0200 @@ -78,7 +78,7 @@ typedef struct acluser { struct acluser *u_next; /* continue the main user list */ - char u_name[20+1]; /* login name how he showed up */ + char u_name[MAX_USERNAME_LEN+1]; /* login name how he showed up */ char *u_password; /* his password (may be NullStr). */ int u_checkpassword; /* nonzero if this u_password is valid */ int u_detachwin; /* the window where he last detached */ Index: screen/screen.c =================================================================== --- screen.orig/screen.c 2011-10-08 21:20:56.000000000 +0200 +++ screen/screen.c 2011-10-08 21:20:57.000000000 +0200 @@ -997,7 +997,7 @@ if (home == 0 || *home == '\0') home = ppp->pw_dir; - if (strlen(LoginName) > 20) + if (strlen(LoginName) > MAX_USERNAME_LEN) Panic(0, "LoginName too long - sorry."); #ifdef MULTIUSER if (multi && strlen(multi) > 20) Index: screen/screen.h =================================================================== --- screen.orig/screen.h 2011-10-08 21:20:48.000000000 +0200 +++ screen/screen.h 2011-10-08 21:20:57.000000000 +0200 @@ -207,7 +207,7 @@ create; struct { - char auser[20 + 1]; /* username */ + char auser[MAX_USERNAME_LEN + 1]; /* username */ int apid; /* pid of frontend */ int adaptflag; /* adapt window size? */ int lines, columns; /* display size */ @@ -221,13 +221,13 @@ attach; struct { - char duser[20 + 1]; /* username */ + char duser[MAX_USERNAME_LEN + 1]; /* username */ int dpid; /* pid of frontend */ } detach; struct { - char auser[20 + 1]; /* username */ + char auser[MAX_USERNAME_LEN + 1]; /* username */ int nargs; char cmd[MAXPATHLEN]; /* command */ int apid; /* pid of frontend */ debian/patches/06-fix-parallel-build.patch0000644000000000000000000000200111765141342015533 0ustar screen FTBFS if make uses parallel building (at least with -j8). This patch adds the missing dependencies to make parallel builds work, too. Index: screen-4.1.0~20120320gitdb59704/Makefile.in =================================================================== --- screen-4.1.0~20120320gitdb59704.orig/Makefile.in 2012-06-10 17:35:56.616100993 +0200 +++ screen-4.1.0~20120320gitdb59704/Makefile.in 2012-06-10 17:40:37.784352971 +0200 @@ -350,7 +350,7 @@ viewport.o: layout.h viewport.h canvas.h viewport.c config.h screen.h os.h osdef.h ansi.h acls.h \ comm.h layer.h term.h image.h display.h window.h extern.h \ braille.h -list_generic.o: list_generic.h list_generic.c layer.h -list_display.o: list_generic.h list_display.c layer.h -list_window.o: list_generic.h list_window.c window.h layer.h +list_generic.o: list_generic.h list_generic.c layer.h screen.h osdef.h +list_display.o: list_generic.h list_display.c layer.h screen.h osdef.h +list_window.o: list_generic.h list_window.c window.h layer.h screen.h osdef.h debian/patches/13split_info_files.patch0000644000000000000000000000103312145043744015333 0ustar Author: Description: Split the info files at 50k This matches the distribution style of the orig tarball. Last-Revised: 2013-05-16 by Axel Beckert --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -28,7 +28,7 @@ info screen.info: screen.texinfo @rm -f screen.info* - $(MAKEINFO) $(srcdir)/screen.texinfo -o screen.info + $(MAKEINFO) --split-size=50000 $(srcdir)/screen.texinfo -o screen.info install: installdirs $(INSTALL_DATA) $(srcdir)/screen.1 $(DESTDIR)$(mandir)/man1/screen.1 debian/patches/10norootpassword.patch0000644000000000000000000000312211732171510015076 0ustar Author: Martin Pitt Description: When locking a root-owned screen, check that root has a password set. If not, ask for an unlocking key. See https://bugs.launchpad.net/bugs/6760 Index: screen/attacher.c =================================================================== --- screen.orig/attacher.c 2011-10-08 19:54:22.000000000 +0200 +++ screen/attacher.c 2011-10-08 19:58:12.000000000 +0200 @@ -847,11 +847,15 @@ #ifdef USE_PAM pam_handle_t *pamh = 0; int pam_error; -#else - char *pass, mypass[16 + 1], salt[3]; #endif + char *pass, mypass[16 + 1], salt[3]; + int using_pam = 1; -#ifndef USE_PAM +#ifdef USE_PAM + if (!ppp->pw_uid) + { +#endif + using_pam = 0; pass = ppp->pw_passwd; if (pass == 0 || *pass == 0) { @@ -884,6 +888,8 @@ pass = crypt(mypass, salt); pass = ppp->pw_passwd = SaveStr(pass); } +#ifdef USE_PAM + } #endif debug("screen_builtin_lck looking in gcos field\n"); @@ -913,6 +919,8 @@ AttacherFinit(SIGARG); /* NOTREACHED */ } + if (using_pam) + { #ifdef USE_PAM PAM_conversation.appdata_ptr = cp1; pam_error = pam_start("screen", ppp->pw_name, &PAM_conversation, &pamh); @@ -923,10 +931,13 @@ PAM_conversation.appdata_ptr = 0; if (pam_error == PAM_SUCCESS) break; -#else - if (!strncmp(crypt(cp1, pass), pass, strlen(pass))) - break; #endif + } + else + { + if (!strncmp(crypt(cp1, pass), pass, strlen(pass))) + break; + } debug("screen_builtin_lck: NO!!!!!\n"); bzero(cp1, strlen(cp1)); } debian/patches/50increase-max-TERM-length.patch0000644000000000000000000000432312173244664016416 0ustar From: Andy Spencer Subject: [screen-devel] [PATCH 1/1] Increase max TERM length to 40 characters Date: Tue, 5 Apr 2011 03:26:58 +0000 Source: https://lists.gnu.org/archive/html/screen-devel/2011-04/msg00002.html Debian-Bugs: 630976 621804 Some terms contain rather long TERM names these days, for example, `rxvt-unicode-256color'. Increasing the max size for the TERM variables avoids the `$TERM too long - sorry.' error when using these terms. --- display.h | 2 +- screen.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Index: screen/display.h =================================================================== --- screen.orig/display.h 2011-10-06 01:30:53.000000000 +0200 +++ screen/display.h 2011-10-08 21:28:51.000000000 +0200 @@ -73,7 +73,7 @@ struct win *d_other; /* pointer to other window */ int d_nonblock; /* -1 don't block if obufmax reached */ /* >0: block after nonblock secs */ - char d_termname[20 + 1]; /* $TERM */ + char d_termname[40 + 1]; /* $TERM */ char *d_tentry; /* buffer for tgetstr */ char d_tcinited; /* termcap inited flag */ int d_width, d_height; /* width/height of the screen */ Index: screen/screen.h =================================================================== --- screen.orig/screen.h 2011-10-08 21:20:57.000000000 +0200 +++ screen/screen.h 2011-10-08 21:28:45.000000000 +0200 @@ -214,7 +214,7 @@ char preselect[20]; int esc; /* his new escape character unless -1 */ int meta_esc; /* his new meta esc character unless -1 */ - char envterm[20 + 1]; /* terminal type */ + char envterm[40 + 1]; /* terminal type */ int encoding; /* encoding of display */ int detachfirst; /* whether to detach remote sessions first */ } Index: screen/process.c =================================================================== --- screen.orig/process.c 2013-07-22 16:56:05.000000000 +0200 +++ screen/process.c 2013-07-22 17:02:15.000000000 +0200 @@ -2664,9 +2664,9 @@ s = NULL; if (ParseSaveStr(act, &s)) break; - if (strlen(s) >= 20) + if (strlen(s) >= 40) { - OutputMsg(0, "%s: term: argument too long ( < 20)", rc_name); + OutputMsg(0, "%s: term: argument too long ( < 40)", rc_name); free(s); break; } debian/patches/16fix_gcc_warnings.patch0000644000000000000000000000154511732174231015325 0ustar Author: Description: Get rid of several minor gcc warnings. Index: screen/attacher.c =================================================================== --- screen.orig/attacher.c 2011-10-08 19:58:12.000000000 +0200 +++ screen/attacher.c 2011-10-08 19:58:41.000000000 +0200 @@ -848,7 +848,7 @@ pam_handle_t *pamh = 0; int pam_error; #endif - char *pass, mypass[16 + 1], salt[3]; + char *pass = 0, mypass[16 + 1], salt[3]; int using_pam = 1; #ifdef USE_PAM Index: screen/layer.c =================================================================== --- screen.orig/layer.c 2011-10-08 19:54:20.000000000 +0200 +++ screen/layer.c 2011-10-08 19:58:41.000000000 +0200 @@ -492,7 +492,7 @@ void LClearLine(l, y, xs, xe, bce, ol) struct layer *l; -int xs, xe, bce; +int y, xs, xe, bce; struct mline *ol; { struct canvas *cv; debian/patches/58-show-encoding-hardstatus.patch0000644000000000000000000000243111732174637017027 0ustar Author: rascov@rascov.tw Date: Wed Feb 11 05:51:31 CST 2009 Subject: show encoding in hardstatus, orginal from FreeBSD by yzlin@cs.nctu.edu.tw Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/screen/+bug/286810 Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=533498 Index: screen/screen.c =================================================================== --- screen.orig/screen.c 2012-03-20 22:41:24.000000000 +0100 +++ screen/screen.c 2012-03-20 22:41:49.000000000 +0100 @@ -2801,6 +2801,18 @@ } p += strlen(p) - 1; break; + #ifdef ENCODINGS + case 'e': + *p = 0; + D_encoding = nwin_options.encoding > 0 ? nwin_options.encoding : 0; + if (win && win->w_encoding) + { + *p++ = ' '; + strcpy(p, EncodingName(win->w_encoding)); + } + p += strlen(p) - 1; + break; + #endif case '{': { char rbuf[128]; Index: screen/process.c =================================================================== --- screen.orig/process.c 2012-03-20 22:41:05.000000000 +0100 +++ screen/process.c 2012-03-20 22:41:49.000000000 +0100 @@ -3687,6 +3687,7 @@ { WinSwitchEncoding(fore, n); ResetCharsets(fore); + RedisplayDisplays(0); } else if (i && display) D_encoding = n; debian/patches/46fix-keybinding-typo-in-manpage.patch0000644000000000000000000000342711732171510017726 0ustar The manpage for Screen says that you should use C-a C-\ to quit screen, while it is in fact C-a \ (Closes: #630535) There's also one case where C-a h is documented instead of C-a C-h (aka backspace) (Closes: #541793) Index: screen/doc/screen.1 =================================================================== --- screen.orig/doc/screen.1 2011-10-08 19:58:19.000000000 +0200 +++ screen/doc/screen.1 2011-10-08 19:59:19.000000000 +0200 @@ -512,7 +512,7 @@ Show the number (and title) of the current window. .IP "\fBC-a backspace\fP" .PD 0 -.IP "\fBC-a h\fP" +.IP "\fBC-a C-h\fP" .IP "\fBC-a p\fP" .IP "\fBC-a C-p\fP (prev)" .PD @@ -578,7 +578,7 @@ Write out a \*Q.termcap\*U file. .IP "\fBC-a ?\fP (help)" Show key bindings. -.IP "\fBC-a C-\e\fP (quit)" +.IP "\fBC-a \e\fP (quit)" Kill all windows and terminate .IR screen . .IP "\fBC-a :\fP (colon)" Index: screen/doc/screen.texinfo =================================================================== --- screen.orig/doc/screen.texinfo 2011-10-08 19:58:19.000000000 +0200 +++ screen/doc/screen.texinfo 2011-10-08 19:59:19.000000000 +0200 @@ -791,7 +791,7 @@ (help)@* Show key bindings. @xref{Help}. -@item @kbd{C-a C-\} +@item @kbd{C-a \} (quit)@* Kill all windows and terminate @code{screen}. @xref{Quit}. @@ -2031,13 +2031,10 @@ @node Quit, , Suspend, Session Management @section Quit -@kindex C-\ +@kindex \ @deffn Command quit -(@kbd{C-a C-\})@* -Kill all windows and terminate @code{screen}. Note that on VT100-style -terminals the keys @kbd{C-4} and @kbd{C-\} are identical. So be careful -not to type @kbd{C-a C-4} when selecting window no. 4. Use the empty -bind command (as in @code{bind "^\"}) to remove a key binding +(@kbd{C-a \})@* +Kill all windows and terminate @code{screen}. (@pxref{Key Binding}). @end deffn debian/patches/59-fix-manpage-warnings.patch0000644000000000000000000010731111765125155016126 0ustar Patch to fix minor issues with the man page: * Lintian warning manpage-has-errors-from-man fixed by replacing all occurrences of "..." by "…" * Fixes tons of lintian warnings hyphen-used-as-minus-sign * Fixes two typos found by lintian Index: screen/doc/screen.1 =================================================================== --- screen.orig/doc/screen.1 2012-06-10 15:07:54.000000000 +0200 +++ screen/doc/screen.1 2012-06-10 15:12:28.000000000 +0200 @@ -245,7 +245,7 @@ strings identifying your .I screen sessions. -Sessions marked `detached' can be resumed with \*Qscreen -r\*U. Those marked +Sessions marked `detached' can be resumed with \*Qscreen \-r\*U. Those marked `attached' are running and have a controlling terminal. If the session runs in multiuser mode, it is marked `multi'. Sessions marked as `unreachable' either live on a different host or are `dead'. @@ -264,13 +264,13 @@ .B \-m causes .I screen -to ignore the $STY environment variable. With \*Qscreen -m\*U creation of +to ignore the $STY environment variable. With \*Qscreen \-m\*U creation of a new session is enforced, regardless whether .I screen is called from within another .I screen session or not. This flag has a special meaning in connection -with the `-d' option: +with the `\-d' option: .TP 8 .B \-d \-m Start @@ -309,7 +309,7 @@ .TP 5 .B \-Q Some commands now can be queried from a remote session using this -flag, e.g. 'screen -Q windows'. The commands will send the +flag, e.g. \*Qscreen \-Q windows\*U. The commands will send the response to the stdout of the querying process. If there was an error in the command, then the querying process will exit with a non-zero status. @@ -348,7 +348,7 @@ .B \-R had not been specified. The option is set by default if .I screen -is run as a login-shell (actually screen uses \*Q-xRR\*U in that case). +is run as a login-shell (actually screen uses \*Q\-xRR\*U in that case). For combinations with the \fB\-d\fP/\fB\-D\fP option see there. .TP 5 .BI "\-s " program @@ -359,7 +361,7 @@ .BI "\-S " sessionname When creating a new session, this option can be used to specify a meaningful name for the session. This name identifies the session for -\*Qscreen -list\*U and \*Qscreen -r\*U actions. It substitutes the +\*Qscreen \-list\*U and \*Qscreen \-r\*U actions. It substitutes the default [\fItty.host\fP] suffix. .TP 5 .BI "\-t " name @@ -367,7 +369,7 @@ See also the \*Qshelltitle\*U .screenrc command. .TP 5 .BI "\-T " term -Set the $TERM enviroment varible using the spcified term as +Set the $TERM environment varible using the spcified term as opposed to the defualt setting of \fBscreen\fP. .TP 5 .B \-U @@ -379,7 +381,7 @@ Print version number. .TP 5 .BR \-wipe " [" \fImatch ] -does the same as \*Qscreen -ls\*U, but removes destroyed sessions instead of +does the same as \*Qscreen \-ls\*U, but removes destroyed sessions instead of marking them as `dead'. An unreachable session is considered dead, when its name matches either the name of the local host, or the explicitly given parameter, if any. @@ -425,7 +427,7 @@ Present a list of all windows for selection. .IP "\fBC-a 0\fP (select 0)" .PD 0 -.IP "\fB ... \fP ..." +.IP "\fB … \fP …" .IP "\fBC-a 9\fP (select 9)" .IP "\fBC-a -\fP (select -)" .PD @@ -647,7 +649,7 @@ searches for the environment variable $SYSSCREENRC (this override feature may be disabled at compile-time). The user specific screenrc file is searched in $SCREENRC, then $HOME/.screenrc. -The command line option \fB-c\fP takes +The command line option \fB\-c\fP takes precedence over the above user screenrc files. .PP Commands in these files are used to set options, bind functions to @@ -699,7 +701,7 @@ .BI chacl " usernames permbits list" .PP Change permissions for a comma separated list of users. Permission bits are -represented as `r', `w' and `x'. Prefixing `+' grants the permission, `-' +represented as `r', `w' and `x'. Prefixing `+' grants the permission, `\-' removes it. The third parameter is a comma separated list of commands and/or windows (specified either by number or title). The special list `#' refers to all windows, `?' to all commands. if \fIusernames\fP consists of a single `*', @@ -709,9 +711,9 @@ user obtains a writelock for this window. Other bits are currently ignored. To withdraw the writelock from another user in window 2: -`aclchg \fIusername\fP -w+w 2'. +`aclchg \fIusername\fP \-w+w 2'. To allow read-only access to the session: `aclchg \fIusername\fP --w \&"#\&"'. As soon as a user's name is known to +\-w \&"#\&"'. As soon as a user's name is known to .I screen he can attach to the session and (per default) has full permissions for all command and windows. Execution permission for the acl commands, `at' and others @@ -746,11 +748,11 @@ .ne 3 .B aclumask .RI [[ users ] +bits -.RI |[ users ] -bits " .... ]" +.RI |[ users ] \-bits " …. ]" .br .B umask .RI [[ users ] +bits -.RI |[ users ] -bits " .... ]" +.RI |[ users ] \-bits " …. ]" .PP This specifies the access other users have to windows that will be created by the caller of the command. @@ -805,7 +807,7 @@ .sp .ne 3 .BR "at " "[\fIidentifier\fP][" "#\fP|\fP*\fP|\fP%\fP] " -.IR "command " [ args " ... ]" +.IR "command " [ args " … ]" .PP Execute a command at other displays or windows as if it had been entered there. \*QAt\*U changes the context (the `current window' or `current display' @@ -856,7 +858,7 @@ .PP Change the color to bright red if bold text is to be printed. .IP -attrcolor u "-u b" +attrcolor u "\-u b" .PP Use blue text instead of underline. .IP @@ -876,7 +878,7 @@ .I screen will automatically detach upon hangup, which saves all your running programs until they are resumed with a -.B "screen -r" +.B "screen \-r" command. When turned off, a hangup signal will terminate .I screen @@ -894,7 +896,7 @@ .I lifespan .I autorefresh .I cmd -.I args... +.I args… .br .BI "backtick " id .PP @@ -948,7 +950,7 @@ .sp .ne 3 .BI "bind " -.RB [ -c +.RB [ \-c .IR class ] .I key .RI [ command " [" args ]] @@ -970,7 +972,7 @@ for this key is removed. The \fIcommand\fP argument can be any command listed in this section. -If a command class is specified via the \*Q-c\*U option, the key +If a command class is specified via the \*Q\-c\*U option, the key is bound for the specified class. Use the \*Qcommand\*U command to activate a class. Command classes can be used to create multiple command keys or multi-character bindings. @@ -983,7 +985,7 @@ bind k bind K kill bind ^f screen telnet foobar - bind \e033 screen -ln -t root -h 1000 9 su + bind \e033 screen \-ln \-t root \-h 1000 9 su .fi .PP would bind the space key to the command that displays a list @@ -997,29 +999,29 @@ a superuser shell and a scrollback buffer of 1000 lines. .PP .nf - bind -c demo1 0 select 10 - bind -c demo1 1 select 11 - bind -c demo1 2 select 12 - bindkey "^B" command -c demo1 + bind \-c demo1 0 select 10 + bind \-c demo1 1 select 11 + bind \-c demo1 2 select 12 + bindkey "^B" command \-c demo1 .fi .PP makes \*QC-b 0\*U select window 10, \*QC-b 1\*U window 11, etc. .PP .nf - bind -c demo2 0 select 10 - bind -c demo2 1 select 11 - bind -c demo2 2 select 12 - bind - command -c demo2 + bind \-c demo2 0 select 10 + bind \-c demo2 1 select 11 + bind \-c demo2 2 select 12 + bind \- command \-c demo2 .fi .PP -makes \*QC-a - 0\*U select window 10, \*QC-a - 1\*U window 11, etc. +makes \*QC-a \- 0\*U select window 10, \*QC-a \- 1\*U window 11, etc. .sp .ne 3 .B bindkey -.RB [ -d ] -.RB [ -m ] -.RB [ -a ] -.RB [[ -k | -t ] +.RB [ \-d ] +.RB [ \-m ] +.RB [ \-a ] +.RB [[ \-k | \-t ] .I string .RI [ "cmd args" ]] .PP @@ -1032,9 +1034,9 @@ \*QINPUT TRANSLATION\*U for a list of default key bindings. .br If the -.B -d +.B \-d option is given, bindkey modifies the default table, -.B -m +.B \-m changes the copy mode table and with neither option the user table is selected. The argument @@ -1042,18 +1044,18 @@ is the sequence of characters to which an action is bound. This can either be a fixed string or a termcap keyboard capability name (selectable with the -.B -k +.B \-k option). .br Some keys on a VT100 terminal can send a different string if application mode is turned on (e.g the cursor keys). Such keys have two entries in the translation table. You can select the application mode entry by specifying the -.B -a +.B \-a option. .br The -.B -t +.B \-t option tells screen not to do inter-character timing. One cannot turn off the timing if a termcap capability is used. .br @@ -1067,18 +1069,18 @@ Here are some examples of keyboard bindings: .sp .nf - bindkey -d + bindkey \-d .fi Show all of the default key bindings. The application mode entries are marked with [A]. .sp .nf - bindkey -k k1 select 1 + bindkey \-k k1 select 1 .fi Make the "F1" key switch to window one. .sp .nf - bindkey -t foo stuff barfoo + bindkey \-t foo stuff barfoo .fi Make "foo" an abbreviation of the word "barfoo". Timeout is disabled so that users can type slowly. @@ -1092,7 +1094,7 @@ you have to press the key twice (i.e., escape the escape binding). .sp .nf - bindkey -k F1 command + bindkey \-k F1 command .fi Make the F11 (not F1!) key an alternative screen escape (besides ^A). @@ -1144,7 +1146,7 @@ .PP Change the filename used for reading and writing with the paste buffer. If the optional argument to the \*Qbufferfile\*U command is omitted, -the default setting (\*Q/tmp/screen-exchange\*U) is reactivated. +the default setting (\*Q/tmp/screen\-exchange\*U) is reactivated. The following example will paste the system's password file into the .I screen @@ -1213,7 +1215,7 @@ to the specified directory or, if called without an argument, to your home directory (the value of the environment variable $HOME). All windows that are created by means of the \*Qscreen\*U command -from within \*Q.screenrc\*U or by means of \*QC-a : screen ...\*U +from within \*Q.screenrc\*U or by means of \*QC-a : screen …\*U or \*QC-a c\*U use this as their default directory. Without a chdir command, this would be the directory from which .I screen @@ -1239,7 +1241,7 @@ specific window creation and changing settings. Note that the \*Qset\*U keyword no longer exists! Usually commands affect the current window rather than default settings for future windows. Change defaults with commands -starting with 'def...'. +starting with 'def…'. If you consider this as the `Ex command mode' of .IR screen , @@ -1247,12 +1249,12 @@ .sp .ne 3 .B command -.RB [ -c +.RB [ \-c .IR class ] .PP This command has the same effect as typing the screen escape character (^A). It is probably only useful for key bindings. -If the \*Q-c\*U option is given, select the specified command +If the \*Q\-c\*U option is given, select the specified command class. See also \*Qbind\*U and \*Qbindkey\*U. .sp .ne 3 @@ -1443,7 +1445,7 @@ .br .ti -2n \fB>\fP sets the (second) mark and writes the contents of the paste buffer to -the screen-exchange file (/tmp/screen-exchange per default) once copy-mode is +the screen-exchange file (/tmp/screen\-exchange per default) once copy-mode is finished. .br This example demonstrates how to dump the whole scrollback buffer @@ -1485,7 +1487,7 @@ .PP Turns runtime debugging on or off. If .I screen -has been compiled with option -DDEBUG debugging available and is turned on per +has been compiled with option \-DDEBUG debugging available and is turned on per default. Note that this command only affects debugging output from the main \*QSCREEN\*U process correctly. Debug output from attacher processes can only be turned off once and forever. @@ -1659,7 +1661,7 @@ .PP Same as the \fButf8\fP command except that the default setting for new windows is changed. Initial setting is `on' if screen was started with -\*Q-U\*U, otherwise `off'. +\*Q\-U\*U, otherwise `off'. .sp .ne 3 .BR "defwrap on" | off @@ -1682,7 +1684,7 @@ .sp .ne 3 .B detach -.RB [ -h ] +.RB [ \-h ] .PP Detach the .I screen @@ -1781,16 +1783,16 @@ .br (I) Window permissions. Made up of three characters: (1st character) - ‘-’ : no read + ‘\-’ : no read ‘r’ : read ‘R’ : read only due to foreign wlock (2nd character) - ‘-’ : no write + ‘\-’ : no write ‘.’ : write suppressed by foreign wlock ‘w’ : write ‘W’ : own wlock (3rd character) - ‘-’ : no execute + ‘\-’ : no execute ‘x’ : execute \*QDisplays\*U needs a region size of at least 10 characters wide and 5 characters high in @@ -1835,14 +1837,14 @@ .IR tic . .sp .ne 3 -.BR "echo " [ -n ] +.BR "echo " [ \-n ] .I message .PP The echo command may be used to annoy .I screen users with a 'message of the day'. Typically installed in a global /etc/screenrc. -The option \*Q-n\*U may be used to suppress the line feed. +The option \*Q\-n\*U may be used to suppress the line feed. See also \*Qsleep\*U. Echo is also useful for online checking of environment variables. .sp @@ -1883,14 +1885,14 @@ .B eval .I command1 .RI [ command2 -.IR ... ] +.IR … ] .PP Parses and executes each argument as separate command. .sp .ne 3 .B exec .RI [[ fdpat ] -.IR "newcommand " [ "args ..." ]] +.IR "newcommand " [ "args …" ]] .PP Run a unix subprocess (specified by an executable path \fInewcommand\fP and its optional arguments) in the current window. The flow of data between @@ -1933,7 +1935,7 @@ .sp Examples: .IP -exec ... /bin/sh +exec … /bin/sh .br exec /bin/sh .br @@ -1969,7 +1971,7 @@ .I pg still works. .IP -!:sed -n s/.*Error.*/\e007/p +!:sed \-n s/.*Error.*/\e007/p .PP Sends window output to both, the user and the sed command. The sed inserts an additional bell character (oct. 007) to the window output seen by @@ -2045,14 +2047,14 @@ .sp .ne 3 .B hardcopy -.RB [ -h ] +.RB [ \-h ] .RI [ file ] .PP Writes out the currently displayed image to the file \fIfile\fP, or, if no filename is specified, to \fIhardcopy.n\fP in the default directory, where \fIn\fP is the number of the current window. This either appends or overwrites the file if it exists. See below. -If the option \fB-h\fP is specified, dump also the contents of the +If the option \fB\-h\fP is specified, dump also the contents of the scrollback buffer. .sp .ne 3 @@ -2123,22 +2125,22 @@ .sp .ne 3 .B height -.RB [ -w | -d ] +.RB [ \-w | \-d ] .RI [ lines " [" cols ]] .PP Set the display height to a specified number of lines. When no argument is given it toggles between 24 and 42 lines display. You can also specify a width if you want to change both values. The -.B -w +.B \-w option tells screen to leave the display size unchanged and just set the window size, -.B -d +.B \-d vice versa. .sp .ne 3 .B help -.RB [ -c +.RB [ \-c .IR class ] .PP Not really a online help, but @@ -2149,7 +2151,7 @@ bindings. Subsequent pages will display the custom commands, one command per key. Press space when you're done reading each page, or return to exit early. -All other characters are ignored. If the \*Q-c\*U option is given, +All other characters are ignored. If the \*Q\-c\*U option is given, display all bound commands for the specified command class. See also \*QDEFAULT KEY BINDINGS\*U section. .sp @@ -2160,7 +2162,7 @@ For example csh has the command \*Q!!\*U to repeat the last command executed. .I Screen allows you to have a primitive way of re-calling \*Qthe command that -started ...\*U: You just type the first letter of that command, then hit +started …\*U: You just type the first letter of that command, then hit `C-a {' and .I screen tries to find a previous line that matches with the `prompt character' @@ -2202,11 +2204,11 @@ .nf +flow automatic flow control, currently on. - -flow automatic flow control, currently off. + \-flow automatic flow control, currently off. +(+)flow flow control enabled. Agrees with automatic control. - -(+)flow flow control disabled. Disagrees with automatic control. - +(-)flow flow control enabled. Disagrees with automatic control. - -(-)flow flow control disabled. Agrees with automatic control. + \-(+)flow flow control disabled. Disagrees with automatic control. + +(\-)flow flow control enabled. Disagrees with automatic control. + \-(\-)flow flow control disabled. Agrees with automatic control. .fi The current line wrap setting (`+wrap' indicates enabled, `\-wrap' not) is @@ -2467,7 +2469,7 @@ a second time-stamp is added to document the restart of the output. You can change this timeout with the second form of the command. The third form is used for customizing the time-stamp -string (`-- %n:%t -- time-stamp -- %M/%d/%y %c:%s --\\n' by +string (`\-\- %n:%t \-\- time-stamp \-\- %M/%d/%y %c:%s \-\-\\n' by default). .sp .ne 3 @@ -2611,11 +2613,11 @@ the display and redisplay the updated window contents. .sp .ne 3 -.BR "number " [[+|-] \fIn ] +.BR "number " [[+|\-] \fIn ] .PP Change the current window's number. If the given number \fIn\fP is already used by another window, both windows exchange their numbers. If no argument is -specified, the current window number (and title) is shown. Using `+' or `-' +specified, the current window number (and title) is shown. Using `+' or `\-' will change the window's number by the relative amount specified. .sp .ne 3 @@ -2771,18 +2773,18 @@ .sp .ne 3 .B readbuf -.RB [ -e +.RB [ \-e .IR encoding ] .RI [ filename ] .PP Reads the contents of the specified file into the paste buffer. -You can tell screen the encoding of the file via the \fB-e\fP option. +You can tell screen the encoding of the file via the \fB\-e\fP option. If no file is specified, the screen-exchange filename is used. See also \*Qbufferfile\*U command. .sp .ne 3 .B readreg -.RB [ -e +.RB [ \-e .IR encoding ] .RI [ register " [" filename ]] .PP @@ -2791,7 +2793,7 @@ or entered at the prompt. With two arguments it reads the contents of the named file into the register, just as \fIreadbuf\fP reads the screen-exchange file into the paste buffer. -You can tell screen the encoding of the file via the \fB-e\fP option. +You can tell screen the encoding of the file via the \fB\-e\fP option. The following example will paste the system's password file into the .I screen @@ -2810,12 +2812,12 @@ .sp .ne 3 .B register -.RB [ -e +.RB [ \-e .IR encoding ] .I "key string" .PP Save the specified \fIstring\fP to the register \fIkey\fP. -The encoding of the string can be specified via the \fB-e\fP option. +The encoding of the string can be specified via the \fB\-e\fP option. See also the \*Qpaste\*U command. .sp .ne 3 @@ -2853,7 +2855,7 @@ .IP resize +N increase current region height by N .IP -resize -N decrease current region height by N +resize \-N decrease current region height by N .IP resize N set current region height to N .IP @@ -2865,15 +2867,15 @@ .PP .sp .ne 3 -.B "screen \fP[\fI-opts\fP] [\fIn\fP] [\fIcmd\fP [\fIargs\fP]|\fB//group\fP]" +.B "screen \fP[\fI\-opts\fP] [\fIn\fP] [\fIcmd\fP [\fIargs\fP]|\fB//group\fP]" .PP Establish a new window. The flow-control options (\fB\-f\fP, \fB\-fn\fP and \fB\-fa\fP), -title (a.\|k.\|a.) option (\fB\-t\fP), login options (\fB-l\fP and \fB-ln\fP) -, terminal type option (\fB-T\fP ), the all-capability-flag (\fB-a\fP) -and scrollback option (\fB-h\fP ) may be specified with each command. -The option (\fB-M\fP) turns monitoring on for this window. -The option (\fB-L\fP) turns output logging on for this window. +title (a.\|k.\|a.) option (\fB\-t\fP), login options (\fB\-l\fP and \fB\-ln\fP) +, terminal type option (\fB\-T\fP ), the all-capability-flag (\fB\-a\fP) +and scrollback option (\fB\-h\fP ) may be specified with each command. +The option (\fB\-M\fP) turns monitoring on for this window. +The option (\fB\-L\fP) turns output logging on for this window. If an optional number \fIn\fP in the range 0..MAXWIN-1 is given, the window number \fIn\fP is assigned to the newly created window (or, if this number is already in-use, the next available number). @@ -2887,7 +2889,7 @@ .nf # example for .screenrc: screen 1 - screen -fn -t foobar -L 2 telnet foobar + screen \-fn \-t foobar \-L 2 telnet foobar .fi .sp .I screen @@ -2927,19 +2929,19 @@ Thus, the first window can be activated by \*Qselect 0\*U. The number of windows is limited at compile-time by the MAXWIN configuration parameter (which defaults to 40). -There are two special WindowIDs, \*Q-\*U selects the +There are two special WindowIDs, \*Q\-\*U selects the internal blank window and \*Q.\*U selects the current window. The -latter is useful if used with screen's \*Q-X\*U option. +latter is useful if used with screen's \*Q\-X\*U option. .sp .ne .BR "sessionname " [ \fIname ] .PP -Rename the current session. Note, that for \*Qscreen -list\*U the +Rename the current session. Note, that for \*Qscreen \-list\*U the name shows up with the process-id prepended. If the argument \*Qname\*U is omitted, the name of this session is displayed. Caution: The $STY environment variables will still reflect the old name in pre-existing shells. This may result in confusion. Use of this command is generally -discouraged. Use the \*Q-S\*U command-line option if you want to +discouraged. Use the \*Q\-S\*U command-line option if you want to name a new session. The default is constructed from the tty and host names. .sp @@ -2969,7 +2971,7 @@ This overrides the value of the environment variable $SHELL. This is useful if you'd like to run a tty-enhancer which is expecting to execute the program specified in $SHELL. If the command begins with -a '-' character, the shell will be started as a login-shell. +a '\-' character, the shell will be started as a login-shell. .sp .ne 3 .B "shelltitle \fItitle\fP" @@ -3036,12 +3038,12 @@ .sp .ne 3 .B split -.RB [ -v ] +.RB [ \-v ] .PP Split the current region into two new ones. All regions on the display are resized to make room for the new region. The blank window is displayed on the new region. Splits are made horizontally -unless -v is used. Use the \*Qremove\*U or the \*Qonly\*U command +unless \-v is used. Use the \*Qremove\*U or the \*Qonly\*U command to delete regions. Use \*Qfocus\*U to toggle between regions. .sp .ne 3 @@ -3058,7 +3060,7 @@ .I string in the input buffer of the current window. This is like the \*Qpaste\*U command but with much less overhead. -Without a paramter, screen will prompt for a string to stuff. +Without a parameter, screen will prompt for a string to stuff. You cannot paste large buffers with the \*Qstuff\*U command. It is most useful for key bindings. See also \*Qbindkey\*U. @@ -3108,17 +3110,17 @@ is VT100/ANSI compatible. The use of the \*Qterm\*U command is discouraged for non-default purpose. That is, one may want to specify special $TERM settings (e.g. vt100) for the -next \*Qscreen rlogin othermachine\*U command. Use the command \*Qscreen -T vt100 +next \*Qscreen rlogin othermachine\*U command. Use the command \*Qscreen \-T vt100 rlogin othermachine\*U rather than setting and resetting the default. .sp .ne 3 -.BI termcap " term terminal-tweaks" +.BI termcap " term terminal\-tweaks" .RI [ window-tweaks ] .br -.BI terminfo " term terminal-tweaks" +.BI terminfo " term terminal\-tweaks" .RI [ window-tweaks ] .br -.BI termcapinfo " term terminal-tweaks" +.BI termcapinfo " term terminal\-tweaks" .RI [ window-tweaks ] .PP Use this command to modify your terminal's termcap entry without going @@ -3234,7 +3236,7 @@ Unbind all the bindings. This can be useful when screen is used solely for its detaching abilities, such as when letting a console application run as a daemon. If, for some reason, -it is necessary to bind commands after this, use 'screen -X'. +it is necessary to bind commands after this, use 'screen \-X'. .sp .ne 3 .BI "unsetenv " var @@ -3249,7 +3251,7 @@ Change the encoding used in the current window. If utf8 is enabled, the strings sent to the window will be UTF-8 encoded and vice versa. Omitting the parameter toggles the setting. If a second parameter is given, the display's -encoding is also changed (this should rather be done with screen's \*Q-U\*U +encoding is also changed (this should rather be done with screen's \*Q\-U\*U option). See also \*Qdefutf8\*U, which changes the default setting of a new window. @@ -3306,7 +3308,7 @@ .sp .ne 3 .B width -.RB [ -w | -d ] +.RB [ \-w | \-d ] .RI [ cols " [" lines ]] .PP Toggle the window width between 80 and 132 columns or set it to \fIcols\fP @@ -3315,17 +3317,17 @@ See the \*Qtermcap\*U command for more information. You can also specify a new height if you want to change both values. The -.B -w +.B \-w option tells screen to leave the display size unchanged and just set the window size, -.B -d +.B \-d vice versa. .sp .ne 3 .B windowlist -.RB [ -b ] -.RB [ -m ] -.RB [ -g ] +.RB [ \-b ] +.RB [ \-m ] +.RB [ \-g ] .br .B windowlist .B string @@ -3339,15 +3341,15 @@ If screen was in a window group, screen will back out of the group and then display the windows in that group. If the -.B -b +.B \-b option is given, screen will switch to the blank window before presenting the list, so that the current window is also selectable. The -.B -m +.B \-m option changes the order of the windows, instead of sorting by window numbers screen uses its internal most-recently-used list. The -.B -g +.B \-g option will show the windows inside any groups in that level and downwards. @@ -3435,7 +3437,7 @@ Each window is listed by number with the name of process that has been started in the window (or its title); the current window is marked with a `*'; -the previous window is marked with a `-'; +the previous window is marked with a `\-'; all the windows that are \*Qlogged in\*U are marked with a `$'; a background window that has received a bell is marked with a `!'; a background window that is being monitored and has had activity occur @@ -3458,17 +3460,17 @@ .sp .ne 3 .B writebuf -.RB [ -e +.RB [ \-e .IR encoding ] .RI [ filename ] .PP -Writes the contents of the paste buffer to the specified file, or the public accessible screen-exchange +Writes the contents of the paste buffer to the specified file, or the public accessible screen\-exchange file if no filename is given. This is thought of as a primitive means of communication between .I screen users on the same host. If an encoding is specified the paste buffer is recoded on the fly to match the encoding. The filename can be set with the \fIbufferfile\fP -command and defaults to \*Q/tmp/screen-exchange\*U. +command and defaults to \*Q/tmp/screen\-exchange\*U. .sp .ne 3 .BR "writelock " [ on | "off\fR|\fBauto\fR]" @@ -3582,13 +3584,13 @@ The normal window contains a shell (default, if no parameter is given) or any other system command that could be executed from a shell (e.g. .BR slogin , -etc...) +etc…) .IP \(bu If a tty (character special device) name (e.g. \*Q/dev/ttya\*U) is specified as the first parameter, then the window is directly connected to this device. -This window type is similar to \*Qscreen cu -l /dev/ttya\*U. +This window type is similar to \*Qscreen cu \-l /dev/ttya\*U. Read and write access is required on the device node, an exclusive open is attempted on the node to mark the connection line as busy. An optional parameter is allowed consisting of a comma separated list of flags @@ -3598,11 +3600,11 @@ Usually 300, 1200, 9600 or 19200. This affects transmission as well as receive speed. .IP "cs8 or cs7" Specify the transmission of eight (or seven) bits per byte. -.IP "ixon or -ixon" +.IP "ixon or \-ixon" Enables (or disables) software flow-control (CTRL-S/CTRL-Q) for sending data. -.IP "ixoff or -ixoff" +.IP "ixoff or \-ixoff" Enables (or disables) software flow-control for receiving data. -.IP "istrip or -istrip" +.IP "istrip or \-istrip" Clear (or keep) the eight bit in each received byte. .PP You may want to specify as many of these options as applicable. Unspecified @@ -3727,7 +3729,7 @@ .IP u all other users on this window .IP w -all window numbers and names. With '-' qualifier: up to the current +all window numbers and names. With '\-' qualifier: up to the current window; with '+' qualifier: starting with the window after the current one. .IP W @@ -3747,7 +3749,7 @@ A '0' qualifier tells screen to treat the number as absolute position. You can specify to pad relative to the last absolute pad position by adding a '+' qualifier or to pad relative to the right margin -by using '-'. The padding truncates the string if the specified +by using '\-'. The padding truncates the string if the specified position lies before the current position. Add the 'L' qualifier to change this. .IP < @@ -3759,7 +3761,7 @@ the output area. (The area starts from the last absolute pad position and ends with the position specified by the truncation operator.) The 'L' qualifier tells screen to mark the truncated -parts with '...'. +parts with '…'. .IP { attribute/color modifier string terminated by the next \*Q}\*U .IP ` @@ -3782,7 +3784,7 @@ a color description. The following change types are known: .IP + add the specified set to the current attributes -.IP - +.IP \- remove the set from the current attributes .IP ! invert the set in the current attributes @@ -3843,7 +3845,7 @@ the same behavior for two-letter color descriptions, also prefix them with a \*Q.\*U. .br -As a special case, \*Q%{-}\*U restores the attributes and colors that +As a special case, \*Q%{\-}\*U restores the attributes and colors that were set before the last change was made (i.e., pops one level of the color-change stack). .PP @@ -3854,7 +3856,7 @@ use bold red .IP "\*Q= yd\*U" clear all attributes, write in default color on yellow background. -.IP "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<" +.IP "%\-Lw%{= BW}%50>%n%f* %t%{\-}%+Lw%<" The available windows centered at the current window and truncated to the available width. The current window is displayed white on blue. This can be used with \*Qhardstatus alwayslastline\*U. @@ -3985,7 +3987,7 @@ .PP Here's some .screenrc examples: .IP -screen -t top 2 nice top +screen \-t top 2 nice top .PP Adding this line to your .screenrc would start a nice-d version of the \*Qtop\*U command in window 2 named \*Qtop\*U rather than \*Qnice\*U. @@ -4005,7 +4007,7 @@ The window status would show the name \*Qtrn\*U while the command was running, and revert to \*Qcsh\*U upon completion. .IP -bind R screen -t '% |root:' su +bind R screen \-t '% |root:' su .PP Having this command in your .screenrc would bind the key sequence \*QC-a R\*U to the \*Qsu\*U command and give it an @@ -4091,7 +4093,7 @@ the contents of your $TERM variable. If no such entry exists, .I screen -tries \*Qscreen\*U (or \*Qscreen-w\*U if the terminal is wide +tries \*Qscreen\*U (or \*Qscreen\-w\*U if the terminal is wide (132 cols or more)). If even this entry cannot be found, \*Qvt100\*U is used as a substitute. @@ -4134,7 +4136,7 @@ When the is latter defined, its value will be copied verbatim into each window's $TERMCAP variable. This can either be the full terminal definition, or a filename where the -terminal \*Qscreen\*U (and/or \*Qscreen-w\*U) is defined. +terminal \*Qscreen\*U (and/or \*Qscreen\-w\*U) is defined. .PP Note that .I screen @@ -4286,7 +4288,7 @@ .BR "ESC ] 83 ; cmd ^G" " (A)" Execute screen command. This only works if multi-user support is compiled into screen. The pseudo-user \*Q:window:\*U is used to -check the access control list. Use \*Qaddacl :window: -rwx #?\*U to +check the access control list. Use \*Qaddacl :window: \-rwx #?\*U to create a user with no rights and allow only the needed commands. .TP 27 .BR "Control-N" " (A)" @@ -4379,7 +4381,7 @@ .B "ESC [ \fPPn\fB d" Cursor vertical position .TP 27 -.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB m" +.B "ESC [ \fPPs\fB ;\fP…\fB; \fPPs\fB m" Select Graphic Rendition .TP 27 \h'\w'ESC [ 'u'Ps = None or \fB0\fP @@ -4448,8 +4450,8 @@ \h'\w'ESC [ Ps = 'u'\fB40\fP (A) Background Black .TP 27 -\h'\w'ESC [ Ps = 'u'\fB...\fP -... +\h'\w'ESC [ Ps = 'u'\fB…\fP +… .TP 27 \h'\w'ESC [ Ps = 'u'\fB49\fP (A) Background Default @@ -4493,10 +4495,10 @@ .B "ESC [ \fPPn\fB ^" same as above .TP 27 -.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB h" +.B "ESC [ \fPPs\fB ;\fP…\fB; \fPPs\fB h" Set Mode .TP 27 -.B "ESC [ \fPPs\fB ;\fP...\fB; \fPPs\fB l" +.B "ESC [ \fPPs\fB ;\fP…\fB; \fPPs\fB l" Reset Mode .TP 27 \h'\w'ESC [ 'u'Ps = \fB4\fP (A) @@ -4639,7 +4641,7 @@ stuff \e033Oy (A) Keypad + f+ stuff + stuff \e033Ok (A) -Keypad - f- stuff - +Keypad \- f\- stuff \- stuff \e033Om (A) Keypad * f* stuff * stuff \e033Oj (A) @@ -4844,8 +4846,8 @@ .SH FILES .PD 0 -.IP .../screen-4.?.??/etc/screenrc 34 -.IP .../screen-4.?.??/etc/etcscreenrc +.IP …/screen-4.?.??/etc/screenrc 34 +.IP …/screen-4.?.??/etc/etcscreenrc Examples in the .I screen distribution package for private and global initialization files. @@ -4856,16 +4858,16 @@ .IP $SCREENRC .IP $HOME/.screenrc Read in after /etc/screenrc -.IP $SCREENDIR/S- -.IP /var/run/screen/S- +.IP $SCREENDIR/S\- +.IP /var/run/screen/S\- Socket directories (default) -.IP /usr/tmp/screens/S- +.IP /usr/tmp/screens/S\- Alternate socket directories. .IP "/.termcap" Written by the "termcap" output function -.IP /usr/tmp/screens/screen-exchange +.IP /usr/tmp/screens/screen\-exchange or -.IP /tmp/screen-exchange +.IP /tmp/screen\-exchange .I screen `interprocess communication buffer' .IP hardcopy.[0-9] @@ -4894,16 +4896,16 @@ .SH COPYLEFT .nf Copyright (c) 2010 - Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) + Juergen Weigert (jnweiger@immd4.informatik.uni\-erlangen.de) Sadrul Habib Chowdhury (sadrul@users.sourceforge.net) Copyright (c) 2008, 2009 - Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) - Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) + Juergen Weigert (jnweiger@immd4.informatik.uni\-erlangen.de) + Michael Schroeder (mlschroe@immd4.informatik.uni\-erlangen.de) Micah Cowan (micah@cowan.name) Sadrul Habib Chowdhury (sadrul@users.sourceforge.net) Copyright (C) 1993-2003 - Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) - Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) + Juergen Weigert (jnweiger@immd4.informatik.uni\-erlangen.de) + Michael Schroeder (mlschroe@immd4.informatik.uni\-erlangen.de) Copyright (C) 1987 Oliver Laumann .fi .PP @@ -4925,8 +4927,8 @@ .SH CONTRIBUTORS .nf Ken Beal (kbeal@amber.ssd.csd.harris.com), -Rudolf Koenig (rfkoenig@immd4.informatik.uni-erlangen.de), -Toerless Eckert (eckert@immd4.informatik.uni-erlangen.de), +Rudolf Koenig (rfkoenig@immd4.informatik.uni\-erlangen.de), +Toerless Eckert (eckert@immd4.informatik.uni\-erlangen.de), Wayne Davison (davison@borland.com), Patrick Wolfe (pat@kai.com, kailand!pat), Bart Schaefer (schaefer@cse.ogi.edu), @@ -4967,10 +4969,10 @@ .I GNU distribution site. The home site of .I screen -is ftp.uni-erlangen.de, in the directory +is ftp.uni\-erlangen.de, in the directory pub/utilities/screen. The subdirectory `private' contains the latest beta testing release. If you want to help, send a note to -screen@uni-erlangen.de. +screen@uni\-erlangen.de. .SH BUGS .PD @@ -5015,9 +5017,9 @@ unless the device driver is configured to send a HANGUP signal. To detach a .I screen -session use the -D or -d command line option. +session use the \-D or \-d command line option. .IP \(bu -If a password is set, the command line options -d and -D still detach a +If a password is set, the command line options \-d and \-D still detach a session without asking. .IP \(bu Both \*Qbreaktype\*U and \*Qdefbreaktype\*U change the break generating @@ -5032,5 +5034,5 @@ A weird imagination is most useful to gain full advantage of all the features. .IP \(bu Send bug-reports, fixes, enhancements, t-shirts, money, beer & pizza to -.BR screen@uni-erlangen.de . +.BR screen@uni\-erlangen.de . debian/patches/12kfreebsd_ctty.patch0000644000000000000000000000160211732171510014626 0ustar Author: Description: See inline documentation. Index: screen/tty.sh =================================================================== --- screen.orig/tty.sh 2011-10-08 19:54:22.000000000 +0200 +++ screen/tty.sh 2011-10-08 19:58:28.000000000 +0200 @@ -808,18 +808,11 @@ mypid = getpid(); - /* The next lines should be obsolete. Can anybody check if they - * are really needed on the BSD platforms? - * - * this is to avoid the message: - * fgtty: Not a typewriter (25) + /* + * Under BSD we have to set the controlling terminal again explicitly. */ -# if defined(__osf__) || (BSD >= 199103) || defined(ISC) - if (separate_sids) - setsid(); /* should be already done */ -# ifdef TIOCSCTTY +# if (defined(__FreeBSD_kernel__) || defined(__GNU__)) && defined(TIOCSCTTY) ioctl(fd, TIOCSCTTY, (char *)0); -# endif # endif # ifdef POSIX debian/clean0000644000000000000000000000015112145043744010174 0ustar config.log config.status Makefile *.o comm.h config.h doc/Makefile kmapdef.c osdef.h screen term.h tty.c debian/preinst0000644000000000000000000000051512010136303010563 0ustar #!/bin/sh set -e if [ "$1" = upgrade ]; then if dpkg --compare-versions "$2" lt-nl 4.0.3-7 && \ dpkg --compare-versions "$2" gt 4.0.3-3; then if ! test -L /tmp/.screen && test -d /tmp/.screen && test -n "`find /tmp/.screen -type p 2>/dev/null`"; then ln -s /tmp/.screen /var/run/screen fi fi fi #DEBHELPER# debian/lintian-overrides0000644000000000000000000000054712010136303012542 0ustar screen: setgid-binary usr/bin/screen 2755 root/utmp screen: possibly-insecure-handling-of-tmp-files-in-maintainer-script preinst:8 screen: init.d-script-does-not-implement-optional-option etc/init.d/screen-cleanup status screen: hyphen-used-as-minus-sign usr/share/man/man1/screen.1.gz:669 screen: hyphen-used-as-minus-sign usr/share/man/man1/screen.1.gz:823 debian/postrm0000644000000000000000000000026311732171510010434 0ustar #!/bin/sh set -e if [ "$1" = purge ] || [ "$1" = remove ]; then rm -rf /var/run/screen fi if [ "$1" = disappear ]; then remove-shell /usr/bin/screen || true fi #DEBHELPER# debian/screenrc0000644000000000000000000000711711732171510010721 0ustar # $Id: screenrc,v 1.15 2003/10/08 11:39:03 zal Exp $ # # /etc/screenrc # # This is the system wide screenrc. # # You can use this file to change the default behavior of screen system wide # or copy it to ~/.screenrc and use it as a starting point for your own # settings. # # Commands in this file are used to set options, bind screen functions to # keys, redefine terminal capabilities, and to automatically establish one or # more windows at the beginning of your screen session. # # This is not a comprehensive list of options, look at the screen manual for # details on everything that you can put in this file. # # ------------------------------------------------------------------------------ # SCREEN SETTINGS # ------------------------------------------------------------------------------ #startup_message off #nethack on #defflow on # will force screen to process ^S/^Q deflogin on #autodetach off # turn visual bell on vbell on vbell_msg " Wuff ---- Wuff!! " # define a bigger scrollback, default is 100 lines defscrollback 1024 # ------------------------------------------------------------------------------ # SCREEN KEYBINDINGS # ------------------------------------------------------------------------------ # Remove some stupid / dangerous key bindings bind ^k #bind L bind ^\ # Make them better bind \\ quit bind K kill bind I login on bind O login off bind } history # An example of a "screen scraper" which will launch urlview on the current # screen window # #bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview" # ------------------------------------------------------------------------------ # TERMINAL SETTINGS # ------------------------------------------------------------------------------ # The vt100 description does not mention "dl". *sigh* termcapinfo vt100 dl=5\E[M # turn sending of screen messages to hardstatus off hardstatus off # Set the hardstatus prop on gui terms to set the titlebar/icon title termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 # use this for the hard status string hardstatus string "%h%? users: %u%?" # An alternative hardstatus to display a bar at the bottom listing the # windownames and highlighting the current windowname in blue. (This is only # enabled if there is no hardstatus setting for your terminal) # #hardstatus lastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<" # set these terminals up to be 'optimal' instead of vt100 termcapinfo xterm*|linux*|rxvt*|Eterm* OP # Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E> # (This fixes the "Aborted because of window size change" konsole symptoms found # in bug #134198) termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l' # To get screen to add lines to xterm's scrollback buffer, uncomment the # following termcapinfo line which tells xterm to use the normal screen buffer # (which has scrollback), not the alternate screen buffer. # #termcapinfo xterm|xterms|xs|rxvt ti@:te@ # Enable non-blocking mode to better cope with flaky ssh connections. defnonblock 5 # ------------------------------------------------------------------------------ # STARTUP SCREENS # ------------------------------------------------------------------------------ # Example of automatically running some programs in windows on screen startup. # # The following will open top in the first window, an ssh session to monkey # in the next window, and then open mutt and tail in windows 8 and 9 # respectively. # # screen top # screen -t monkey ssh monkey # screen -t mail 8 mutt # screen -t daemon 9 tail -f /var/log/daemon.log debian/compat0000644000000000000000000000000212145043744010370 0ustar 9 debian/watch0000644000000000000000000000035511732171510010220 0ustar # $Id: watch,v 1.1 2002/07/08 14:07:18 laz Exp $ version=2 # This is a variant HTTP format with more possibilities: # Homepage Pattern [Version [Action]] opts=pasv ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-(\d.*)\.tar\.gz debian/changelog0000644000000000000000000013200512173304764011050 0ustar screen (4.1.0~20120320gitdb59704-9) unstable; urgency=low * Build-Conflict against libelf-dev on non-linux (Closes: #684386) * Allow /dev/console to be a symlink. (Closes: #701173) Thanks to Igor Pashev for the report and patch. * screen-cleanup init.d script: Label /var/run/screen for SE Linux (Closes: #680360) * Add a package with debugging symbols (Closes: #715170) * Ensure that the title prompt can only appear once. (Closes: #625866) * No more pass --update-rcd-params='start 70 S .' to dh_installinit. The LSB headers of the init script already contain all necesssary information. (Closes: #717553) * Expand 50increase-max-TERM-length.patch to also allow larger terminal type names when using the "term" command interactively from inside screen or from .screenrc. (Closes: #491812) -- Axel Beckert Mon, 22 Jul 2013 21:37:24 +0200 screen (4.1.0~20120320gitdb59704-8) unstable; urgency=low * Update debian/patches/13split_info_files.patch to change now ambiguous makeinfo option --split to --split-size. Fixes FTBFS with texinfo 5.x. (Closes: #707530) * Use doc/screen.info* instead of listing every file individually in debian/info. * Bump debhelper compatibility to 9 + Update versioned debhelper build-dependency * Revamp debian/rules + Use dh_auto_{configure,build} + Drop DPKG_EXPORT_BUILDFLAGS and /usr/share/dpkg/buildflags.mk + Drop manual DEB_BUILD_OPTIONS parsing + Use debian/clean instead of dh_clean parameters and add some more files to clean up + Use dh_install and debian/install instead of install and cp + Simplify variable usage + Fix dh_clean vs dh_prep in install target + No more ignore dh_installman errors + Finally switch to a dh7 style debian/rules file * Bump Standards-Version to 3.9.4 (no changes) * Apply wrap-and-sort. * Fix lintian warning package-contains-info-dir-file -- Axel Beckert Mon, 20 May 2013 17:04:14 +0200 screen (4.1.0~20120320gitdb59704-7) unstable; urgency=low * Extend 60-644788-screen-4.1.0-4.0.3-interoperability.patch: + Add support for detaching (Closes: #684342) + Document remaining issues in debian/NEWS -- Axel Beckert Sun, 16 Sep 2012 13:42:12 +0200 screen (4.1.0~20120320gitdb59704-6) unstable; urgency=low * Apply patch by Julien Cristau to add 4.0.3 interoperability. (Closes: #683228; fixing the issue properly instead of working around it. Thanks!) + Drop all debconf handling and translations of debconf templates (Closes: #679747, #683227; Thanks Beatrice Torracca and Christian Perrier!) + Drop build-depends on po-debconf and pre-depends on debconf + Drop debian/NEWS (Closes: #678950) + Remove no more necessary lintian override * Screen's info pages are now split over more files than before. Also include the new file doc/screen.info-6 (Closes: #682283) -- Axel Beckert Tue, 07 Aug 2012 08:54:42 +0200 screen (4.1.0~20120320gitdb59704-5) unstable; urgency=low * Disable patch 52fix_screen_utf8_nfd.patch since it introduced a regression (Closes: #677512, Reopens: #600246) * Fix bug number of Slovak debconf translation in 4.1.0~20120320gitdb59704-3 changelog entry * Use GMANE URLs for refering to upstream discussions as lists.gnu.org doesn't support threading over month boundaries. (Thanks Evgeni Golov!) * Add translations of debconf templates: + Romanian (Closes: #679366; Thanks Andrei POPESCU!) * Update translations of debconf templates: + German (Closes: #679452; Thanks Helge Kreutzmann!) -- Axel Beckert Sat, 30 Jun 2012 15:27:26 +0200 screen (4.1.0~20120320gitdb59704-4) unstable; urgency=low * Fix missing quoting in debian/config's dpkg --compare-version call (Closes: #678207) * Update NEWS.Debian entry. Now includes how to resurrect running screen 4.0.3 sessions including generic commands for copy and paste. (Closes: #678181) * Set sticky bit on /var/run/screen if screen is not setuid or setgid (Closes: #592895) * Fix race condition when creating directories in /var/run/screen/. (Closes: #653434) * Add translations of debconf templates + Norwegian Bokmål (Closes: #678112; Thanks Bjørn Steensrud!) + Polish (Closes: #678158; Thanks Michał Kułach!) + Galician (Closes: #678469; Thanks Jorge Barreiro!) + French (Closes: #678548; Thanks David Prévot!) + Czech (Closes: #678669; Thanks Michal Šimůnek!) + Spanish (Closes: #678891; Thanks Fernando C. Estrada!) -- Axel Beckert Sun, 24 Jun 2012 23:54:09 +0200 screen (4.1.0~20120320gitdb59704-3) unstable; urgency=low * Fix workaround for #644788 (detect running screen in maintainer scripts) on kfreebsd (Closes: #677227) * Update revised debconf templates and package description received from the debian-l10n-english team (Closes: #677303) * Add translations of debconf templates + Simplified Chinese (Closes: #677726; Thanks Aron Xu!) + Danish (Closes: #677748; Thanks Joe Hansen!) + Swedish (Closes: #677752; Thanks Martin Bagge!) + Slovak (Closes: #677848; Thanks Miguel Figueiredo!) + Portuguese (Closes: #677838; Thanks Miguel Figueiredo!) + Russian (Closes: #678021; Thanks Yuri Kozlov!) * Updated German translation * Run debconf-updatepo automatically in clean target + Add build-dependency on po-debconf -- Axel Beckert Mon, 18 Jun 2012 21:10:49 +0200 screen (4.1.0~20120320gitdb59704-2) unstable; urgency=low * Upload to unstable as the two RC issues which the experimental package had, are now resolved or at least workarounded: - Copy /usr/bin/screen to /tmp/screen-4.0.3 on upgrade from pre-4.1.0 and use debconf to inform the user about it. (Closes: #644788) - Add patch to fix terminal handling on kfreebsd (Closes: #660567) Thanks Jan Christoph Nordholz! * Add patch to fix parallel building. * Use dh_lintian instead of handling lintian overrides manually. * No more clean up manually what dh_clean can clean up. * Add new patch to fix man page errors and warnings: - Lintian warning manpage-has-errors-from-man fixed by replacing all occurrences of "..." by "…" - Fixes tons of lintian warnings hyphen-used-as-minus-sign - Added two false positives of hyphen-used-as-minus-sign to lintian-overrides - Fixes two typos found by lintian - Update 80EXP_session_creation_time.patch accordingly -- Axel Beckert Sun, 10 Jun 2012 17:54:53 +0200 screen (4.1.0~20120320gitdb59704-1) experimental; urgency=low * Happy 25th Birthday GNU Screen * New upstream snapshot - Refreshed the following patches: + 01configure_fix_alpha_vsprintf + 11replace_doc_paths + 14size_matters + 48screen-ipv6 + 51fix-utf8-status-padding-bug + 52fix_screen_utf8_nfd + 58-show-encoding-hardstatus + 80EXP_session_creation_time - Removed those hunks from 16fix_gcc_warnings which have been applied upstream. - Manually adapted patch 26source_encoding. [ Axel Beckert ] * Switch Maintainer and Uploaders. * Add patch fix-utf8-status-padding-bug by Kees Cook and Dustin Kirkland (probably fixes #215955) * Updated previous changelog entry to document further bugs which have been fixed by that upload. * Add build dependency on dpkg-dev (>= 1.16.1~) for being able to include /usr/share/dpkg/buildflags.mk * Add lintian override for init.d-script-does-not-implement-optional-option warning. A cleanup script does not need a status subcommand. * Fix lintian warning init.d-script-missing-lsb-description. * Changes taken from Ubuntu's screen package: - debian/init: Use find -delete rather than find -print0 | xargs rm to avoid starting two processes. - debian/patches/58-show-encoding-hardstatus.patch (Closes: #533498; the remaining part of #533498 has been fixed upstream, see https://savannah.gnu.org/bugs/index.php?26401) * Add patch 52fix_screen_utf8_nfd by Nobuhiro Iwamatsu to fix screen outputing "ÿ" after a connected character. (Closes: #600246) * Bumped Standards-Version to 3.9.3. [ Moritz Muehlenhoff ] * Enable hardening build flags (Closes: #656513) -- Axel Beckert Tue, 20 Mar 2012 22:16:07 +0100 screen (4.1.0~20110819git450e8f3-1) experimental; urgency=low [ Brian P Kroth ] * New upstream snapshot based on 4.1.0 prerelease 20101110git066b098 as packaged by Fedora 15 (Closes: #641867) * Removed the following patches which have been applied upstream or are otherwise no more necessary: - 01CVS - 02configure_use_ncursesw - 03fully_expand_screenencodings - 09CHERRY_* - 15manpage_typos - 16fix_gcc_warnings_II - 18manpage_maxwin_limit - 19flowcontrol_lockup - 20defmonitor - 21manpage_nethack_activation - 25allow_symlink_sockdir - 27doc_sty_noenvpassing - 28blankerprg_callsemantics - 29infodoc_version - 31upstream_cherries - 33increase_max_winmsg_renditions - 35screen_invoked_with_a_command - 40cjk_eastasian - 50EXP_tilde_expansion * Refreshed the following patches: - 10norootpassword - 14size_matters - 26source_encoding * Added patches from Fedora: - 47screen-cc: Additional assertions to improve stability - 48screen-ipv6: IPv6 support for built-in telnet * Enable telnet (Closes: #353090) and localized day/month names [ Axel Beckert ] * Add myself as Uploader. * Remove Adam Lazur from Uploaders. (Closes: #603009) * New upstream snapshot based on 4.1.0 prerelease, commit 450e8f3 of 2011-Aug-19. (LP: #183849) - Fixes a crash when attaching to a layout that was created while detached. (Closes: #591624, LP: #786292, #788670) - Raises MAXWIN to 100 (Closes: #450421) - No more segfaults if resized to 0 or 1 line tall (Closes: #532240, LP: #315237) - screen -d -m no more segfaults on setenv without value (Closes: #496750) - Now has tsl, fsl and dsl terminfo caps (Closes: #152961) - Windows created with "-d -m" no more ignore "-X exec" (Closes: #481411) - Now has a session name string escape (Closes: #488619) - Re-optimize screen updates (Closes: #621704, LP: #588846) - No more mishandles xterm control string to set window title (Closes: #344759) Thanks to Thomas Dickey and Sadrul Habib Chowdhury. - Fixes/Relaxes requirement for a controlling terminal (Closes: #461107) - Uses fuzzy-matching for session names only if required (Closes: #361274) - Has customizable digraphs (Closes: #25096, a wishlist bug from 1998! :-) - Fixes a bug with displaying blank spaces with bce on. (Closes: #578729, LP: #702094) - Fix using alternate screen buffers in some cases. (Closes: #558724) - Several fixes for handling mouse events. (Closes: #223320) - Passes signals to programs running inside screen on kfreebsd. (Closes: 522689) - Documents vertical split in man-page. (Closes: #611453) - Adds focus left/right commands. (Closes: #526002) - Locked screens no more can be unlocked by reattaching to it: (Closes: #238535) - Shows cursor in front of the selected window in "windowlist -b" (Closes: #446082) * Remove the patches which have been applied upstream or are otherwise no more necessary: - 17manpage_sessionname_warning - 30fix_fsf_address * Refreshed the following patches: - 10norootpassword - 11replace_doc_paths - 12kfreebsd_ctty - 14size_matters - 16fix_gcc_warnings - 22exchange_file_mode - 23exitcode_q_ls - 24option_parser - 32misc_minor_fixes * Refreshed and renumbered the following patches: - {51 => 80}EXP_session_creation_time * Added patches: - 46fix-keybinding-typo-in-manpage (Closes: #630535, #541793) - 49long-usernames (Closes: #560231, LP: #582153) - 50increase-max-TERM-length (Closes: #621804, #630976) * Use dh_autoreconf - Build-Depend on dh-autoreconf * Convert to source format "3.0 (quilt)" - Remove build dependency on dpatch * Bump Standards-Version to 3.9.2 (no changes) * Update debian/copyright - Upstream switched to GPLv3 - Update debian packaging information * Fix lintian warning debian-rules-missing-recommended-target * Add lintian override for possibly-insecure-handling-of-tmp-files-in-maintainer-script * /etc/init.d/screen-cleanup: check for existence of screen binary (Closes: #612990) * Add Vcs-* headers * Add extend-diff-ignore=config\.h\.in to debian/source/options * Added a NEWS file stating problems to attach to a detached 4.0.3 session with a 4.1.0 screen, e.g. during a dist-upgrade * Suggest iselect, screenie or byobu (Closes: #176626) -- Axel Beckert Sun, 09 Oct 2011 03:29:31 +0200 screen (4.0.3-14+hurd.1) unreleased; urgency=low * Fix #522689. -- Samuel Thibault Sun, 06 Mar 2011 23:28:56 +0000 screen (4.0.3-14) unstable; urgency=low * Cherry-pick a few upstream commits: * f6b50e17 (create windows in detached session, closes: #466072). * 97708d58 (vertical split documentation, closes: #525998). * bb04008e (report session identifier on detach, closes: #199747). * Slightly adjust Homepage field. * Add support for build option 'noopt'. * Bump Standards version to 3.8.2, no changes. * Specify GPL version in d/copyright. -- Jan Christoph Nordholz Tue, 28 Jul 2009 13:21:24 +0200 screen (4.0.3-13) unstable; urgency=low * Sync with Ubuntu, closes: #520359. New dpatches: * 33increase_max_winmsg_renditions * 35screen_invoked_with_a_command (cherry-picked from upstream) * Bump Standards version to 3.8.1 (again, no changes). * Accommodate initscript to adjust the $SCREENDIR permissions correctly even if /usr/bin/screen is installed 0755. Add a Q&A pair to README.Debian to clarify this problem. Closes: #520317. * Fix #433338 properly by keeping the umask instead of dropping the 'public exchange file' concept. Modify dpatch 22. Addresses CVE-2009-1214, CVE-2009-1215, closes: #521123. * Depend on patch-stamp instead of patch in debian/rules. (Phony targets as intermediates in a dep chain are braindead.) * Fix job control and CTTY handling on our new kfreebsd archs. Closes: #522689. Thanks to Axel Beckert for his support! -- Jan Christoph Nordholz Fri, 10 Apr 2009 18:20:49 +0200 screen (4.0.3-12) unstable; urgency=low * Back to work. * Make the package build lintian-clean again. * Add a Homepage field. Closes: #515803. * Use the stock [un]patch targets from dpatch. Closes: #488618. Thanks to Ryan Niebur. * Adjust version number in the info doc. Closes: #492274, thanks to Juhapekka Tolvanen. * Cherry pick from upstream: * d128abd5...: Display hostname when locked. Closes: #501201. * Remove a spurious nethack message. Closes: #512299. -- Jan Christoph Nordholz Wed, 04 Feb 2009 01:14:20 +0100 screen (4.0.3-11) unstable; urgency=low * Unbreak and <^A Bksp> using a patch from Loïc Minier (thanks!) - introduced as new 45suppress_remap.dpatch. Closes: #484647. * Bump Standards version to 3.8.0. No changes necessary. -- Jan Christoph Nordholz Thu, 12 Jun 2008 19:33:30 +0200 screen (4.0.3-10) unstable; urgency=low * The "Whoa, this feels like a time machine" release. * Apply ~5k lines of unified diff to the source (CVS HEAD against last release). Closes: #444146. * Rediff all dpatches - drop 06 and 12 (fixed upstream). * Add a second 16fix_gcc_warnings dpatch to get all those new gcc warnings out of the buildlogs. * Upstream has changed its mind and defaults to sockets now if both sockets and fifos are available - enforce fifos for our build. * Use the locale's timeformat for the session creation timestamps. Closes: #481445. * Update 40cjk_eastasian.dpatch as suggested in the BTS. Thanks to Akira Tagoh and Deng Xiyue for providing and testing the new version! Closes: #478884. * Correct the bug number in the changelog entry for 4.0.3-9, item 5. * Bump debhelper level once more to 7. -- Jan Christoph Nordholz Mon, 02 Jun 2008 19:16:16 +0200 screen (4.0.3-9) unstable; urgency=low * The "I broke it, I fix it" release. * Fix a race condition that made session resumption difficult if there was only one. Closes: #477739. * Enhance dpatch 16fix_gcc_warnings (buildlog is now free of warnings). * Apply initscript LSB header changes as suggested by Kel Modderman - thanks! Closes: #477779. * Extend the tilde expansion patch to also apply to 'chdir' commands. Thanks to Steve Kemp! Closes: #447210. * Document my dpatch numbering style in 00list (and move one patch to make things fit again). -- Jan Christoph Nordholz Sun, 27 Apr 2008 14:34:00 +0200 screen (4.0.3-8) unstable; urgency=low * The "resuming the bughunt" release. * Bump Standards level to 3.7.3, debhelper to level 6. * Include Ubuntu's 07norootpassword.dpatch, thanks to Martin Pitt! See Ubuntu #6760. Closes: #447756. * Fix another error in the info documentation. Closes: #447668. * Fix blankerprg semantics. Closes: #330036. * Empty Default-Stop section in the LSB initscript header. Closes: #461438. * Fix multiuser activation howto in README.Debian. * New feature: sort sessions by (and show) creation time, and pick the youngest instead of an arbitrary one when called with '-rR'. Closes: #206572. -- Jan Christoph Nordholz Mon, 21 Apr 2008 23:41:42 +0200 screen (4.0.3-7) unstable; urgency=low * Completely undo the socket dir migration after discussion on #debian-devel. * Restore original location /var/run/screen. * Revive old version of dpatch 11. * Readjust maintainer scripts and lintian overrides (intentionally keeping the /tmp warning as a reminder). -- Jan Christoph Nordholz Tue, 25 Sep 2007 03:22:39 +0200 screen (4.0.3-6) unstable; urgency=low * One last fix for the migration. I knew this would get ugly... Closes: #443813. -- Jan Christoph Nordholz Mon, 24 Sep 2007 12:14:52 +0200 screen (4.0.3-5) unstable; urgency=low * Take 5: The "(w)hacking at the wishlist" release. * Build with 256-color support. Closes: #348099. * Change the comments in the digraph table to give a description of the composed char, which retains its informational value regardless of the viewer's encoding. Closes: #437024. Thanks, Ben Finney! * Add "defnonblock 5" to the default screenrc which ought to improve screen's behaviour on flaky/slow ssh lines. Closes: #434014. * Include the patch for upstream #16666 which fixes the display of certain CJK glyphs. Thanks to Victor Hsieh for the hint and Yi-Hsuan Hsin for providing the patch! Closes: #437223. * Improve and augment the documentation: * Tidy up README.Debian. Among other changes this closes: #228220. * Add a few sentences concerning Debian's MAXWIN setting (closes: #344863) and envvar-passing when calling screen with STY set (closes: #259684). * Fix a thinko in the socket directory migration. Closes: #443768. -- Jan Christoph Nordholz Mon, 24 Sep 2007 02:03:56 +0200 screen (4.0.3-4) unstable; urgency=low * Take 4: The "the FHS is a fine thing after all" release. * Move example config files into /usr/share/doc/screen/examples. * Move fifo dir from /var/run/screen to /tmp/.screen. Closes: #214796. Create preinst to make the upgrade fail early (i.e. before the unpack phase) if /tmp/.screen is otherwise occupied. Add another Q&A pair to README.Debian to explain how all this is done. * Redo 11replace_doc_paths.dpatch from scratch due to these reorganisations. * Drop po/ subdirectory (after dropping debconf usage in 4.0.3-1). Closes: #440725 (sorry). Closes: #440410. Also stop calling dh_installdebconf. * Update the FSF address in the source files. -- Jan Christoph Nordholz Thu, 30 Aug 2007 18:31:53 +0200 screen (4.0.3-3) unstable; urgency=low * Take 3: The "less bugreports than upstream" release. Whew. * Add full tilde expansion to the builtin 'source' command. Inspired by a patch by Nico Golde. Thanks! Closes: #308818. * Add a kluge to prevent screen from locking up when doing strange things with xon and flow control enabled. Still waiting for upstream to properly fix this problem, so this only addresses: #157873. * Extend the documentation about the strange activation of the nethack feature. Closes: #205531. * Don't create /tmp/screen-exchange with default mode 0666. Closes: #433338. * Add a Q&A pair to README.Debian on how to enable the multiuser feature. The problem is mentioned in the manpage under '-r', too, so I consider this sufficiently documented now. Closes: #92036. * Fix the exitcode mess of '-q -ls' (and its combinations with -d, -r and -x) to keep the promises the manpage makes. Doing this on my own, no comment from upstream yet. Closes: #426328. * More documentation typo fixes. * Properly parse the long commandline options like '-wipe'. Don't accept as soon as it's unambiguous - this is not getopt(). Closes: #222023. * Increase the maximum length of the input buffer (C-a :). Closes: #379384. -- Jan Christoph Nordholz Thu, 09 Aug 2007 22:51:19 +0200 screen (4.0.3-2) unstable; urgency=low * Overhaul, Take 2: The "let -1 migrate to testing first" release. * Better warnings now than worries later: add -Wextra to CFLAGS (and counter with "-Wno-unused-parameter -Wno-missing-field-initializers" to get the noise back to an acceptable level). * Now that more warnings are visible, kill a few of them (new patch, ready to be submitted upstream: 16fix_gcc_warnings). * Drop Pre-Depends from debian/control (wasn't even used, so this is just cosmetical). * Clarify debian/copyright after consulting upstream. Closes: #403896. * Increase MAXSTR by a sufficient amount. The usage pattern of this macro doesn't justify a switch to dynamic allocation, so simply increasing it is fine with me. Closes: #271384. * Fix upstream #20277 by expanding SCREENENCODINGS twice during configure. Closes: #435340. Thanks Victor Hsieh! * Advise against using the "sessionname" command. The problem has been acked upstream, so there's nothing more I can do - besides, there are alternatives. Closes: #103771. * Fix the "C-a M" toggle command that was broken when combined with a setting of 'defmonitor on' in one's .screenrc. Closes: #310568. * Correct a manpage error (defining a limitation that actually doesn't exist). Closes: #197557. -- Jan Christoph Nordholz Sun, 05 Aug 2007 16:59:24 +0200 screen (4.0.3-1) unstable; urgency=low * New maintainer. Thanks for your work, Adam! Move Adam to Uploaders. * Acknowledge NMUs. Thanks to all committers! * Start the package overhaul. Take 1: The "wishlist stuff will have to wait at least until -2"-release. * Bump policy compliance level to 3.7.2. * Bump debhelper to v5, and prefer debian/compat over DH_VERSION. * Clean up old dependencies and conflicts. Closes: #334084. * Introduce a patch system (dpatch) and move all orig changes to patches. * Assert that the package is built with fifos instead of sockets. Close the accompanying bug reports - if there's still a buildd that fails the fifo test, I'll get an FTBFS now. Closes: #387156, #413674. * Document the SIGWINCH issue in README.Debian. As this is not a bug in screen, this closes: #392302, #248699 as far as this package is concerned. * Make the clean target live up to its name again. * Fix a syntax error in the texinfo doc that surfaced now that the clean target really cleans everything. * Fix the commands in doc/Makefile.in to generate splitted info files (because that's how they are distributed by upstream). * Clean up the maintainer scripts: * Stop using debconf. Its only purpose was to display a warning message when upgrading from << 3.9.5-5, which was uploaded in the 20th century. * Drop debian/preinst completely. * Replace case constructions in the other scripts with if blocks. * Stop trying to remove /var/run/screens - I couldn't find any reference to that directory. Move remove-shell call to prerm. Closes: #374471. * Mute the init script. Closes: #385895. * Recreate /var/run/screen on install/reboot if necessary (e.g. tmpfs) with the appriopriate permissions (depending on the screen binary - some admins might choose to install it setuid using dpkg-statoverride). Closes: #357578, #390506, #397088. * Fix a couple of manpage typos. Closes: #414241, #417647. * Enhance the copyright message (add the GPL boilerplate, formatting fixups). Addresses #403896, but the year issue is still pending. -- Jan Christoph Nordholz Sun, 22 Jul 2007 13:39:43 +0200 screen (4.0.3-0.4) unstable; urgency=low * Porter NMU. * Fix screen on kfreebsd-amd64. Closes: #357232 -- Aurelien Jarno Tue, 17 Jul 2007 06:51:52 +0200 screen (4.0.3-0.3) unstable; urgency=low * Non-maintainer upload to fix pending l10n isses. * Debconf translations: - Galician. Closes: #407960 - Catalan. Closes: #412581 - Convert all PO files, but Japanese, to UTF-8 * Add an empty binary-indep target to debian/rules. Closes: #395743 * Provide a simple LSB header to the init script -- Christian Perrier Mon, 5 Mar 2007 09:14:35 +0100 screen (4.0.3-0.2) unstable; urgency=low * Non-maintainer upload to fix a forgotten l10n issue in last NMU * Debconf translation updates: - Added Vietnamese. Closes: #317922 * Modify the debconf dependency to better handle the cdebconf transition Closes: #332089 -- Christian Perrier Wed, 8 Nov 2006 20:46:01 +0100 screen (4.0.3-0.1) unstable; urgency=high * Non-maintainer upload to fix a security issue * New upstream version fixing utf8 combining characters handling. The bugs could be used to crash/hang screen by writing a special string to a window (CVE-2006-4573). Closes: #395225 * Debconf translation updates: - Finnish added. Closes: #303818 - Swedish added. Closes: #331583 - Portuguese added. Closes: #345059 - Italian updated. Closes: #358160 -- Christian Perrier Sat, 28 Oct 2006 07:35:57 +0200 screen (4.0.2-4.1) unstable; urgency=low * Non-maintainer upload * re-run autoconf, fix ftbfs (closes: #269366) -- David Kimdon Sat, 13 Nov 2004 20:49:00 -0800 screen (4.0.2-4) unstable; urgency=low * new debconf translations: * Japanese - thanks Hideki Yamane (closes: #224175) * Italian - thanks Fabio Pani (closes: #224580) * Simplified Chinese - thanks Carlos Z.F. Liu (closes: #230811) * Dutch - thanks Luk Claes (closes: #244326) * Czech - thanks Miroslav Kure (closes: #261243) * updated Danish translation - thanks Morten Brix Pedersen (closes: #241241) -- Adam Lazur Tue, 24 Aug 2004 20:09:08 -0400 screen (4.0.2-3) unstable; urgency=high * security: fix hole in stale session cleanup init script which allows arbitrary file deletion on startup. Thanks to Roderick Schertler for pointing this out. (closes: #238139) -- Adam Lazur Mon, 15 Mar 2004 20:46:35 -0500 screen (4.0.2-2) unstable; urgency=low * fix depends on passwd to include epoch (closes: #224192) -- Adam Lazur Tue, 6 Jan 2004 23:12:51 -0500 screen (4.0.2-1) unstable; urgency=low * ack NMU (closes: #223085, #222420) * add rxvt to scrollback example in README.Debian and /etc/screenrc (closes: #206193) * fix typo in example bind line in screenrc (closes: #214727) * add Brazilian Portuguese debconf translation (thanks Andre Luis Lopes) (closes: #218809) * add screen to /etc/shells (closes: #148715) -- Adam Lazur Sat, 6 Dec 2003 18:25:10 -0500 screen (4.0.2-0.1) unstable; urgency=medium * NMU * New upstream release. No upstream changelog found. ansi.c has been changed to fix CAN-2003-0972, a signed integer overflow that allowed for arbitrary code execution as group utmp (or as root on systems where screen was installed setuid root). (Addresses #222385 for sid) * [debian/rules] Changed the order of chmod/chown of the screen binary and the run directory to chown, chmod as chown no longer preserves setuid and setgid bits as of coreutils 5.0.1. (Closes: #222420) -- J.H.M. Dassen (Ray) Sat, 6 Dec 2003 18:43:11 +0100 screen (4.0.1-3) unstable; urgency=low * fix autoconf varargs detection (using vsprintf) on alpha, which leads to a binary that segfaults (closes: #213842) -- Adam Lazur Thu, 2 Oct 2003 23:14:39 -0400 screen (4.0.1-2) unstable; urgency=low * build-depend on libncursesw5 to get autoconf to pick it up... doh -- Adam Lazur Tue, 30 Sep 2003 23:40:11 -0400 screen (4.0.1-1) unstable; urgency=low * New Upstream Release (closes: #210280) * rewritten command parser * zmodem support (catch & passthrough) * new screenblanker * remove bindkey -kb from system screenrc as advised by upstream (closes: #187302) * link against libncursesw (closes: #211511) * fix Hurd build problem (closes: #201909) * bump up debhelper versioned dependency (closes: #197432) * switch to gettext-based debconf templates (closes: #202549) -- Adam Lazur Tue, 30 Sep 2003 23:14:05 -0400 screen (3.9.15-1) unstable; urgency=low * New Upstream Release * unicode combining character support * chinese GBK encoding added * backtick screen escape to substitute command output * add Danish translation (thanks Morten Brix Pedersen) (closes: #174745) * add startup script to reap stale screen named pipes (closes: #164447) * remove extraneous /etc/pam.d/screen as other works fine -- Adam Lazur Mon, 17 Mar 2003 22:56:01 -0500 screen (3.9.13-3) unstable; urgency=low * add note about xterm scrollback and screen to README.Debian and update comment in /etc/screenrc. -- Adam Lazur Thu, 17 Oct 2002 16:41:11 -0400 screen (3.9.13-2) unstable; urgency=medium * avoid pkg installing docs resulting in /usr/share/info/dir.gz files in the .deb (closes: #162940) * apply 2 patches from upstream: 1) Fix console grabbing on linux. The kernel handles TIOCCONS too restrictive, had to implement a workaround. 2) Fix WrapChar bug that prevented removal of a bad scroll-region. -- Adam Lazur Thu, 10 Oct 2002 22:53:24 -0400 screen (3.9.13-1) unstable; urgency=low * New Upstream Release * correction to a FAQ answer in README.Debian (closes: #153323) -- Adam Lazur Tue, 17 Sep 2002 09:19:14 -0400 screen (3.9.11-5) unstable; urgency=high * remove (%n.%t) from hardstatus string (closes: #137095) * bump up max window title length to 60 (closes: #135391) * debconf templates: * add french translation (thanks Philippe Batailler) (closes: #141676) * add russian translation (thanks Ilgiz Kalmetev) (closes: #137682) * split translations out into their own files * fix debconf prompt when upgrading from versions < 3.9.5-5 (closes: #137743) * edit the long description a bit * update README.Debian as to current state of screen-bce -- Adam Lazur Wed, 10 Apr 2002 22:01:46 -0400 screen (3.9.11-4) unstable; urgency=low * patches to fix Japanese support: screen-3.9.11.hcGR-patch screen-3.9.11.paste-patch screen-3.9.11.encoding-patch (closes: #136740) * add spanish debconf template translation (closes: #136447) -- Adam Lazur Thu, 7 Mar 2002 09:13:56 -0500 screen (3.9.11-3) unstable; urgency=high * Security Fix: override autoconf detected default group and mode on ptys as it is not autodetected properly for buildd's that run as cronjobs (closes: #135018) * add note to README.Debian about setting xterm titlebar/icon and how to override the default * add note to README.Debian about mutt padding lines with whitespace (bce) * add patchlevel.h (the real upstream changelog) to /usr/share/doc/screen -- Adam Lazur Thu, 21 Feb 2002 17:25:12 -0500 screen (3.9.11-2) unstable; urgency=high * Apply patch to fix non utf8 locales (closes: #134200) * fix problems with screenrc changes that affected konsole (closes: #134198) * remove line that was borking TERM=xterm * re-add line which mods xterm initialization string * Add screen-bce terminal type to screeninfo.src and add a note about it in README.Debian -- Adam Lazur Sat, 16 Feb 2002 13:49:38 -0500 screen (3.9.11-1) unstable; urgency=low * New upstream release * New commands: windowlist (bound to C-a "), source, eval, ignorecase, deflogin, setsid * Support for double-width utf-8 characters. * bugfixes and other features, see /usr/share/doc/screen/NEWS.gz for more info * Removed patches: * pam support, hurd fix, getpt fix: accepted upstream * md5 password support: obsoleted by pam support * bufferfile default change: screen is tmpfile safe * Updates to /etc/screenrc: * Bump up defscrollback from 100 (compiled in default) to 1024 (thanks to overfiend for pointing this out) * Add examples of running programs at screen startup * Add german template translation (closes: #126180) * Now (ab)use upstream's makefile for most of the file installation * compile with --enable-rxvt_osc to allow rxvt icon setting from within screen (closes: #133333) -- Adam Lazur Fri, 15 Feb 2002 10:18:07 -0500 screen (3.9.10-1) unstable; urgency=low * New Maintainer * migrate package build to debhelper * debconfify prompt when upgrading from screen < 3.9.5-5 -- Adam Lazur Sat, 15 Dec 2001 21:20:58 -0500 screen (3.9.10-0.1) unstable; urgency=high * NMU. * New upstream version with security fix. (Closes: #111339) (Thanks Adam Lazur ) -- Eric Gillespie, Jr. Wed, 12 Sep 2001 22:11:23 -0500 screen (3.9.9-2) unstable; urgency=low * New Standards-Version (3.5.4) * Get rid of suidmanager, install screen setgid (closes: Bug#96858) -- Juan Cespedes Tue, 5 Jun 2001 23:50:42 +0200 screen (3.9.9-1) unstable; urgency=low * New upstream version * Really fix Bug#80337 (thanks to Michael Schroeder ) -- Juan Cespedes Sat, 2 Jun 2001 19:40:37 +0200 screen (3.9.8-6.1) unstable; urgency=HIGH * Non-maintainer upload. * Disable -DDEBUG which is a massive security hole, closes: #98839. -- James Troup Sun, 27 May 2001 01:09:31 +0100 screen (3.9.8-6) unstable; urgency=low * Updated copyright file * Applied patch from Ryan King to be able to work correctly on many-lined terminals (closes: Bug#80337) -- Juan Cespedes Tue, 22 May 2001 00:23:00 +0200 screen (3.9.8-5) unstable; urgency=low * Fixed small typo in info file * Clean up small lintian bugs * Make commands related to bufferfile (readbuf, writebuf) work again (Oops) (closes: Bug#45359, Bug#69275, Bug#83759) -- Juan Cespedes Sat, 19 May 2001 15:12:11 +0200 screen (3.9.8-4) unstable; urgency=low * Make /etc/pam.d/screen be a conffile (closes: Bug#58696) * Remove option "autofixterm" from manual page (closes: Bug#97019) * Applied patch to make screen work OK on Hurd (closes: Bug#97343) -- Juan Cespedes Mon, 14 May 2001 03:00:34 +0200 screen (3.9.8-3) unstable; urgency=low * Fixed small bug which caused `aterm' to display everything underlined (closes: Bug#97327) -- Juan Cespedes Sun, 13 May 2001 15:39:19 +0200 screen (3.9.8-2) unstable; urgency=low * New version uploaded to unstable instead of "stable unstable" (sorry) -- Juan Cespedes Tue, 8 May 2001 22:28:35 +0200 screen (3.9.8-1) stable unstable; urgency=medium * New upstream version (closes: Bug#74310, Bug#89215) * New Standards-Version (3.5.3) * Applied patch to build cleanly on ia64 (closes: #91964) * Fixed small bug regarding creation of sockets dir when running as root -- Juan Cespedes Mon, 7 May 2001 23:26:40 +0200 screen (3.9.5-9) stable unstable; urgency=HIGH * Fixed security bug (group utmp compromise) -- Juan Cespedes Sat, 2 Sep 2000 17:51:28 +0200 screen (3.9.5-8) frozen unstable; urgency=low * Correct wrong build-dependency (libncurses5-dev instead of libncurses4-dev) (closes: Bug#57989) * Include a /etc/pam.d/screen file (closes: Bug#57592) -- Juan Cespedes Mon, 14 Feb 2000 10:07:52 +0100 screen (3.9.5-7) frozen unstable; urgency=low * Built against libncurses5 instead of obsoleted libncurses4 -- Juan Cespedes Sun, 6 Feb 2000 21:26:59 +0100 screen (3.9.5-6) unstable; urgency=low * Make `screen' work correctly both as root and non-root (closes: Bug#53290, Bug#53329) -- Juan Cespedes Thu, 23 Dec 1999 16:48:02 +0100 screen (3.9.5-5) unstable; urgency=low * New Standards-Version (3.1.1) * Acknowledge NMU-fixed bugs (closes: Bug#50394, Bug#51058, Bug#51316) * Changed screens directory from $HOME to /var/run/screen (closes: Bug#51088) * Removed debconf support: no configuration is necessary in this program -- Juan Cespedes Sun, 19 Dec 1999 06:04:48 +0100 screen (3.9.5-4.1) unstable; urgency=low * Non-maintainer release. * Run autoconf to resync configure with configure.in (closes:Bug#50394,#51058). -- Joel Klecker Mon, 29 Nov 1999 08:38:18 -0800 screen (3.9.5-4) unstable; urgency=low * Used debconf -- Juan Cespedes Sun, 14 Nov 1999 23:51:10 +0100 screen (3.9.5-3) unstable; urgency=low * Applied patch from Joel Klecker to use getpt() to get PTYs (closes: Bug#45628, Bug#48856) -- Juan Cespedes Tue, 2 Nov 1999 16:42:41 +0100 screen (3.9.5-2.1) unstable; urgency=low * NMU. Backed out pty which didn't free ptys correctly. (Fixes: #45628) -- J.H.M. Dassen (Ray) Sat, 30 Oct 1999 17:07:08 +0200 screen (3.9.5-2) unstable; urgency=low * Added missing "prerm" file (lintian) -- Juan Cespedes Fri, 1 Oct 1999 10:13:17 +0200 screen (3.9.5-1) unstable; urgency=low * New upstream version (closes: Bug#45173) * FHS (/usr/doc/screen -> /usr/share/screen) * PAM support * Move "screen-exchange" file to ${HOME} (closes: Bug#45449) -- Juan Cespedes Sun, 19 Sep 1999 20:24:56 +0200 screen (3.9.4-1) unstable; urgency=low * New upstream version, lots of improvements (closes: Bug#43932) * Removed setuid, make it setgid "utmp" (closes: Bug#43909, Bug#43931) * Uses "vlock" to lock screen if available * Avoid braces in debian/rules (closes: Bug#36888) * Use Unix98 style PTYs (closes: Bug#34578, Bug#37208, Bug#37863) * Closed old bugs (closes: Bug#29523, Bug#35469) * "screen" now defaults to MAXWIN=40 (closes: Bug#42420) * Compile cleanly on glibc-2.1 systems (closes: Bug#26645) * New Standards-Version: 3.0.1 (but keeping docs in /usr/doc) -- Juan Cespedes Fri, 10 Sep 1999 16:14:41 +0200 screen (3.7.6-1) unstable; urgency=low * New upstream version: Wayne's resize.c patch to keep the cursor onscreen. FindWindow corrected. AIX4 patch from robert@mayday.cix.co.uk. Fixed kanji am & markcursor bugs. SCO support (Gert Doering). Wayne's statusline extra space. New flag nospc for MakeWinMsg. New TF capability: add missing termcap/info caps. screen-exchange security fix. Use kstat for Solaris' loadavg. Check for mode 775 if screen runs setgid. Fixed typo in silence command. Allow detach with no tty. HPUX10.20 ltchars hack. Use @1/@7 as replacement for kh/kH. Use seteuid before calling tgetent. Check for displays in Msg(). Linux ncurses hack: redefine _nc_timed_wait. Configure check for ncurses (sigh). ITOH Yasufumi: kanji fixes, osf support, bug fixes. More secure Rewrite(). Increased line buffer size to 2048 bytes. SCO-5 Fixes (Brian L. Gentry). resize code now handles tabs correctly. * Applied NMU from Christian Meder for glibc-2.1: Bug#32814 -- Juan Cespedes Thu, 11 Feb 1999 18:32:01 +0100 screen (3.7.4-9.1) frozen unstable; urgency=low * non maintainer, sparc only upload * apply patch for glibc2.1 from BTS * undefine SVR4 from configure script: glibc2.1's utmpx.h is incompatible with SVR4 -- Christian Meder Thu, 26 Nov 1998 15:40:30 +0100 screen (3.7.4-9) frozen unstable; urgency=medium * Recompile against libncurses4 * /etc/terminfo/s/screen is now in ncurses-base, so screen doesn't depend on ncurses-term anymore -- Juan Cespedes Wed, 11 Nov 1998 18:17:37 +0100 screen (3.7.4-8) stable unstable; urgency=HIGH * Fix critical bug #25970: /tmp race problem -- Juan Cespedes Thu, 27 Aug 1998 23:08:40 +0200 screen (3.7.4-7) unstable; urgency=low * Add support for MD5 passwords (Bug#22740, Bug#25487) -- Juan Cespedes Fri, 7 Aug 1998 10:40:16 +0200 screen (3.7.4-6) unstable; urgency=low * Pass SIGWINCH to applications when size changes (fixes:Bug#18471) -- Juan Cespedes Sun, 22 Feb 1998 11:16:46 +0100 screen (3.7.4-5) unstable; urgency=low * Fixed minor bug in debian/rules clean * `screen' now depends on `ncurses-term', so it doesn't install its own terminfo entry * New Standards-Version: 2.4.0.0 -- Juan Cespedes Thu, 12 Feb 1998 16:10:22 +0100 screen (3.7.4-4) unstable; urgency=low * Changed upstream changelog name (ChangeLog.gz -> changelog.gz) * Changed sockets from /tmp to /var/run (closes:Bug#6487) * New Standards-Version: 2.3.0.1 * Changed behaviour of backspace key (now sends `DEL' == 0177) -- Juan Cespedes Sun, 4 Jan 1998 21:13:51 +0100 screen (3.7.4-3) unstable; urgency=low * New maintainer * New Standards-Version: 2.3.0.0 * Minor fixes in /usr/doc/screen * Pristine Source * Fixed Bug#12626 -- Juan Cespedes Sat, 11 Oct 1997 02:14:43 +0200 screen (3.7.4-2) unstable; urgency=low * Added definition of kend to screeninfo.src. * Recompiled for libc6. -- joost witteveen Fri, 3 Oct 1997 22:18:45 +0200 screen (3.7.4-1) unstable; urgency=low * Upgraded to upstream version. * fixed /etc/screenrc problem (used to read: /usr/etc/screenrc). -- joost witteveen Sat, 2 Aug 1997 22:26:08 +0200 screen (3.7.2-5) unstable; urgency=low * Recompiled for libc6 (now should be using libc functions for utmp access) -- joost witteveen Thu, 19 Jun 1997 17:48:26 +0200 screen (3.7.2-4) unstable; urgency=low * After suggestions from David Luyer, increase the number of tty's to 256. -- joost witteveen Sun, 4 May 1997 17:25:00 +0200 screen (3.7.2-3) stable unstable; urgency=high * Security fix for buffer-overrun posted to bugtraq. -- joost witteveen Fri, 21 Feb 1997 17:02:30 +0100 screen (3.7.2-2) unstable; urgency=low * This package contained a /usr/doc/screen/screeninfo.src.gz (compressed) that is apparently needed by the install phase. uncompressed it. -- joost witteveen Tue, 7 Jan 1997 21:22:32 +0100 screen (3.7.2-1) unstable; urgency=low * Upgraded to upstream version * converted to new source format -- joost witteveen Sat, 4 Jan 1997 11:40:40 +0100 debian/postinst0000644000000000000000000000045111764774212011007 0ustar #!/bin/sh set -e . /usr/share/debconf/confmodule if [ "$1" = configure ]; then if ! test -d /var/run/screen; then install -g utmp -m 0775 -d /var/run/screen [ `stat -c%a /usr/bin/screen` -lt 4000 ] || chmod 0755 /var/run/screen fi add-shell /usr/bin/screen || true fi #DEBHELPER# debian/init0000644000000000000000000000231212173167564010066 0ustar #!/bin/sh # $Id: init,v 1.3 2004/03/16 01:43:45 zal Exp $ # # Script to remove stale screen named pipes on bootup. # ### BEGIN INIT INFO # Provides: screen-cleanup # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: S # Default-Stop: # Short-Description: screen sessions cleaning # Description: Cleans up the screen session directory and fixes its # permissions if needed. ### END INIT INFO set -e test -f /usr/bin/screen || exit 0 SCREENDIR=/var/run/screen case "$1" in start) if test -L $SCREENDIR || ! test -d $SCREENDIR; then rm -f $SCREENDIR mkdir $SCREENDIR chown root:utmp $SCREENDIR [ -x /sbin/restorecon ] && /sbin/restorecon $SCREENDIR fi find $SCREENDIR -type p -delete # If the local admin has used dpkg-statoverride to install the screen # binary with different set[ug]id bits, change the permissions of # $SCREENDIR accordingly BINARYPERM=`stat -c%a /usr/bin/screen` if [ "$BINARYPERM" -ge 4000 ]; then chmod 0755 $SCREENDIR elif [ "$BINARYPERM" -ge 2000 ]; then chmod 0775 $SCREENDIR else chmod 1777 $SCREENDIR fi ;; stop|restart|reload|force-reload) ;; esac exit 0 debian/copyright0000644000000000000000000000353512146435706011137 0ustar This is the Debian prepackaged version of screen, a screen manager with VT100/ANSI terminal emulation. This package was put together from sources obtained from: http://savannah.gnu.org/projects/screen See the info documentation for contact information for the upstream authors. License: screen - terminal multiplexor with VT100/ANSI terminal emulation Copyright (C) 1987 Oliver Laumann Copyright (C) 1991 Wayne Davidson Copyright (C) 1993-2006 Juergen Weigert Copyright (C) 1993-2006 Michael Schroeder This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. On Debian systems, the complete text of the GNU General Public License, version 3 can be found in /usr/share/common-licenses/GPL-3. Debian Modifications: Copyright (C) 1996 Ian Murdock Copyright (C) 1997 joost witteveen Copyright (C) 1997-2001 Juan Cespedes Copyright (C) 2001-2003 Adam Lazur Copyright (C) 2007-2009 Jan Christoph Nordholz Copyright (C) 2011 Brian Kroth Copyright (C) 2011-2013 Axel Beckert debian/README.terminfo0000644000000000000000000000040011732171510011660 0ustar Debian uses ncurses/terminfo, not curses/termcap, so you really shouldn't need the screencap file in this directory. The screeninfo.src file is installed by the `ncurses-term' package -- it's here for reference, and to recover from stupid errors (like?). debian/info0000644000000000000000000000002112145043744010041 0ustar doc/screen.info* debian/examples0000644000000000000000000000003511732171510010723 0ustar etc/screenrc etc/etcscreenrc debian/docs0000644000000000000000000000013511732171510010036 0ustar NEWS README TODO doc/FAQ doc/fdpat.ps doc/window_to_display.ps terminfo debian/README.Debian debian/control0000644000000000000000000000313012173167564010602 0ustar Source: screen Section: misc Priority: optional Maintainer: Axel Beckert Uploaders: Jan Christoph Nordholz Standards-Version: 3.9.4 Build-Depends: debhelper (>= 9~), dh-autoreconf, dpkg-dev (>= 1.16.1~), libncursesw5-dev, libpam0g-dev, texinfo Build-Conflicts: libelf-dev [!linux-any] Homepage: http://savannah.gnu.org/projects/screen Vcs-Git: git://anonscm.debian.org/collab-maint/screen.git Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/screen.git Package: screen Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Suggests: iselect (>= 1.4.0-1) | screenie | byobu Description: terminal multiplexer with VT100/ANSI terminal emulation GNU Screen is a terminal multiplexer that runs several separate "screens" on a single physical character-based terminal. Each virtual terminal emulates a DEC VT100 plus several ANSI X3.64 and ISO 2022 functions. Screen sessions can be detached and resumed later on a different terminal. . Screen also supports a whole slew of other features, including configurable input and output translation, serial port support, configurable logging, and multi-user support. Package: screen-dbg Section: debug Architecture: any Priority: extra Depends: screen (= ${binary:Version}), ${misc:Depends} Description: Debugging symbols for GNU Screen GNU Screen is a terminal multiplexer that runs several separate "screens" on a single physical character-based terminal. . This package contains the debugging symbols for GNU Screen. debian/README.Debian0000644000000000000000000001134611732171510011232 0ustar Screen Information ------------------ See the copyright file for information about where to get screen, licensing, and other assorted information. Debian Modifications -------------------- * added Debian package maintenance files * Use /var/run/screen as socket directory * Make it set-gid "utmp" instead of setuid root Debian Screen Q&A ----------------- Q: screen always complains about the permissions of /var/run/screen. What's wrong? A: Simplified, the binary ensures that $SCREENDIR has just enough permission bits enabled so that each user can create and access his socket directory. This means: /usr/bin/screen setuid root -> /var/run/screen 0755 /usr/bin/screen setgid utmp -> /var/run/screen 0775 /usr/bin/screen without setid bits -> /var/run/screen 0777 These cases are all handled by the init script. However, the actual test is a bit more complicated. And as the variable names are all quite self- explanatory, just have a look at the C code itself: ] n = (eff_uid == 0 && (real_uid || (st.st_mode & 0775) != 0775)) ? 0755 : ] (eff_gid == (int)st.st_gid && eff_gid != real_gid) ? 0775 : ] 0777; ] if (((int)st.st_mode & 0777) != n) ] Panic(0, "Directory '%s' must have mode %03o.", SockDir, n); If the invoking user has primary group utmp, the above assumption will fail. The same holds if the underlying file system is mounted 'nosuid'. In these cases you have to adapt the init script yourself. Q: shift+page up in xterm/gnome-terminal/konsole used to let me scroll back a bit, but now it doesn't. How can I make it work with scrollback? A: It doesn't scrollback consistently because screen (the program) displays in xterm's alternate screen buffer. To have screen use xterm's normal screen buffer (which includes scrollback), you can add the following to your .screenrc: termcapinfo xterm|xterms|xs|rxvt ti@:te@ Q: Screen sets my xterm titlebar. I don't like this, how do I make it stop? A: The titlebar setting is set in the /etc/screenrc by telling screen that some of the GUI terminals have a hardstatus line and that it can be set by sending the xterm escape sequences that set the title/icon. # Set the hardstatus prop on gui terms to set the titlebar/icon title termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007 You can override this on a system wide basis by commenting out this line in the /etc/screenrc or you can override it in your personal screenrc by adding the following line: hardstatus alwaysmessage Q: Why do I get #!$@#$@!% trailing spaces when I cut and paste from mutt running within screen? Q: Why does the statusbar in my irc client extend to the end of the screen in xterm but not in screen? A: This has to do with handling of the bce terminal attribute, or lack thereof by default in screen. You can enable bce on a per-user basis by adding the following to your .screenrc: defbce on term screen-bce NOTE: if you do this your TERM will be screen-bce. When you login to other machines they may not have a screen-bce terminal type, so you will see errors. To fix this you must put the terminfo for screen-bce on that remote machine. The screen terminfo is found in /usr/share/doc/screen/terminfo/screeninfo.src and you can compile it on the remote machine using tic(1). Q: Screen doesn't notice when I resize the term - what's wrong? A: Firstly look for the same question in FAQ.gz. If the problem persists: There have been reports of sshd instances blocking SIGWINCH (presumably restarted from aptitude and thus inheriting its signal mask) which therefore also prohibit remote screen sessions from ever seeing the signal. Have a look at the old bugreport for means to determine whether you are affected. (You might have to restart sshd with a crontab entry or similar magic if ssh is your only way to access the box.) Q: Multiuser mode is not working - how can I enable it? A: Screen has to be setuid root to accomplish this. (Note the security implications this has! Also bear in mind that setuid programs remove some variables from their environment for exactly this reason - see ld.so(1).) If you still want to enable the feature, you may do so with the following commands: ] dpkg-statoverride --update --add root utmp 4755 /usr/bin/screen ] chmod 0755 /var/run/screen dpkg-statoverride will make sure that the modified permissions remain in effect even if a new version of the screen package is installed. /var/run/screen will be automatically recreated with the proper permissions if the directory lives on volatile storage (doesn't persist between subsequent reboots). debian/patched/0000755000000000000000000000000011642716520010602 5ustar debian/dirs0000644000000000000000000000000411732171510010042 0ustar etc debian/source/0000755000000000000000000000000012145043744010472 5ustar debian/source/format0000644000000000000000000000001411732171510011672 0ustar 3.0 (quilt) debian/source/options0000644000000000000000000000004111732171510012075 0ustar extend-diff-ignore=config\.h\.in debian/manpages0000644000000000000000000000001511732171510010676 0ustar doc/screen.1 debian/install0000644000000000000000000000011312145043744010556 0ustar debian/screenrc etc/ debian/README.terminfo usr/share/doc/screen/terminfo/ debian/prerm0000644000000000000000000000017711732171510010241 0ustar #!/bin/sh set -e if [ "$1" = remove ] || [ "$1" = deconfigure ]; then remove-shell /usr/bin/screen || true fi #DEBHELPER# debian/NEWS0000644000000000000000000000134012025345271007664 0ustar screen (4.1.0~20120320gitdb59704-7) unstable; urgency=low In case you upgrade screen from 4.0.3 to 4.1.0 while running inside screen and you have to reconnect to that screen session (or any other screen session which has been started before the upgrade), there may be a few screen features not working until you exit the 4.0.3-started session and replace it with a 4.1.0-started session. Known issues of 4.0.3 to 4.1.0 interoperability as of now: * Terminal window resizing (WINCH signal) does not propagate to the screen session. Detach and reattach again instead to get the size of the terminals inside the screen session adjusted propely. -- Axel Beckert Sun, 16 Sep 2012 12:48:44 +0200 debian/rules0000755000000000000000000000410712173303532010247 0ustar #!/usr/bin/make -f # # Copyright (C) 1997 joost witteveen # Copyright (C) 1997-2001 Juan Cespedes # Copyright (C) 2001 Adam Lazur # Copyright (C) 2011-2013 Axel Beckert # Uncomment me to turn on debugging #export DH_VERBOSE=1 ROOT := $(CURDIR)/debian/screen # statically define this... sucko TTYGROUP := 5 %: dh $@ --with autoreconf override_dh_auto_clean: test ! -s doc/Makefile || $(MAKE) -C doc realclean test ! -s Makefile || ! grep -q clean Makefile || $(MAKE) realclean override_dh_auto_configure: dh_auto_configure -- \ --with-socket-dir=/var/run/screen \ --enable-pam \ --with-pty-mode=0620 \ --with-pty-group=${TTYGROUP} \ --enable-rxvt_osc \ --with-sys-screenrc=/etc/screenrc \ --enable-colors256 \ --enable-telnet \ --enable-use-locale # Assert the use of fifos instead of sockets grep -q "define.*NAMEDPIPE.*1" config.h || echo "#define NAMEDPIPE 1" >> config.h override_dh_auto_build: dh_auto_build -- CFLAGS+='-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers' dh_auto_build -Ddoc -- CFLAGS+='-Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers' override_dh_auto_install: # can't call the normal install target b/c it installs the info files # and other crud $(MAKE) prefix=$(ROOT)/usr SCREENENCODINGS='$$(prefix)/share/screen/utf8encodings' installdirs install_bin # hack around the fact that the install target makes screen a symlink to screen-$$(VERSION) rm -f $(ROOT)/usr/bin/screen mv -f $(ROOT)/usr/bin/screen* $(ROOT)/usr/bin/screen # make it setgid utmp chown root:utmp $(ROOT)/usr/bin/screen chmod 2755 $(ROOT)/usr/bin/screen # Fix package-contains-info-dir-file, remove /usr/share/info/dir.gz rm -f $(ROOT)/usr/share/info/dir* override_dh_installchangelogs: dh_installchangelogs -k patchlevel.h override_dh_installinit: dh_installinit --no-start --init-script='screen-cleanup' override_dh_fixperms: dh_fixperms -X/usr/bin/screen override_dh_strip: dh_strip --dbg-package=screen-dbg