Nikolay Sivov : fontsub: Improve CreateFontPackage() stub for TTFCFP_SUBSET case.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Apr 29 11:05:57 CDT 2016


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

Author: Nikolay Sivov <nsivov at 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 at codeweavers.com>
Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
Signed-off-by: Alexandre Julliard <julliard at 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




More information about the wine-cvs mailing list