@@ -42,7 +42,7 @@ extern void _CFGetFrameworkPath(wchar_t *path, int maxLength);
42
42
43
43
#if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED
44
44
#define USE_MACHO_SEGMENT 1
45
- #elif DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD )
45
+ #elif DEPLOYMENT_RUNTIME_SWIFT && (DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD || DEPLOYMENT_TARGET_WINDOWS )
46
46
#define USE_RAW_SYMBOL 1
47
47
#endif
48
48
@@ -301,46 +301,38 @@ static bool __CFUniCharLoadBytesFromFile(const wchar_t *fileName, const void **b
301
301
#else
302
302
#error Unknown or unspecified DEPLOYMENT_TARGET
303
303
#endif
304
-
305
- #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
306
- static bool __CFUniCharLoadFile (const char * bitmapName , const void * * bytes , int64_t * fileSize ) {
307
- #elif DEPLOYMENT_TARGET_WINDOWS
308
- static bool __CFUniCharLoadFile (const wchar_t * bitmapName , const void * * bytes , int64_t * fileSize ) {
304
+
305
+ #if __CF_BIG_ENDIAN__
306
+ #define CF_UNICODE_DATA_SYM __CFUnicodeDataB
309
307
#else
310
- #error Unknown or unspecified DEPLOYMENT_TARGET
308
+ #define CF_UNICODE_DATA_SYM __CFUnicodeDataL
311
309
#endif
310
+
311
+ #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
312
+ static bool __CFUniCharLoadFile (const char * bitmapName , const void * * bytes , int64_t * fileSize ) {
312
313
#if USE_MACHO_SEGMENT
313
- * bytes = __CFGetSectDataPtr ("__UNICODE" , bitmapName , NULL );
314
+ * bytes = __CFGetSectDataPtr ("__UNICODE" , bitmapName , NULL );
314
315
315
316
if (NULL != fileSize ) * fileSize = 0 ;
316
317
317
318
return * bytes ? true : false;
318
319
#elif USE_RAW_SYMBOL
319
320
extern void * __CFCharacterSetBitmapData ;
320
- #if __CF_BIG_ENDIAN__
321
- extern void * __CFUnicodeDataB ;
322
- #else
323
- extern void * __CFUnicodeDataL ;
324
- #endif
321
+ extern void * CF_UNICODE_DATA_SYM ;
325
322
extern void * __CFUniCharPropertyDatabase ;
326
-
323
+
327
324
if (strcmp (bitmapName , CF_UNICHAR_BITMAP_FILE ) == 0 ) {
328
325
* bytes = & __CFCharacterSetBitmapData ;
329
326
} else if (strcmp (bitmapName , MAPPING_TABLE_FILE ) == 0 ) {
330
- #if __CF_BIG_ENDIAN__
331
- * bytes = & __CFUnicodeDataB ;
332
- #else
333
- * bytes = & __CFUnicodeDataL ;
334
- #endif
327
+ * bytes = & CF_UNICODE_DATA_SYM ;
335
328
} else if (strcmp (bitmapName , PROP_DB_FILE ) == 0 ) {
336
329
* bytes = & __CFUniCharPropertyDatabase ;
337
330
}
338
-
331
+
339
332
if (NULL != fileSize ) * fileSize = 0 ;
340
-
333
+
341
334
return * bytes ? true : false;
342
335
#else
343
- #if DEPLOYMENT_TARGET_MACOSX || DEPLOYMENT_TARGET_EMBEDDED || DEPLOYMENT_TARGET_EMBEDDED_MINI || DEPLOYMENT_TARGET_LINUX || DEPLOYMENT_TARGET_FREEBSD
344
336
char cpath [MAXPATHLEN ];
345
337
__CFUniCharCharacterSetPath (cpath );
346
338
strlcat (cpath , bitmapName , MAXPATHLEN );
@@ -349,16 +341,36 @@ static bool __CFUniCharLoadFile(const wchar_t *bitmapName, const void **bytes, i
349
341
bool result = __CFUniCharLoadBytesFromFile (possiblyFrameworkRootedCPath , bytes , fileSize );
350
342
if (needToFree ) free ((void * )possiblyFrameworkRootedCPath );
351
343
return result ;
344
+ #endif
345
+ }
352
346
#elif DEPLOYMENT_TARGET_WINDOWS
347
+ static bool __CFUniCharLoadFile (const wchar_t * bitmapName , const void * * bytes , int64_t * fileSize ) {
348
+ #if USE_RAW_SYMBOL
349
+ extern void * __CFCharacterSetBitmapData ;
350
+ extern void * CF_UNICODE_DATA_SYM ;
351
+ extern void * __CFUniCharPropertyDatabase ;
352
+
353
+ if (wcscmp (bitmapName , CF_UNICHAR_BITMAP_FILE ) == 0 ) {
354
+ * bytes = & __CFCharacterSetBitmapData ;
355
+ } else if (wcscmp (bitmapName , MAPPING_TABLE_FILE ) == 0 ) {
356
+ * bytes = & CF_UNICODE_DATA_SYM ;
357
+ } else if (wcscmp (bitmapName , PROP_DB_FILE ) == 0 ) {
358
+ * bytes = & __CFUniCharPropertyDatabase ;
359
+ }
360
+
361
+ if (NULL != fileSize ) * fileSize = 0 ;
362
+
363
+ return * bytes ? true : false;
364
+ #else
353
365
wchar_t wpath [MAXPATHLEN ];
354
366
__CFUniCharCharacterSetPath (wpath );
355
367
wcsncat (wpath , bitmapName , MAXPATHLEN );
356
368
return __CFUniCharLoadBytesFromFile (wpath , bytes , fileSize );
369
+ #endif
370
+ }
357
371
#else
358
372
#error Unknown or unspecified DEPLOYMENT_TARGET
359
373
#endif
360
- #endif
361
- }
362
374
363
375
// Bitmap functions
364
376
/*
0 commit comments