Module: wine Branch: master Commit: 49a65a3bd7d05b1102a34c51009fed9d1cd2a46e URL: http://source.winehq.org/git/wine.git/?a=commit;h=49a65a3bd7d05b1102a34c5100...
Author: Alexandre Julliard julliard@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@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] )