*** empty log message ***
authorroot <root>
Mon, 13 Dec 2004 19:16:36 +0000 (19:16 +0000)
committerroot <root>
Mon, 13 Dec 2004 19:16:36 +0000 (19:16 +0000)
src/main.C
src/rxvt.h
src/screen.C

index 942089f..a570ffe 100644 (file)
@@ -261,6 +261,7 @@ rxvt_term::~rxvt_term ()
   free (env_term);
   free (env_colorfgbg);
   free (locale);
+  free (v_buffer);
   free (incr_buf);
 
   delete envv;
index 8d857f9..525ee3f 100644 (file)
@@ -1202,7 +1202,8 @@ struct rxvt_term : zero_initialized, rxvt_vars {
 # endif
 #endif
 
-  void paste (const unsigned char *data, unsigned int len);
+  // modifies first argument(!)
+  void paste (unsigned char *data, unsigned int len);
 
   void flush ();
 
index 5836898..116c264 100644 (file)
@@ -2658,25 +2658,14 @@ rxvt_term::selection_check (int check_more)
  * Paste a selection direct to the command fd
  */
 void
-rxvt_term::paste (const unsigned char *data, unsigned int len)
+rxvt_term::paste (unsigned char *data, unsigned int len)
 {
-  unsigned int i, j, n;
-  unsigned char *ds = (unsigned char *)rxvt_malloc (PASTE_SIZE);
-
   /* convert normal newline chars into common keyboard Return key sequence */
-  for (i = 0; i < len; i += PASTE_SIZE)
-    {
-      n = min (len - i, PASTE_SIZE);
-      memcpy (ds, data + i, n);
-
-      for (j = 0; j < n; j++)
-        if (ds[j] == C0_LF)
-          ds[j] = C0_CR;
-
-      tt_write (ds, (int)n);
-    }
+  for (unsigned int i = 0; i < len; i++)
+    if (data[i] == C0_LF)
+      data[i] = C0_CR;
 
-  free (ds);
+  tt_write (data, len);
 }
 
 /* ------------------------------------------------------------------------- */