فهرست منبع

rxvt switched to sourceforge years ago... Fix things up so
that rxvt actually builds and runs...

Eric Andersen 19 سال پیش
والد
کامیت
9e861b63fb
2فایلهای تغییر یافته به همراه1150 افزوده شده و 7 حذف شده
  1. 18 7
      package/rxvt/rxvt.mk
  2. 1132 0
      package/rxvt/rxvt_2.6.4-10.diff

+ 18 - 7
package/rxvt/rxvt.mk

@@ -20,10 +20,11 @@
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
 # USA
 
-RXVT_SOURCE:=rxvt-2.6.4.tar.bz2
-RXVT_SITE:=ftp://ftp.rxvt.org/pub/rxvt/
-RXVT_CAT:=bzcat
-RXVT_DIR:=$(BUILD_DIR)/rxvt-2.6.4
+RXVT_VERSION:=2.6.4
+RXVT_SOURCE:=rxvt-$(RXVT_VERSION).tar.gz
+RXVT_SITE:=http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/sourceforge/rxvt
+RXVT_CAT:=zcat
+RXVT_DIR:=$(BUILD_DIR)/rxvt-$(RXVT_VERSION)
 RXVT_BINARY:=$(RXVT_DIR)/src/rxvt
 
 $(DL_DIR)/$(RXVT_SOURCE):
