diff src/xselect.c @ 57948:481911368712

* xselect.c (TRACE3): New debug macro. (x_reply_selection_request): Use it. (receive_incremental_selection): In call to TRACE0, the name of a symbol is in xname.
author Jan Djärv <jan.h.d@swipnet.se>
date Fri, 05 Nov 2004 07:05:13 +0000
parents c02cbcd40932
children a6f82b95d10b
line wrap: on
line diff
--- a/src/xselect.c	Thu Nov 04 23:12:33 2004 +0000
+++ b/src/xselect.c	Fri Nov 05 07:05:13 2004 +0000
@@ -85,10 +85,13 @@
   fprintf (stderr, "%d: " fmt "\n", getpid (), a0)
 #define TRACE2(fmt, a0, a1) \
   fprintf (stderr, "%d: " fmt "\n", getpid (), a0, a1)
+#define TRACE3(fmt, a0, a1, a2) \
+  fprintf (stderr, "%d: " fmt "\n", getpid (), a0, a1, a2)
 #else
 #define TRACE0(fmt)		(void) 0
 #define TRACE1(fmt, a0)		(void) 0
 #define TRACE2(fmt, a0, a1)	(void) 0
+#define TRACE3(fmt, a0, a1)	(void) 0
 #endif
 
 
@@ -623,6 +626,17 @@
   BLOCK_INPUT;
   count = x_catch_errors (display);
 
+#ifdef TRACE_SELECTION
+  {
+    static int cnt;
+    char *sel = XGetAtomName (display, reply.selection);
+    char *tgt = XGetAtomName (display, reply.target);
+    TRACE3 ("%s, target %s (%d)", sel, tgt, ++cnt);
+    if (sel) XFree (sel);
+    if (tgt) XFree (tgt);
+  }
+#endif /* TRACE_SELECTION */
+
   /* Store the data on the requested property.
      If the selection is large, only store the first N bytes of it.
    */
@@ -1445,10 +1459,10 @@
   BLOCK_INPUT;
   XSelectInput (display, window, STANDARD_EVENT_SET | PropertyChangeMask);
   TRACE1 ("  Delete property %s",
-	  XSYMBOL (x_atom_to_symbol (display, property))->name->data);
+	  SDATA (XSYMBOL (x_atom_to_symbol (display, property))->xname));
   XDeleteProperty (display, window, property);
   TRACE1 ("  Expect new value of property %s",
-	  XSYMBOL (x_atom_to_symbol (display, property))->name->data);
+	  SDATA (XSYMBOL (x_atom_to_symbol (display, property))->xname));
   wait_object = expect_property_change (display, window, property,
 					PropertyNewValue);
   XFlush (display);