Changeset 64062 in webkit
- Timestamp:
- Jul 26, 2010 12:30:38 PM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r64060 r64062 1 2010-07-26 Patrick Gansterer <paroga@paroga.com> 2 3 Reviewed by Kent Tamura. 4 5 [WINCE] Port ClipboardUtilities to WinCE 6 https://bugs.webkit.org/show_bug.cgi?id=42929 7 8 Make ClipboardUtilitiesWin more portable and remove the global namespace prefix 9 from GlobalLock/GlobalUnlock, since they are only macros on WinCE. 10 11 * platform/win/ClipboardUtilitiesWin.cpp: 12 (WebCore::urlFromPath): 13 (WebCore::getWebLocData): 14 (WebCore::createGlobalData): 15 (WebCore::getURL): 16 (WebCore::getPlainText): 17 (WebCore::fragmentFromHTML): 18 1 19 2010-07-26 Patrick Gansterer <paroga@paroga.com> 2 20 -
trunk/WebCore/platform/win/ClipboardUtilitiesWin.cpp
r63734 r64062 32 32 #include "TextEncoding.h" 33 33 #include "markup.h" 34 #include <CoreFoundation/CoreFoundation.h>35 34 #include <shlwapi.h> 36 35 #include <wininet.h> // for INTERNET_MAX_URL_LENGTH 36 #include <wtf/text/CString.h> 37 38 #if PLATFORM(CF) 39 #include <CoreFoundation/CoreFoundation.h> 37 40 #include <wtf/RetainPtr.h> 38 # include <wtf/text/CString.h>41 #endif 39 42 40 43 namespace WebCore { 41 44 45 #if PLATFORM(CF) 42 46 FORMATETC* cfHDropFormat() 43 47 { … … 46 50 } 47 51 52 static bool urlFromPath(CFStringRef path, String& url) 53 { 54 if (!path) 55 return false; 56 57 RetainPtr<CFURLRef> cfURL(AdoptCF, CFURLCreateWithFileSystemPath(0, path, kCFURLWindowsPathStyle, false)); 58 if (!cfURL) 59 return false; 60 61 url = CFURLGetString(cfURL.get()); 62 63 // Work around <rdar://problem/6708300>, where CFURLCreateWithFileSystemPath makes URLs with "localhost". 64 if (url.startsWith("file://localhost/")) 65 url.remove(7, 9); 66 67 return true; 68 } 69 #endif 70 48 71 static bool getWebLocData(IDataObject* dataObject, String& url, String* title) 49 72 { 50 73 bool succeeded = false; 74 #if PLATFORM(CF) 51 75 WCHAR filename[MAX_PATH]; 52 76 WCHAR urlBuffer[INTERNET_MAX_URL_LENGTH]; … … 56 80 return false; 57 81 58 HDROP hdrop = (HDROP)GlobalLock(medium.hGlobal);59 82 HDROP hdrop = static_cast<HDROP>(GlobalLock(medium.hGlobal)); 83 60 84 if (!hdrop) 61 85 return false; … … 82 106 DragFinish(hdrop); 83 107 GlobalUnlock(medium.hGlobal); 108 #endif 84 109 return succeeded; 85 110 } … … 114 139 115 140 if (cbData) { 116 PWSTR buffer = (PWSTR)::GlobalLock(cbData);117 swprintf_s(buffer, size, L"%s\n%s", mutableURL.charactersWithNullTermination(), mutableTitle.charactersWithNullTermination());118 ::GlobalUnlock(cbData);141 PWSTR buffer = static_cast<PWSTR>(GlobalLock(cbData)); 142 _snwprintf(buffer, size, L"%s\n%s", mutableURL.charactersWithNullTermination(), mutableTitle.charactersWithNullTermination()); 143 GlobalUnlock(cbData); 119 144 } 120 145 return cbData; … … 126 151 if (!globalData) 127 152 return 0; 128 UChar* buffer = static_cast<UChar*>( ::GlobalLock(globalData));153 UChar* buffer = static_cast<UChar*>(GlobalLock(globalData)); 129 154 memcpy(buffer, str.characters(), str.length() * sizeof(UChar)); 130 155 buffer[str.length()] = 0; 131 ::GlobalUnlock(globalData);156 GlobalUnlock(globalData); 132 157 return globalData; 133 158 } … … 138 163 if (!globalData) 139 164 return 0; 140 char* buffer = static_cast<char*>( ::GlobalLock(globalData));165 char* buffer = static_cast<char*>(GlobalLock(globalData)); 141 166 memcpy(buffer, vector.data(), vector.size()); 142 167 buffer[vector.size()] = 0; 143 ::GlobalUnlock(globalData);168 GlobalUnlock(globalData); 144 169 return globalData; 145 170 } … … 272 297 } 273 298 274 static bool urlFromPath(CFStringRef path, String& url)275 {276 if (!path)277 return false;278 279 RetainPtr<CFURLRef> cfURL(AdoptCF, CFURLCreateWithFileSystemPath(0, path, kCFURLWindowsPathStyle, false));280 if (!cfURL)281 return false;282 283 url = CFURLGetString(cfURL.get());284 285 // Work around <rdar://problem/6708300>, where CFURLCreateWithFileSystemPath makes URLs with "localhost".286 if (url.startsWith("file://localhost/"))287 url.remove(7, 9);288 289 return true;290 }291 292 299 String getURL(IDataObject* dataObject, DragData::FilenameConversionPolicy filenamePolicy, bool& success, String* title) 293 300 { … … 299 306 else if (SUCCEEDED(dataObject->GetData(urlWFormat(), &store))) { 300 307 // URL using Unicode 301 UChar* data = (UChar*)GlobalLock(store.hGlobal);308 UChar* data = static_cast<UChar*>(GlobalLock(store.hGlobal)); 302 309 url = extractURL(String(data), title); 303 GlobalUnlock(store.hGlobal); 310 GlobalUnlock(store.hGlobal); 304 311 ReleaseStgMedium(&store); 305 312 success = true; 306 313 } else if (SUCCEEDED(dataObject->GetData(urlFormat(), &store))) { 307 314 // URL using ASCII 308 char* data = (char*)GlobalLock(store.hGlobal);315 char* data = static_cast<char*>(GlobalLock(store.hGlobal)); 309 316 url = extractURL(String(data), title); 310 GlobalUnlock(store.hGlobal); 317 GlobalUnlock(store.hGlobal); 311 318 ReleaseStgMedium(&store); 312 319 success = true; 313 } else if (filenamePolicy == DragData::ConvertFilenames) { 320 } 321 #if PLATFORM(CF) 322 else if (filenamePolicy == DragData::ConvertFilenames) { 314 323 if (SUCCEEDED(dataObject->GetData(filenameWFormat(), &store))) { 315 324 // file using unicode 316 wchar_t* data = (wchar_t*)GlobalLock(store.hGlobal);325 wchar_t* data = static_cast<wchar_t*>(GlobalLock(store.hGlobal)); 317 326 if (data && data[0] && (PathFileExists(data) || PathIsUNC(data))) { 318 327 RetainPtr<CFStringRef> pathAsCFString(AdoptCF, CFStringCreateWithCharacters(kCFAllocatorDefault, (const UniChar*)data, wcslen(data))); … … 327 336 } else if (SUCCEEDED(dataObject->GetData(filenameFormat(), &store))) { 328 337 // filename using ascii 329 char* data = (char*)GlobalLock(store.hGlobal);338 char* data = static_cast<char*>(GlobalLock(store.hGlobal)); 330 339 if (data && data[0] && (PathFileExistsA(data) || PathIsUNCA(data))) { 331 340 RetainPtr<CFStringRef> pathAsCFString(AdoptCF, CFStringCreateWithCString(kCFAllocatorDefault, data, kCFStringEncodingASCII)); … … 340 349 } 341 350 } 351 #endif 342 352 return url; 343 353 } … … 350 360 if (SUCCEEDED(dataObject->GetData(plainTextWFormat(), &store))) { 351 361 // Unicode text 352 UChar* data = (UChar*)GlobalLock(store.hGlobal);362 UChar* data = static_cast<UChar*>(GlobalLock(store.hGlobal)); 353 363 text = String(data); 354 364 GlobalUnlock(store.hGlobal); … … 357 367 } else if (SUCCEEDED(dataObject->GetData(plainTextFormat(), &store))) { 358 368 // ASCII text 359 char* data = (char*)GlobalLock(store.hGlobal);369 char* data = static_cast<char*>(GlobalLock(store.hGlobal)); 360 370 text = String(data); 361 371 GlobalUnlock(store.hGlobal); … … 436 446 if (SUCCEEDED(data->GetData(htmlFormat(), &store))) { 437 447 // MS HTML Format parsing 438 char* data = (char*)GlobalLock(store.hGlobal);448 char* data = static_cast<char*>(GlobalLock(store.hGlobal)); 439 449 SIZE_T dataSize = ::GlobalSize(store.hGlobal); 440 String cfhtml(UTF8Encoding().decode(data, dataSize)); 450 String cfhtml(UTF8Encoding().decode(data, dataSize)); 441 451 GlobalUnlock(store.hGlobal); 442 452 ReleaseStgMedium(&store);
Note: See TracChangeset
for help on using the changeset viewer.