Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Nov 2011 18:31:05 GMT
From:      Momchil Ivanov <momchil@xaxo.eu>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/162339: sysutils/screen: Unable to start screen when $TERM is longer than 20 characters
Message-ID:  <201111061831.pA6IV5Gn075268@red.freebsd.org>
Resent-Message-ID: <201111061840.pA6IeAAG025783@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         162339
>Category:       ports
>Synopsis:       sysutils/screen: Unable to start screen when $TERM is longer than 20 characters
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Nov 06 18:40:10 UTC 2011
>Closed-Date:
>Last-Modified:
>Originator:     Momchil Ivanov
>Release:        
>Organization:
>Environment:
>Description:
Unable to start screen when $TERM is longer than 20 characters, example TERM="rxvt-unicode-256color". It says "$TERM too long - sorry.". There is a bug report about this here http://savannah.gnu.org/bugs/?30880 and it is more than a year old. Inside there are links to patches, there are similar patches used on other projects: http://projects.archlinux.org/svntogit/packages.git/tree/screen/trunk/screen-4.0.3-long-term.patch

Since nothing happens with the source code of screen, I am attaching a fix that adds the patch to the sysutils/screen port. The buffer is made 31+1 long, this leaves some room for longer TERM variables, though the length is arbitrary.
>How-To-Repeat:
export TERM="rxvt-unicode-256color"
screen
>Fix:


Patch attached with submission follows:

Index: patch-long-term
===================================================================
--- patch-long-term	(revision 0)
+++ patch-long-term	(revision 1205)
@@ -0,0 +1,22 @@
+--- display.h	2011-11-06 10:23:29.000000000 +0100
++++ display.h	2011-11-06 19:05:33.000000000 +0100
+@@ -85,7 +85,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[31 + 1];	/* $TERM */
+   char	*d_tentry;		/* buffer for tgetstr */
+   char	d_tcinited;		/* termcap inited flag */
+   int	d_width, d_height;	/* width/height of the screen */
+--- screen.h	2011-11-06 10:23:29.000000000 +0100
++++ screen.h	2011-11-06 18:33:52.000000000 +0100
+@@ -204,7 +204,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[31 + 1];	/* terminal type */
+ 	  int encoding;		/* encoding of display */
+ 	}
+       attach;


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201111061831.pA6IV5Gn075268>