Ken Thomases : winemac: Extract new function from macdrv_IsClipboardFormatAvailable() parameterized by the target pasteboard.

Alexandre Julliard julliard at winehq.org
Thu Mar 14 14:55:05 CDT 2013


Module: wine
Branch: master
Commit: caf6db7bf981e929851e8807dda4f2fead3bdee7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=caf6db7bf981e929851e8807dda4f2fead3bdee7

Author: Ken Thomases <ken at codeweavers.com>
Date:   Wed Mar 13 16:53:21 2013 -0500

winemac: Extract new function from macdrv_IsClipboardFormatAvailable() parameterized by the target pasteboard.

---

 dlls/winemac.drv/clipboard.c |   79 +++++++++++++++++++++++------------------
 1 files changed, 44 insertions(+), 35 deletions(-)

diff --git a/dlls/winemac.drv/clipboard.c b/dlls/winemac.drv/clipboard.c
index 4197515..fa4857b 100644
--- a/dlls/winemac.drv/clipboard.c
+++ b/dlls/winemac.drv/clipboard.c
@@ -1324,6 +1324,49 @@ static HANDLE macdrv_get_pasteboard_data(CFTypeRef pasteboard, UINT desired_form
 
 
 /**************************************************************************
+ *              macdrv_pasteboard_has_format
+ */
+static BOOL macdrv_pasteboard_has_format(CFTypeRef pasteboard, UINT desired_format)
+{
+    CFArrayRef types;
+    int count;
+    UINT i;
+    BOOL found = FALSE;
+
+    TRACE("pasteboard %p, desired_format %s\n", pasteboard, debugstr_format(desired_format));
+
+    types = macdrv_copy_pasteboard_types(pasteboard);
+    if (!types)
+    {
+        WARN("Failed to copy pasteboard types\n");
+        return FALSE;
+    }
+
+    count = CFArrayGetCount(types);
+    TRACE("got %d types\n", count);
+
+    for (i = 0; !found && i < count; i++)
+    {
+        CFStringRef type = CFArrayGetValueAtIndex(types, i);
+        WINE_CLIPFORMAT* format;
+
+        format = NULL;
+        while (!found && (format = format_for_type(format, type)))
+        {
+            TRACE("for type %s got format %s\n", debugstr_cf(type), debugstr_format(format->format_id));
+
+            if (format->format_id == desired_format)
+                found = TRUE;
+        }
+    }
+
+    CFRelease(types);
+    TRACE(" -> %d\n", found);
+    return found;
+}
+
+
+/**************************************************************************
  *              check_clipboard_ownership
  */
 static void check_clipboard_ownership(HWND *owner)
@@ -1558,42 +1601,8 @@ HANDLE CDECL macdrv_GetClipboardData(UINT desired_format)
  */
 BOOL CDECL macdrv_IsClipboardFormatAvailable(UINT desired_format)
 {
-    CFArrayRef types;
-    int count;
-    UINT i;
-    BOOL found = FALSE;
-
-    TRACE("desired_format %s\n", debugstr_format(desired_format));
     check_clipboard_ownership(NULL);
-
-    types = macdrv_copy_pasteboard_types(NULL);
-    if (!types)
-    {
-        WARN("Failed to copy pasteboard types\n");
-        return FALSE;
-    }
-
-    count = CFArrayGetCount(types);
-    TRACE("got %d types\n", count);
-
-    for (i = 0; !found && i < count; i++)
-    {
-        CFStringRef type = CFArrayGetValueAtIndex(types, i);
-        WINE_CLIPFORMAT* format;
-
-        format = NULL;
-        while (!found && (format = format_for_type(format, type)))
-        {
-            TRACE("for type %s got format %s\n", debugstr_cf(type), debugstr_format(format->format_id));
-
-            if (format->format_id == desired_format)
-                found = TRUE;
-        }
-    }
-
-    CFRelease(types);
-    TRACE(" -> %d\n", found);
-    return found;
+    return macdrv_pasteboard_has_format(NULL, desired_format);
 }
 
 




More information about the wine-cvs mailing list