summaryrefslogtreecommitdiffstats
path: root/patches/source/screen/58-show-encoding-hardstatus.patch
blob: 45fecdbfc9832c187d38ab1bc7d0d3141708b31b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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	2014-04-28 03:14:19.195018278 +0200
+++ screen/screen.c	2014-04-28 03:14:19.179018199 +0200
@@ -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	2014-04-28 03:14:19.195018278 +0200
+++ screen/process.c	2014-04-28 03:14:19.183018228 +0200
@@ -3693,6 +3693,7 @@
 	    {
 	      WinSwitchEncoding(fore, n);
 	      ResetCharsets(fore);
+	      RedisplayDisplays(0);
 	    }
 	  else if (i && display)
 	    D_encoding  = n;