@@ -33,12 +34,13 @@ rxvt-source: $(DL_DIR)/$(RXVT_SOURCE)
 
 $(RXVT_DIR)/.unpacked: $(DL_DIR)/$(RXVT_SOURCE)
 	$(RXVT_CAT) $(DL_DIR)/$(RXVT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
-	toolchain/patch-kernel.sh $(RXVT_DIR) package/rxvt/ rxvt\*.patch
+	toolchain/patch-kernel.sh $(RXVT_DIR) package/rxvt/ \*.patch
 	touch $(RXVT_DIR)/.unpacked
 
 $(RXVT_DIR)/.configured: $(RXVT_DIR)/.unpacked
 	(cd $(RXVT_DIR); rm -rf config.cache; \
 		$(TARGET_CONFIGURE_OPTS) \
+		rxvt_cv_ptys=GLIBC \
 		./configure \
 		--target=$(GNU_TARGET_NAME) \
 		--host=$(GNU_TARGET_NAME) \
@@ -46,8 +48,11 @@ $(RXVT_DIR)/.configured: $(RXVT_DIR)/.unpacked
 		--prefix=/usr/X11R6 \
 		--mandir=/usr/man \
 		--infodir=/usr/info \
-		--x-includes=$(TINYX_DIR)/exports/include \
-		--x-libraries=$(TINYX_DIR)/exports/lib \
+		--x-includes=$(STAGING_DIR)/usr/X11R6/include \
+		--x-libraries=$(STAGING_DIR)/usr/X11R6/lib \
+		--disable-resources \
+		--disable-memset \
+		--enable-xgetdefault \
 	);
 	touch $(RXVT_DIR)/.configured
 
@@ -57,8 +62,14 @@ $(RXVT_BINARY): $(RXVT_DIR)/.configured
 
 $(TARGET_DIR)/usr/X11R6/bin/rxvt: $(RXVT_BINARY)
 	cp -f $(RXVT_BINARY) $(TARGET_DIR)/usr/X11R6/bin
+	(cd $(TARGET_DIR)/usr/X11R6/bin; ln -fs rxvt xterm)
 
+ifeq ($(strip $(BR2_PACKAGE_TINYX)),y)
 rxvt: tinyx $(TARGET_DIR)/usr/X11R6/bin/rxvt
+endif
+ifeq ($(strip $(BR2_PACKAGE_XORG)),y)
+rxvt: xorg $(TARGET_DIR)/usr/X11R6/bin/rxvt
+endif
 
 rxvt-clean:
 	rm -f $(TARGET_DIR)/usr/X11R6/bin/rxvt

+ 1132 - 0
package/rxvt/rxvt_2.6.4-10.diff

@@ -0,0 +1,1132 @@
+--- rxvt-2.6.4.orig/src/graphics/Makefile.in
++++ rxvt-2.6.4/src/graphics/Makefile.in
+@@ -1,6 +1,6 @@
+ # test/graphics/Makefile.in	-*- Makefile -*-
+ # $Id: Makefile.in,v 1.3 1998/11/26 05:28:28 mason Exp $
+-@MCOMMON@
++#@MCOMMON@
+ 
+ srcdir =	@srcdir@
+ VPATH =		@srcdir@
+--- rxvt-2.6.4.orig/src/command.h
++++ rxvt-2.6.4/src/command.h
+@@ -181,7 +181,7 @@
+ 
+ /* time factor to slow down a `jumpy' mouse */
+ #define MOUSE_THRESHOLD		50
+-#define CONSOLE		"/dev/console"	/* console device */
++#define CONSOLE		"/dev/xconsole"	/* console device */
+ 
+ /*
+  * key-strings: if only these keys were standardized <sigh>
+@@ -196,20 +196,27 @@
+ 
+ #ifdef SCROLL_ON_SHIFT
+ # define SCROLL_SHIFTKEY (shft)
++# define NOSCROLL_SHIFTKEY 0
+ #else
+ # define SCROLL_SHIFTKEY 0
++# define NOSCROLL_SHIFTKEY (shft)
+ #endif
+ #ifdef SCROLL_ON_CTRL
+ # define SCROLL_CTRLKEY  (ctrl)
++# define NOSCROLL_CTRLKEY 0
+ #else
+ # define SCROLL_CTRLKEY 0
++# define NOSCROLL_CTRLKEY (ctrl)
+ #endif
+ #ifdef SCROLL_ON_META
+ # define SCROLL_METAKEY  (meta)
++# define NOSCROLL_METAKEY 0
+ #else
+ # define SCROLL_METAKEY 0
++# define NOSCROLL_METAKEY (meta)
+ #endif
+-#define IS_SCROLL_MOD  (SCROLL_SHIFTKEY || SCROLL_CTRLKEY || SCROLL_METAKEY)
++#define IS_SCROLL_MOD  ((SCROLL_SHIFTKEY || SCROLL_CTRLKEY || SCROLL_METAKEY) \
++              && (!NOSCROLL_SHIFTKEY && !NOSCROLL_CTRLKEY && !NOSCROLL_METAKEY))
+ 
+ typedef struct XCNQueue_t {
+     struct XCNQueue_t *next;
+--- rxvt-2.6.4.orig/src/rsizes.h
++++ rxvt-2.6.4/src/rsizes.h
+@@ -0,0 +1,22 @@
++/*
++ * If we haven't pulled in typedef's like int16_t , then do them ourself
++ */
++
++/* type of (normal and unsigned) basic sizes */
++/* e.g. typedef short int16_t */
++
++/* e.g. typedef unsigned short u_int16_t */
++
++/* e.g. typedef int int32_t */
++
++/* e.g. typedef unsigned int u_int32_t */
++
++/* e.g. typedef long int64_t */
++
++/* e.g. typedef unsigned long u_int64_t */
++
++
++/* whatever normal size corresponds to a integer pointer */
++#define intp_t int32_t
++/* whatever normal size corresponds to a unsigned integer pointer */
++#define u_intp_t u_int32_t
+--- rxvt-2.6.4.orig/src/xdefaults.c
++++ rxvt-2.6.4/src/xdefaults.c
+@@ -215,6 +215,8 @@
+ #ifdef MULTICHAR_SET
+     STRG(Rs_multichar_encoding, "multichar_encoding", "km", "mode",
+          "multiple-character font encoding; mode = eucj | sjis | big5 | gb"),
++    BOOL(Rs_mc_hack, "mcCursor", "mcc", Opt_mc_hack,
++	"Multibyte character cursor movement"),
+ #endif				/* MULTICHAR_SET */
+ #ifdef USE_XIM
+     STRG(Rs_preeditType, "preeditType", "pt", "style",
+@@ -299,10 +301,10 @@
+     fprintf(stderr, "Kanji,");
+ #endif
+ #ifdef ZH
+-    fprintf(stderr, "Chinese,");
++    fprintf(stderr, "Chinese (Big5),");
+ #endif
+ #ifdef ZHCN
+-    fprintf(stderr, "Chinese(GB),");
++    fprintf(stderr, "Chinese (GB),");
+ #endif
+ #ifdef XTERM_SCROLLBAR
+     fprintf(stderr, "XTerm-scrollbar,");
+@@ -760,14 +762,23 @@
+ 
+     for (entry = 0; entry < optList_size(); entry++) {
+ 	int             s;
+-	char           *p;
++	char           *p, *p0;
+ 	const char     *kw = optList[entry].kw;
+ 
+ 	if (kw == NULL || *(optList[entry].dp) != NULL)
+ 	    continue;		/* previously set */
+-	if ((p = XGetDefault(display, name, kw)) != NULL
+-	    || (p = XGetDefault(display, APL_SUBCLASS, kw)) != NULL
+-	    || (p = XGetDefault(display, APL_CLASS, kw)) != NULL) {
++
++#define STRCMP(x, y)		strcmp((const char *)(x), (const char *)(y))
++	p = XGetDefault(display, name, kw);
++	p0 = XGetDefault(display, "!INVALIDPROGRAMMENAMEDONTMATCH!", kw);
++	if (p == NULL || (p0 && STRCMP(p, p0) == 0)) {
++	    p = XGetDefault(display, APL_SUBCLASS, kw);
++	    if (p == NULL || (p0 && STRCMP(p, p0) == 0))
++		p = XGetDefault(display, APL_CLASS, kw);
++	}
++	if (p == NULL && p0)
++	    p = p0;
++	if (p) {
+ 	    *optList[entry].dp = p;
+ 
+ 	    if (optList_isBool(entry)) {
+--- rxvt-2.6.4.orig/src/screen.c
++++ rxvt-2.6.4/src/screen.c
+@@ -188,7 +188,7 @@
+ 	rp[row] = MALLOC(sizeof(rend_t) * TermWin.ncol);
+     }
+     if (!keepr)
+-	efs &= ~(RS_Uline);
++	efs &= ~(RS_Uline | RS_RVid);
+     MEMSET(tp[row], ' ', width);
+     for (er = rp[row]; width--;)
+ 	*er++ = efs;
+@@ -2107,6 +2107,54 @@
+ #define FONT_RBEAR(X, Y)						\
+     (X)->per_char[(Y) - (X)->min_char_or_byte2].rbearing
+ 
++#ifdef MULTICHAR_SET
++static int
++draw_string16(Display *display,
++	      Drawable d,
++	      GC gc,
++	      int x,
++	      int y,
++	      XChar2b *str,
++	      int len)
++{
++    while (len > 0) {
++	XDrawString16(display, d, gc, x, y, str, 1);
++	if (str->byte1 == '\0') {
++	    x += TermWin.fwidth;
++	}
++	else {
++	    x += TermWin.fwidth * 2;
++	}
++	str++;
++	len--;
++    }
++    return 0;
++}
++
++static int
++draw_image_string16(Display *display,
++		    Drawable d,
++		    GC gc,
++		    int x,
++		    int y,
++		    XChar2b *str,
++		    int len)
++{
++    while (len > 0) {
++	XDrawImageString16(display, d, gc, x, y, str, 1);
++	if (str->byte1 == '\0') {
++	    x += TermWin.fwidth;
++	}
++	else {
++	    x += TermWin.fwidth * 2;
++	}
++	str++;
++	len--;
++    }
++    return 0;
++}
++#endif
++
+ /* EXTPROTO */
+ void
+ scr_refresh(int type)
+@@ -2262,11 +2310,19 @@
+ #ifndef NO_CURSORCOLOR
+ 	cc1 = *srp & (RS_fgMask | RS_bgMask);
+ 	if (Xdepth <= 2 || !rs[Rs_color + Color_cursor])
++#ifdef CURSOR_COLOR_IS_RENDITION_COLOR
++	    ccol1 = GET_FGCOLOR(rstyle);
++#else
+ 	    ccol1 = Color_fg;
++#endif
+ 	else
+ 	    ccol1 = Color_cursor;
+ 	if (Xdepth <= 2 || !rs[Rs_color + Color_cursor2])
++#ifdef CURSOR_COLOR_IS_RENDITION_COLOR
++	    ccol2 = GET_BGCOLOR(rstyle);
++#else
+ 	    ccol2 = Color_bg;
++#endif
+ 	else
+ 	    ccol2 = Color_cursor2;
+ 	*srp = SET_FGCOLOR(*srp, ccol1);
+@@ -2366,9 +2422,9 @@
+ 	    len = 0;
+ 	    buffer[len++] = stp[col];
+ 	    ypixelc = Row2Pixel(row);
+-	    ypixel = ypixelc + TermWin.font->ascent;
++	    ypixel = ypixelc + TermWin.fascent;
+ 	    xpixel = Col2Pixel(col);
+-	    fontdiff = 0;
++	    fontdiff = TermWin.fontdiff;
+ 	    wlen = 1;
+ 
+ /*
+@@ -2382,9 +2438,14 @@
+ 		    if (!wbyte) {
+ 			wbyte = 1;
+ 			XSetFont(Xdisplay, TermWin.gc, TermWin.mfont->fid);
+-		    fontdiff = TermWin.mprop;
+-			draw_string = XDrawString16;
+-			draw_image_string = XDrawImageString16;
++			fontdiff |= TermWin.mprop;
++			if (TermWin.mprop) {
++			    draw_string = draw_string16;
++			    draw_image_string = draw_image_string16;
++			} else {
++			    draw_string = XDrawString16;
++			    draw_image_string = XDrawImageString16;
++			}
+ 		    }
+ 		/* double stepping - we're in Kanji mode */
+ 		    for (; ++col < TermWin.ncol;) {
+@@ -2512,11 +2573,12 @@
+ 	    if (!wbyte && MONO_BOLD(rend) && TermWin.boldFont != NULL) {
+ 		bfont = 1;
+ 		XSetFont(Xdisplay, TermWin.gc, TermWin.boldFont->fid);
+-		fontdiff = TermWin.bprop;
++		fontdiff |= TermWin.bprop;
+ 		rend &= ~RS_Bold;	/* we've taken care of it */
+ 	    } else if (bfont) {
+ 		bfont = 0;
+-		XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
++		if (!wbyte)
++		    XSetFont(Xdisplay, TermWin.gc, TermWin.font->fid);
+ 	    }
+ #endif
+ /*
+@@ -3341,14 +3403,6 @@
+ 
+ /* ------------------------------------------------------------------------- */
+ /*
+- * On some systems, the Atom typedef is 64 bits wide.  We need to have a type
+- * that is exactly 32 bits wide, because a format of 64 is not allowed by
+- * the X11 protocol.
+- */
+-typedef CARD32  Atom32;
+-
+-/* ------------------------------------------------------------------------- */
+-/*
+  * Respond to a request for our current selection
+  * EXT: SelectionRequest
+  */
+@@ -3357,7 +3411,7 @@
+ selection_send(const XSelectionRequestEvent * rq)
+ {
+     XEvent          ev;
+-    Atom32          target_list[4];
++    Atom            target_list[4];
+     Atom            target;
+     static Atom     xa_targets = None;
+     static Atom     xa_compound_text = None;
+@@ -3382,13 +3436,12 @@
+     ev.xselection.time = rq->time;
+ 
+     if (rq->target == xa_targets) {
+-	target_list[0] = (Atom32) xa_targets;
+-	target_list[1] = (Atom32) XA_STRING;
+-	target_list[2] = (Atom32) xa_text;
+-	target_list[3] = (Atom32) xa_compound_text;
++	target_list[0] = xa_targets;
++	target_list[1] = XA_STRING;
++	target_list[2] = xa_text;
++	target_list[3] = xa_compound_text;
+ 	XChangeProperty(Xdisplay, rq->requestor, rq->property, rq->target,
+-			(8 * sizeof(target_list[0])), PropModeReplace,
+-			(unsigned char *)target_list,
++			32, PropModeReplace, (unsigned char *)target_list,
+ 			(sizeof(target_list) / sizeof(target_list[0])));
+ 	ev.xselection.property = rq->property;
+     } else if (rq->target == XA_STRING
+@@ -3503,3 +3556,26 @@
+     pos->y = Height2Pixel((screen.cur.row + 1)) + xwa.y;
+ }
+ #endif
++
++#ifdef MULTICHAR_SET
++/* EXTPROTO */
++int
++scr_multi1(void)
++{
++    rend_t          rend;
++    
++    rend = screen.rend[screen.cur.row + TermWin.saveLines][screen.cur.col];
++    return ((rend & RS_multiMask)==RS_multi1);
++}
++
++/* EXTPROTO */
++int
++scr_multi2(void)
++{
++    rend_t          rend;
++    
++    if (screen.cur.col==0)  return 0;
++    rend = screen.rend[screen.cur.row + TermWin.saveLines][screen.cur.col-1];
++    return ((rend & RS_multiMask)==RS_multi2);
++}
++#endif
+--- rxvt-2.6.4.orig/src/main.c
++++ rxvt-2.6.4/src/main.c
+@@ -1010,6 +1010,9 @@
+ 
+ 	TermWin.fwidth = fw;
+ 	TermWin.fheight = fh;
++	TermWin.fascent = TermWin.font->ascent;
++	TermWin.fdescent = TermWin.font->descent;
++	TermWin.fontdiff = 0;
+     }
+ 
+ /* check that size of boldFont is okay */
+@@ -1035,10 +1038,17 @@
+ 	    int             fh, fw;
+ 
+ 	    fw = get_fontwidest(TermWin.mfont);
+-	    fh = TermWin.mfont->ascent + TermWin.mfont->descent;
+-	    if (fw <= TermWin.fwidth && fh <= TermWin.fheight)
+-		/* WHAT TO DO!! */ ;
+-	    TermWin.mprop = !(fw == TermWin.fwidth /* && fh == TermWin.fheight */ );
++	    if (TermWin.mfont->ascent > TermWin.fascent) {
++		TermWin.fascent = TermWin.mfont->ascent;
++		TermWin.fontdiff = 1;
++	    }
++	    if (TermWin.mfont->descent > TermWin.fdescent) {
++		TermWin.fdescent = TermWin.mfont->descent;
++		TermWin.fontdiff = 1;
++	    }
++	    if (TermWin.fontdiff)
++		TermWin.fheight = TermWin.fascent + TermWin.fdescent;
++	    TermWin.mprop = (fw != TermWin.fwidth * 2);
+ 	}
+ #endif
+ 
+@@ -1348,6 +1358,16 @@
+ 	sprintf(env_term, "TERM=%s", rs[Rs_term_name]);
+ 	putenv(env_term);
+     } else {
++	/* Debian hack: We at Debian prefer to be correct.  Therefore, we
++           use TERM=rxvt on color displays and TERM=rxvt-m (the -m stands
++           for monochrome, see terminfo(5)) on monochrome displays.  For
++           some unknown reason, the upstream maintianers don't recognize
++           the usefulness of this.  Oh well. */
++#ifndef KANJI
++	if (Xdepth <= 2)
++	    putenv("TERM=" TERMENV "-m");
++	else
++#endif
+ 	putenv("TERM=" TERMENV);
+     }
+ }
+--- rxvt-2.6.4.orig/src/grkelot.c
++++ rxvt-2.6.4/src/grkelot.c
+@@ -158,9 +158,9 @@
+ 
+ #define NUM_XLAT_TYPES	(sizeof(xlat_type) / sizeof(xlat_type[0]))
+ 
+-static void     kstate_add_xlat(char *str);
+-static void     kstate_add_switcher(char *str);
+-static void     kstate_set_life(char *str);
++void     kstate_add_xlat(char *str);
++void     kstate_add_switcher(char *str);
++void     kstate_set_life(char *str);
+ 
+ /* --- Functions ------------- */
+ /* INTPROTO */
+--- rxvt-2.6.4.orig/src/graphics.c
++++ rxvt-2.6.4/src/graphics.c
+@@ -144,15 +144,15 @@
+ 	x -= (XTextWidth(TermWin.font, data->text, data->coords[3]) >> 1);
+ 
+     if (align & TOP_TEXT)
+-	y += TermWin.font->ascent;
++	y += TermWin.fascent;
+     else if (align & BOTTOM_TEXT)
+-	y -= TermWin.font->descent;
++	y -= TermWin.fdescent;
+ 
+     if (align & VCENTER_TEXT)
+-	y -= TermWin.font->descent
+-	     + ((TermWin.font->ascent + TermWin.font->descent) >> 1);
++	y -= TermWin.fdescent
++	     + ((TermWin.fascent + TermWin.fdescent) >> 1);
+     if (align & VCAPS_CENTER_TEXT)
+-	y += (TermWin.font->ascent >> 1);
++	y += (TermWin.fascent >> 1);
+ 
+     XPMClearArea(Xdisplay, grwin->win, x, y, Width2Pixel(data->coords[3]),
+ 		 Height2Pixel(1), 0);
+--- rxvt-2.6.4.orig/src/command.c
++++ rxvt-2.6.4/src/command.c
+@@ -992,7 +992,9 @@
+     else {
+     /* To avoid Segmentation Fault in C locale */
+ 	setTermFontSet();
++#ifdef MULTICHAR_SET
+         if (strcmp(locale, "C"))
++#endif
+ 	    XRegisterIMInstantiateCallback(Xdisplay, NULL, NULL, NULL,
+ 					   IMInstantiateCallback, NULL);
+     }
+@@ -1214,11 +1216,23 @@
+ 				^ !!(shft | ctrl)) ? '\b' : '\177');
+ 		} else
+ 		    len = strlen(STRCPY(kbuf, key_backspace));
++#ifdef MULTICHAR_SET
++		if ((Options & Opt_mc_hack) && scr_multi2()) {
++		    memmove(kbuf + len, kbuf, len);
++		    len *= 2;
++		}
++#endif
+ 		break;
+ #endif
+ #ifndef NO_DELETE_KEY
+ 	    case XK_Delete:
+ 		len = strlen(STRCPY(kbuf, key_delete));
++#ifdef MULTICHAR_SET
++		if ((Options & Opt_mc_hack) && scr_multi1()) {
++		    memmove(kbuf + len, kbuf, len);
++		    len *= 2;
++		}
++#endif
+ 		break;
+ #endif
+ 	    case XK_Tab:
+@@ -1244,13 +1258,13 @@
+ 
+ #ifdef XK_KP_Left
+ 	    case XK_KP_Up:	/* \033Ox or standard */
+-	    case XK_KP_Down:	/* \033Ow or standard */
++	    case XK_KP_Down:	/* \033Or or standard */
+ 	    case XK_KP_Right:	/* \033Ov or standard */
+ 	    case XK_KP_Left:	/* \033Ot or standard */
+ 		if ((PrivateModes & PrivMode_aplKP) ? !shft : shft) {
+ 		    len = 3;
+ 		    STRCPY(kbuf, "\033OZ");
+-		    kbuf[2] = ("txvw"[keysym - XK_KP_Left]);
++		    kbuf[2] = ("txvr"[keysym - XK_KP_Left]);
+ 		    break;
+ 		} else
+ 		/* translate to std. cursor key */
+@@ -1272,6 +1286,14 @@
+ 		    kbuf[2] = ("dacb"[keysym - XK_Left]);
+ 		} else if (PrivateModes & PrivMode_aplCUR)
+ 		    kbuf[1] = 'O';
++#ifdef MULTICHAR_SET
++		if ((Options & Opt_mc_hack) &&
++		    ((keysym==XK_Left && scr_multi2()) ||
++		    (keysym==XK_Right && scr_multi1()))) {
++		    memmove(kbuf + len, kbuf, len);
++		    len *= 2;
++		}
++#endif
+ 		break;
+ 
+ #ifndef UNSHIFTED_SCROLLKEYS
+@@ -1670,8 +1692,16 @@
+ 
+ 	    cmdbuf_ptr = cmdbuf_endp = cmdbuf_base;
+ 	    for (count = BUFSIZ; count; count -= n, cmdbuf_endp += n)
+-		if ((n = read(cmd_fd, cmdbuf_endp, count)) <= 0)
++		if ((n = read(cmd_fd, cmdbuf_endp, count)) > 0)
++		    continue;
++		else if (n == 0 || (n < 0 && errno == EAGAIN))
+ 		    break;
++		else {
++#if !defined (HAVE_ATEXIT) && !defined (__sun__)
++		    clean_exit();
++#endif
++		    exit(1);	/* bad order of events? */
++		}
+ 	    if (count != BUFSIZ)	/* some characters read in */
+ 		return (*cmdbuf_ptr++);
+ 	}
+@@ -2376,7 +2406,7 @@
+     unsigned char   buf[256];
+ 
+     va_start(arg_ptr, fmt);
+-    vsprintf(buf, fmt, arg_ptr);
++    vsnprintf(buf, sizeof(buf), fmt, arg_ptr);
+     va_end(arg_ptr);
+     tt_write(buf, strlen(buf));
+ }
+@@ -2826,6 +2856,7 @@
+     case 18:			/* report window size (chars) */
+ 	tt_printf("\033[8;%d;%dt", TermWin.nrow, TermWin.ncol);
+ 	break;
++#if 0 /* XXX: currently disabled due to security concerns */
+     case 20:			/* report icon label */
+ 	XGetIconName(Xdisplay, TermWin.parent[0], &s);
+ 	tt_printf("\033]L%-.200s\033\\", s ? s : "");
+@@ -2834,6 +2865,7 @@
+ 	XFetchName(Xdisplay, TermWin.parent[0], &s);
+ 	tt_printf("\033]l%-.200s\033\\", s ? s : "");
+ 	break;
++#endif
+     }
+ }
+ #endif
+@@ -2853,7 +2885,8 @@
+     if (ch == ';') {
+ 	int             n = 0;
+ 
+-	while ((ch = cmd_getc()) != 007) {
++	while ((ch = cmd_getc()) != 007 &&
++	    !(ch == 0x1b && cmd_getc() == 0x5c)) {
+ 	    if (ch) {
+ 		if (ch == '\t')
+ 		    ch = ' ';	/* translate '\t' to space */
+@@ -2870,7 +2903,11 @@
+      * so do it here
+      */
+ 	if (arg == XTerm_Menu)
++#if 0 /* XXX: currently disabled due to security concerns */
+ 	    menubar_dispatch((char *)string);
++#else
++	    0;
++#endif
+ 	else
+ 	    xterm_seq(arg, (char *)string);
+     }
+--- rxvt-2.6.4.orig/src/rxvt.h
++++ rxvt-2.6.4/src/rxvt.h
+@@ -173,9 +173,12 @@
+ 		    height,	/* window height [pixels]                   */
+ 		    fwidth,	/* font width [pixels]                      */
+ 		    fheight,	/* font height [pixels]                     */
++		    fascent,	/* font ascent [pixels]                     */
++		    fdescent,	/* font descent [pixels]                    */
+ 		    fprop,	/* font is proportional                     */
+ 		    bprop,	/* treat bold font as proportional          */
+ 		    mprop,	/* treat multichar font as proportional     */
++		    fontdiff,	/* font size different                      */
+ 		    ncol, nrow,	/* window size [characters]                 */
+ 		    focus,	/* window has focus                         */
+ 		    mapped,	/* window state mapped?                     */
+@@ -469,6 +472,7 @@
+ #define Opt_scrollTtyOutput	(1LU<<11)
+ #define Opt_scrollKeypress	(1LU<<12)
+ #define Opt_transparent		(1LU<<13)
++#define Opt_mc_hack		(1LU<<14)
+ /* place holder used for parsing command-line options */
+ #define Opt_Reverse		(1LU<<30)
+ #define Opt_Boolean		(1LU<<31)
+@@ -610,6 +614,9 @@
+     Rs_preeditType,
+     Rs_inputMethod,
+ #endif
++#ifdef MULTICHAR_SET
++    Rs_mc_hack,
++#endif
+ #if defined (HOTKEY_CTRL) || defined (HOTKEY_META)
+     Rs_bigfont_key,
+     Rs_smallfont_key,
+--- rxvt-2.6.4.orig/src/feature.h
++++ rxvt-2.6.4/src/feature.h
+@@ -368,6 +368,10 @@
+  */
+ #define SUPPORT_BROKEN_APPS_WHICH_RELY_ON_UNDEFINED_BW_BEHAVIOUR_AS_XTERM
+ 
++/* Debian modification to change the cursor color to the foreground
++   color */
++#define CURSOR_COLOR_IS_RENDITION_COLOR
++
+ /*
+  * List of default fonts available
+  * NFONTS is the number of fonts in the list
+--- rxvt-2.6.4.orig/doc/etc/rxvt.terminfo
++++ rxvt-2.6.4/doc/etc/rxvt.terminfo
+@@ -13,7 +13,13 @@
+ # rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
+ # Since rxvt is not really compatible with xterm, it should be configured as
+ # "rxvt-basic" (monochrom) and "rxvt"
+-rxvt-basic|rxvt terminal base (X Window System), 
++#
++# Debian's changes:
++#   Debian has uses two termcap/terminfo entries:
++#	rxvt	for color displays
++#	rxvt-m	for monochrome displays
++#   Debian also prefers ^? for kbs (backspace).
++rxvt-m|monochrome rxvt terminal emulator (X Window System), 
+         am, bce, eo, km, mir, msgr, xenl, xon, 
+         cols#80, it#8, lines#24, 
+         acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
+@@ -29,7 +35,7 @@
+         ind=^J, is1=\E[?47l\E=\E[?1l, 
+         is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, 
+         kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$, 
+-        kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^H, 
++        kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, kb2=\EOu, kbs=^?, 
+         kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, 
+         kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^, 
+         kend=\E[8~, kent=\EOM, kf0=\E[21~, kf1=\E[11~, kf10=\E[21~, 
+@@ -50,4 +56,4 @@
+         colors#8, pairs#64, 
+         op=\E[39;49m, setab=\E[%p1%{40}%+%dm, 
+         sgr0=\E[m\017, setaf=\E[%p1%{30}%+%dm,
+-        use=rxvt-basic, 
++        use=rxvt-m, 
+--- rxvt-2.6.4.orig/doc/etc/rxvt.termcap
++++ rxvt-2.6.4/doc/etc/rxvt.termcap
+@@ -1,5 +1,8 @@
+-#	Reconstructed via infocmp from file: /usr/share/terminfo/r/rxvt
+-rxvt|rxvt terminal emulator (X Window System):\
++# Debian's changes:
++#   Debian has uses two termcap/terminfo entries:
++#	rxvt	for color displays
++#	rxvt-m	for monochrome displays
++rxvt-m|monochrome rxvt terminal emulator (X Window System):\
+ 	:am:eo:km:mi:ms:xn:xo:\
+ 	:co#80:it#8:li#24:\
+ 	:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
+@@ -11,9 +14,27 @@
+ 	:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
+ 	:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
+ 	:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
+-	:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=^H:kd=\E[B:ke=\E>:\
+-	:kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:mb=\E[5m:\
+-	:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
++	:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\E[B:\
++	:ke=\E>:kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\
++	:mb=\E[5m:md=\E[1m:mr=\E[7m:nd=\E[C:rc=\E8:sc=\E7:\
+ 	:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
+ 	:te=\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
+ 	:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
++rxvt|rxvt terminal emulator (X Window System):\
++	:am:eo:km:mi:ms:xn:xo:\
++	:co#80:it#8:li#24:\
++	:AL=\E[%dL:DC=\E[%dP:DL=\E[%dM:DO=\E[%dB:IC=\E[%d@:\
++	:K1=\EOw:K2=\EOu:K3=\EOy:K4=\EOq:K5=\EOs:LE=\E[%dD:\
++	:RI=\E[%dC:UP=\E[%dA:ae=^O:al=\E[L:as=^N:bl=^G:cd=\E[J:\
++	:ce=\E[K:cl=\E[H\E[2J:cm=\E[%i%d;%dH:cr=^M:\
++	:cs=\E[%i%d;%dr:ct=\E[3g:dc=\E[P:dl=\E[M:do=^J:ei=\E[4l:\
++	:ho=\E[H:i1=\E[?47l\E=\E[?1l:ic=\E[@:im=\E[4h:\
++	:is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l:\
++	:k0=\E[21~:k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~:\
++	:k5=\E[15~:k6=\E[17~:k7=\E[18~:k8=\E[19~:k9=\E[20~:\
++	:kD=\E[3~:kI=\E[2~:kN=\E[6~:kP=\E[5~:kb=\177:kd=\E[B:\
++	:ke=\E>:kh=\E[7~:kl=\E[D:kr=\E[C:ks=\E=:ku=\E[A:le=^H:\
++	:mb=\E[5m:md=\E[1m:me=\E[m\017:mr=\E[7m:nd=\E[C:rc=\E8:\
++	:sc=\E7:se=\E[27m:sf=^J:so=\E[7m:sr=\EM:st=\EH:ta=^I:\
++	:te=\E[?47l\E8:ti=\E7\E[?47h:ue=\E[24m:up=\E[A:us=\E[4m:\
++	:vb=\E[?5h\E[?5l:ve=\E[?25h:vi=\E[?25l:vs=\E[?25h:
+--- rxvt-2.6.4.orig/doc/yodl/rxvt-resources.yo
++++ rxvt-2.6.4/doc/yodl/rxvt-resources.yo
+@@ -221,7 +221,7 @@
+     dit(bf(cutchars:) em(string))
+ 	The characters used as delimiters for double-click word selection. 
+ 	The built-in default: nl()\
+-	bf(BACKSLASH `"'&()*,;<=>?@[]{|})
++	bf(BACKSLASH \ `"'&()*,;<=>?@[]{|})
+     dit(bf(preeditType:) em(style))
+ 	bf(OverTheSpot), bf(OffTheSpot), bf(Root);
+ 	option bf(-pt).
+--- rxvt-2.6.4.orig/doc/rxvt.tbl
++++ rxvt-2.6.4/doc/rxvt.tbl
+@@ -1,4 +1,5 @@
+-.TH "1" "RXVT" "02 NOVEMBER 2001" "X Version 11" "X Tools" 
++'\" t
++.TH "RXVT" 1 "02 NOVEMBER 2001" "X Version 11" "X Tools" 
+ .SH "NAME" 
+ rxvt (ouR XVT) \- a VT102 emulator for the X window system
+ .PP 
+@@ -17,19 +18,19 @@
+ .PP 
+ .SH "OPTIONS" 
+ .PP 
+-The \fBrxvt\fP options (mostly a subset of \fIxterm\fP\'s) are listed below\&.
++The \fBrxvt\fP options (mostly a subset of \fIxterm\fP's) are listed below\&.
+ In keeping with the smaller-is-better philosophy, options may be eliminated
+ or default values chosen at compile-time, so options and defaults listed
+ may not accurately reflect the version installed on your system\&.  
+-`rxvt -h\' gives a list of major compile-time options on the usage line\&.
++\(lqrxvt -h\(rq gives a list of major compile-time options on the usage line\&.
+ Option descriptions may be prefixed with which compile option each is
+-dependent upon\&.  e\&.g\&. `Compile \fIXIM\fP:\' requires \fIXIM\fP on the usage line\&.
+-Note: `rxvt -help\' gives a list of all options compiled into your version\&.
++dependent upon\&.  e\&.g\&. \(lqCompile \fIXIM\fP:\(rq requires \fIXIM\fP on the usage line\&.
++Note: \(lqrxvt -help\(rq gives a list of all options compiled into your version\&.
+ .PP 
+ Note that \fBrxvt\fP permits the resource name to be used as a long-option
+ (--/++ option) so the potential command-line options are far greater than
+ those listed\&.
+-For example: `rxvt --loginShell --color1 Orange\'\&.
++For example: \(lqrxvt --loginShell --color1 Orange\(rq\&.
+ .PP 
+ .IP "\fB-help\fP, \fB--help\fP" 
+ Print out a message describing available options\&.
+@@ -44,7 +45,7 @@
+ Turn on/off simulated reverse video;
+ resource \fBreverseVideo\fP\&.
+ .IP "\fB-ip\fP|\fB+ip\fP" 
+-Turn on/off inheriting parent window\'s pixmap\&.  Alternative form
++Turn on/off inheriting parent window's pixmap\&.  Alternative form
+ is \fB-tr\fP;
+ resource \fBinheritPixmap\fP\&.
+ .IP "\fB-bg\fP \fIcolour\fP" 
+@@ -57,7 +58,7 @@
+ Compile \fIXPM\fP: Specify XPM file for the background and also
+ optionally specify its scaling with a geometry string\&.  Note you
+ may need to add quotes to avoid special shell interpretation of
+-the `;\' in the command-line;
++the \(lq;\(rq in the command-line;
+ resource \fBbackgroundPixmap\fP\&.
+ .IP "\fB-cr\fP \fIcolour\fP" 
+ The cursor colour;
+@@ -90,7 +91,7 @@
+ .IP "\fB-name\fP \fIname\fP" 
+ Specify the application name under which resources
+ are to be obtained, rather than the default executable file name\&.
+-Name should not contain `\&.\' or `*\' characters\&.
++Name should not contain \(lq\&.\(rq or \(lq*\(rq characters\&.
+ Also sets the icon and title name\&.
+ .IP "\fB-ls\fP|\fB+ls\fP" 
+ Start as a login-shell/sub-shell;
+@@ -127,6 +128,9 @@
+ \fBTERM\fP environment variable\&. This terminal type must exist in the
+ \fItermcap(5)\fP database and should have \fIli#\fP and \fIco#\fP entries;
+ resource \fBtermName\fP\&.
++.IP "\fB-im\fP \fImethod\fP" 
++This option specifies the input method to use;
++resource \fBinputMethod\fP\&.
+ .IP "\fB-e\fP \fIcommand [arguments]\fP" 
+ Run the command with its command-line arguments in the \fBrxvt\fP
+ window; also sets the window title and icon name to be the basename
+@@ -160,11 +164,11 @@
+ resource \fImodifier\fP\&.
+ .IP "\fB-xrm\fP \fIresourcestring\fP" 
+ No effect on rxvt\&.  Simply passes through an argument to be made
+-available in the instance\'s argument list\&.  Appears in \fIWM_COMMAND\fP
++available in the instance's argument list\&.  Appears in \fIWM_COMMAND\fP
+ in some window managers\&.
+ .SH "RESOURCES (available also as long-options)" 
+ .PP 
+-Note: `rxvt --help\' gives a list of all resources (long options) compiled
++Note: \(lqrxvt --help\(rq gives a list of all resources (long options) compiled
+ into your version\&.
+ If compiled with internal Xresources support (i\&.e\&. \fBrxvt -h\fP lists 
+ \fB\&.Xdefaults\fP) then \fBrxvt\fP accepts application defaults set in
+@@ -185,11 +189,11 @@
+ 80x24];
+ option \fB-geometry\fP\&.
+ .IP "\fBbackground:\fP \fIcolour\fP" 
+-Use the specified colour as the window\'s background colour [default
++Use the specified colour as the window's background colour [default
+ White];
+ option \fB-bg\fP\&.
+ .IP "\fBforeground:\fP \fIcolour\fP" 
+-Use the specified colour as the window\'s foreground colour [default
++Use the specified colour as the window's foreground colour [default
+ Black];
+ option \fB-fg\fP\&.
+ .IP "\fBcolor\fP\fIn\fP\fB:\fP \fIcolour\fP" 
+@@ -221,26 +225,26 @@
+ option \fB+rv\fP\&.
+ See note in \fBCOLORS AND GRAPHICS\fP section\&.
+ .IP "\fBinheritPixmap:\fP \fIboolean\fP" 
+-\fBTrue\fP: make the background inherit the parent windows\' pixmap,
++\fBTrue\fP: make the background inherit the parent windows' pixmap,
+ giving artificial transparency\&.
+-\fBFalse\fP: do not inherit the parent windows\' pixmap\&.
++\fBFalse\fP: do not inherit the parent windows' pixmap\&.
+ .IP "\fBscrollColor:\fP \fIcolour\fP" 
+ Use the specified colour for the scrollbar [default #B2B2B2]\&.
+ .IP "\fBtroughColor:\fP \fIcolour\fP" 
+-Use the specified colour for the scrollbar\'s trough area [default
++Use the specified colour for the scrollbar's trough area [default
+ #969696]\&.  Only relevant for normal (non XTerm/NeXT) scrollbar\&.
+ .IP "\fBbackgroundPixmap:\fP \fIfile[;geom]\fP" 
+-Use the specified XPM file (note the `\&.xpm\' extension is optional)
++Use the specified XPM file (note the \(lq\&.xpm\(rq extension is optional)
+ for the background and also optionally specify its scaling with a
+-geometry string \fBWxH+X+Y\fP, in which \fB"W" / "H"\fP specify the
+-horizontal/vertical scale (percent) and \fB"X" / "Y"\fP locate the
++geometry string \fBWxH+X+Y\fP, in which \fB\(lqW\(rq / \(lqH\(rq\fP specify the
++horizontal/vertical scale (percent) and \fB\(lqX\(rq / \(lqY\(rq\fP locate the
+ image centre (percent)\&.  A scale of 0 displays the image with tiling\&.
+ A scale of 1 displays the image without any scaling\&.  A scale of 2 to
+ 9 specifies an integer number of images in that direction\&.  No image
+ will be magnified beyond 10 times its original size\&.  The maximum
+ permitted scale is 1000\&.  [default 0x0+50+50]
+ .IP "\fBmenu:\fP \fIfile[;tag]\fP" 
+-Read in the specified menu file (note the `\&.menu\' extension is
++Read in the specified menu file (note the \(lq\&.menu\(rq extension is
+ optional) and also optionally specify a starting tag to find\&.  See
+ the reference documentation for details on the syntax for the menuBar\&.
+ .IP "\fBpath:\fP \fIpath\fP" 
+@@ -304,8 +308,8 @@
+ name;
+ option \fB-title\fP\&.
+ .IP "\fBiconName:\fP \fItext\fP" 
+-Set the name used to label the window\'s icon or displayed in an icon
+-manager window, it also sets the window\'s title unless it is
++Set the name used to label the window's icon or displayed in an icon
++manager window, it also sets the window's title unless it is
+ explicitly set;
+ option \fB-n\fP\&.
+ .IP "\fBmapAlert:\fP \fIboolean\fP" 
+@@ -318,7 +322,7 @@
+ \fBFalse\fP: no visual bell [default];
+ option \fB+vb\fP\&.
+ .IP "\fBloginShell:\fP \fIboolean\fP" 
+-\fBTrue\fP: start as a login shell by prepending a `-\' to \fBargv[0]\fP
++\fBTrue\fP: start as a login shell by prepending a \(lq-\(rq to \fBargv[0]\fP
+ of the shell;
+ option \fB-ls\fP\&.
+ \fBFalse\fP: start as a normal sub-shell [default];
+@@ -372,6 +376,9 @@
+ Specifies the terminal type name to be set in the \fBTERM\fP
+ environment variable;
+ option \fB-tn\fP\&.
++.IP "\fBinputMethod:\fP \fImethod\fP" 
++Specifies the input method to use;
++option \fB-im\fP\&.
+ .IP "\fBmeta8:\fP \fIboolean\fP" 
+ \fBTrue\fP: handle Meta (Alt) + keypress to set the 8th bit\&.
+ \fBFalse\fP: handle Meta (Alt) + keypress as an escape prefix [default]\&.
+@@ -388,7 +395,7 @@
+ The characters used as delimiters for double-click word selection\&. 
+ The built-in default: 
+ .br 
+-\fBBACKSLASH `"\'&()*,;<=>?@[]{|}\fP
++\fBBACKSLASH \ `"'&()*,;<=>?@[]{|}\fP
+ .IP "\fBpreeditType:\fP \fIstyle\fP" 
+ \fBOverTheSpot\fP, \fBOffTheSpot\fP, \fBRoot\fP;
+ option \fB-pt\fP\&.
+@@ -497,7 +504,7 @@
+ as a number 0-15, as a convenient shorthand to reference the colour name of
+ color0-color15\&.
+ .PP 
+-Note that \fB-rv\fP (\fB"reverseVideo: True"\fP) simulates reverse video by
++Note that \fB-rv\fP (\fB\(lqreverseVideo: True\(rq\fP) simulates reverse video by
+ always swapping the foreground/background colours\&.  This is in contrast to
+ \fIxterm\fP(1) where the colours are only swapped if they have not otherwise been
+ specified\&.
+@@ -520,6 +527,16 @@
+ .IP "\fB/usr/lib/X11/rgb\&.txt\fP" 
+ Color names\&.
+ .PP 
++.SH "DEBIAN NOTES"
++.PP 
++The standard Debian \fBrxvt\fP package provides two versions of the
++\fBrxvt\fP binary:
++.IP "\fBrxvt-xterm\fP"
++This version is compiled with no XPM support.  It has been configured to
++be a smaller, more efficient xterm substitute.
++.IP "\fBrxvt-xpm\fP"
++This version is compiled with XPM and menu support.
++.PP 
+ .SH "SEE ALSO" 
+ .PP 
+ \fIxterm\fP(1), \fIsh\fP(1), \fIresize\fP(1), \fIX\fP(1), \fIpty\fP(4), \fItty\fP(4),
+@@ -534,7 +551,7 @@
+ .PP 
+ Cursor change support is not yet implemented\&.
+ .PP 
+-Click-and-drag doesn\'t work with X11 mouse report overriding\&.
++Click-and-drag doesn't work with X11 mouse report overriding\&.
+ .PP 
+ Graphics support is fairly crude\&.
+ .PP 
+--- rxvt-2.6.4.orig/doc/Makefile
++++ rxvt-2.6.4/doc/Makefile
+@@ -0,0 +1,178 @@
++# Generated automatically from Makefile.in by configure.
++# doc/Makefile.in	-*- Makefile -*-
++# $Id: Makefile.in,v 1.12.4.4 2000/04/15 08:59:44 gcw Exp $
++
++# autoconf/Make.common.in	 -*- Makefile -*-
++# release date (man), LSM date, version number/name, current maintainer
++DATE=02 NOVEMBER 2001
++LSMDATE=02NOV01
++VERSION=2.6.4
++VERNAME=rxvt-$(VERSION)#
++MAINT=Geoff Wing#
++MAINTEMAIL=<gcw@rxvt.org>#
++WEBMAINT=Oezguer Kesim#
++WEBMAINTEMAIL=<oec@rxvt.org>#
++WEBPAGE=<http://www.rxvt.org/>#
++FTPSITENAME=ftp.rxvt.org#
++FTPSITEDIR=/pub/rxvt#
++#-------------------------------------------------------------------------
++
++SHELL = /bin/sh
++
++# This variable makes it possible to move the installation root to another
++# directory. This is useful when you're creating a binary distribution
++# If empty, normal root will be used.
++# You can run eg. 'make install DESTDIR=/packages/rxvt-xx' to accomplish
++# that.
++# DESTDIR = /usr/local/X11/$(VERNAME)
++
++# Installation target directories & other installation stuff
++prefix = /usr
++exec_prefix = ${prefix}
++binprefix =
++manprefix =
++bindir = ${exec_prefix}/bin
++mandir = ${prefix}/share/man/man1
++manext = 1
++
++# Tools & program stuff
++CC = gcc
++CPP = gcc -E
++MV = /bin/mv
++RM = /bin/rm
++RMF = /bin/rm -f
++CP = /bin/cp
++SED = /bin/sed
++AWK = /usr/bin/awk
++ECHO = /bin/echo
++CMP = /usr/bin/cmp
++TBL = /usr/bin/tbl
++INSTALL = /usr/bin/install -c
++INSTALL_PROGRAM = /usr/bin/install -c -s -m 755
++INSTALL_DATA = /usr/bin/install -c -m 644
++
++# Flags & libs
++# add -DBINDIR=\""$(bindir)/"\" to CPPFLAGS, if we need to spawn a program
++
++CFLAGS = -O 
++CPPFLAGS =  -DHAVE_LIBXPM
++LDFLAGS = 
++DEFS = -DHAVE_CONFIG_H
++LIBS = 
++DINCLUDE = 
++DLIB = 
++
++# X Include directory
++XINC =  -I/usr/X11R6/include -I/usr/include/X11
++
++# extra libraries needed by X on some systems, X library location
++XLIB =  -L/usr/X11R6/lib -L/usr/X11R6/lib -lXpm -lX11 
++
++# End of common section of the Makefile
++#-------------------------------------------------------------------------
++
++srcdir =	.
++.PATH:		.
++
++basedir = ..
++thisdir = doc
++
++first_rule: all
++dummy:
++
++#
++# Distribution variables
++#
++
++YODL_RXVT = yodl/rxvt-colours.yo yodl/rxvt-environment.yo\
++	    yodl/rxvt-files.yo yodl/rxvt-fonts.yo yodl/rxvt-login.yo\
++	    yodl/rxvt-mousereporting.yo yodl/rxvt-options.yo\
++	    yodl/rxvt-resources.yo yodl/rxvt-scrollbar.yo\
++	    yodl/rxvt-textselection.yo
++YODL_RREF = yodl/rxvtRef-csi.yo yodl/rxvtRef-definitions.yo\
++	    yodl/rxvtRef-graphics.yo yodl/rxvtRef-keycodes.yo\
++	    yodl/rxvtRef-menubar.yo yodl/rxvtRef-mouse.yo\
++	    yodl/rxvtRef-privatemodes.yo yodl/rxvtRef-sequences.yo\
++	    yodl/rxvtRef-values.yo yodl/rxvtRef-xpm.yo yodl/rxvtRef-xterm.yo
++
++DIST_ETC  = etc/rxvt.termcap etc/rxvt.terminfo etc/XTerm.ad
++DIST_YODL = yodl/masonyodl.yo yodl/versioninfo.yo yodl/versioninfo.yo.in\
++	    $(YODL_RXVT) yodl/rxvt.yo yodl/rxvt.yo.in $(YODL_RREF)\
++	    yodl/rxvtRef.yo.in
++DIST_MENU = menu/menu menu/example.menu menu/rxvt.menu menu/terminal.menu\
++	    menu/jedmenu.sl
++DIST	  = Makefile.in README.greek README.menu README.xvt BUGS FAQ TODO\
++	    changes.txt xterm.seq LSM.in rxvt.1 rxvt.tbl rxvtRef.txt\
++	    rxvtRef.html rxvtRef-frame.html rxvtRef-toc.html rxvt.html 
++
++#-------------------------------------------------------------------------
++
++all: rxvt.1
++
++rxvt.1: Makefile
++	@if test x$(TBL) = x; then : ; else echo "$(TBL) $(srcdir)/rxvt.tbl | grep -v '^.lf' > rxvt.1"; $(TBL) $(srcdir)/rxvt.tbl | grep -v '^.lf' > rxvt.1 ; fi
++
++SEDREPLACE = -e 's%@RXVT_VERSION@%$(VERSION)%g;'\
++	     -e 's%@RXVT_LSMDATE@%$(LSMDATE)%g;'\
++	     -e 's%@RXVT_DATE@%$(DATE)%g;'\
++	     -e 's%@RXVT_MAINTEMAIL@%$(MAINTEMAIL)%g;'\
++	     -e 's%@RXVT_MAINT@%$(MAINT)%g;'\
++	     -e 's%@RXVT_WEBPAGE@%$(WEBPAGE)%g;'\
++	     -e 's%@RXVT_WEBMAINTEMAIL@%$(WEBMAINTEMAIL)%g;'\
++	     -e 's%@RXVT_WEBMAINT@%$(WEBMAINT)%g;'\
++	     -e 's%@RXVT_FTPSITENAME@%$(FTPSITENAME)%g;'\
++	     -e 's%@RXVT_FTPSITEDIR@%$(FTPSITEDIR)%g;'
++
++tags allbin:
++
++alldoc:	$(basedir)/$(VERNAME).lsm rxvt.tbl rxvt.1 rxvt.html rxvtRef.html rxvtRef.txt
++
++yodl/versioninfo.yo: yodl/versioninfo.yo.in ../src/version.h
++	$(SED) $(SEDREPLACE) < $(srcdir)/yodl/versioninfo.yo.in > $@
++
++$(basedir)/$(VERNAME).lsm: LSM.in $(srcdir)/../autoconf/Make.common.in $(srcdir)/../src/version.h
++	$(SED) $(SEDREPLACE) < $(srcdir)/LSM.in > $@
++
++rxvt.tbl: yodl/rxvt.yo $(YODL_RXVT) yodl/versioninfo.yo yodl/masonyodl.yo
++	yodl2man -orxvt.tbl yodl/rxvt.yo
++
++rxvt.html: yodl/rxvt.yo $(YODL_RXVT) yodl/versioninfo.yo yodl/masonyodl.yo
++	yodl2html -o$@ yodl/rxvt.yo
++
++rxvtRef.html: $(YODL_RREF) yodl/rxvtRef.yo yodl/masonyodl.yo
++	yodl2html -o$@ yodl/rxvtRef.yo
++
++rxvtRef.txt: $(YODL_RREF) yodl/rxvtRef.yo yodl/masonyodl.yo
++	yodl2txt -o$@ yodl/rxvtRef.yo
++
++clean:
++	$(RMF) rxvt.man *~ yodl/*~
++
++realclean: clean
++	$(RMF) tags rxvt.1 rxvt.html rxvtRef.html rxvtRef.txt
++
++distclean:
++
++install:
++	$(INSTALL_DATA) rxvt.1 $(DESTDIR)$(mandir)/$(manprefix)rxvt.$(manext)
++
++uninstall:
++	-cd $(mandir); $(RMF) $(manprefix)rxvt.$(manext)
++
++distdirs:
++	mkdir $(basedir)/../$(VERNAME)/$(thisdir)
++	mkdir $(basedir)/../$(VERNAME)/$(thisdir)/etc
++	mkdir $(basedir)/../$(VERNAME)/$(thisdir)/menu
++	mkdir $(basedir)/../$(VERNAME)/$(thisdir)/yodl
++
++distcopy: distdepend
++	$(CP) -p $(basedir)/$(VERNAME).lsm $(basedir)/../$(VERNAME);
++	$(CP) -p $(DIST)      $(basedir)/../$(VERNAME)/$(thisdir)
++	$(CP) -p $(DIST_ETC)  $(basedir)/../$(VERNAME)/$(thisdir)/etc
++	$(CP) -p $(DIST_MENU) $(basedir)/../$(VERNAME)/$(thisdir)/menu
++	$(CP) -p $(DIST_YODL) $(basedir)/../$(VERNAME)/$(thisdir)/yodl
++
++distdepend: alldoc
++
++# ------------------------------------------------------------------------
++# DO NOT DELETE: ugly dependency list follows
+--- rxvt-2.6.4.orig/doc/rxvt.html
++++ rxvt-2.6.4/doc/rxvt.html
+@@ -468,7 +468,7 @@
+ 	with the <strong>Execute</strong> key.
+     <p></p><dt><strong><strong>cutchars:</strong> <em>string</em></strong><dd>
+ 	The characters used as delimiters for double-click word selection. 
+-	The built-in default: <br><strong>BACKSLASH `"'&amp;()*,;&lt;=&gt;?@[]{|}</strong>
++	The built-in default: <br><strong>BACKSLASH \ `"'&amp;()*,;&lt;=&gt;?@[]{|}</strong>
+     <p></p><dt><strong><strong>preeditType:</strong> <em>style</em></strong><dd>
+ 	<strong>OverTheSpot</strong>, <strong>OffTheSpot</strong>, <strong>Root</strong>;
+ 	option <strong>-pt</strong>.
+--- rxvt-2.6.4.orig/rclock/rclock.c
++++ rxvt-2.6.4/rclock/rclock.c
+@@ -336,7 +336,7 @@
+ 	if (*opt == 'd' && val)		display_name = val;	/* "d", "display" */
+ 	else if (*opt == 'g' && val)	rs_geometry = val;	/* "g", "geometry" */
+ #ifdef ICONWIN
+-	else if (*opt == 'i' && val)	/* "ic", "iconic" */
++	else if (*opt == 'i')	/* "ic", "iconic" */
+ 	  {
+ 	     iconic_state = IconicState;
+ 	     i--;	/* no argument */
+@@ -1201,8 +1201,16 @@
+ 		       int n = (sizeof(execPrgm) - strlen (execPrgm) - 2);
+ 		       if ((n > 0) && (n >= strlen (prgm)))
+ 			 {
+-			    /* for co-occurring programs */
+-			    strcat (execPrgm, ";");
++			   /* for co-occurring programs */
++			   switch (execPrgm[strlen (execPrgm)-1])
++			     {
++			     case '&':
++			     case ';':
++			       break;
++			     default:
++			       strcat (execPrgm, ";");
++			       break;
++			     }
+ 			    strncat (execPrgm, prgm, n);
+ 			 }
+ 		    }
+--- rxvt-2.6.4.orig/rclock/feature.h
++++ rxvt-2.6.4/rclock/feature.h
+@@ -53,7 +53,7 @@
+ #define MAIL
+ /* #define MAIL_BELL */
+ /* #define MAIL_SPAWN	"xmh\ -font\ 7x14\&" */
+-/* #define MAIL_SPOOL	"/var/spool/mail/" */
++#define MAIL_SPOOL	"/var/spool/mail/"
+ 
+ /*----------------------------------------------------------------------*
+  * #define CLOCKUPDATE	30
+--- rxvt-2.6.4.orig/Makefile.in
++++ rxvt-2.6.4/Makefile.in
+@@ -1,6 +1,6 @@
+ # ./Makefile.in			-*- Makefile -*-
+ # $Id: Makefile.in,v 1.5 1999/03/29 05:31:37 mason Exp $
+-@MCOMMON@
++#@MCOMMON@
+ 
+ srcdir =	@srcdir@
+ VPATH =		@srcdir@