Module: wine Branch: master Commit: f99785160009df9d043ec691699216d9c5be517a URL: http://source.winehq.org/git/wine.git/?a=commit;h=f99785160009df9d043ec69169...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu Apr 28 20:44:22 2016 +0300
fontsub: Improve CreateFontPackage() stub for TTFCFP_SUBSET case.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Sebastian Lackner sebastian@fds-team.de Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/fontsub/main.c | 13 ++++++++++++- include/fontsub.h | 26 ++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 3 deletions(-)
diff --git a/dlls/fontsub/main.c b/dlls/fontsub/main.c index b78bd58..a0a6032 100644 --- a/dlls/fontsub/main.c +++ b/dlls/fontsub/main.c @@ -50,5 +50,16 @@ ULONG __cdecl CreateFontPackage(const unsigned char *src, const ULONG src_len, u written, flags, face_index, format, lang, platform, encoding, keep_list, keep_len, allocproc, reallocproc, freeproc, reserved);
- return ERR_GENERIC; + if (format != TTFCFP_SUBSET) + return ERR_GENERIC; + + *dest = allocproc(src_len); + if (!*dest) + return ERR_MEM; + + memcpy(*dest, src, src_len); + *dest_len = src_len; + *written = src_len; + + return NO_ERROR; } diff --git a/include/fontsub.h b/include/fontsub.h index 6fc7793..aa83f03 100644 --- a/include/fontsub.h +++ b/include/fontsub.h @@ -27,14 +27,36 @@ typedef void *(__cdecl *CFP_ALLOCPROC)(size_t); typedef void *(__cdecl *CFP_REALLOCPROC)(void *, size_t); typedef void (__cdecl *CFP_FREEPROC)(void *);
+#define TTFCFP_SUBSET 0 +#define TTFCFP_SUBSET1 1 +#define TTFCFP_DELTA 2 + +#define TTFCFP_UNICODE_PLATFORMID 0 +#define TTFCFP_APPLE_PLATFORMID 1 +#define TTFCFP_ISO_PLATFORMID 2 +#define TTFCFP_MS_PLATFORMID 3 + +#define TTFCFP_STD_MAC_CHAR_SET 0 +#define TTFCFP_SYMBOL_CHAR_SET 0 +#define TTFCFP_UNICODE_CHAR_SET 1 +#define TTFCFP_DONT_CARE 0xffff + +#define TTFCFP_LANG_KEEP_ALL 0 + +#define TTFCFP_FLAGS_SUBSET 0x0001 +#define TTFCFP_FLAGS_COMPRESS 0x0002 +#define TTFCFP_FLAGS_TTC 0x0004 +#define TTFCFP_FLAGS_GLYPHLIST 0x0008 + +#define ERR_GENERIC 1000 +#define ERR_MEM 1005 + ULONG __cdecl CreateFontPackage(const unsigned char *src, const ULONG src_len, unsigned char **dest, ULONG *dest_len, ULONG *written, const unsigned short flags, const unsigned short face_index, const unsigned short format, const unsigned short lang, const unsigned short platform, const unsigned short encoding, const unsigned short *keep_list, const unsigned short keep_len, CFP_ALLOCPROC allocproc, CFP_REALLOCPROC reallocproc, CFP_FREEPROC freeproc, void *reserved);
-#define ERR_GENERIC 1000 - #ifdef __cplusplus } #endif