Created
December 25, 2011 14:22
-
-
Save yoshikaw/1519337 to your computer and use it in GitHub Desktop.
開発版GNU Screenにあてているパッチ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Patch: expand-input-maxlen.patch | |
Probrem: More than 100 characters cannot be set to the caption | |
Solution: expands the text buffer size to 255. | |
Author: Kazuhiro Yoshikawa <[email protected]> | |
Files: src/input.c | |
src/process.c | |
--- a/src/input.c 2010-02-27 02:30:55.000000000 +0900 | |
+++ b/src/input.c 2010-06-21 00:19:43.000000000 +0900 | |
@@ -43,7 +43,7 @@ | |
struct inpline | |
{ | |
- char buf[101]; /* text buffer */ | |
+ char buf[256]; /* 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; /* 255, 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 > 255) | |
+ len = 255; | |
if (!(mode & INP_NOECHO)) | |
{ | |
maxlen = flayer->l_width - 1 - strlen(istr); | |
--- a/src/process.c 2010-04-04 02:26:19.000000000 +0900 | |
+++ b/src/process.c 2011-05-04 02:59:00.000000000 +0900 | |
@@ -1796,7 +1796,7 @@ | |
s = *args; | |
if (!args[0]) | |
{ | |
- Input("Stuff:", 100, INP_COOKED, StuffFin, NULL, 0); | |
+ Input("Stuff:", 255, INP_COOKED, StuffFin, NULL, 0); | |
break; | |
} | |
n = *argl; | |
@@ -2083,7 +2083,7 @@ | |
ChangeAKA(fore, *args, strlen(*args)); | |
break; | |
case RC_COLON: | |
- Input(":", 100, INP_EVERY, Colonfin, NULL, 0); | |
+ Input(":", 255, INP_EVERY, Colonfin, NULL, 0); | |
if (*args && **args) | |
{ | |
s = *args; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Patch: osx-comment-combined-char.patch | |
Probrem: display corruption at some combining characters. | |
Solution: comment out some combined char from mapping table | |
- 0x3099 voiced sound mark | |
- 0x309A semi-boiced sound mark | |
Author: Kazuhiro Yoshikawa <[email protected]> | |
Files: src/encoding.c | |
--- a/src/encoding.c 2009-09-26 00:50:28.000000000 +0900 | |
+++ b/src/encoding.c 2010-05-03 00:26:03.000000000 +0900 | |
@@ -998,7 +998,7 @@ | |
{ 0x1B6B, 0x1B73 }, { 0x1DC0, 0x1DCA }, { 0x1DFE, 0x1DFF }, | |
{ 0x200B, 0x200F }, { 0x202A, 0x202E }, { 0x2060, 0x2063 }, | |
{ 0x206A, 0x206F }, { 0x20D0, 0x20EF }, { 0x302A, 0x302F }, | |
- { 0x3099, 0x309A }, { 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, | |
+ /*{ 0x3099, 0x309A }, */{ 0xA806, 0xA806 }, { 0xA80B, 0xA80B }, | |
{ 0xA825, 0xA826 }, { 0xFB1E, 0xFB1E }, { 0xFE00, 0xFE0F }, | |
{ 0xFE20, 0xFE23 }, { 0xFEFF, 0xFEFF }, { 0xFFF9, 0xFFFB }, | |
{ 0x10A01, 0x10A03 }, { 0x10A05, 0x10A06 }, { 0x10A0C, 0x10A0F }, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Patch: rename2screenx.patch | |
Probrem: Currently, GNU Screen version 4.1 has not been released. | |
However, the new development version has a very powerful feature. | |
want to try it without changing the current environment. | |
Solution: changes the binary name to 'screenx' | |
Author: Kazuhiro Yoshikawa <[email protected]> | |
Files: src/Makefile.in | |
src/fileio.c | |
src/nethack.c | |
src/screen.c | |
src/socket.c | |
src/window.c | |
src/doc/Makefile.in | |
src/doc/screen.texinfo | |
--- a/src/Makefile.in 2009-12-08 23:39:28.000000000 +0900 | |
+++ b/src/Makefile.in 2010-06-27 03:28:26.000000000 +0900 | |
@@ -1,5 +1,5 @@ | |
# | |
-# Makefile template for screen | |
+# Makefile template for screenx | |
# | |
# See machine dependant config.h for more configuration options. | |
# | |
@@ -9,7 +9,7 @@ | |
DESTDIR = | |
-# Where to install screen. | |
+# Where to install screenx. | |
prefix = @prefix@ | |
exec_prefix = @exec_prefix@ | |
@@ -20,16 +20,16 @@ | |
bindir = $(exec_prefix)/bin | |
VERSION = @VERSION@ | |
-SCREEN = screen-$(VERSION) | |
+SCREEN = screenx-$(VERSION) | |
GIT_REV = "`git describe --always 2>/dev/null`" | |
DEFS = @DEFS@ -DGIT_REV=\"$(GIT_REV)\" | |
ETCSCREENRC = @ETCSCREENRC@ | |
ifeq (${ETCSCREENRC}, ) | |
-ETCSCREENRC=$(prefix)/etc/screenrc | |
+ETCSCREENRC=$(prefix)/etc/screenxrc | |
endif | |
-SCREENENCODINGS = $(datadir)/screen/utf8encodings | |
+SCREENENCODINGS = $(datadir)/screenx/utf8encodings | |
CC = @CC@ | |
CFLAGS = @CFLAGS@ | |
@@ -88,17 +88,17 @@ | |
$(INSTALL_PROGRAM) screen $(DESTDIR)$(bindir)/$(SCREEN) | |
-chown root $(DESTDIR)$(bindir)/$(SCREEN) && chmod 4755 $(DESTDIR)$(bindir)/$(SCREEN) | |
# This doesn't work if $(bindir)/screen is a symlink | |
- -if [ -f $(DESTDIR)$(bindir)/screen ] && [ ! -f $(DESTDIR)$(bindir)/screen.old ]; then mv $(DESTDIR)$(bindir)/screen $(DESTDIR)$(bindir)/screen.old; fi | |
- rm -f $(DESTDIR)$(bindir)/screen | |
- (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screen) | |
+ -if [ -f $(DESTDIR)$(bindir)/screenx ] && [ ! -f $(DESTDIR)$(bindir)/screenx.old ]; then mv $(DESTDIR)$(bindir)/screenx $(DESTDIR)$(bindir)/screenx.old; fi | |
+ rm -f $(DESTDIR)$(bindir)/screenx | |
+ (cd $(DESTDIR)$(bindir) && ln -f -s $(SCREEN) screenx) | |
cp $(srcdir)/utf8encodings/?? $(DESTDIR)$(SCREENENCODINGS) | |
############################################################################### | |
install: installdirs install_bin | |
cd doc ; $(MAKE) install | |
-if [ -d /usr/lib/terminfo ]; then \ | |
- PATH="$$PATH:/usr/5bin" tic ${srcdir}/terminfo/screeninfo.src; \ | |
- chmod 644 /usr/lib/terminfo/s/screen*; \ | |
+ PATH="$$PATH:/usr/5bin" tic ${srcdir}/terminfo/screenxinfo.src; \ | |
+ chmod 644 /usr/lib/terminfo/s/screenx*; \ | |
fi | |
# Better do this by hand. E.g. under RCS... | |
# cat ${srcdir}/terminfo/screencap >> /etc/termcap | |
@@ -112,8 +112,8 @@ | |
uninstall: .version | |
rm -f $(DESTDIR)$(bindir)/$(SCREEN) | |
- rm -f $(DESTDIR)$(bindir)/screen | |
- -mv $(DESTDIR)$(bindir)/screen.old $(DESTDIR)$(bindir)/screen | |
+ rm -f $(DESTDIR)$(bindir)/screenx | |
+ -mv $(DESTDIR)$(bindir)/screenx.old $(DESTDIR)$(bindir)/screenx | |
rm -f $(DESTDIR)$(ETCSCREENRC) | |
cd doc; $(MAKE) uninstall | |
@@ -140,9 +140,9 @@ | |
CPP="$(CPP) $(CPPFLAGS)" srcdir=${srcdir} sh $(srcdir)/osdef.sh | |
docs: | |
- cd doc; $(MAKE) dvi screen.info | |
+ cd doc; $(MAKE) dvi screenx.info | |
-dvi info screen.info: | |
+dvi info screenx.info: | |
-cd doc; $(MAKE) $@ | |
mostlyclean: | |
--- a/src/doc/Makefile.in 2009-09-26 00:50:28.000000000 +0900 | |
+++ b/src/doc/Makefile.in 2009-07-28 03:29:26.000000000 +0900 | |
@@ -21,29 +21,29 @@ | |
all: screen.info | |
dvi screen.dvi: screen.texinfo mostlyclean | |
- $(TEXI2DVI) $(srcdir)/screen.texinfo | |
+ $(TEXI2DVI) $(srcdir)/screen.texinfo -o screenx.dvi | |
pdf screen.pdf: screen.texinfo mostlyclean | |
- $(TEXI2PDF) $(srcdir)/screen.texinfo | |
+ $(TEXI2PDF) $(srcdir)/screen.texinfo -o screenx.pdf | |
info screen.info: screen.texinfo | |
- @rm -f screen.info* | |
- $(MAKEINFO) $(srcdir)/screen.texinfo -o screen.info | |
+ @rm -f screenx.info* | |
+ $(MAKEINFO) $(srcdir)/screen.texinfo -o screenx.info | |
install: installdirs | |
- $(INSTALL_DATA) $(srcdir)/screen.1 $(DESTDIR)$(mandir)/man1/screen.1 | |
+ $(INSTALL_DATA) $(srcdir)/screen.1 $(DESTDIR)$(mandir)/man1/screenx.1 | |
-$(MAKE) screen.info | |
- -if test -f screen.info; then d=.; else d=$(srcdir); fi; \ | |
- if test -f $$d/screen.info; then \ | |
- for f in $$d/screen.info*; do $(INSTALL_DATA) $$f $(DESTDIR)$(infodir);done; \ | |
+ -if test -f screenx.info; then d=.; else d=$(srcdir); fi; \ | |
+ if test -f $$d/screenx.info; then \ | |
+ for f in $$d/screenx.info*; do $(INSTALL_DATA) $$f $(DESTDIR)$(infodir);done; \ | |
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \ | |
- install-info --info-dir=$(DESTDIR)$(infodir) $$d/screen.info; \ | |
+ install-info --info-dir=$(DESTDIR)$(infodir) $$d/screenx.info; \ | |
else true; fi; \ | |
fi | |
uninstall: | |
- rm -f $(DESTDIR)$(mandir)/man1/screen.1 | |
- rm -f $(DESTDIR)$(infodir)/screen.info* | |
+ rm -f $(DESTDIR)$(mandir)/man1/screenx.1 | |
+ rm -f $(DESTDIR)$(infodir)/screenx.info* | |
installdirs: | |
$(srcdir)/../etc/mkinstalldirs $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(infodir) | |
--- a/src/doc/screen.texinfo 2010-01-29 23:54:19.000000000 +0900 | |
+++ b/src/doc/screen.texinfo 2009-09-13 15:10:15.000000000 +0900 | |
@@ -1,7 +1,7 @@ | |
\input texinfo @c -*-texinfo-*- | |
@c %**start of header | |
@c vi:set wm=5 | |
-@setfilename screen.info | |
+@setfilename screenx.info | |
@settitle Screen User's Manual | |
@dircategory General Commands | |
@finalout | |
--- a/src/fileio.c 2009-09-26 00:50:28.000000000 +0900 | |
+++ b/src/fileio.c 2009-07-28 03:29:26.000000000 +0900 | |
@@ -150,24 +150,24 @@ | |
return SaveStr(rcfile); | |
} | |
debug("findrcfile: you specified nothing...\n"); | |
- if ((p = getenv("SCREENRC")) != NULL && *p != '\0') | |
+ if ((p = getenv("SCREENXRC")) != NULL && *p != '\0') | |
{ | |
- debug1(" $SCREENRC has: '%s'\n", p); | |
+ debug1(" $SCREENXRC has: '%s'\n", p); | |
return SaveStr(p); | |
} | |
else | |
{ | |
- debug(" ...nothing in $SCREENRC, defaulting $HOME/.screenrc\n"); | |
+ debug(" ...nothing in $SCREENXRC, defaulting $HOME/.screenxrc\n"); | |
if (strlen(home) > sizeof(buf) - 12) | |
Panic(0, "Rc: home too large"); | |
- sprintf(buf, "%s/.screenrc", home); | |
+ sprintf(buf, "%s/.screenxrc", home); | |
return SaveStr(buf); | |
} | |
} | |
/* | |
* this will be called twice: | |
- * 1) rcfilename = "/etc/screenrc" | |
+ * 1) rcfilename = "/etc/screenxrc" | |
* 2) rcfilename = RcFileName | |
*/ | |
int | |
--- a/src/nethack.c 2009-09-26 00:50:28.000000000 +0900 | |
+++ b/src/nethack.c 2009-07-28 03:29:26.000000000 +0900 | |
@@ -98,20 +98,20 @@ | |
"Be careful! New screen tonight."}, | |
{"Child has been stopped, restarting.", | |
"You regain consciousness."}, | |
-{"There are screens on:", | |
+{"There are screenxs on:", | |
"Your inventory:"}, | |
-{"There is a screen on:", | |
+{"There is a screenx on:", | |
"Your inventory:"}, | |
-{"There are several screens on:", | |
+{"There are several screenxs on:", | |
"Prove thyself worthy or perish:"}, | |
-{"There is a suitable screen on:", | |
+{"There is a suitable screenx on:", | |
"You see here a good looking screen:"}, | |
-{"There are several suitable screens on:", | |
+{"There are several suitable screenxs on:", | |
"You may wish for a screen, what do you want?"}, | |
{"%d socket%s wiped out.", | |
"You hear %d distant explosion%s."}, | |
-{"Remove dead screens with 'screen -wipe'.", | |
- "The dead screen%s touch%s you. Try 'screen -wipe'."}, | |
+{"Remove dead screenxs with 'screenx -wipe'.", | |
+ "The dead screenx%s touch%s you. Try 'screenx -wipe'."}, | |
{"Illegal reattach attempt from terminal %s.", | |
"'%s' tries to touch your session, but fails."}, | |
{"Could not write %s", | |
--- a/src/screen.c 2010-02-27 02:30:00.000000000 +0900 | |
+++ b/src/screen.c 2010-02-27 02:50:00.000000000 +0900 | |
@@ -1657,9 +1657,9 @@ | |
unlink("core"); | |
#ifdef SIGHASARG | |
- sprintf(buf, "\r\n[screen caught signal %d.%s]\r\n", sigsig, dump_msg); | |
+ sprintf(buf, "\r\n[screenx caught signal %d.%s]\r\n", sigsig, dump_msg); | |
#else | |
- sprintf(buf, "\r\n[screen caught a fatal signal.%s]\r\n", dump_msg); | |
+ sprintf(buf, "\r\n[screenx caught a fatal signal.%s]\r\n", dump_msg); | |
#endif | |
for (disp = displays; disp; disp = disp->d_next) | |
@@ -1830,7 +1830,7 @@ | |
#ifdef UTMPOK | |
RestoreLoginSlot(); | |
#endif | |
- AddStr("[screen is terminating]\r\n"); | |
+ AddStr("[screenx is terminating]\r\n"); | |
Flush(3); | |
SetTTY(D_userfd, &D_OldMode); | |
fcntl(D_userfd, F_SETFL, 0); | |
--- a/src/socket.c 2010-02-27 02:30:00.000000000 +0900 | |
+++ b/src/socket.c 2010-02-27 03:00:00.000000000 +0900 | |
@@ -345,13 +345,13 @@ | |
switch(ngood) | |
{ | |
case 0: | |
- Msg(0, nfound > 1 ? "There are screens on:" : "There is a screen on:"); | |
+ Msg(0, nfound > 1 ? "There are screenxs on:" : "There is a screenx on:"); | |
break; | |
case 1: | |
- Msg(0, nfound > 1 ? "There are several screens on:" : "There is a suitable screen on:"); | |
+ Msg(0, nfound > 1 ? "There are several screenxs on:" : "There is a suitable screenx on:"); | |
break; | |
default: | |
- Msg(0, "There are several suitable screens on:"); | |
+ Msg(0, "There are several suitable screenxs on:"); | |
break; | |
} | |
for (sent = slist; sent; sent = sent->next) | |
@@ -390,7 +390,7 @@ | |
} | |
if (ndead && !quietflag) | |
{ | |
- char *m = "Remove dead screens with 'screen -wipe'."; | |
+ char *m = "Remove dead screenxs with 'screenx -wipe'."; | |
if (wipeflag) | |
Msg(0, "%d socket%s wiped out.", nwipe, nwipe > 1 ? "s" : ""); | |
else | |
@@ -447,13 +447,13 @@ | |
Kill(D_userpid, SIG_BYE); | |
eexit(11); | |
} | |
- Msg(0, "There is already a screen running on %s.", Filename(SockPath)); | |
+ Msg(0, "There is already a screenx running on %s.", Filename(SockPath)); | |
if (stat(SockPath, &st) == -1) | |
Panic(errno, "stat"); | |
if ((int)st.st_uid != real_uid) | |
Panic(0, "Unfortunately you are not its owner."); | |
if ((st.st_mode & 0700) == 0600) | |
- Panic(0, "To resume it, use \"screen -r\""); | |
+ Panic(0, "To resume it, use \"screenx -r\""); | |
else | |
Panic(0, "It is not detached."); | |
/* NOTREACHED */ | |
@@ -539,13 +539,13 @@ | |
*/ | |
eexit(11); | |
} | |
- Msg(0, "There is already a screen running on %s.", Filename(SockPath)); | |
+ Msg(0, "There is already a screenx running on %s.", Filename(SockPath)); | |
if (stat(SockPath, &st) == -1) | |
Panic(errno, "stat"); | |
if (st.st_uid != real_uid) | |
Panic(0, "Unfortunately you are not its owner."); | |
if ((st.st_mode & 0700) == 0600) | |
- Panic(0, "To resume it, use \"screen -r\""); | |
+ Panic(0, "To resume it, use \"screenx -r\""); | |
else | |
Panic(0, "It is not detached."); | |
/* NOTREACHED */ | |
--- a/src/window.c 2010-02-27 02:30:00.000000000 +0900 | |
+++ b/src/window.c 2010-02-27 03:03:00.000000000 +0900 | |
@@ -745,7 +745,7 @@ | |
{ | |
struct display *d = display; /* WriteString zaps display */ | |
- WriteString(p, ":screen (", 9); | |
+ WriteString(p, ":screenx (", 10); | |
WriteString(p, p->w_title, strlen(p->w_title)); | |
WriteString(p, "):", 2); | |
for (f = 0; p->w_cmdargs[f]; f++) | |
@@ -892,7 +892,7 @@ | |
{ | |
struct display *d = display; /* WriteString zaps display */ | |
- WriteString(p, ":screen (", 9); | |
+ WriteString(p, ":screenx (", 10); | |
WriteString(p, p->w_title, strlen(p->w_title)); | |
WriteString(p, "):", 2); | |
for (f = 0; p->w_cmdargs[f]; f++) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Patch: screen-devel-string-escape.patch | |
Probrem: current time is shown by set date and time 'HH:MM'. | |
but ':' is not suitable for the file path in some environment. | |
(espacially using it in :logfile) | |
Solution: create a new definition in the hour and the time. | |
Author: Kazuhiro Yoshikawa <[email protected]> | |
Files: src/doc/screen.1 | |
src/screen.c | |
Refs: This patch is referring to screen-devel mailing-list. | |
and add some fix. | |
- adjust source lines | |
------------ | |
Date: Tue, 8 Jun 2010 19:03:54 -0700 | |
From: Israel Jacques <[email protected]> | |
To: [email protected] | |
Subject: [screen-devel] Screen patch for string escape, n and new escapes | |
Hello everyone. | |
I would like to submit this very simple patch that allows the n escape | |
to be qualified with a '0'. In other words, the same behavior as both | |
the 'c' and 'C' escape. | |
The patch also includes new escapes: j, k, and K. | |
j, displays the minutes; | |
k, displays the hour in 24h format; and | |
K displays the hour in 12h format. | |
I have also updated the man page. | |
While the j, k, and K options seem redundant as both the c and C | |
escapes display both minutes and hours, I would like to have the | |
flexibility to be able to give each escape a color attribute. | |
Israel | |
------------ | |
diff --git src/doc/screen.1 src/doc/screen.1 | |
index c175891..0eb17d3 100644 | |
--- a/src/doc/screen.1 | |
+++ b/src/doc/screen.1 | |
@@ -3700,6 +3700,12 @@ sets %? to true if the window has the focus | |
hardstatus of the window | |
.IP H | |
hostname of the system | |
+.IP j | |
+minute | |
+.IP k | |
+hour in 24h format | |
+.IP K | |
+hour in 12h format | |
.IP l | |
current load of the system | |
.IP m | |
@@ -3758,7 +3764,7 @@ attribute/color modifier string terminated by the next \*Q}\*U | |
Substitute with the output of a 'backtick' command. The length | |
qualifier is misused to identify one of the commands. | |
.P | |
-The 'c' and 'C' escape may be qualified with a '0' to make | |
+The 'n', 'c', and 'C' escape may be qualified with a '0' to make | |
.I screen | |
use zero instead of space as fill character. The '0' qualifier | |
also makes the '=' escape use absolute positions. The 'n' and '=' | |
diff --git src/screen.c src/screen.c | |
index 3dde3b4..a6696c4 100644 | |
--- a/src/screen.c | |
+++ b/src/screen.c 2011-05-04 03:42:00.000000000 +0900 | |
@@ -2610,7 +2610,8 @@ int rec; | |
} | |
break; | |
case 'd': case 'D': case 'm': case 'M': case 'y': case 'Y': | |
- case 'a': case 'A': case 's': case 'c': case 'C': | |
+ case 'a': case 'A': case 's': case 'c': case 'C': case 'k': | |
+ case 'K': case 'j': | |
if (l < 4) | |
break; | |
if (tm == 0) | |
@@ -2669,6 +2670,21 @@ int rec; | |
if (!tick || tick > 60) | |
tick = 60; | |
break; | |
+ case 'k': | |
+ sprintf(p, zeroflg ? "%02d" : "%2d", tm->tm_hour); | |
+ if (!tick || tick > 60) | |
+ tick = 60; | |
+ break; | |
+ case 'K': | |
+ sprintf(p, zeroflg ? "%02d" : "%2d", (tm->tm_hour + 11) % 12 + 1); | |
+ if (!tick || tick > 60) | |
+ tick = 60; | |
+ break; | |
+ case 'j': | |
+ sprintf(p, zeroflg ? "%02d" : "%2d", tm->tm_min); | |
+ if (!tick || tick > 60) | |
+ tick = 60; | |
+ break; | |
default: | |
break; | |
} | |
@@ -2998,9 +3014,9 @@ int rec; | |
if (num == 0) | |
num = 1; | |
if (!win) | |
- sprintf(p, "%*s", num, num > 1 ? "--" : "-"); | |
+ sprintf(p, "%*s", num, ((num > 1) || zeroflg) ? "--" : "-"); | |
else | |
- sprintf(p, "%*d", num, win->w_number); | |
+ sprintf(p, zeroflg ? "%02d" : "%*d", zeroflg ? win->w_number : num, win->w_number); | |
qmflag = 1; | |
p += strlen(p) - 1; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Patch: screen-statusline-showencoding.patch | |
Probrem: by default, :info command shows each window encoding. | |
but it is inconvenient in a multi encoding environment | |
to confirm everytime. | |
Solution: enable to display encoding information at caption/hardstatus. | |
Author: Kazuhiro Yoshikawa <[email protected]> | |
Files: src/screen.c | |
src/process.c | |
Refs: This patch is referring to screen-devel mailing-list. | |
and add some fix. | |
* adjust directory depth | |
* adjust source lines | |
------------ | |
Date: Wed, 28 May 2008 15:34:15 +0800 | |
From: Yi-Jheng Lin <[email protected]> | |
To: [email protected] | |
Subject: [screen-devel] Statusline showencoding patch | |
Dear, | |
I'm so glad that screen supports the encoding transformation. That's = | |
really a great function for me to switch between Big5 & UTF-8 environment= | |
! But sometimes I may be confused "What encoding am I using?". Although, = | |
I can use "Ctrl-a i" to get the information of current window (including = | |
the encoding info). I was wondering if the statusline could show the enc= | |
oding of current window, so I patch it! | |
With this patch, I could add a new parameter "%e" to statusline for s= | |
howing the encoding of current window. This might not be a good solution,= | |
but it does work! | |
The following is the patch. | |
------------ | |
--- a/src/screen.c 2008-05-08 02:37:22.000000000 +0800 | |
+++ b/src/screen.c 2010-04-04 02:29:00.000000000 +0900 | |
@@ -2778,6 +2778,17 @@ | |
} | |
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) | |
+ { | |
+ strcpy(p, EncodingName(win->w_encoding)); | |
+ } | |
+ p += strlen(p) - 1; | |
+ break; | |
+#endif | |
case '{': | |
{ | |
char rbuf[128]; | |
--- a/src/process.c 2008-05-08 02:37:33.000000000 +0800 | |
+++ b/src/process.c 2011-05-04 00:41:00.000000000 +0900 | |
@@ -3673,6 +3673,7 @@ | |
{ | |
WinSwitchEncoding(fore, n); | |
ResetCharsets(fore); | |
+ RedisplayDisplays(0); | |
} | |
else if (i && display) | |
D_encoding = n; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'formula' | |
class Screenx < Formula | |
homepage 'http://www.gnu.org/software/screen/' | |
url 'http://git.savannah.gnu.org/cgit/screen.git/snapshot/screen-master.tar.gz' | |
sha1 '642588a585fca1def67bd85172addf9cd0a0c745' | |
version '4.1.0-20110819git450e8f3' | |
head 'git://git.savannah.gnu.org/screen.git', :branch => 'master' | |
def patches | |
[ | |
'https://gist.github.com/raw/1519337/24b9b43d9e11557759babeaf098acf8988448666/screen-statusline-showencoding.patch', | |
'https://gist.github.com/raw/1519337/c827522e7892344719effbb4544192692c038bf6/rename2screenx.patch', | |
'https://gist.github.com/raw/1519337/04dd8fdc435fdeb70cbda0b9d75a2b01b6287278/expand-input-maxlen.patch', | |
'https://gist.github.com/raw/1519337/d1e708560606ac6778dabac6f8d7d06beff6dfde/screen-devel-string-escape.patch', | |
'https://gist.github.com/raw/1519337/8180c8eedbd83dcca1e66d7a7b7550916ae835e3/osx-comment-combined-char.patch' | |
] | |
end | |
def install | |
Dir.chdir 'src' do | |
system './autogen.sh' | |
system './configure', "--prefix=#{prefix}", | |
'--enable-pam', | |
'--enable-colors256', | |
'--enable-rxvt_osc', | |
'--enable-use-locale', | |
'--enable-telnet' | |
system 'make install' | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment