Alexandre Julliard : winex11: Add a debug helper to trace atom names.
Alexandre Julliard
julliard at winehq.org
Mon Sep 19 10:32:13 CDT 2016
Module: wine
Branch: master
Commit: 49a65a3bd7d05b1102a34c51009fed9d1cd2a46e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=49a65a3bd7d05b1102a34c51009fed9d1cd2a46e
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Sep 19 23:07:04 2016 +0900
winex11: Add a debug helper to trace atom names.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/winex11.drv/clipboard.c | 66 +++++++++++++++++++-------------------------
1 file changed, 29 insertions(+), 37 deletions(-)
diff --git a/dlls/winex11.drv/clipboard.c b/dlls/winex11.drv/clipboard.c
index aedcd69..ae49f4b 100644
--- a/dlls/winex11.drv/clipboard.c
+++ b/dlls/winex11.drv/clipboard.c
@@ -296,6 +296,18 @@ static const char *debugstr_format( UINT id )
}
}
+static const char *debugstr_xatom( Atom atom )
+{
+ const char *ret;
+ char *name;
+
+ if (!atom) return "(None)";
+ name = XGetAtomName( thread_display(), atom );
+ ret = debugstr_a( name );
+ XFree( name );
+ return ret;
+}
+
/**************************************************************************
* X11DRV_InitClipboard
*/
@@ -1967,8 +1979,8 @@ static VOID X11DRV_CLIPBOARD_InsertSelectionProperties(Display *display, Atom* p
*/
while (lpFormat)
{
- TRACE( "atom #%d property(%ld) -> format %s\n",
- i, lpFormat->atom, debugstr_format(lpFormat->id) );
+ TRACE( "property %s -> format %s\n",
+ debugstr_xatom( lpFormat->atom ), debugstr_format( lpFormat->id ));
X11DRV_CLIPBOARD_InsertClipboardData( lpFormat->id, 0, lpFormat, FALSE );
lpFormat = X11DRV_CLIPBOARD_LookupProperty(lpFormat, properties[i]);
}
@@ -2010,8 +2022,8 @@ static VOID X11DRV_CLIPBOARD_InsertSelectionProperties(Display *display, Atom* p
ERR("Failed to register %s property. Type will not be cached.\n", names[i]);
continue;
}
- TRACE( "atom #%d property(%ld) -> format %s\n",
- i, lpFormat->atom, debugstr_format(lpFormat->id) );
+ TRACE( "property %s -> format %s\n",
+ debugstr_xatom( lpFormat->atom ), debugstr_format( lpFormat->id ));
X11DRV_CLIPBOARD_InsertClipboardData( lpFormat->id, 0, lpFormat, FALSE );
}
for (i = 0; i < nb_atoms; i++) XFree( names[i] );
@@ -2094,8 +2106,8 @@ static int X11DRV_CLIPBOARD_QueryAvailableData(Display *display)
0, 0x3FFF, True, AnyPropertyType/*XA_ATOM*/, &atype, &aformat, &cSelectionTargets,
&remain, (unsigned char**)&targetList))
{
- TRACE("Type %lx,Format %d,nItems %ld, Remain %ld\n",
- atype, aformat, cSelectionTargets, remain);
+ TRACE( "type %s format %d count %ld remain %ld\n",
+ debugstr_xatom( atype ), aformat, cSelectionTargets, remain);
/*
* The TARGETS property should have returned us a list of atoms
* corresponding to each selection target format supported.
@@ -2159,8 +2171,8 @@ static BOOL X11DRV_CLIPBOARD_ReadSelectionData(Display *display, LPWINE_CLIPDATA
return FALSE;
}
- TRACE("Requesting conversion of %s property (%ld) from selection type %08x\n",
- debugstr_format(lpData->lpFormat->id), lpData->lpFormat->atom,
+ TRACE("Requesting conversion of %s property %s from selection type %08x\n",
+ debugstr_format( lpData->lpFormat->id ), debugstr_xatom( lpData->lpFormat->atom ),
(UINT)selectionCacheSrc);
XConvertSelection(display, selectionCacheSrc, lpData->lpFormat->atom,
@@ -2222,7 +2234,7 @@ static BOOL X11DRV_CLIPBOARD_GetProperty(Display *display, Window w, Atom prop,
unsigned long pos = 0, nitems, remain, count;
unsigned char *val = NULL, *buffer;
- TRACE("Reading property %lu from X window %lx\n", prop, w);
+ TRACE( "Reading property %s from X window %lx\n", debugstr_xatom( prop ), w );
for (;;)
{
@@ -2763,18 +2775,11 @@ static Atom X11DRV_SelectionRequest_TARGETS( Display *display, Window requestor,
LIST_FOR_EACH_ENTRY( format, &format_list, WINE_CLIPFORMAT, entry )
if ((format->id == lpData->wFormatID) &&
format->lpDrvExportFunc && format->atom)
+ {
+ TRACE( "%d: %s -> %s\n", i, debugstr_format( format->id ),
+ debugstr_xatom( format->atom ));
targets[i++] = format->atom;
-
- if (TRACE_ON(clipboard))
- {
- unsigned int i;
- for ( i = 0; i < cTargets; i++)
- {
- char *itemFmtName = XGetAtomName(display, targets[i]);
- TRACE("\tAtom# %d: Property %ld Type %s\n", i, targets[i], itemFmtName);
- XFree(itemFmtName);
- }
- }
+ }
/* We may want to consider setting the type to xaTargets instead,
* in case some apps expect this instead of XA_ATOM */
@@ -2826,13 +2831,8 @@ static Atom X11DRV_SelectionRequest_MULTIPLE( HWND hWnd, XSelectionRequestEvent
&cTargetPropList, &remain,
(unsigned char**)&targetPropList))
{
- if (TRACE_ON(clipboard))
- {
- char * const typeName = XGetAtomName(display, atype);
- TRACE("\tType %s,Format %d,nItems %ld, Remain %ld\n",
- typeName, aformat, cTargetPropList, remain);
- XFree(typeName);
- }
+ TRACE( "type %s format %d count %ld remain %ld\n",
+ debugstr_xatom( atype ), aformat, cTargetPropList, remain );
/*
* Make sure we got what we expect.
@@ -2853,16 +2853,8 @@ static Atom X11DRV_SelectionRequest_MULTIPLE( HWND hWnd, XSelectionRequestEvent
{
XSelectionRequestEvent event;
- if (TRACE_ON(clipboard))
- {
- char *targetName, *propName;
- targetName = XGetAtomName(display, targetPropList[i]);
- propName = XGetAtomName(display, targetPropList[i+1]);
- TRACE("MULTIPLE(%d): Target='%s' Prop='%s'\n",
- i/2, targetName, propName);
- XFree(targetName);
- XFree(propName);
- }
+ TRACE( "MULTIPLE(%d): target %s property %s\n",
+ i/2, debugstr_xatom( targetPropList[i] ), debugstr_xatom( targetPropList[i + 1] ));
/* We must have a non "None" property to service a MULTIPLE target atom */
if ( !targetPropList[i+1] )
More information about the wine-cvs
mailing list