*** empty log message ***
authorpcg <pcg>
Wed, 25 Feb 2004 10:26:49 +0000 (10:26 +0000)
committerpcg <pcg>
Wed, 25 Feb 2004 10:26:49 +0000 (10:26 +0000)
Changes
doc/rxvtc.1
src/screen.C

diff --git a/Changes b/Changes
index a47ec1766e532b6fa9e0ba5a9dd2f478f838e1ca..b9090f108009e15dbf3fce308307cd0dafd39601 100644 (file)
--- a/Changes
+++ b/Changes
@@ -23,6 +23,7 @@
         - added manpage for rxvtc/rxvtd based on the one eduard block
           contributed.
         - use reverse video for normal bold text unless colorBD has been set.
+        - fixed endless loop when selection is valid but empty.
         - many other minor bugfixes.
 
 1.8  Mon Feb  2 20:09:18 CET 2004
index f90fa894afe85826a92e75f5c0d6ace7586f23fe..96951bff02287f57bb64678aa1afd78fae7394d1 100644 (file)
@@ -19,6 +19,11 @@ implements the actual program that runs runs as daemon in background and
 opens pseudo-ttys. You can run it from your X startup scripts, for
 example, although it is not dependent on a working DISPLAY and, in fact,
 can open windows on multiple X displays.
+.PP
+Both \fBrxvtd\fP and \fBrxvtc\fP use the environment variable
+\fBRXVT_SOCKET\fP to create a listening socket and to contact
+the \fBrxvtd\fP, respectively. If the variable is missing,
+"\fB$HOME/.rxvt-\fP<nodename>" is used.
 .PP 
 \fBrxvtc\fP is the client program of this duo. It connects to the
 \fBrxvtd\fP daemon and requests a new terminal window. It
index d4fbbdcab2054f924cbf3c08a05bcec45aab74c3..559457e01c824eab264cfe6fac90716cf7ce9871 100644 (file)
@@ -3,6 +3,7 @@
  *---------------------------------------------------------------------------*
  *
  * Copyright (c) 1997-2001 Geoff Wing <gcw@pobox.com>
+ * Copyright (c) 2003-2004 Marc Lehmann <pcg@goof.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -18,8 +19,9 @@
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  *--------------------------------------------------------------------------*/
+
 /*
- * We handle _all_ screen updates and selections
+ * This file handles _all_ screen updates and selections
  */
 
 #include "../config.h"          /* NECESSARY */
@@ -32,7 +34,7 @@
 #include <stdint.h>
 #include <wchar.h>
 
-#include "salloc.C" // HACK!!
+#include "salloc.C" // HACK, should be a seperate compile!
 
 inline void fill_text (text_t *start, text_t value, int len)
 {
@@ -2490,10 +2492,10 @@ rxvt_term::selection_paste (Window win, Atom prop, bool delete_prop)
   for (;;)
     {
       if (XGetWindowProperty (display->display, win, prop, (long) (nread / 4),
-                             (long) (PROP_SIZE / 4), delete_prop,
-                             AnyPropertyType, &ct.encoding, &ct.format,
-                             &ct.nitems, &bytes_after,
-                             &ct.value) != Success)
+                              (long) (PROP_SIZE / 4), delete_prop,
+                              AnyPropertyType, &ct.encoding, &ct.format,
+                              &ct.nitems, &bytes_after,
+                              &ct.value) != Success)
         break;
 
       if (ct.encoding == 0)
@@ -2511,7 +2513,8 @@ rxvt_term::selection_paste (Window win, Atom prop, bool delete_prop)
       if (ct.nitems == 0)
         {
           D_SELECT ((stderr, "rxvt_selection_paste: property empty - also INCR end"));
-          if (selection_wait == Sel_normal && nread == 0)
+          if (selection_wait == Sel_normal && nread == 0
+              && (win != display->root || prop != XA_CUT_BUFFER0)) // avoid recursion
             {
               /*
                * pass through again trying CUT_BUFFER0 if we've come from