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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
diff -Naur rxvt-2.7.8/AZZ-ChangeLog rxvt-2.7.8-azz4/AZZ-ChangeLog
--- rxvt-2.7.8/AZZ-ChangeLog Thu Jan 1 01:00:00 1970
+++ rxvt-2.7.8-azz4/AZZ-ChangeLog Mon May 20 23:10:36 2002
@@ -0,0 +1,7 @@
+- Modified to support borderlessness with -nb and override-redirect with
+ -or (or resources borderless and overrideRedirect).
+- Modified to allow an arbitrary command to be run instead of the bell
+ with -bc.
+- Fixed buffer overflow in command.c (not that you should install this suid
+ root anyway)
+
diff -Naur rxvt-2.7.8/src/command.c rxvt-2.7.8-azz4/src/command.c
--- rxvt-2.7.8/src/command.c Thu Nov 29 06:53:58 2001
+++ rxvt-2.7.8-azz4/src/command.c Mon May 20 23:11:21 2002
@@ -2930,7 +2930,7 @@
unsigned char buf[256];
va_start(arg_ptr, fmt);
- vsprintf((char *)buf, fmt, arg_ptr);
+ vsnprintf((char *)buf, sizeof buf, fmt, arg_ptr);
va_end(arg_ptr);
rxvt_tt_write(r, buf, (unsigned int)STRLEN(buf));
}
diff -Naur rxvt-2.7.8/src/init.c rxvt-2.7.8-azz4/src/init.c
--- rxvt-2.7.8/src/init.c Thu Nov 29 06:38:07 2001
+++ rxvt-2.7.8-azz4/src/init.c Mon May 20 23:22:45 2002
@@ -34,6 +34,7 @@
#include "../config.h" /* NECESSARY */
#include "rxvt.h" /* NECESSARY */
#include "init.h"
+#include <Xm/MwmUtil.h>
#include <signal.h>
@@ -917,6 +918,24 @@
r->PixColors[Color_border],
r->PixColors[Color_fg]);
#endif
+ if (r->Options & Opt_borderless) {
+ Atom mwmatom;
+ MotifWmHints hints;
+
+ mwmatom = XInternAtom(r->Xdisplay, _XA_MOTIF_WM_HINTS, FALSE);
+ hints.flags = MWM_HINTS_DECORATIONS;
+ hints.decorations = 0;
+ XChangeProperty(r->Xdisplay, r->TermWin.parent[0], mwmatom, mwmatom,
+ 32, PropModeReplace, (unsigned char *)&hints,
+ sizeof(MotifWmHints)/sizeof(long));
+ }
+ if (r->Options & Opt_overrideredirect) {
+ XSetWindowAttributes attrib;
+
+ attrib.override_redirect = True;
+ XChangeWindowAttributes(r->Xdisplay, r->TermWin.parent[0],
+ CWOverrideRedirect, &attrib);
+ }
rxvt_xterm_seq(r, XTerm_title, r->h->rs[Rs_title], CHAR_ST);
rxvt_xterm_seq(r, XTerm_iconName, r->h->rs[Rs_iconName], CHAR_ST);
diff -Naur rxvt-2.7.8/src/rxvt.h rxvt-2.7.8-azz4/src/rxvt.h
--- rxvt-2.7.8/src/rxvt.h Thu Nov 29 06:38:07 2001
+++ rxvt-2.7.8-azz4/src/rxvt.h Mon May 20 23:30:20 2002
@@ -556,6 +556,9 @@
Rs_modifier,
Rs_answerbackstring,
Rs_tripleclickwords,
+ Rs_borderless,
+ Rs_overrideRedirect,
+ Rs_bellCommand,
NUM_RESOURCES
} ;
diff -Naur rxvt-2.7.8/src/rxvtlib.h.in rxvt-2.7.8-azz4/src/rxvtlib.h.in
--- rxvt-2.7.8/src/rxvtlib.h.in Tue Nov 27 12:51:15 2001
+++ rxvt-2.7.8-azz4/src/rxvtlib.h.in Mon May 20 23:15:31 2002
@@ -189,6 +189,8 @@
#define Opt_tripleclickwords (1LU<<16)
#define Opt_scrollWithBuffer (1LU<<17)
#define Opt_jumpScroll (1LU<<18)
+#define Opt_borderless (1LU<<19)
+#define Opt_overrideredirect (1LU<<20)
/* place holder used for parsing command-line options */
#define Opt_Reverse (1LU<<30)
#define Opt_Boolean (1LU<<31)
diff -Naur rxvt-2.7.8/src/screen.c rxvt-2.7.8-azz4/src/screen.c
--- rxvt-2.7.8/src/screen.c Wed Nov 28 11:58:12 2001
+++ rxvt-2.7.8-azz4/src/screen.c Mon May 20 23:28:19 2002
@@ -29,6 +29,7 @@
#include "screen.intpro" /* PROTOS for internal routines */
#include <X11/Xmd.h> /* get the typedef for CARD32 */
+#include <stdlib.h>
/* ------------------------------------------------------------------------- */
#ifdef MULTICHAR_SET
@@ -1829,6 +1830,9 @@
void
rxvt_scr_bell(rxvt_t *r)
{
+ if (r->h->rs[Rs_bellCommand]) {
+ system(r->h->rs[Rs_bellCommand]);
+ } else {
#ifndef NO_BELL
# ifndef NO_MAPALERT
# ifdef MAPALERT_OPTION
@@ -1842,6 +1846,7 @@
} else
XBell(r->Xdisplay, 0);
#endif
+ }
}
/* ------------------------------------------------------------------------- */
diff -Naur rxvt-2.7.8/src/xdefaults.c rxvt-2.7.8-azz4/src/xdefaults.c
--- rxvt-2.7.8/src/xdefaults.c Thu Nov 29 07:22:51 2001
+++ rxvt-2.7.8-azz4/src/xdefaults.c Mon May 20 23:29:42 2002
@@ -108,6 +108,9 @@
"scroll-on-tty-output inhibit"),
BOOL(Rs_scrollTtyKeypress, "scrollTtyKeypress", "sk", Opt_scrollTtyKeypress,
"scroll-on-keypress"),
+ BOOL(Rs_borderless, "borderless", "nb", Opt_borderless, "use MWM hints to remove the window border"),
+ BOOL(Rs_overrideRedirect, "overrideRedirect", "or", Opt_overrideredirect, "set the override_redirect flag"),
+ STRG(Rs_bellCommand, "bellCommand", "bc", "string", "command to execute instead of beeping"),
BOOL(Rs_scrollWithBuffer, "scrollWithBuffer", "sw", Opt_scrollWithBuffer,
"scroll-with-buffer"),
#ifdef TRANSPARENT
|