Hi!

Here is a diff which updates rxvt-unicode to 9.09.
I've sent it to the maintainer too, but he didn't respond.

make update-patch made the regenerated patches end with '_C' instead of
'_c'. I don't know if it's ok, or why was it lowercase in the first
place, given that in the dist.source it is all uppercase.

One patch is not needed anymore (patch-src_rxvt_h) and one patch can be
trimmed (patch-src_init_c), because upstream got in similar
modifications (regarding the terminal colors), so apply with patch -E.

I've tested this on i386, and I'm using it on a daily basis; so far so
good.


Daniel

-- 
LÉVAI Dániel
PGP key ID = 0x83B63A8F
Key fingerprint = DBEC C66B A47A DFA2 792D  650C C69B BE4C 83B6 3A8F
Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/rxvt-unicode/Makefile,v
retrieving revision 1.5
diff -p -u -r1.5 Makefile
--- Makefile    24 Oct 2010 21:15:34 -0000      1.5
+++ Makefile    14 Nov 2010 14:19:06 -0000
@@ -2,8 +2,7 @@
 
 COMMENT =      clone of rxvt with Unicode and Xft support
 
-DISTNAME =     rxvt-unicode-9.07
-REVISION=      0
+DISTNAME =     rxvt-unicode-9.09
 CATEGORIES =   x11
 
 EXTRACT_SUFX = .tar.bz2
Index: distinfo
===================================================================
RCS file: /cvs/ports/x11/rxvt-unicode/distinfo,v
retrieving revision 1.1.1.1
diff -p -u -r1.1.1.1 distinfo
--- distinfo    3 May 2010 16:35:20 -0000       1.1.1.1
+++ distinfo    14 Nov 2010 14:19:06 -0000
@@ -1,5 +1,5 @@
-MD5 (rxvt-unicode-9.07.tar.bz2) = SbtSyZ4AK/hetB2DhdkDtQ==
-RMD160 (rxvt-unicode-9.07.tar.bz2) = 4g0w6sYbxW3qydoRtNBJ+6w/O2Y=
-SHA1 (rxvt-unicode-9.07.tar.bz2) = DmI9qhXEW6Ot1iInfTJJOpcFlhk=
-SHA256 (rxvt-unicode-9.07.tar.bz2) = 
xaBjjKgkmWgGUHam8X5uSZ8x/ckFD3Gq5OqFysaqxaM=
-SIZE (rxvt-unicode-9.07.tar.bz2) = 858616
+MD5 (rxvt-unicode-9.09.tar.bz2) = NQWIetrnEDgu3ukO1VOKAQ==
+RMD160 (rxvt-unicode-9.09.tar.bz2) = KDrYdbNVtRqB01uk3kkwz5aqZ3w=
+SHA1 (rxvt-unicode-9.09.tar.bz2) = AuwbXJwd/yQb/DttLCp+XACqR60=
+SHA256 (rxvt-unicode-9.09.tar.bz2) = 
KJETFnK06Ey+5Kg/2n0DPFOYtx+Nx7m/g9BNnvH8gZw=
+SIZE (rxvt-unicode-9.09.tar.bz2) = 883665
Index: patches/patch-configure_ac
===================================================================
RCS file: /cvs/ports/x11/rxvt-unicode/patches/patch-configure_ac,v
retrieving revision 1.1.1.1
diff -p -u -r1.1.1.1 patch-configure_ac
--- patches/patch-configure_ac  3 May 2010 16:35:22 -0000       1.1.1.1
+++ patches/patch-configure_ac  14 Nov 2010 14:19:06 -0000
@@ -1,6 +1,6 @@
-$OpenBSD: patch-configure_ac,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
---- configure.ac.orig  Sat Dec 26 11:18:16 2009
-+++ configure.ac       Thu Apr 22 13:48:56 2010
+$OpenBSD$
+--- configure.ac.orig  Wed Nov  3 22:00:51 2010
++++ configure.ac       Sun Nov 14 14:23:05 2010
 @@ -90,6 +90,7 @@ support_selectionscrolling=yes
  support_mousewheel=yes
  support_mouseslipwheel=yes
@@ -9,7 +9,7 @@ $OpenBSD: patch-configure_ac,v 1.1.1.1 2
  support_pointer_blank=yes
  support_scroll_rxvt=yes
  support_scroll_next=yes
