ports/124492: [PATCH] sysutils/screen: new knob WITH_SHOWENC

Yi-Jheng Lin yzlin at cs.nctu.edu.tw
Wed Jun 11 19:30:02 UTC 2008


>Number:         124492
>Category:       ports
>Synopsis:       [PATCH] sysutils/screen: new knob WITH_SHOWENC
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 11 19:30:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Yi-Jheng Lin
>Release:        FreeBSD 7.0-RELEASE-p1 amd64
>Organization:
NCTU CS
>Environment:
System: FreeBSD stucgi 7.0-RELEASE-p1 FreeBSD 7.0-RELEASE-p1 #0: Thu Apr 17 15:56:39 CST 2008
>Description:
[DESCRIBE CHANGES]

A new status line parameter is added. With this patch, screen could show encoding of every window
on status line (caption or hardstatus) by adding a parameter "%e".
Here is an example:
    hardstatus alwayslastline "%=%e  %H %c %d/%m/%Y Load: %l "

It's an useful feature for switching between windows with different encodings such as Big5 & UTF-8.
And I don't have to use "^A + i" to check which encoding I use.

Added file(s):
- files/opt-showencoding

Port maintainer (cy at FreeBSD.org) is cc'd.

Generated with FreeBSD Port Tools 0.77
>How-To-Repeat:
>Fix:

--- screen-4.0.3_5.patch begins here ---
diff -ruN --exclude=CVS sysutils/screen.orig/Makefile sysutils/screen/Makefile
--- sysutils/screen.orig/Makefile	2008-06-10 13:53:18.000000000 +0800
+++ sysutils/screen/Makefile	2008-06-12 02:51:31.000000000 +0800
@@ -7,7 +7,7 @@
 
 PORTNAME=	screen
 PORTVERSION=	4.0.3
-PORTREVISION=	4
+PORTREVISION=	5
 CATEGORIES=	sysutils
 MASTER_SITES=	ftp://ftp.uni-erlangen.de/pub/utilities/screen/ \
 		http://komquats.com/distfiles/ \
@@ -23,7 +23,8 @@
 		MAN "Build and install man pages" ON \
 		NETHACK "Enable nethack-style messages" ON \
 		XTERM_256 "Enable support for 256 colour xterm" OFF \
-		HOSTINLOCKED "Print user at host in locked message" OFF
+		HOSTINLOCKED "Print user at host in locked message" OFF \
+		SHOWENC "Show encoding on the status line" OFF
 
 NO_PACKAGE=	Tends to loop using 100% CPU when used from package - perhaps it hard-codes information about the build host
 
@@ -67,6 +68,11 @@
 EXTRA_PATCHES+= ${FILESDIR}/opt-hostinlocked
 .endif
 
+# show encoding on the status line via option "showenc"
+.if defined(WITH_SHOWENC)
+EXTRA_PATCHES+=	${FILESDIR}/opt-showencoding
+.endif
+
 post-patch:
 	@${RM} ${WRKSRC}/doc/screen.info*
 	@${REINPLACE_CMD} -e 's|/dev/ptmx|/nonexistent|' ${WRKSRC}/configure
diff -ruN --exclude=CVS sysutils/screen.orig/files/opt-showencoding sysutils/screen/files/opt-showencoding
--- sysutils/screen.orig/files/opt-showencoding	1970-01-01 08:00:00.000000000 +0800
+++ sysutils/screen/files/opt-showencoding	2008-06-12 02:25:34.000000000 +0800
@@ -0,0 +1,31 @@
+--- process.c.orig	2008-05-08 02:37:33.000000000 +0800
++++ process.c	2008-05-08 02:37:49.000000000 +0800
+@@ -3422,6 +3422,7 @@
+ 	    {
+ 	      WinSwitchEncoding(fore, n);
+ 	      ResetCharsets(fore);
++	      RedisplayDisplays(0);
+ 	    }
+ 	  else if (i && display)
+ 	    D_encoding  = n;
+--- screen.c.orig	2008-05-08 02:37:22.000000000 +0800
++++ screen.c	2008-05-20 20:34:37.000000000 +0800
+@@ -2584,6 +2584,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];
--- screen-4.0.3_5.patch ends here ---

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



More information about the freebsd-ports-bugs mailing list