pinosaur
/
st.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Ignore NUL character as a padding character. Telnet may use this. Patch of
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
0db81f4
..
da895c6
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-296,6
+296,7
@@
static void xcopy(void);
static void xdrawcursor(void);
static void xinit(void);
static void xloadcols(void);
static void xdrawcursor(void);
static void xinit(void);
static void xloadcols(void);
+static void xresettitle(void);
static void xseturgency(int);
static void xsetsel(char*);
static void xresize(int, int);
static void xseturgency(int);
static void xsetsel(char*);
static void xresize(int, int);
@@
-773,6
+774,13
@@
execsh(void) {
unsetenv("LINES");
unsetenv("TERMCAP");
unsetenv("LINES");
unsetenv("TERMCAP");
+ signal(SIGCHLD, SIG_DFL);
+ signal(SIGHUP, SIG_DFL);
+ signal(SIGINT, SIG_DFL);
+ signal(SIGQUIT, SIG_DFL);
+ signal(SIGTERM, SIG_DFL);
+ signal(SIGALRM, SIG_DFL);
+
DEFAULT(envshell, SHELL);
putenv("TERM="TNAME);
args = opt_cmd ? opt_cmd : (char*[]){envshell, "-i", NULL};
DEFAULT(envshell, SHELL);
putenv("TERM="TNAME);
args = opt_cmd ? opt_cmd : (char*[]){envshell, "-i", NULL};
@@
-1684,6
+1692,7
@@
tputc(char *c) {
case 'c': /* RIS -- Reset to inital state */
treset();
term.esc = 0;
case 'c': /* RIS -- Reset to inital state */
treset();
term.esc = 0;
+ xresettitle();
break;
case '=': /* DECPAM -- Application keypad */
term.mode |= MODE_APPKEYPAD;
break;
case '=': /* DECPAM -- Application keypad */
term.mode |= MODE_APPKEYPAD;
@@
-1714,6
+1723,8
@@
tputc(char *c) {
if(sel.bx != -1 && BETWEEN(term.c.y, sel.by, sel.ey))
sel.bx = -1;
switch(ascii) {
if(sel.bx != -1 && BETWEEN(term.c.y, sel.by, sel.ey))
sel.bx = -1;
switch(ascii) {
+ case '\0': /* padding character, do nothing */
+ break;
case '\t':
tputtab(1);
break;
case '\t':
tputtab(1);
break;
@@
-2026,7
+2037,7
@@
xinit(void) {
xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False);
xw.xembed = XInternAtom(xw.dpy, "_XEMBED", False);
-
XStoreName(xw.dpy, xw.win, opt_title ? opt_title : "st"
);
+
xresettitle(
);
XMapWindow(xw.dpy, xw.win);
xhints();
XSync(xw.dpy, 0);
XMapWindow(xw.dpy, xw.win);
xhints();
XSync(xw.dpy, 0);
@@
-2122,6
+2133,11
@@
xdrawcursor(void) {
xcopy();
}
xcopy();
}
+void
+xresettitle(void) {
+ XStoreName(xw.dpy, xw.win, opt_title ? opt_title : "st");
+}
+
void
redraw(void) {
struct timespec tv = {0, REDRAW_TIMEOUT * 1000};
void
redraw(void) {
struct timespec tv = {0, REDRAW_TIMEOUT * 1000};