-@@ -124,6 +125,7 @@ AC_ARG_ENABLE(everything,
+@@ -123,6 +124,7 @@ AC_ARG_ENABLE(everything,
         support_mousewheel=no
         support_mouseslipwheel=no
         support_text_blink=no
@@ -17,7 +17,7 @@ $OpenBSD: patch-configure_ac,v 1.1.1.1 2
         support_pointer_blank=no
         support_scroll_rxvt=no
         support_scroll_next=no
-@@ -152,6 +154,7 @@ AC_ARG_ENABLE(everything,
+@@ -150,6 +152,7 @@ AC_ARG_ENABLE(everything,
         support_mousewheel=yes
         support_mouseslipwheel=yes
         support_text_blink=yes
@@ -25,7 +25,7 @@ $OpenBSD: patch-configure_ac,v 1.1.1.1 2
         support_pointer_blank=yes
         support_scroll_rxvt=yes
         support_scroll_next=yes
-@@ -398,6 +401,12 @@ AC_ARG_ENABLE(text-blink,
+@@ -404,6 +407,12 @@ AC_ARG_ENABLE(text-blink,
      support_text_blink=$enableval
    fi])
  
@@ -36,9 +36,9 @@ $OpenBSD: patch-configure_ac,v 1.1.1.1 2
 +  fi])
 +
  AC_ARG_ENABLE(pointer-blank,
-   [  --enable-pointer-blank  enable pointer blank when typing or inactive 
pointer],
+   [  --enable-pointer-blank  enable pointer blanking when typing or inactive],
    [if test x$enableval = xyes -o x$enableval = xno; then
-@@ -670,6 +679,9 @@ fi
+@@ -722,6 +731,9 @@ fi
  if test x$support_text_blink = xyes; then
    AC_DEFINE(TEXT_BLINK, 1, Define if you want blinking text support)
  fi
@@ -48,7 +48,7 @@ $OpenBSD: patch-configure_ac,v 1.1.1.1 2
  if test x$support_unicode3 = xyes; then
    AC_DEFINE(UNICODE_3, 1, Define if you want to represent unicode characters 
outside plane 0)
  fi
-@@ -770,6 +782,9 @@ if test x$term != x; then
+@@ -808,6 +820,9 @@ if test x$term != x; then
  fi
  if test x$terminfo != x; then
    echo "  set TERMINFO to:            $terminfo"
Index: patches/patch-doc_Makefile_in
===================================================================
RCS file: /cvs/ports/x11/rxvt-unicode/patches/patch-doc_Makefile_in,v
retrieving revision 1.1.1.1
diff -p -u -r1.1.1.1 patch-doc_Makefile_in
--- patches/patch-doc_Makefile_in       3 May 2010 16:35:22 -0000       1.1.1.1
+++ patches/patch-doc_Makefile_in       14 Nov 2010 14:19:06 -0000
@@ -1,6 +1,6 @@
-$OpenBSD: patch-doc_Makefile_in,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
---- doc/Makefile.in.orig       Wed Apr 21 15:23:56 2010
-+++ doc/Makefile.in    Wed Apr 21 15:24:12 2010
+$OpenBSD$
+--- doc/Makefile.in.orig       Sun Apr  4 01:12:38 2010
++++ doc/Makefile.in    Sun Nov 14 14:23:05 2010
 @@ -98,7 +98,6 @@ install: all
        $(INSTALL_DATA) rxvt.7.man  $(DESTDIR)$(man7dir)/$(RXVTNAME).$(man7ext)
  @IF_PERL@     $(INSTALL) -d $(DESTDIR)$(man3dir)
Index: patches/patch-doc_rxvtd_1_man_in
===================================================================
RCS file: /cvs/ports/x11/rxvt-unicode/patches/patch-doc_rxvtd_1_man_in,v
retrieving revision 1.1.1.1
diff -p -u -r1.1.1.1 patch-doc_rxvtd_1_man_in
--- patches/patch-doc_rxvtd_1_man_in    3 May 2010 16:35:23 -0000       1.1.1.1
+++ patches/patch-doc_rxvtd_1_man_in    14 Nov 2010 14:19:06 -0000
@@ -1,6 +1,6 @@
-$OpenBSD: patch-doc_rxvtd_1_man_in,v 1.1.1.1 2010/05/03 16:35:23 dcoppa Exp $
---- doc/rxvtd.1.man.in.orig    Tue Apr 27 18:14:47 2010
-+++ doc/rxvtd.1.man.in Tue Apr 27 18:15:41 2010
+$OpenBSD$
+--- doc/rxvtd.1.man.in.orig    Wed Dec 30 07:13:12 2009
++++ doc/rxvtd.1.man.in Sun Nov 14 14:23:05 2010
 @@ -133,7 +133,7 @@
  @@RXVT_NAME@@d \- @@RXVT_NAME@@ terminal daemon
  .SH "SYNOPSIS"
Index: patches/patch-src_command_C
===================================================================
RCS file: patches/patch-src_command_C
diff -N patches/patch-src_command_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_command_C 14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,121 @@
+$OpenBSD$
+--- src/command.C.orig Sun Oct 24 19:52:47 2010
++++ src/command.C      Sun Nov 14 14:25:00 2010
+@@ -186,15 +186,15 @@ rxvt_term::iso14755_51 (unicode_t ch, rend_t r, int x,
+ 
+   char attr[80]; // plenty
+ 
+-  sprintf (attr, "%08x = fg %d bg %d%s%s%s%s%s%s",
+-           (int)r,
+-           fgcolor_of (r), bgcolor_of (r),
+-           r & RS_Bold    ? " bold"    : "",
+-           r & RS_Italic  ? " italic"  : "",
+-           r & RS_Blink   ? " blink"   : "",
+-           r & RS_RVid    ? " rvid"    : "",
+-           r & RS_Uline   ? " uline"   : "",
+-           r & RS_Careful ? " careful" : "");
++  snprintf (attr, sizeof (attr), "%08x = fg %d bg %d%s%s%s%s%s%s",
++            (int)r,
++            fgcolor_of (r), bgcolor_of (r),
++            r & RS_Bold    ? " bold"    : "",
++            r & RS_Italic  ? " italic"  : "",
++            r & RS_Blink   ? " blink"   : "",
++            r & RS_RVid    ? " rvid"    : "",
++            r & RS_Uline   ? " uline"   : "",
++            r & RS_Careful ? " careful" : "");
+ 
+   int width = 0;
+   fname = rxvt_temp_buf<wchar_t *> (len);
+@@ -224,7 +224,7 @@ rxvt_term::iso14755_51 (unicode_t ch, rend_t r, int x,
+ 
+       ch = *chr++;
+ 
+-      sprintf (buf, "%8x", ch);
++      snprintf (buf, sizeof (buf), "%8x", ch);
+       scr_overlay_set (0, y, buf);
+       scr_overlay_set (9, y, '=');
+ # if !UNICODE_3
+@@ -665,17 +665,17 @@ rxvt_term::key_press (XKeyEvent &ev)
+                     kbuf[1] = '\0';
+                   }
+                 else
+-                  strcpy (kbuf, rs[Rs_backspace_key]);
++                  strlcpy (kbuf, rs[Rs_backspace_key], sizeof (kbuf));
+                 break;
+ #endif
+ #ifndef NO_DELETE_KEY
+               case XK_Delete:
+-                strcpy (kbuf, rs[Rs_delete_key]);
++                strlcpy (kbuf, rs[Rs_delete_key], sizeof (kbuf));
+                 break;
+ #endif
+               case XK_Tab:
+                 if (shft)
+-                  strcpy (kbuf, "\033[Z");
++                  strlcpy (kbuf, "\033[Z", sizeof (kbuf));
+                 else
+                   {
+ #ifdef CTRL_TAB_MAKES_META
+@@ -694,7 +694,7 @@ rxvt_term::key_press (XKeyEvent &ev)
+               case XK_Down:   /* "\033[B" */
+               case XK_Right:  /* "\033[C" */
+               case XK_Left:   /* "\033[D" */
+-                strcpy (kbuf, "\033[Z");
++                strlcpy (kbuf, "\033[Z", sizeof (kbuf));
+                 kbuf[2] = "DACB"[keysym - XK_Left];
+                 /* do Shift first */
+                 if (shft)
+@@ -712,7 +712,7 @@ rxvt_term::key_press (XKeyEvent &ev)
+                 /* allow shift to override */
+                 if (kp)
+                   {
+-                    strcpy (kbuf, "\033OM");
++                    strlcpy (kbuf, "\033OM", sizeof (kbuf));
+                     break;
+                   }
+ 
+@@ -736,7 +736,7 @@ rxvt_term::key_press (XKeyEvent &ev)
+               case XK_KP_F2:  /* "\033OQ" */
+               case XK_KP_F3:  /* "\033OR" */
+               case XK_KP_F4:  /* "\033OS" */
+-                strcpy (kbuf, "\033OP");
++                strlcpy (kbuf, "\033OP", sizeof (kbuf));
+                 kbuf[2] += (keysym - XK_KP_F1);
+                 break;
+ 
+@@ -759,7 +759,7 @@ rxvt_term::key_press (XKeyEvent &ev)
+                 /* allow shift to override */
+                 if (kp)
+                   {
+-                    strcpy (kbuf, "\033Oj");
++                    strlcpy (kbuf, "\033Oj", sizeof (kbuf));
+                     kbuf[2] += (keysym - XK_KP_Multiply);
+                   }
+                 else
+@@ -773,7 +773,7 @@ rxvt_term::key_press (XKeyEvent &ev)
+                 {
+                   int param = map_function_key (keysym);
+                   if (param > 0)
+-                    sprintf (kbuf,"\033[%d~", param);
++                    snprintf (kbuf, sizeof (kbuf),"\033[%d~", param);
+                   else
+                     newlen = 0;
+                 }
+@@ -799,7 +799,7 @@ rxvt_term::key_press (XKeyEvent &ev)
+         }
+       else if (keysym == XK_ISO_Left_Tab)
+         {
+-          strcpy (kbuf, "\033[Z");
++          strlcpy (kbuf, "\033[Z", sizeof (kbuf));
+           len = 3;
+         }
+       else
+@@ -3439,7 +3439,7 @@ rxvt_term::process_xterm_seq (int op, char *str, char 
+           {
+             char str[256];
+ 
+-            sprintf (str, "[%dx%d+%d+%d]",
++            snprintf (str, sizeof (str), "[%dx%d+%d+%d]",
+                      min (bgPixmap.h_scale, 32767), min (bgPixmap.v_scale, 
32767),
+                      min (bgPixmap.h_align, 32767), min (bgPixmap.v_align, 
32767));
+             process_xterm_seq (XTerm_title, str, CHAR_ST);
Index: patches/patch-src_command_c
===================================================================
RCS file: patches/patch-src_command_c
diff -N patches/patch-src_command_c
--- patches/patch-src_command_c 3 May 2010 16:35:22 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,131 +0,0 @@
-$OpenBSD: patch-src_command_c,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/command.C rxvt-unicode-9.07/src/command.C
---- src/command.C.orig Sat May 30 11:49:22 2009
-+++ src/command.C      Tue Apr 27 18:13:09 2010
-@@ -189,15 +189,15 @@ rxvt_term::iso14755_51 (unicode_t ch, rend_t r, int x,
- 
-   char attr[80]; // plenty
- 
--  sprintf (attr, "%08x = fg %d bg %d%s%s%s%s%s%s",
--           (int)r,
--           fgcolor_of (r), bgcolor_of (r),
--           r & RS_Bold    ? " bold"    : "",
--           r & RS_Italic  ? " italic"  : "",
--           r & RS_Blink   ? " blink"   : "",
--           r & RS_RVid    ? " rvid"    : "",
--           r & RS_Uline   ? " uline"   : "",
--           r & RS_Careful ? " careful" : "");
-+  snprintf (attr, sizeof (attr), "%08x = fg %d bg %d%s%s%s%s%s%s",
-+            (int)r,
-+            fgcolor_of (r), bgcolor_of (r),
-+            r & RS_Bold    ? " bold"    : "",
-+            r & RS_Italic  ? " italic"  : "",
-+            r & RS_Blink   ? " blink"   : "",
-+            r & RS_RVid    ? " rvid"    : "",
-+            r & RS_Uline   ? " uline"   : "",
-+            r & RS_Careful ? " careful" : "");
- 
-   int width = wcswidth (fname, wcslen (fname));
- 
-@@ -220,7 +220,7 @@ rxvt_term::iso14755_51 (unicode_t ch, rend_t r, int x,
- 
-       ch = *chr++;
- 
--      sprintf (buf, "%8x", ch);
-+      snprintf (buf, sizeof (buf), "%8x", ch);
-       scr_overlay_set (0, y, buf);
-       scr_overlay_set (9, y, '=');
- # if !UNICODE_3
-@@ -657,17 +657,17 @@ rxvt_term::key_press (XKeyEvent &ev)
-                     kbuf[1] = '\0';
-                   }
-                 else
--                  strcpy (kbuf, rs[Rs_backspace_key]);
-+                  strlcpy (kbuf, rs[Rs_backspace_key], sizeof (kbuf));
-                 break;
- #endif
- #ifndef NO_DELETE_KEY
-               case XK_Delete:
--                strcpy (kbuf, rs[Rs_delete_key]);
-+                strlcpy (kbuf, rs[Rs_delete_key], sizeof (kbuf));
-                 break;
- #endif
-               case XK_Tab:
-                 if (shft)
--                  strcpy (kbuf, "\033[Z");
-+                  strlcpy (kbuf, "\033[Z", sizeof (kbuf));
-                 else
-                   {
- #ifdef CTRL_TAB_MAKES_META
-@@ -686,7 +686,7 @@ rxvt_term::key_press (XKeyEvent &ev)
-               case XK_Down:   /* "\033[B" */
-               case XK_Right:  /* "\033[C" */
-               case XK_Left:   /* "\033[D" */
--                strcpy (kbuf, "\033[Z");
-+                strlcpy (kbuf, "\033[Z", sizeof (kbuf));
-                 kbuf[2] = "DACB"[keysym - XK_Left];
-                 /* do Shift first */
-                 if (shft)
-@@ -704,7 +704,7 @@ rxvt_term::key_press (XKeyEvent &ev)
-                 /* allow shift to override */
-                 if (kp)
-                   {
--                    strcpy (kbuf, "\033OM");
-+                    strlcpy (kbuf, "\033OM", sizeof (kbuf));
-                     break;
-                   }
- 
-@@ -728,7 +728,7 @@ rxvt_term::key_press (XKeyEvent &ev)
-               case XK_KP_F2:  /* "\033OQ" */
-               case XK_KP_F3:  /* "\033OR" */
-               case XK_KP_F4:  /* "\033OS" */
--                strcpy (kbuf, "\033OP");
-+                strlcpy (kbuf, "\033OP", sizeof (kbuf));
-                 kbuf[2] += (keysym - XK_KP_F1);
-                 break;
- 
-@@ -751,7 +751,7 @@ rxvt_term::key_press (XKeyEvent &ev)
-                 /* allow shift to override */
-                 if (kp)
-                   {
--                    strcpy (kbuf, "\033Oj");
-+                    strlcpy (kbuf, "\033Oj", sizeof (kbuf));
-                     kbuf[2] += (keysym - XK_KP_Multiply);
-                   }
-                 else
-@@ -765,7 +765,7 @@ rxvt_term::key_press (XKeyEvent &ev)
-                 {
-                   int param = map_function_key (keysym);
-                   if (param > 0)
--                    sprintf (kbuf,"\033[%d~", param);
-+                    snprintf (kbuf, sizeof (kbuf),"\033[%d~", param);
-                   else
-                     newlen = 0;
-                 }
-@@ -791,7 +791,7 @@ rxvt_term::key_press (XKeyEvent &ev)
-         }
-       else if (keysym == XK_ISO_Left_Tab)
-         {
--          strcpy (kbuf, "\033[Z");
-+          strlcpy (kbuf, "\033[Z", sizeof (kbuf));
-           len = 3;
-         }
-       else
-@@ -3431,9 +3431,9 @@ rxvt_term::process_xterm_seq (int op, char *str, char 
-           {
-             char str[256];
- 
--            sprintf (str, "[%dx%d+%d+%d]",    /* can't presume snprintf () ! 
*/
--                     min (bgPixmap.h_scale, 32767), min (bgPixmap.v_scale, 
32767),
--                     min (bgPixmap.h_align, 32767), min (bgPixmap.v_align, 
32767));
-+            snprintf (str, sizeof (str), "[%dx%d+%d+%d]",
-+                    min (bgPixmap.h_scale, 32767), min (bgPixmap.v_scale, 
32767),
-+                    min (bgPixmap.h_align, 32767), min (bgPixmap.v_align, 
32767));
-             process_xterm_seq (XTerm_title, str, CHAR_ST);
-           }
-         else
Index: patches/patch-src_feature_h
===================================================================
RCS file: /cvs/ports/x11/rxvt-unicode/patches/patch-src_feature_h,v
retrieving revision 1.1.1.1
diff -p -u -r1.1.1.1 patch-src_feature_h
--- patches/patch-src_feature_h 3 May 2010 16:35:22 -0000       1.1.1.1
+++ patches/patch-src_feature_h 14 Nov 2010 14:19:06 -0000
@@ -1,6 +1,6 @@
-$OpenBSD: patch-src_feature_h,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
+$OpenBSD$
 --- src/feature.h.orig Sat May 30 10:48:11 2009
-+++ src/feature.h      Thu Apr 22 13:38:22 2010
++++ src/feature.h      Sun Nov 14 14:23:05 2010
 @@ -34,6 +34,8 @@
  # define XAPPLOADDIRLOCALE    X11LIBDIR "/%s/app-defaults"
  #endif
Index: patches/patch-src_init_C
===================================================================
RCS file: patches/patch-src_init_C
diff -N patches/patch-src_init_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_init_C    14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,74 @@
+$OpenBSD$
+--- src/init.C.orig    Sat Oct 16 00:06:26 2010
++++ src/init.C Sun Nov 14 14:23:05 2010
+@@ -108,7 +108,7 @@ rxvt_network_display (const char *display)
+     {
+       struct ifreq ifr2;
+ 
+-      strcpy (ifr2.ifr_name, ifr->ifr_name);
++      strlcpy (ifr2.ifr_name, ifr->ifr_name, sizeof(ifr2.ifr_name));
+ 
+       if (ioctl (skfd, SIOCGIFADDR, &ifr2) >= 0)
+         {
+@@ -128,12 +128,13 @@ rxvt_network_display (const char *display)
+               if (colon == NULL)
+                 colon = ":0.0";
+ 
+-              rval = rxvt_malloc (strlen (colon) + 16);
+-              sprintf (rval, "%d.%d.%d.%d%s",
+-                      (int) ((addr >> 030) & 0xFF),
+-                      (int) ((addr >> 020) & 0xFF),
+-                      (int) ((addr >> 010) & 0xFF),
+-                      (int) (addr & 0xFF), colon);
++              size_t rval_size = strlen (colon) + 16;
++              rval = rxvt_malloc (rval_size);
++              snprintf (rval, rval_size, "%d.%d.%d.%d%s",
++                      (int) ((addr >> 030) & 0xFF),
++                      (int) ((addr >> 020) & 0xFF),
++                      (int) ((addr >> 010) & 0xFF),
++                      (int) (addr & 0xFF), colon);
+               break;
+             }
+         }
+@@ -918,11 +919,12 @@ rxvt_term::init_env ()
+     rs[Rs_display_name] = val;   /* use broken `:0' value */
+ 
+   i = strlen (val);
+-  env_display = (char *)rxvt_malloc (i + 9);
++  size_t env_display_size = i + 9;
++  env_display = (char *)rxvt_malloc (env_display_size);
+ 
+-  sprintf (env_display, "DISPLAY=%s", val);
++  snprintf (env_display, env_display_size, "DISPLAY=%s", val);
+ 
+-  sprintf (env_windowid, "WINDOWID=%lu", (unsigned long)parent[0]);
++  snprintf (env_windowid, sizeof (env_windowid), "WINDOWID=%lu", (unsigned 
long)parent[0]);
+ 
+   /* add entries to the environment:
+    * @ DISPLAY:   in case we started with -display
+@@ -949,8 +951,9 @@ rxvt_term::init_env ()
+ 
+   if (rs[Rs_term_name] != NULL)
+     {
+-      env_term = (char *)rxvt_malloc (strlen (rs[Rs_term_name]) + 6);
+-      sprintf (env_term, "TERM=%s", rs[Rs_term_name]);
++      size_t size = strlen (rs[Rs_term_name]) + 6;
++      env_term = (char *)rxvt_malloc (size);
++      snprintf (env_term, size, "TERM=%s", rs[Rs_term_name]);
+       putenv (env_term);
+     }
+   else
+@@ -1749,10 +1752,11 @@ rxvt_term::run_child (const char *const *argv)
+ 
+       if (option (Opt_loginShell))
+         {
+-          login = (char *)rxvt_malloc (strlen (argv0) + 2);
++          size_t login_size = strlen (argv0) + 2;
++          login = (char *)rxvt_malloc (login_size);
+ 
+           login[0] = '-';
+-          strcpy (&login[1], argv0);
++          strlcpy (&login[1], argv0, login_size - sizeof(char));
+           argv0 = login;
+         }
+ 
Index: patches/patch-src_init_c
===================================================================
RCS file: patches/patch-src_init_c
diff -N patches/patch-src_init_c
--- patches/patch-src_init_c    3 May 2010 16:35:20 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,334 +0,0 @@
-$OpenBSD: patch-src_init_c,v 1.1.1.1 2010/05/03 16:35:20 dcoppa Exp $
---- src/init.C.orig    Sat May 30 11:53:46 2009
-+++ src/init.C Thu Apr 22 13:43:13 2010
-@@ -108,7 +108,7 @@ rxvt_network_display (const char *display)
-     {
-       struct ifreq ifr2;
- 
--      strcpy (ifr2.ifr_name, ifr->ifr_name);
-+      strlcpy (ifr2.ifr_name, ifr->ifr_name, sizeof(ifr2.ifr_name));
- 
-       if (ioctl (skfd, SIOCGIFADDR, &ifr2) >= 0)
-         {
-@@ -128,12 +128,13 @@ rxvt_network_display (const char *display)
-               if (colon == NULL)
-                 colon = ":0.0";
- 
--              rval = rxvt_malloc (strlen (colon) + 16);
--              sprintf (rval, "%d.%d.%d.%d%s",
--                      (int) ((addr >> 030) & 0xFF),
--                      (int) ((addr >> 020) & 0xFF),
--                      (int) ((addr >> 010) & 0xFF),
--                      (int) (addr & 0xFF), colon);
-+              size_t rval_size = strlen (colon) + 16;
-+              rval = rxvt_malloc (rval_size);
-+              snprintf (rval, rval_size, "%d.%d.%d.%d%s",
-+                      (int) ((addr >> 030) & 0xFF),
-+                      (int) ((addr >> 020) & 0xFF),
-+                      (int) ((addr >> 010) & 0xFF),
-+                      (int) (addr & 0xFF), colon);
-               break;
-             }
-         }
-@@ -176,6 +177,7 @@ const char *const def_colorName[] =
-     "rgb:00/ff/ff",             // 6/14: bright cyan    (Cyan)
-     "rgb:ff/ff/ff",             // 7/15: bright white   (White)
- 
-+#if XTERM_COLORS == 88
-     // 88 xterm colours
-     "rgb:00/00/00",
-     "rgb:00/00/8b",
-@@ -249,6 +251,251 @@ const char *const def_colorName[] =
-     "rgb:b9/b9/b9",
-     "rgb:d0/d0/d0",
-     "rgb:e7/e7/e7",
-+#elif XTERM_COLORS == 256
-+    // 256 xterm colours
-+    "rgb:00/00/00",
-+    "rgb:00/00/5f",
-+    "rgb:00/00/87",
-+    "rgb:00/00/af",
-+    "rgb:00/00/d7",
-+    "rgb:00/00/ff",
-+    "rgb:00/5f/00",
-+    "rgb:00/5f/5f",
-+    "rgb:00/5f/87",
-+    "rgb:00/5f/af",
-+    "rgb:00/5f/d7",
-+    "rgb:00/5f/ff",
-+    "rgb:00/87/00",
-+    "rgb:00/87/5f",
-+    "rgb:00/87/87",
-+    "rgb:00/87/af",
-+    "rgb:00/87/d7",
-+    "rgb:00/87/ff",
-+    "rgb:00/af/00",
-+    "rgb:00/af/5f",
-+    "rgb:00/af/87",
-+    "rgb:00/af/af",
-+    "rgb:00/af/d7",
-+    "rgb:00/af/ff",
-+    "rgb:00/d7/00",
-+    "rgb:00/d7/5f",
-+    "rgb:00/d7/87",
-+    "rgb:00/d7/af",
-+    "rgb:00/d7/d7",
-+    "rgb:00/d7/ff",
-+    "rgb:00/ff/00",
-+    "rgb:00/ff/5f",
-+    "rgb:00/ff/87",
-+    "rgb:00/ff/af",
-+    "rgb:00/ff/d7",
-+    "rgb:00/ff/ff",
-+    "rgb:5f/00/00",
-+    "rgb:5f/00/5f",
-+    "rgb:5f/00/87",
-+    "rgb:5f/00/af",
-+    "rgb:5f/00/d7",
-+    "rgb:5f/00/ff",
-+    "rgb:5f/5f/00",
-+    "rgb:5f/5f/5f",
-+    "rgb:5f/5f/87",
-+    "rgb:5f/5f/af",
-+    "rgb:5f/5f/d7",
-+    "rgb:5f/5f/ff",
-+    "rgb:5f/87/00",
-+    "rgb:5f/87/5f",
-+    "rgb:5f/87/87",
-+    "rgb:5f/87/af",
-+    "rgb:5f/87/d7",
-+    "rgb:5f/87/ff",
-+    "rgb:5f/af/00",
-+    "rgb:5f/af/5f",
-+    "rgb:5f/af/87",
-+    "rgb:5f/af/af",
-+    "rgb:5f/af/d7",
-+    "rgb:5f/af/ff",
-+    "rgb:5f/d7/00",
-+    "rgb:5f/d7/5f",
-+    "rgb:5f/d7/87",
-+    "rgb:5f/d7/af",
-+    "rgb:5f/d7/d7",
-+    "rgb:5f/d7/ff",
-+    "rgb:5f/ff/00",
-+    "rgb:5f/ff/5f",
-+    "rgb:5f/ff/87",
-+    "rgb:5f/ff/af",
-+    "rgb:5f/ff/d7",
-+    "rgb:5f/ff/ff",
-+    "rgb:87/00/00",
-+    "rgb:87/00/5f",
-+    "rgb:87/00/87",
-+    "rgb:87/00/af",
-+    "rgb:87/00/d7",
-+    "rgb:87/00/ff",
-+    "rgb:87/5f/00",
-+    "rgb:87/5f/5f",
-+    "rgb:87/5f/87",
-+    "rgb:87/5f/af",
-+    "rgb:87/5f/d7",
-+    "rgb:87/5f/ff",
-+    "rgb:87/87/00",
-+    "rgb:87/87/5f",
-+    "rgb:87/87/87",
-+    "rgb:87/87/af",
-+    "rgb:87/87/d7",
-+    "rgb:87/87/ff",
-+    "rgb:87/af/00",
-+    "rgb:87/af/5f",
-+    "rgb:87/af/87",
-+    "rgb:87/af/af",
-+    "rgb:87/af/d7",
-+    "rgb:87/af/ff",
-+    "rgb:87/d7/00",
-+    "rgb:87/d7/5f",
-+    "rgb:87/d7/87",
-+    "rgb:87/d7/af",
-+    "rgb:87/d7/d7",
-+    "rgb:87/d7/ff",
-+    "rgb:87/ff/00",
-+    "rgb:87/ff/5f",
-+    "rgb:87/ff/87",
-+    "rgb:87/ff/af",
-+    "rgb:87/ff/d7",
-+    "rgb:87/ff/ff",
-+    "rgb:af/00/00",
-+    "rgb:af/00/5f",
-+    "rgb:af/00/87",
-+    "rgb:af/00/af",
-+    "rgb:af/00/d7",
-+    "rgb:af/00/ff",
-+    "rgb:af/5f/00",
-+    "rgb:af/5f/5f",
-+    "rgb:af/5f/87",
-+    "rgb:af/5f/af",
-+    "rgb:af/5f/d7",
-+    "rgb:af/5f/ff",
-+    "rgb:af/87/00",
-+    "rgb:af/87/5f",
-+    "rgb:af/87/87",
-+    "rgb:af/87/af",
-+    "rgb:af/87/d7",
-+    "rgb:af/87/ff",
-+    "rgb:af/af/00",
-+    "rgb:af/af/5f",
-+    "rgb:af/af/87",
-+    "rgb:af/af/af",
-+    "rgb:af/af/d7",
-+    "rgb:af/af/ff",
-+    "rgb:af/d7/00",
-+    "rgb:af/d7/5f",
-+    "rgb:af/d7/87",
-+    "rgb:af/d7/af",
-+    "rgb:af/d7/d7",
-+    "rgb:af/d7/ff",
-+    "rgb:af/ff/00",
-+    "rgb:af/ff/5f",
-+    "rgb:af/ff/87",
-+    "rgb:af/ff/af",
-+    "rgb:af/ff/d7",
-+    "rgb:af/ff/ff",
-+    "rgb:d7/00/00",
-+    "rgb:d7/00/5f",
-+    "rgb:d7/00/87",
-+    "rgb:d7/00/af",
-+    "rgb:d7/00/d7",
-+    "rgb:d7/00/ff",
-+    "rgb:d7/5f/00",
-+    "rgb:d7/5f/5f",
-+    "rgb:d7/5f/87",
-+    "rgb:d7/5f/af",
-+    "rgb:d7/5f/d7",
-+    "rgb:d7/5f/ff",
-+    "rgb:d7/87/00",
-+    "rgb:d7/87/5f",
-+    "rgb:d7/87/87",
-+    "rgb:d7/87/af",
-+    "rgb:d7/87/d7",
-+    "rgb:d7/87/ff",
-+    "rgb:d7/af/00",
-+    "rgb:d7/af/5f",
-+    "rgb:d7/af/87",
-+    "rgb:d7/af/af",
-+    "rgb:d7/af/d7",
-+    "rgb:d7/af/ff",
-+    "rgb:d7/d7/00",
-+    "rgb:d7/d7/5f",
-+    "rgb:d7/d7/87",
-+    "rgb:d7/d7/af",
-+    "rgb:d7/d7/d7",
-+    "rgb:d7/d7/ff",
-+    "rgb:d7/ff/00",
-+    "rgb:d7/ff/5f",
-+    "rgb:d7/ff/87",
-+    "rgb:d7/ff/af",
-+    "rgb:d7/ff/d7",
-+    "rgb:d7/ff/ff",
-+    "rgb:ff/00/00",
-+    "rgb:ff/00/5f",
-+    "rgb:ff/00/87",
-+    "rgb:ff/00/af",
-+    "rgb:ff/00/d7",
-+    "rgb:ff/00/ff",
-+    "rgb:ff/5f/00",
-+    "rgb:ff/5f/5f",
-+    "rgb:ff/5f/87",
-+    "rgb:ff/5f/af",
-+    "rgb:ff/5f/d7",
-+    "rgb:ff/5f/ff",
-+    "rgb:ff/87/00",
-+    "rgb:ff/87/5f",
-+    "rgb:ff/87/87",
-+    "rgb:ff/87/af",
-+    "rgb:ff/87/d7",
-+    "rgb:ff/87/ff",
-+    "rgb:ff/af/00",
-+    "rgb:ff/af/5f",
-+    "rgb:ff/af/87",
-+    "rgb:ff/af/af",
-+    "rgb:ff/af/d7",
-+    "rgb:ff/af/ff",
-+    "rgb:ff/d7/00",
-+    "rgb:ff/d7/5f",
-+    "rgb:ff/d7/87",
-+    "rgb:ff/d7/af",
-+    "rgb:ff/d7/d7",
-+    "rgb:ff/d7/ff",
-+    "rgb:ff/ff/00",
-+    "rgb:ff/ff/5f",
-+    "rgb:ff/ff/87",
-+    "rgb:ff/ff/af",
-+    "rgb:ff/ff/d7",
-+    "rgb:ff/ff/ff",
-+    "rgb:08/08/08",
-+    "rgb:12/12/12",
-+    "rgb:1c/1c/1c",
-+    "rgb:26/26/26",
-+    "rgb:30/30/30",
-+    "rgb:3a/3a/3a",
-+    "rgb:44/44/44",
-+    "rgb:4e/4e/4e",
-+    "rgb:58/58/58",
-+    "rgb:62/62/62",
-+    "rgb:6c/6c/6c",
-+    "rgb:76/76/76",
-+    "rgb:80/80/80",
-+    "rgb:8a/8a/8a",
-+    "rgb:94/94/94",
-+    "rgb:9e/9e/9e",
-+    "rgb:a8/a8/a8",
-+    "rgb:b2/b2/b2",
-+    "rgb:bc/bc/bc",
-+    "rgb:c6/c6/c6",
-+    "rgb:d0/d0/d0",
-+    "rgb:da/da/da",
-+    "rgb:e4/e4/e4",
-+    "rgb:ee/ee/ee",
-+#else
-+#error XTERM_COLORS needs to be set to 88 or 256
-+#endif
- 
- #ifndef NO_CURSORCOLOR
-     COLOR_CURSOR_BACKGROUND,
-@@ -688,11 +935,12 @@ rxvt_term::init_env ()
-     rs[Rs_display_name] = val;   /* use broken `:0' value */
- 
-   i = strlen (val);
--  env_display = (char *)rxvt_malloc (i + 9);
-+  size_t env_display_size = i + 9;
-+  env_display = (char *)rxvt_malloc (env_display_size);
- 
--  sprintf (env_display, "DISPLAY=%s", val);
-+  snprintf (env_display, env_display_size, "DISPLAY=%s", val);
- 
--  sprintf (env_windowid, "WINDOWID=%lu", (unsigned long)parent[0]);
-+  snprintf (env_windowid, sizeof (env_windowid), "WINDOWID=%lu", (unsigned 
long)parent[0]);
- 
-   /* add entries to the environment:
-    * @ DISPLAY:   in case we started with -display
-@@ -719,8 +967,9 @@ rxvt_term::init_env ()
- 
-   if (rs[Rs_term_name] != NULL)
-     {
--      env_term = (char *)rxvt_malloc (strlen (rs[Rs_term_name]) + 6);
--      sprintf (env_term, "TERM=%s", rs[Rs_term_name]);
-+      size_t size = strlen (rs[Rs_term_name]) + 6;
-+      env_term = (char *)rxvt_malloc (size);
-+      snprintf (env_term, size, "TERM=%s", rs[Rs_term_name]);
-       putenv (env_term);
-     }
-   else
-@@ -1611,10 +1860,11 @@ rxvt_term::run_child (const char *const *argv)
- 
-       if (option (Opt_loginShell))
-         {
--          login = (char *)rxvt_malloc (strlen (argv0) + 2);
-+          size_t login_size = strlen (argv0) + 2;
-+          login = (char *)rxvt_malloc (login_size);
- 
-           login[0] = '-';
--          strcpy (&login[1], argv0);
-+          strlcpy (&login[1], argv0, login_size - sizeof(char));
-           argv0 = login;
-         }
- 
Index: patches/patch-src_keyboard_C
===================================================================
RCS file: patches/patch-src_keyboard_C
diff -N patches/patch-src_keyboard_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_keyboard_C        14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,13 @@
+$OpenBSD$
+--- src/keyboard.C.orig        Wed Aug 25 04:07:15 2010
++++ src/keyboard.C     Sun Nov 14 14:23:05 2010
+@@ -230,7 +230,8 @@ keyboard_manager::dispatch (rxvt_term *term, KeySym ke
+ 
+                   memcpy (buf, prefix + 1, middle - prefix - 1);
+                   buf [middle - prefix - 1] = middle [keysym_offset + 1];
+-                  strcpy (buf + (middle - prefix), suffix + 1);
++                  strlcpy (buf + (middle - prefix), suffix + 1,
++                           sizeof (buf) - sizeof (char) * (middle - prefix));
+ 
+                   output_string (term, buf);
+                 }
Index: patches/patch-src_keyboard_c
===================================================================
RCS file: patches/patch-src_keyboard_c
diff -N patches/patch-src_keyboard_c
--- patches/patch-src_keyboard_c        3 May 2010 16:35:22 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,19 +0,0 @@
-$OpenBSD: patch-src_keyboard_c,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/keyboard.C 
rxvt-unicode-9.07/src/keyboard.C
---- src/keyboard.C.orig        Sat Dec 26 11:21:21 2009
-+++ src/keyboard.C     Tue Apr 27 18:13:09 2010
-@@ -335,7 +335,8 @@ keyboard_manager::dispatch (rxvt_term *term, KeySym ke
- 
-                   memcpy (buf, prefix + 1, middle - prefix - 1);
-                   buf [middle - prefix - 1] = middle [keysym_offset + 1];
--                  strcpy (buf + (middle - prefix), suffix + 1);
-+                  strlcpy (buf + (middle - prefix), suffix + 1,
-+                           sizeof (buf) - sizeof (char) * (middle - prefix));
- 
-                   output_string (term, buf);
-                 }
Index: patches/patch-src_logging_c
===================================================================
RCS file: patches/patch-src_logging_c
diff -N patches/patch-src_logging_c
--- patches/patch-src_logging_c 3 May 2010 16:35:20 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,26 +0,0 @@
-$OpenBSD: patch-src_logging_c,v 1.1.1.1 2010/05/03 16:35:20 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/logging.C rxvt-unicode-9.07/src/logging.C
---- src/logging.C.orig Sun May  3 23:57:43 2009
-+++ src/logging.C      Tue Apr 27 18:13:09 2010
-@@ -164,11 +164,11 @@ update_lastlog (const char *fname, const char *pty, co
-     return;
-   if (S_ISDIR (st.st_mode))
-     {
--      sprintf (lastlogfile, "%.*s/%.*s",
--               (int)(sizeof (lastlogfile) - sizeof (pwent->pw_name) - 2), 
fname,
--               (int)sizeof (pwent->pw_name),
--               (!pwent->pw_name || pwent->pw_name[0] == '\0') ? "unknown"
--               : pwent->pw_name);
-+      snprintf (lastlogfile, sizeof (lastlogfile), "%.*s/%.*s",
-+                (int)(sizeof (lastlogfile) - sizeof (pwent->pw_name) - 2), 
fname,
-+                (int)sizeof (pwent->pw_name),
-+                (!pwent->pw_name || pwent->pw_name[0] == '\0') ? "unknown"
-+                : pwent->pw_name);
-       if ((fd = open (lastlogfile, O_WRONLY | O_CREAT, 0644)) >= 0)
-         {
-           write (fd, &ll, sizeof (ll));
Index: patches/patch-src_main_C
===================================================================
RCS file: patches/patch-src_main_C
diff -N patches/patch-src_main_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_main_C    14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,129 @@
+$OpenBSD$
+--- src/main.C.orig    Wed Nov  3 22:00:52 2010
++++ src/main.C Sun Nov 14 15:04:04 2010
+@@ -80,7 +80,7 @@ rxvt_set_locale (const char *locale) NOTHROW
+ void
+ rxvt_push_locale (const char *locale) NOTHROW
+ {
+-  strcpy (savelocale, curlocale);
++  strlcpy (savelocale, curlocale, sizeof(savelocale));
+   rxvt_set_locale (locale);
+ }
+ 
+@@ -390,14 +390,16 @@ print_x_error (Display *dpy, XErrorEvent *event)
+     rxvt_warn ("An X Error occurred, trying to continue after report.\n");
+     rxvt_warn ("%s:  %s\n", mesg, buffer);
+     XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d", 
mesg, BUFSIZ);
+-    rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->request_code);
+-    sprintf(number, "%d", event->request_code);
++    strlcat (mesg, "\n", sizeof (mesg));
++    rxvt_warn (mesg, event->request_code);
++    snprintf (number, sizeof (number), "%d", event->request_code);
+     XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
+     rxvt_warn ("(which is %s)\n", buffer);
+     if (event->request_code >= 128) {
+         XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code 
%d",
+                               mesg, BUFSIZ);
+-        rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->minor_code);
++        strlcat (mesg, "\n", BUFSIZ);
++        rxvt_warn (mesg, event->minor_code);
+     }
+     if ((event->error_code == BadWindow) ||
+                (event->error_code == BadPixmap) ||
+@@ -418,11 +420,13 @@ print_x_error (Display *dpy, XErrorEvent *event)
+         else
+             XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
+                                   mesg, BUFSIZ);
+-        rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->resourceid);
++        strlcat (mesg, "\n", BUFSIZ);
++        rxvt_warn (mesg, event->resourceid);
+     }
+     XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
+                           mesg, BUFSIZ);
+-    rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->serial);
++    strlcat (mesg, "\n", BUFSIZ);
++    rxvt_warn (mesg, event->serial);
+ }
+ #endif
+ 
+@@ -950,26 +954,26 @@ rxvt_term::set_colorfgbg ()
+   const char *xpmb = "";
+   char fstr[sizeof ("default") + 1], bstr[sizeof ("default") + 1];
+ 
+-  strcpy (fstr, "default");
+-  strcpy (bstr, "default");
++  strlcpy (fstr, "default", sizeof (fstr));
++  strlcpy (bstr, "default", sizeof (bstr));
+   for (i = Color_Black; i <= Color_White; i++)
+     if (pix_colors[Color_fg] == pix_colors[i])
+       {
+-        sprintf (fstr, "%d", (i - Color_Black));
++        snprintf (fstr, sizeof (fstr), "%d", (i - Color_Black));
+         break;
+       }
+ 
+   for (i = Color_Black; i <= Color_White; i++)
+     if (pix_colors[Color_bg] == pix_colors[i])
+       {
+-        sprintf (bstr, "%d", (i - Color_Black));
++        snprintf (bstr, sizeof (bstr), "%d", (i - Color_Black));
+ #ifdef BG_IMAGE_FROM_FILE
+         xpmb = "default;";
+ #endif
+         break;
+       }
+ 
+-  sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr);
++  snprintf (env_colorfgbg, sizeof (env_colorfgbg), "COLORFGBG=%s;%s%s", fstr, 
xpmb, bstr);
+ }
+ 
+ /*----------------------------------------------------------------------*/
+@@ -1170,8 +1174,8 @@ rxvt_term::IMisRunning ()
+   /* get current locale modifier */
+   if (char *p = XSetLocaleModifiers (0))
+     {
+-      strcpy (server, "@server=");
+-      strncat (server, p + 4, IMBUFSIZ - 9); /* skip "@im=" */
++      strlcpy (server, "@server=", sizeof (server));
++      strlcat (server, p + 4, sizeof (server)); /* skip "@im=" */
+ 
+       if (p = strchr (server + 1, '@'))      /* first one only */
+         *p = '\0';
+@@ -1400,16 +1404,16 @@ foundpet:
+       char *def_string;
+       char pat[512];
+ 
+-      sprintf (pat,
+-               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
+-               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
+-               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
+-               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
+-               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
+-               "*",
+-               fheight,
+-               fheight + 1, fheight - 1,
+-               fheight - 2, fheight + 2);
++      snprintf (pat, sizeof (pat),
++                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
++                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
++                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
++                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
++                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
++                "*",
++                fheight,
++                fheight + 1, fheight - 1,
++                fheight - 2, fheight + 2);
+ 
+       fs = XCreateFontSet (dpy, rs[Rs_imFont] ? rs[Rs_imFont] : pat,
+                            &missing_charset_list, &missing_charset_count, 
&def_string);
+@@ -1548,8 +1552,8 @@ rxvt_term::im_cb ()
+         {
+           if (*s[i])
+             {
+-              strcpy (buf, "@im=");
+-              strncat (buf, s[i], IMBUFSIZ - 5);
++              strlcpy (buf, "@im=", sizeof (buf));
++              strlcat (buf, s[i], sizeof (buf));
+               if (IM_get_IC (buf))
+                 {
+                   found = true;
Index: patches/patch-src_main_c
===================================================================
RCS file: patches/patch-src_main_c
diff -N patches/patch-src_main_c
--- patches/patch-src_main_c    3 May 2010 16:35:22 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,135 +0,0 @@
-$OpenBSD: patch-src_main_c,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/main.C rxvt-unicode-9.07/src/main.C
---- src/main.C.orig    Sat May 30 10:48:11 2009
-+++ src/main.C Tue Apr 27 18:13:09 2010
-@@ -77,7 +77,7 @@ rxvt_set_locale (const char *locale) NOTHROW
- void
- rxvt_push_locale (const char *locale) NOTHROW
- {
--  strcpy (savelocale, curlocale);
-+  strlcpy (savelocale, curlocale, sizeof(savelocale));
-   rxvt_set_locale (locale);
- }
- 
-@@ -385,14 +385,16 @@ print_x_error (Display *dpy, XErrorEvent *event)
-     rxvt_warn ("An X Error occured, trying to continue after report.\n");
-     rxvt_warn ("%s:  %s\n", mesg, buffer);
-     XGetErrorDatabaseText(dpy, mtype, "MajorCode", "Request Major code %d", 
mesg, BUFSIZ);
--    rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->request_code);
--    sprintf(number, "%d", event->request_code);
-+    strlcat (mesg, "\n", sizeof (mesg));
-+    rxvt_warn (mesg, event->request_code);
-+    snprintf (number, sizeof (number), "%d", event->request_code);
-     XGetErrorDatabaseText(dpy, "XRequest", number, "", buffer, BUFSIZ);
-     rxvt_warn ("(which is %s)\n", buffer);
-     if (event->request_code >= 128) {
-       XGetErrorDatabaseText(dpy, mtype, "MinorCode", "Request Minor code %d",
-                             mesg, BUFSIZ);
--        rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->minor_code);
-+        strlcat (mesg, "\n", BUFSIZ);
-+        rxvt_warn (mesg, event->minor_code);
-     }
-     if ((event->error_code == BadWindow) ||
-              (event->error_code == BadPixmap) ||
-@@ -413,11 +415,13 @@ print_x_error (Display *dpy, XErrorEvent *event)
-       else
-           XGetErrorDatabaseText(dpy, mtype, "ResourceID", "ResourceID 0x%x",
-                                 mesg, BUFSIZ);
--      rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->resourceid);
-+      strlcat (mesg, "\n", BUFSIZ);
-+      rxvt_warn (mesg, event->resourceid);
-     }
-     XGetErrorDatabaseText(dpy, mtype, "ErrorSerial", "Error Serial #%d",
-                         mesg, BUFSIZ);
--    rxvt_warn (strncat (mesg, "\n", BUFSIZ), event->serial);
-+    strlcat (mesg, "\n", BUFSIZ);
-+    rxvt_warn (mesg, event->serial);
- }
- #endif
- 
-@@ -862,26 +866,26 @@ rxvt_term::set_colorfgbg ()
-   const char *xpmb = "";
-   char fstr[sizeof ("default") + 1], bstr[sizeof ("default") + 1];
- 
--  strcpy (fstr, "default");
--  strcpy (bstr, "default");
-+  strlcpy (fstr, "default", sizeof (fstr));
-+  strlcpy (bstr, "default", sizeof (bstr));
-   for (i = Color_Black; i <= Color_White; i++)
-     if (pix_colors[Color_fg] == pix_colors[i])
-       {
--        sprintf (fstr, "%d", (i - Color_Black));
-+        snprintf (fstr, sizeof (fstr), "%d", (i - Color_Black));
-         break;
-       }
- 
-   for (i = Color_Black; i <= Color_White; i++)
-     if (pix_colors[Color_bg] == pix_colors[i])
-       {
--        sprintf (bstr, "%d", (i - Color_Black));
-+        snprintf (bstr, sizeof (bstr), "%d", (i - Color_Black));
- #ifdef BG_IMAGE_FROM_FILE
-         xpmb = "default;";
- #endif
-         break;
-       }
- 
--  sprintf (env_colorfgbg, "COLORFGBG=%s;%s%s", fstr, xpmb, bstr);
-+  snprintf (env_colorfgbg, sizeof (env_colorfgbg), "COLORFGBG=%s;%s%s", fstr, 
xpmb, bstr);
- }
- 
- /*----------------------------------------------------------------------*/
-@@ -1085,8 +1089,8 @@ rxvt_term::IMisRunning ()
-   /* get current locale modifier */
-   if (char *p = XSetLocaleModifiers (0))
-     {
--      strcpy (server, "@server=");
--      strncat (server, p + 4, IMBUFSIZ - 9); /* skip "@im=" */
-+      strlcpy (server, "@server=", sizeof (server));
-+      strlcat (server, p + 4, sizeof (server)); /* skip "@im=" */
- 
-       if (p = strchr (server + 1, '@'))      /* first one only */
-         *p = '\0';
-@@ -1315,16 +1319,16 @@ foundpet:
-       char *def_string;
-       char pat[512];
- 
--      sprintf (pat,
--               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
--               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
--               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
--               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
--               "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
--               "*",
--               fheight,
--               fheight + 1, fheight - 1,
--               fheight - 2, fheight + 2);
-+      snprintf (pat, sizeof (pat),
-+                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
-+                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
-+                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
-+                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
-+                "-*-*-*-R-*-*-%d-*-*-*-*-*-*,"
-+                "*",
-+                fheight,
-+                fheight + 1, fheight - 1,
-+                fheight - 2, fheight + 2);
- 
-       fs = XCreateFontSet (dpy, rs[Rs_imFont] ? rs[Rs_imFont] : pat,
-                            &missing_charset_list, &missing_charset_count, 
&def_string);
-@@ -1463,8 +1467,8 @@ rxvt_term::im_cb ()
-         {
-           if (*s[i])
-             {
--              strcpy (buf, "@im=");
--              strncat (buf, s[i], IMBUFSIZ - 5);
-+              strlcpy (buf, "@im=", sizeof (buf));
-+              strlcat (buf, s[i], sizeof (buf));
-               if (IM_get_IC (buf))
-                 {
-                   found = true;
Index: patches/patch-src_rxvt_h
===================================================================
RCS file: patches/patch-src_rxvt_h
diff -N patches/patch-src_rxvt_h
--- patches/patch-src_rxvt_h    3 May 2010 16:35:22 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,88 +0,0 @@
-$OpenBSD: patch-src_rxvt_h,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
---- src/rxvt.h.orig    Sat May 30 10:48:11 2009
-+++ src/rxvt.h Thu Apr 22 13:38:22 2010
-@@ -312,24 +312,46 @@ enum {
- 
- #define RS_None                 0
- 
-+#if !defined(XTERM_COLORS) || XTERM_COLORS == 88
- #define RS_fgMask               0x0000007fUL    // 128 colors
- #define RS_bgMask               0x00003f80UL    // 128 colors
-+#elif XTERM_COLORS == 256
-+#define RS_fgMask               0x000001ffUL    // 512 colors
-+#define RS_bgMask               0x0003fe00UL    // 512 colors
-+#endif
- 
- // font styles
-+#if !defined(XTERM_COLORS) || XTERM_COLORS == 88
- #define RS_Bold                 0x00004000UL    // value 1
- #define RS_Italic             0x00008000UL    // value 2
-+#elif XTERM_COLORS == 256
-+#define RS_Bold                 0x00040000UL    // value 1
-+#define RS_Italic             0x00080000UL    // value 2
-+#endif
- 
- // fake styles
-+#if !defined(XTERM_COLORS) || XTERM_COLORS == 88
- #define RS_Blink                0x00010000UL    // blink
- #define RS_RVid                 0x00020000UL    // reverse video
- #define RS_Uline                0x00040000UL    // underline
-+#elif XTERM_COLORS == 256
-+#define RS_Blink                0x00100000UL    // blink       (disabled)
-+#define RS_RVid                 0x00200000UL    // reverse video (disabled)
-+#define RS_Uline                0x00400000UL    // underline
-+#endif
- 
-+
- // toggle this to force redraw, must be != RS_Careful
- #define RS_redraw               0x01000000UL
- 
-+#if !defined(XTERM_COLORS) || XTERM_COLORS == 88
- // 5 custom bits for extensions
- #define RS_customCount          32
- #define RS_customMask           0x00f80000UL
-+#elif XTERM_COLORS == 256
-+#define RS_customCount          0
-+#define RS_customMask           0x00000000UL
-+#endif
- #define RS_customShift          19
- 
- // other flags
-@@ -337,7 +359,11 @@ enum {
- 
- #define RS_styleCount         4
- #define RS_styleMask          (RS_Bold | RS_Italic)
-+#if !defined(XTERM_COLORS) || XTERM_COLORS == 88
- #define RS_styleShift         14
-+#elif XTERM_COLORS == 256
-+#define RS_styleShift         18
-+#endif
- 
- #define RS_baseattrMask         (RS_Italic | RS_Bold | RS_Blink | RS_RVid | 
RS_Uline)
- #define RS_attrMask             (RS_baseattrMask | RS_fontMask)
-@@ -463,7 +489,13 @@ enum colour_list {
-   Color_White = maxCOLOR,
- #endif
-   minTermCOLOR = Color_White + 1,
-+#if !defined(XTERM_COLORS) || XTERM_COLORS == 88
-   maxTermCOLOR = Color_White + 72,
-+#elif (XTERM_COLORS == 256)
-+  maxTermCOLOR = Color_White + 240,
-+#else
-+#error XTERM_COLORS needs to be set to 88 or 256
-+#endif
- #ifndef NO_CURSORCOLOR
-   Color_cursor,
-   Color_cursor2,
-@@ -503,7 +535,11 @@ enum colour_list {
- #endif
- };
- 
-+#if !defined(XTERM_COLORS) || XTERM_COLORS == 88
- #define Color_Bits      7 // 0 .. maxTermCOLOR
-+#elif XTERM_COLORS == 256
-+#define Color_Bits      9 // 0 .. maxTermCOLOR
-+#endif
- 
- /*
-  * Resource list
Index: patches/patch-src_rxvtc_C
===================================================================
RCS file: patches/patch-src_rxvtc_C
diff -N patches/patch-src_rxvtc_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_rxvtc_C   14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- src/rxvtc.C.orig   Sun Jun 15 15:39:43 2008
++++ src/rxvtc.C        Sun Nov 14 14:23:05 2010
+@@ -62,7 +62,7 @@ client::client ()
+     }
+ 
+   sa.sun_family = AF_UNIX;
+-  strcpy (sa.sun_path, sockname);
++  strlcpy (sa.sun_path, sockname, sizeof(sa.sun_path));
+   free (sockname);
+ 
+   if (connect (fd, (sockaddr *)&sa, sizeof (sa)))
Index: patches/patch-src_rxvtc_c
===================================================================
RCS file: patches/patch-src_rxvtc_c
diff -N patches/patch-src_rxvtc_c
--- patches/patch-src_rxvtc_c   3 May 2010 16:35:22 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
-$OpenBSD: patch-src_rxvtc_c,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/rxvtc.C rxvt-unicode-9.07/src/rxvtc.C
---- src/rxvtc.C.orig   Sun Jun 15 15:39:43 2008
-+++ src/rxvtc.C        Tue Apr 27 18:13:09 2010
-@@ -62,7 +62,7 @@ client::client ()
-     }
- 
-   sa.sun_family = AF_UNIX;
--  strcpy (sa.sun_path, sockname);
-+  strlcpy (sa.sun_path, sockname, sizeof(sa.sun_path));
-   free (sockname);
- 
-   if (connect (fd, (sockaddr *)&sa, sizeof (sa)))
Index: patches/patch-src_rxvtd_C
===================================================================
RCS file: patches/patch-src_rxvtd_C
diff -N patches/patch-src_rxvtd_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_rxvtd_C   14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,12 @@
+$OpenBSD$
+--- src/rxvtd.C.orig   Sun Oct 24 19:51:51 2010
++++ src/rxvtd.C        Sun Nov 14 14:23:05 2010
+@@ -100,7 +100,7 @@ unix_listener::unix_listener (const char *sockname)
+   fcntl (fd, F_SETFL, O_NONBLOCK);
+ 
+   sa.sun_family = AF_UNIX;
+-  strcpy (sa.sun_path, sockname);
++  strlcpy (sa.sun_path, sockname, sizeof(sa.sun_path));
+ 
+   unlink (rxvt_connection::unix_sockname ());
+ 
Index: patches/patch-src_rxvtd_c
===================================================================
RCS file: patches/patch-src_rxvtd_c
diff -N patches/patch-src_rxvtd_c
--- patches/patch-src_rxvtd_c   3 May 2010 16:35:22 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,18 +0,0 @@
-$OpenBSD: patch-src_rxvtd_c,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/rxvtd.C rxvt-unicode-9.07/src/rxvtd.C
---- src/rxvtd.C.orig   Sat May  9 01:52:42 2009
-+++ src/rxvtd.C        Tue Apr 27 18:13:09 2010
-@@ -100,7 +100,7 @@ unix_listener::unix_listener (const char *sockname)
-   fcntl (fd, F_SETFL, O_NONBLOCK);
- 
-   sa.sun_family = AF_UNIX;
--  strcpy (sa.sun_path, sockname);
-+  strlcpy (sa.sun_path, sockname, sizeof(sa.sun_path));
- 
-   unlink (rxvt_connection::unix_sockname ());
- 
Index: patches/patch-src_rxvtfont_C
===================================================================
RCS file: patches/patch-src_rxvtfont_C
diff -N patches/patch-src_rxvtfont_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_rxvtfont_C        14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,31 @@
+$OpenBSD$
+--- src/rxvtfont.C.orig        Sun Oct 24 19:52:47 2010
++++ src/rxvtfont.C     Sun Nov 14 14:23:05 2010
+@@ -682,10 +682,13 @@ replace_field (char **ptr, const char *name, int index
+   if (slashes >= 13 && (!old || *field == old))
+     {
+       size_t len = field - name;
+-      *ptr = (char *)malloc (len + strlen (replace) + strlen (end) + 1);
++      size_t len_replace = strlen (replace);
++      size_t len_end = strlen (end);
++      *ptr = (char *)malloc (len + len_replace + len_end + 1);
+       memcpy (*ptr, name, len);
+-      strcpy (*ptr + len, replace);
+-      strcat (*ptr, end);
++      memcpy (*ptr + len, replace, len_replace);
++      memcpy (*ptr + len + len_replace, end, len_end);
++      (*ptr)[len + len_replace + len_end] = 0;
+ 
+       return true;
+     }
+@@ -746,8 +749,8 @@ rxvt_font_x11::load (const rxvt_fontprop &prop, bool f
+         }
+     }
+ 
+-  sprintf (field_str, "%d", prop.height == rxvt_fontprop::unset
+-                              ? 0 : prop.height);
++  snprintf (field_str, sizeof (field_str), "%d",
++            prop.height == rxvt_fontprop::unset ? 0 : prop.height);
+ 
+   struct font_weight {
+     char *name;
Index: patches/patch-src_rxvtfont_c
===================================================================
RCS file: patches/patch-src_rxvtfont_c
diff -N patches/patch-src_rxvtfont_c
--- patches/patch-src_rxvtfont_c        3 May 2010 16:35:20 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-$OpenBSD: patch-src_rxvtfont_c,v 1.1.1.1 2010/05/03 16:35:20 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/rxvtfont.C 
rxvt-unicode-9.07/src/rxvtfont.C
---- src/rxvtfont.C.orig        Sat Apr  4 23:27:28 2009
-+++ src/rxvtfont.C     Tue Apr 27 18:13:09 2010
-@@ -632,10 +632,13 @@ replace_field (char **ptr, const char *name, int index
-   if (slashes >= 13 && (!old || *field == old))
-     {
-       size_t len = field - name;
--      *ptr = (char *)malloc (len + strlen (replace) + strlen (end) + 1);
-+      size_t len_replace = strlen (replace);
-+      size_t len_end = strlen (end);
-+      *ptr = (char *)malloc (len + len_replace + len_end + 1);
-       memcpy (*ptr, name, len);
--      strcpy (*ptr + len, replace);
--      strcat (*ptr, end);
-+      memcpy (*ptr + len, replace, len_replace);
-+      memcpy (*ptr + len + len_replace, end, len_end);
-+      (*ptr)[len + len_replace + len_end] = 0;
- 
-       return true;
-     }
-@@ -696,8 +699,8 @@ rxvt_font_x11::load (const rxvt_fontprop &prop, bool f
-         }
-     }
- 
--  sprintf (field_str, "%d", prop.height == rxvt_fontprop::unset
--                              ? 0 : prop.height);
-+  snprintf (field_str, sizeof (field_str), "%d",
-+            prop.height == rxvt_fontprop::unset ? 0 : prop.height);
- 
-   struct font_weight {
-     char *name;
Index: patches/patch-src_xdefaults_C
===================================================================
RCS file: patches/patch-src_xdefaults_C
diff -N patches/patch-src_xdefaults_C
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_xdefaults_C       14 Nov 2010 14:19:06 -0000
@@ -0,0 +1,15 @@
+$OpenBSD$
+--- src/xdefaults.C.orig       Fri Oct 15 00:13:23 2010
++++ src/xdefaults.C    Sun Nov 14 15:09:59 2010
+@@ -560,8 +560,9 @@ rxvt_term::get_options (int argc, const char *const *a
+         {
+           if (i+1 < argc)
+             {
+-              char *res = rxvt_temp_buf<char> (strlen (opt) + strlen 
(argv[++i]) + 6);
+-              sprintf (res, "*.%s: %s\n", opt, argv[i]);
++              size_t size = strlen (opt) + strlen (argv[++i]) + 6;
++              char *res = rxvt_temp_buf<char> (size);
++              snprintf (res, size, "*.%s: %s\n", opt, argv[i]);
+               XrmPutLineResource (&option_db, res);
+             }
+         }
Index: patches/patch-src_xdefaults_c
===================================================================
RCS file: patches/patch-src_xdefaults_c
diff -N patches/patch-src_xdefaults_c
--- patches/patch-src_xdefaults_c       3 May 2010 16:35:22 -0000       1.1.1.1
+++ /dev/null   1 Jan 1970 00:00:00 -0000
@@ -1,21 +0,0 @@
-$OpenBSD: patch-src_xdefaults_c,v 1.1.1.1 2010/05/03 16:35:22 dcoppa Exp $
-
-Fix possible off-by-one buffer overflows by replacing every call of
-strcpy, strcat, sprintf by respectively strlcpy, strlcat and snprintf.
- -- 2010-04-16 Thomas de Grivel <billi...@gmail.com>
-
-diff -ruN rxvt-unicode-9.07.orig/src/xdefaults.C 
rxvt-unicode-9.07/src/xdefaults.C
---- src/xdefaults.C.orig       Sat Dec 26 11:10:34 2009
-+++ src/xdefaults.C    Tue Apr 27 18:13:09 2010
-@@ -555,8 +555,9 @@ rxvt_term::get_options (int argc, const char *const *a
-         {
-           if (i+1 < argc)
-             {
--              char *res = (char *)malloc (strlen (opt) + strlen (argv[++i]) + 
6);
--              sprintf (res, "*.%s: %s\n", opt, argv[i]);
-+              size_t size = strlen (opt) + strlen (argv[++i]) + 6;
-+              char *res = (char *)malloc (size);
-+              snprintf (res, size, "*.%s: %s\n", opt, argv[i]);
-               XrmPutLineResource (&option_db, res);
-               free (res);
-             }
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/x11/rxvt-unicode/pkg/PLIST,v
retrieving revision 1.1.1.1
diff -p -u -r1.1.1.1 PLIST
--- pkg/PLIST   3 May 2010 16:35:23 -0000       1.1.1.1
+++ pkg/PLIST   14 Nov 2010 14:19:06 -0000
@@ -5,10 +5,13 @@
 lib/urxvt/
 lib/urxvt/perl/
 lib/urxvt/perl/block-graphics-to-ascii
+lib/urxvt/perl/clipboard-osc
+lib/urxvt/perl/confirm-paste
 lib/urxvt/perl/digital-clock
 lib/urxvt/perl/example-refresh-hooks
 lib/urxvt/perl/kuake
 lib/urxvt/perl/macosx-clipboard
+lib/urxvt/perl/macosx-clipboard-native
 lib/urxvt/perl/matcher
 lib/urxvt/perl/option-popup
 lib/urxvt/perl/overlay-osc

Reply via email to