about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/library_list_32.h1
-rw-r--r--src/wrapped32/generated/functions_list.txt8
-rw-r--r--src/wrapped32/generated/wrappedfontconfigdefs32.h8
-rw-r--r--src/wrapped32/generated/wrappedfontconfigtypes32.h19
-rw-r--r--src/wrapped32/generated/wrappedfontconfigundefs32.h8
-rw-r--r--src/wrapped32/generated/wrapper32.c10
-rw-r--r--src/wrapped32/generated/wrapper32.h5
-rw-r--r--src/wrapped32/wrappedfontconfig.c229
-rw-r--r--src/wrapped32/wrappedfontconfig_private.h204
-rwxr-xr-xsrc/wrapped32/wrappedlibc_private.h2
10 files changed, 489 insertions, 5 deletions
diff --git a/src/library_list_32.h b/src/library_list_32.h
index c4fe2276..0a3086a3 100644
--- a/src/library_list_32.h
+++ b/src/library_list_32.h
@@ -17,6 +17,7 @@ GO("libSDL2-2.0.so.0", sdl2)
 GO("libasound.so.2", libasound)
 GO("libasound.so", libasound)
 GO("libfreetype.so.6", freetype)
+GO("libfontconfig.so.1", fontconfig)
 GO("libX11.so.6", libx11)
 GO("libXfixes.so.3", libxfixes)
 GO("libXrender.so.1", libxrender)
diff --git a/src/wrapped32/generated/functions_list.txt b/src/wrapped32/generated/functions_list.txt
index bdd2146d..118bec1d 100644
--- a/src/wrapped32/generated/functions_list.txt
+++ b/src/wrapped32/generated/functions_list.txt
@@ -570,6 +570,7 @@
 #() uFEpii -> uFEpii
 #() uFuuuu -> uFuuuu
 #() uFpCCC -> uFpCCC
+#() uFppip -> uFppip
 #() lFEipi -> lFEipi
 #() lFiipL -> lFiipL
 #() lFipLi -> lFipLi
@@ -603,6 +604,7 @@
 #() iFppbp_p -> iFppBp
 #() iFBp_pui -> iFBpui
 #() IFpBp_ii -> IFpBii
+#() uFppiBp_ -> uFppiB
 #() UFpBp_ii -> UFpBii
 #() lFiibp_L -> lFiiBL
 #() LFpbp_Lp -> LFpBLp
@@ -727,6 +729,7 @@
 #() iFuiuup -> iFuiuup
 #() iFpCCCC -> iFpCCCC
 #() iFpLuLi -> iFpLuLi
+#() iFppiUi -> iFppiUi
 #() iFpppip -> iFpppip
 #() iFpppup -> iFpppup
 #() iFppppp -> iFppppp
@@ -751,7 +754,7 @@
 #() LFpbp_LLp -> LFpBLLp
 #() LFpBp_LLp -> LFpBLLp
 #() iFippprLL_ -> iFipppB
-#() LFLbp_bL_Bp_BL_ -> LFLBBBB
+#() LFLbp_bL_bp_bL_ -> LFLBBBB
 #() LFpLpriiiiiiiiilt_a -> LFpLpBa
 #() iFXLpBLWWWcc_BLWWWcc_ -> iFXLpBB
 #() vFEiiipp -> vFEiiipp
@@ -1076,6 +1079,9 @@ wrappedexpat:
   - XML_SetElementHandler
 - uFpii:
   - XML_ParseBuffer
+wrappedfontconfig:
+- iFppiUi:
+  - FcPatternAdd
 wrappedfreetype:
 - iFp:
   - FT_Done_Face
diff --git a/src/wrapped32/generated/wrappedfontconfigdefs32.h b/src/wrapped32/generated/wrappedfontconfigdefs32.h
new file mode 100644
index 00000000..202c1c44
--- /dev/null
+++ b/src/wrapped32/generated/wrappedfontconfigdefs32.h
@@ -0,0 +1,8 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedfontconfigDEFS32_H_
+#define __wrappedfontconfigDEFS32_H_
+
+
+#endif // __wrappedfontconfigDEFS32_H_
diff --git a/src/wrapped32/generated/wrappedfontconfigtypes32.h b/src/wrapped32/generated/wrappedfontconfigtypes32.h
new file mode 100644
index 00000000..c1742c84
--- /dev/null
+++ b/src/wrapped32/generated/wrappedfontconfigtypes32.h
@@ -0,0 +1,19 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedfontconfigTYPES32_H_
+#define __wrappedfontconfigTYPES32_H_
+
+#ifndef LIBNAME
+#error You should only #include this file inside a wrapped*.c file
+#endif
+#ifndef ADDED_FUNCTIONS
+#define ADDED_FUNCTIONS() 
+#endif
+
+typedef int32_t (*iFppiUi_t)(void*, void*, int32_t, uint64_t, int32_t);
+
+#define SUPER() ADDED_FUNCTIONS() \
+	GO(FcPatternAdd, iFppiUi_t)
+
+#endif // __wrappedfontconfigTYPES32_H_
diff --git a/src/wrapped32/generated/wrappedfontconfigundefs32.h b/src/wrapped32/generated/wrappedfontconfigundefs32.h
new file mode 100644
index 00000000..91b06d04
--- /dev/null
+++ b/src/wrapped32/generated/wrappedfontconfigundefs32.h
@@ -0,0 +1,8 @@
+/******************************************************************
+ * File automatically generated by rebuild_wrappers_32.py (v0.0.1.1) *
+ ******************************************************************/
+#ifndef __wrappedfontconfigUNDEFS32_H_
+#define __wrappedfontconfigUNDEFS32_H_
+
+
+#endif // __wrappedfontconfigUNDEFS32_H_
diff --git a/src/wrapped32/generated/wrapper32.c b/src/wrapped32/generated/wrapper32.c
index 85291cf2..02aa6ed0 100644
--- a/src/wrapped32/generated/wrapper32.c
+++ b/src/wrapped32/generated/wrapper32.c
@@ -660,6 +660,7 @@ typedef uint8_t (*CFuuff_t)(uint32_t, uint32_t, float, float);
 typedef uint32_t (*uFEpii_t)(x64emu_t*, void*, int32_t, int32_t);
 typedef uint32_t (*uFuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t);
 typedef uint32_t (*uFpCCC_t)(void*, uint8_t, uint8_t, uint8_t);
+typedef uint32_t (*uFppip_t)(void*, void*, int32_t, void*);
 typedef intptr_t (*lFEipi_t)(x64emu_t*, int32_t, void*, int32_t);
 typedef intptr_t (*lFiipL_t)(int32_t, int32_t, void*, uintptr_t);
 typedef intptr_t (*lFipLi_t)(int32_t, void*, uintptr_t, int32_t);
@@ -693,6 +694,7 @@ typedef void* (*pFXppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFppbp_p_t)(void*, void*, struct_p_t*, void*);
 typedef int32_t (*iFBp_pui_t)(struct_p_t*, void*, uint32_t, int32_t);
 typedef int64_t (*IFpBp_ii_t)(void*, struct_p_t*, int32_t, int32_t);
+typedef uint32_t (*uFppiBp__t)(void*, void*, int32_t, struct_p_t*);
 typedef uint64_t (*UFpBp_ii_t)(void*, struct_p_t*, int32_t, int32_t);
 typedef intptr_t (*lFiibp_L_t)(int32_t, int32_t, struct_p_t*, uintptr_t);
 typedef uintptr_t (*LFpbp_Lp_t)(void*, struct_p_t*, uintptr_t, void*);
@@ -817,6 +819,7 @@ typedef int32_t (*iFipLLi_t)(int32_t, void*, uintptr_t, uintptr_t, int32_t);
 typedef int32_t (*iFuiuup_t)(uint32_t, int32_t, uint32_t, uint32_t, void*);
 typedef int32_t (*iFpCCCC_t)(void*, uint8_t, uint8_t, uint8_t, uint8_t);
 typedef int32_t (*iFpLuLi_t)(void*, uintptr_t, uint32_t, uintptr_t, int32_t);
+typedef int32_t (*iFppiUi_t)(void*, void*, int32_t, uint64_t, int32_t);
 typedef int32_t (*iFpppip_t)(void*, void*, void*, int32_t, void*);
 typedef int32_t (*iFpppup_t)(void*, void*, void*, uint32_t, void*);
 typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*);
@@ -841,7 +844,7 @@ typedef int32_t (*iFEBh_ppp_t)(x64emu_t*, struct_h_t*, void*, void*, void*);
 typedef uintptr_t (*LFpbp_LLp_t)(void*, struct_p_t*, uintptr_t, uintptr_t, void*);
 typedef uintptr_t (*LFpBp_LLp_t)(void*, struct_p_t*, uintptr_t, uintptr_t, void*);
 typedef int32_t (*iFippprLL__t)(int32_t, void*, void*, void*, struct_LL_t*);
-typedef uintptr_t (*LFLbp_bL_Bp_BL__t)(uintptr_t, struct_p_t*, struct_L_t*, struct_p_t*, struct_L_t*);
+typedef uintptr_t (*LFLbp_bL_bp_bL__t)(uintptr_t, struct_p_t*, struct_L_t*, struct_p_t*, struct_L_t*);
 typedef uintptr_t (*LFpLpriiiiiiiiilt_a_t)(void*, uintptr_t, void*, struct_iiiiiiiiilt_t*, void*);
 typedef int32_t (*iFXLpBLWWWcc_BLWWWcc__t)(void*, uintptr_t, void*, struct_LWWWcc_t*, struct_LWWWcc_t*);
 typedef void (*vFEiiipp_t)(x64emu_t*, int32_t, int32_t, int32_t, void*, void*);
@@ -1729,6 +1732,7 @@ void CFuuff_32(x64emu_t *emu, uintptr_t fcn) { CFuuff_t fn = (CFuuff_t)fcn; R_EA
 void uFEpii_32(x64emu_t *emu, uintptr_t fcn) { uFEpii_t fn = (uFEpii_t)fcn; R_EAX = (uint32_t)fn(emu, from_ptriv(R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12)); }
 void uFuuuu_32(x64emu_t *emu, uintptr_t fcn) { uFuuuu_t fn = (uFuuuu_t)fcn; R_EAX = (uint32_t)fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(uint32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16)); }
 void uFpCCC_32(x64emu_t *emu, uintptr_t fcn) { uFpCCC_t fn = (uFpCCC_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptri(uint8_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(uint8_t, R_ESP + 16)); }
+void uFppip_32(x64emu_t *emu, uintptr_t fcn) { uFppip_t fn = (uFppip_t)fcn; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16)); }
 void lFEipi_32(x64emu_t *emu, uintptr_t fcn) { lFEipi_t fn = (lFEipi_t)fcn; R_EAX = to_long(fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12))); }
 void lFiipL_32(x64emu_t *emu, uintptr_t fcn) { lFiipL_t fn = (lFiipL_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptriv(R_ESP + 12), to_ulong(from_ptri(ulong_t, R_ESP + 16)))); }
 void lFipLi_32(x64emu_t *emu, uintptr_t fcn) { lFipLi_t fn = (lFipLi_t)fcn; R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), to_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptri(int32_t, R_ESP + 16))); }
@@ -1762,6 +1766,7 @@ void pFXppp_32(x64emu_t *emu, uintptr_t fcn) { pFXppp_t fn = (pFXppp_t)fcn; R_EA
 void iFppbp_p_32(x64emu_t *emu, uintptr_t fcn) { iFppbp_p_t fn = (iFppbp_p_t)fcn; struct_p_t arg_12={0}; from_struct_p(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, from_ptriv(R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void iFBp_pui_32(x64emu_t *emu, uintptr_t fcn) { iFBp_pui_t fn = (iFBp_pui_t)fcn; struct_p_t arg_4={0}; R_EAX = fn(*(ptr_t*)(from_ptr((R_ESP + 4))) ? &arg_4 : NULL, from_ptriv(R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); if (*(ptr_t*)(from_ptr((R_ESP + 4)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 4))), &arg_4); }
 void IFpBp_ii_32(x64emu_t *emu, uintptr_t fcn) { IFpBp_ii_t fn = (IFpBp_ii_t)fcn; struct_p_t arg_8={0}; ui64_t r; r.i = fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
+void uFppiBp__32(x64emu_t *emu, uintptr_t fcn) { uFppiBp__t fn = (uFppiBp__t)fcn; struct_p_t arg_16={0}; R_EAX = (uint32_t)fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); }
 void UFpBp_ii_32(x64emu_t *emu, uintptr_t fcn) { UFpBp_ii_t fn = (UFpBp_ii_t)fcn; struct_p_t arg_8={0}; ui64_t r; r.u = (uint64_t)fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, from_ptri(int32_t, R_ESP + 12), from_ptri(int32_t, R_ESP + 16)); R_EAX = r.d[0]; R_EDX = r.d[1]; if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void lFiibp_L_32(x64emu_t *emu, uintptr_t fcn) { lFiibp_L_t fn = (lFiibp_L_t)fcn; struct_p_t arg_12={0}; from_struct_p(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); R_EAX = to_long(fn(from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, to_ulong(from_ptri(ulong_t, R_ESP + 16)))); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); }
 void LFpbp_Lp_32(x64emu_t *emu, uintptr_t fcn) { LFpbp_Lp_t fn = (LFpbp_Lp_t)fcn; struct_p_t arg_8={0}; from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, to_ulong(from_ptri(ulong_t, R_ESP + 12)), from_ptriv(R_ESP + 16))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
@@ -1886,6 +1891,7 @@ void iFipLLi_32(x64emu_t *emu, uintptr_t fcn) { iFipLLi_t fn = (iFipLLi_t)fcn; R
 void iFuiuup_32(x64emu_t *emu, uintptr_t fcn) { iFuiuup_t fn = (iFuiuup_t)fcn; R_EAX = fn(from_ptri(uint32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(uint32_t, R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFpCCCC_32(x64emu_t *emu, uintptr_t fcn) { iFpCCCC_t fn = (iFpCCCC_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptri(uint8_t, R_ESP + 8), from_ptri(uint8_t, R_ESP + 12), from_ptri(uint8_t, R_ESP + 16), from_ptri(uint8_t, R_ESP + 20)); }
 void iFpLuLi_32(x64emu_t *emu, uintptr_t fcn) { iFpLuLi_t fn = (iFpLuLi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptri(uint32_t, R_ESP + 12), to_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptri(int32_t, R_ESP + 20)); }
+void iFppiUi_32(x64emu_t *emu, uintptr_t fcn) { iFppiUi_t fn = (iFppiUi_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptri(uint64_t, R_ESP + 16), from_ptri(int32_t, R_ESP + 24)); }
 void iFpppip_32(x64emu_t *emu, uintptr_t fcn) { iFpppip_t fn = (iFpppip_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(int32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFpppup_32(x64emu_t *emu, uintptr_t fcn) { iFpppup_t fn = (iFpppup_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptri(uint32_t, R_ESP + 16), from_ptriv(R_ESP + 20)); }
 void iFppppp_32(x64emu_t *emu, uintptr_t fcn) { iFppppp_t fn = (iFppppp_t)fcn; R_EAX = fn(from_ptriv(R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); }
@@ -1910,7 +1916,7 @@ void iFEBh_ppp_32(x64emu_t *emu, uintptr_t fcn) { iFEBh_ppp_t fn = (iFEBh_ppp_t)
 void LFpbp_LLp_32(x64emu_t *emu, uintptr_t fcn) { LFpbp_LLp_t fn = (LFpbp_LLp_t)fcn; struct_p_t arg_8={0}; from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, to_ulong(from_ptri(ulong_t, R_ESP + 12)), to_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void LFpBp_LLp_32(x64emu_t *emu, uintptr_t fcn) { LFpBp_LLp_t fn = (LFpBp_LLp_t)fcn; struct_p_t arg_8={0}; R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, to_ulong(from_ptri(ulong_t, R_ESP + 12)), to_ulong(from_ptri(ulong_t, R_ESP + 16)), from_ptriv(R_ESP + 20))); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); }
 void iFippprLL__32(x64emu_t *emu, uintptr_t fcn) { iFippprLL__t fn = (iFippprLL__t)fcn; struct_LL_t arg_20={0}; from_struct_LL(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = fn(from_ptri(int32_t, R_ESP + 4), from_ptriv(R_ESP + 8), from_ptriv(R_ESP + 12), from_ptriv(R_ESP + 16), *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); }
-void LFLbp_bL_Bp_BL__32(x64emu_t *emu, uintptr_t fcn) { LFLbp_bL_Bp_BL__t fn = (LFLbp_bL_Bp_BL__t)fcn; struct_p_t arg_8={0}; from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_L_t arg_12={0}; from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_p_t arg_16={0}; struct_L_t arg_20={0}; R_EAX = to_ulong(fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
+void LFLbp_bL_bp_bL__32(x64emu_t *emu, uintptr_t fcn) { LFLbp_bL_bp_bL__t fn = (LFLbp_bL_bp_bL__t)fcn; struct_p_t arg_8={0}; from_struct_p(&arg_8, *(ptr_t*)(from_ptr((R_ESP + 8)))); struct_L_t arg_12={0}; from_struct_L(&arg_12, *(ptr_t*)(from_ptr((R_ESP + 12)))); struct_p_t arg_16={0}; from_struct_p(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); struct_L_t arg_20={0}; from_struct_L(&arg_20, *(ptr_t*)(from_ptr((R_ESP + 20)))); R_EAX = to_ulong(fn(to_ulong(from_ptri(ulong_t, R_ESP + 4)), *(ptr_t*)(from_ptr((R_ESP + 8))) ? &arg_8 : NULL, *(ptr_t*)(from_ptr((R_ESP + 12))) ? &arg_12 : NULL, *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL)); if (*(ptr_t*)(from_ptr((R_ESP + 8)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 8))), &arg_8); if (*(ptr_t*)(from_ptr((R_ESP + 12)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 12))), &arg_12); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_p(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_L(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void LFpLpriiiiiiiiilt_a_32(x64emu_t *emu, uintptr_t fcn) { LFpLpriiiiiiiiilt_a_t fn = (LFpLpriiiiiiiiilt_a_t)fcn; struct_iiiiiiiiilt_t arg_16={0}; from_struct_iiiiiiiiilt(&arg_16, *(ptr_t*)(from_ptr((R_ESP + 16)))); R_EAX = to_ulong(fn(from_ptriv(R_ESP + 4), to_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, from_locale(from_ptri(ptr_t, R_ESP + 20)))); }
 void iFXLpBLWWWcc_BLWWWcc__32(x64emu_t *emu, uintptr_t fcn) { iFXLpBLWWWcc_BLWWWcc__t fn = (iFXLpBLWWWcc_BLWWWcc__t)fcn; struct_LWWWcc_t arg_16={0}; struct_LWWWcc_t arg_20={0}; R_EAX = fn(getDisplay(from_ptriv(R_ESP + 4)), to_ulong(from_ptri(ulong_t, R_ESP + 8)), from_ptriv(R_ESP + 12), *(ptr_t*)(from_ptr((R_ESP + 16))) ? &arg_16 : NULL, *(ptr_t*)(from_ptr((R_ESP + 20))) ? &arg_20 : NULL); if (*(ptr_t*)(from_ptr((R_ESP + 16)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 16))), &arg_16); if (*(ptr_t*)(from_ptr((R_ESP + 20)))) to_struct_LWWWcc(*(ptr_t*)(from_ptr((R_ESP + 20))), &arg_20); }
 void vFEiiipp_32(x64emu_t *emu, uintptr_t fcn) { vFEiiipp_t fn = (vFEiiipp_t)fcn; fn(emu, from_ptri(int32_t, R_ESP + 4), from_ptri(int32_t, R_ESP + 8), from_ptri(int32_t, R_ESP + 12), from_ptriv(R_ESP + 16), from_ptriv(R_ESP + 20)); }
diff --git a/src/wrapped32/generated/wrapper32.h b/src/wrapped32/generated/wrapper32.h
index fa52aa49..9a738282 100644
--- a/src/wrapped32/generated/wrapper32.h
+++ b/src/wrapped32/generated/wrapper32.h
@@ -611,6 +611,7 @@ void CFuuff_32(x64emu_t *emu, uintptr_t fnc);
 void uFEpii_32(x64emu_t *emu, uintptr_t fnc);
 void uFuuuu_32(x64emu_t *emu, uintptr_t fnc);
 void uFpCCC_32(x64emu_t *emu, uintptr_t fnc);
+void uFppip_32(x64emu_t *emu, uintptr_t fnc);
 void lFEipi_32(x64emu_t *emu, uintptr_t fnc);
 void lFiipL_32(x64emu_t *emu, uintptr_t fnc);
 void lFipLi_32(x64emu_t *emu, uintptr_t fnc);
@@ -644,6 +645,7 @@ void pFXppp_32(x64emu_t *emu, uintptr_t fnc);
 void iFppbp_p_32(x64emu_t *emu, uintptr_t fnc);
 void iFBp_pui_32(x64emu_t *emu, uintptr_t fnc);
 void IFpBp_ii_32(x64emu_t *emu, uintptr_t fnc);
+void uFppiBp__32(x64emu_t *emu, uintptr_t fnc);
 void UFpBp_ii_32(x64emu_t *emu, uintptr_t fnc);
 void lFiibp_L_32(x64emu_t *emu, uintptr_t fnc);
 void LFpbp_Lp_32(x64emu_t *emu, uintptr_t fnc);
@@ -768,6 +770,7 @@ void iFipLLi_32(x64emu_t *emu, uintptr_t fnc);
 void iFuiuup_32(x64emu_t *emu, uintptr_t fnc);
 void iFpCCCC_32(x64emu_t *emu, uintptr_t fnc);
 void iFpLuLi_32(x64emu_t *emu, uintptr_t fnc);
+void iFppiUi_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppip_32(x64emu_t *emu, uintptr_t fnc);
 void iFpppup_32(x64emu_t *emu, uintptr_t fnc);
 void iFppppp_32(x64emu_t *emu, uintptr_t fnc);
@@ -792,7 +795,7 @@ void iFEBh_ppp_32(x64emu_t *emu, uintptr_t fnc);
 void LFpbp_LLp_32(x64emu_t *emu, uintptr_t fnc);
 void LFpBp_LLp_32(x64emu_t *emu, uintptr_t fnc);
 void iFippprLL__32(x64emu_t *emu, uintptr_t fnc);
-void LFLbp_bL_Bp_BL__32(x64emu_t *emu, uintptr_t fnc);
+void LFLbp_bL_bp_bL__32(x64emu_t *emu, uintptr_t fnc);
 void LFpLpriiiiiiiiilt_a_32(x64emu_t *emu, uintptr_t fnc);
 void iFXLpBLWWWcc_BLWWWcc__32(x64emu_t *emu, uintptr_t fnc);
 void vFEiiipp_32(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped32/wrappedfontconfig.c b/src/wrapped32/wrappedfontconfig.c
new file mode 100644
index 00000000..532942f5
--- /dev/null
+++ b/src/wrapped32/wrappedfontconfig.c
@@ -0,0 +1,229 @@
+#define _GNU_SOURCE         /* See feature_test_macros(7) */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+
+#include "wrappedlibs.h"
+
+#include "debug.h"
+#include "wrapper32.h"
+#include "bridge.h"
+#include "librarian/library_private.h"
+#include "x64emu.h"
+#include "emu/x64emu_private.h"
+#include "callback.h"
+#include "librarian.h"
+#include "box32context.h"
+#include "emu/x64emu_private.h"
+#include "myalign32.h"
+
+typedef struct FcValue_s {
+    int	type;
+    union {
+        const char	*s;
+        int		i;
+        int		b;
+        double		d;
+        void	*m; //const FcMatrix
+        void	*c; //const FcCharSet
+        void		*f;
+        void	*l; //const FcLangSet
+    } u;
+} FcValue_t;
+
+typedef struct FcPattern_s {
+    int		    num;
+    int		    size;
+    intptr_t	elts_offset;
+    int		    ref;
+} FcPattern_t;
+
+typedef struct FcFontSet_s {
+    int		nfont;
+    int		sfont;
+    FcPattern_t	**fonts;
+} FcFontSet_t;
+
+typedef struct FcStrSet_s {
+    int		    ref;
+    int		    num;
+    int		    size;
+    void	    **strs;
+} FcStrSet_t;
+
+typedef struct FcBlanks_s {
+    int		nblank;
+    int		sblank;
+    void	*blanks;
+} FcBlanks_t;
+
+typedef struct FcConfig_s {
+    FcStrSet_t	*configDirs;
+    FcBlanks_t  *blanks;
+    FcStrSet_t	*fontDirs;
+    FcStrSet_t	*cacheDirs;
+    FcStrSet_t	*configFiles;
+    void	    *substPattern;  //FcSubst
+    void	    *substFont; //FcSubst
+    void	    *substScan; //FcSubst
+    int		    maxObjects;
+    FcStrSet_t	*acceptGlobs;
+    FcStrSet_t	*rejectGlobs;
+    FcFontSet_t	*acceptPatterns;
+    FcFontSet_t	*rejectPatterns;
+    FcFontSet_t	*fonts[2];
+    time_t	    rescanTime;
+    int		    rescanInterval;
+    int		    ref;
+    void        *expr_pool;    //FcExprPage
+} FcConfig_t;
+
+// 32bits structures
+
+typedef struct FcValue_32_s {
+    int	type;
+    union {
+        ptr_t   s;//const char	*
+        int		i;
+        int		b;
+        double  d;
+        ptr_t   m; //const FcMatrix*
+        ptr_t   c; //const FcCharSet*
+        ptr_t   f; //void*
+        ptr_t   l; //const FcLangSet*
+    } u;
+} FcValue_32_t;
+
+typedef struct FcPattern_32_s {
+    int		    num;
+    int		    size;
+    long_t	    elts_offset;
+    int		    ref;
+} FcPattern_32_t;
+
+typedef struct FcFontSet_32_s {
+    int		nfont;
+    int		sfont;
+    ptr_t   fonts;//FcPattern_t	**
+} FcFontSet_32_t;
+
+typedef struct FcStrSet_32_s {
+    int		    ref;
+    int		    num;
+    int		    size;
+    ptr_t       strs;   //void	    **
+} FcStrSet_32_t;
+
+typedef struct FcBlanks_32_s {
+    int		nblank;
+    int		sblank;
+    ptr_t   blanks; //void	*
+} FcBlanks_32_t;
+
+typedef struct FcConfig_32_s {
+    ptr_t       configDirs;     //FcStrSet_t*
+    ptr_t       blanks;         //FcBlanks_t*
+    ptr_t       fontDirs;       //FcStrSet_t*
+    ptr_t       cacheDirs;      //FcStrSet_t*
+    ptr_t       configFiles;    //FcStrSet_t*
+    ptr_t       substPattern;   //FcSubst*
+    ptr_t       substFont;      //FcSubst*
+    ptr_t       substScan;      //FcSubst*
+    int		    maxObjects;
+    ptr_t       acceptGlobs;    //FcStrSet_t*
+    ptr_t       rejectGlobs;    //FcStrSet_t*
+    ptr_t       acceptPatterns; //FcFontSet_t*
+    ptr_t       rejectPatterns; //FcFontSet_t*
+    ptr_t       fonts[2];       //FcFontSet_t*
+    long_t	    rescanTime;
+    int		    rescanInterval;
+    int		    ref;
+    ptr_t       expr_pool;    //FcExprPage*
+} FcConfig_32_t;
+
+#ifdef ANDROID
+    static const char* fontconfigName = "libfontconfig.so";
+#else
+    static const char* fontconfigName = "libfontconfig.so.1";
+#endif
+
+#define LIBNAME fontconfig
+
+//#define ADDED_FUNCTIONS()                   \
+
+//#include "generated/wrappedfontconfigtypes32.h"
+
+typedef int (*iFppSi_t)(void*, void*, FcValue_t, int);
+
+#define SUPER() \
+    GO(FcPatternAdd, iFppSi_t)              \
+
+#include "wrappercallback32.h"
+
+//EXPORT void* my_FcObjectSetVaBuild(x64emu_t* emu, void* first, x64_va_list_t V)
+//{
+//    #ifdef CONVERT_VALIST
+//    CONVERT_VALIST(V);
+//    #else
+//    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+//    #endif
+//    return my->FcObjectSetVaBuild(first, VARARGS);
+//}
+//EXPORT void* my_FcObjectSetBuild(x64emu_t* emu, void* first, uint64_t* b)
+//{
+//    if(!first)    
+//        return my->FcObjectSetBuild(first, NULL);
+//    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1);
+//    return my->FcObjectSetVaBuild(first, VARARGS);
+//}
+
+//EXPORT void* my_FcPatternVaBuild(x64emu_t* emu, void* pattern, x64_va_list_t V)
+//{
+//    #ifdef CONVERT_VALIST
+//    CONVERT_VALIST(V);
+//    #else
+//    CREATE_VALIST_FROM_VALIST(V, emu->scratch);
+//    #endif
+//    return my->FcPatternVaBuild(pattern, VARARGS);
+//}
+//EXPORT void* my_FcPatternBuild(x64emu_t* emu, void* pattern, uint64_t* b)
+//{
+//    if(!pattern)    
+//        return my->FcPatternBuild(pattern, NULL);
+//    CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1);
+//    return my->FcPatternVaBuild(pattern, VARARGS);
+//}
+
+typedef union fcvalue_32s {
+    ptr_t   p;
+    double  d;
+    int     i;
+} fcvalue_32_t;
+EXPORT int my32_FcPatternAdd(void* p, void* object, int type, fcvalue_32_t t, int append)
+{
+    // adjusting value "t" of the FcValue
+    FcValue_t val = {0};
+    val.type = type;
+    switch(type) {
+        case 3:
+        case 5:
+        case 6:
+        case 7:
+        case 8:
+        case 9:
+            val.u.c = from_ptrv(t.p);
+            break;
+        case 2:
+            val.u.d = t.d;
+        case 1:
+        case 4: // just in case
+            val.u.i = t.i;
+            break;
+    }
+    return my->FcPatternAdd(p, object, val, append);
+}
+
+#define NEEDED_LIBS "libexpat.so.1", "libfreetype.so.6"
+
+#include "wrappedlib_init32.h"
diff --git a/src/wrapped32/wrappedfontconfig_private.h b/src/wrapped32/wrappedfontconfig_private.h
new file mode 100644
index 00000000..f833ac19
--- /dev/null
+++ b/src/wrapped32/wrappedfontconfig_private.h
@@ -0,0 +1,204 @@
+#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA))
+#error Meh...
+#endif
+
+// FcValue is a typedef with int+union, with biggest part is a double => so 3 "u32" on the stack
+
+//GO(FcAtomicCreate, pFp)
+//GO(FcAtomicDeleteNew, vFp)
+//GO(FcAtomicDestroy, vFp)
+//GO(FcAtomicLock, iFp)
+//GO(FcAtomicNewFile, pFp)
+//GO(FcAtomicOrigFile, pFp)
+//GO(FcAtomicReplaceOrig, iFp)
+//GO(FcAtomicUnlock, vFp)
+//GO(FcBlanksAdd, iFpu)
+//GO(FcBlanksCreate, pFv)
+//GO(FcBlanksDestroy, vFp)
+//GO(FcBlanksIsMember, iFpu)
+//GO(FcCacheCopySet, pFp)
+//GO(FcCacheDir, pFp)
+//GO(FcCacheNumFont, iFp)
+//GO(FcCacheNumSubdir, iFp)
+//GO(FcCacheSubdir, pFpi)
+//GO(FcCharSetAddChar, iFpu)
+//GO(FcCharSetCopy, pFp)
+//GO(FcCharSetCount, uFp)
+//GO(FcCharSetCoverage, uFpup)
+//GO(FcCharSetCreate, pFv)
+//GO(FcCharSetDestroy, vFp)
+//GO(FcCharSetEqual, iFpp)
+//GO(FcCharSetFirstPage, uFppp)   // second p is a fixed sized array
+//GO(FcCharSetHasChar, iFpu)
+//GO(FcCharSetIntersect, pFpp)
+//GO(FcCharSetIntersectCount, uFpp)
+//GO(FcCharSetIsSubset, iFpp)
+//GO(FcCharSetMerge, iFppp)
+//GO(FcCharSetNew, pFv)
+//GO(FcCharSetNextPage, uFppp)
+//GO(FcCharSetSubtract, pFpp)
+//GO(FcCharSetSubtractCount, uFpp)
+//GO(FcCharSetUnion, pFpp)
+//GO(FcConfigAppFontAddDir, iFpp)
+//GO(FcConfigAppFontAddFile, iFpp)
+//GO(FcConfigAppFontClear, vFp)
+//GO(FcConfigBuildFonts, iFp)
+//GO(FcConfigCreate, pFv)
+//GO(FcConfigDestroy, vFp)
+//GO(FcConfigEnableHome, iFi)
+//GO(FcConfigFilename, pFp)
+//GO(FcConfigGetBlanks, pFp)
+//GO(FcConfigGetCache, pFp)
+//GO(FcConfigGetCacheDirs, pFp)
+//GO(FcConfigGetConfigDirs, pFp)
+//GO(FcConfigGetConfigFiles, pFp)
+GO(FcConfigGetCurrent, pFv) // need wrapping for FcConfig?
+//GO(FcConfigGetFontDirs, pFp)
+//GO(FcConfigGetFonts, pFpu)
+//GO(FcConfigGetRescanInterval, iFp)
+//GO(FcConfigGetRescanInverval, 
+//GO(FcConfigGetSysRoot, pFp)
+//GO(FcConfigHome, pFv)
+//GO(FcConfigParseAndLoad, iFppi)
+//GO(FcConfigReference, pFp)
+//GO(FcConfigSetCurrent, iFp)
+//GO(FcConfigSetRescanInterval, iFpi)
+//GO(FcConfigSetRescanInverval, 
+GO(FcConfigSubstitute, iFppu)   // might need wrapping, 1st arg is FcConfig
+//GO(FcConfigSubstituteWithPat, iFpppu)
+//GO(FcConfigUptoDate, iFp)
+GO(FcDefaultSubstitute, vFp)
+//GO(FcDirCacheLoad, pFppp)
+//GO(FcDirCacheLoadFile, pFpp)
+//GO(FcDirCacheRead, pFpip)
+//GO(FcDirCacheUnlink, iFpp)
+//GO(FcDirCacheUnload, vFp)
+//GO(FcDirCacheValid, iFp)
+//GO(FcDirSave, iFppp)
+//GO(FcDirScan, iFpppppi)
+//GO(FcFileIsDir, iFp)
+//GO(FcFileScan, iFpppppi)
+//GO(FcFini, vFv)
+GO(FcFontList, pFppp)   // need wrapping of returned FcFontSet?
+GO(FcFontMatch, pFppp)
+//GO(FcFontRenderPrepare, pFppp)
+//GO(FcFontSetAdd, iFpp)
+//GO(FcFontSetCreate, pFv)
+GO(FcFontSetDestroy, vFp)
+//GO(FcFontSetList, pFppipp)
+//GO(FcFontSetMatch, pFppipp)
+//GO(FcFontSetPrint, vFp)
+//GO(FcFontSetSort, pFppipipp)
+//GO(FcFontSetSortDestroy, vFp)
+//GO(FcFontSort, pFppipp)
+//GO(FcFreeTypeCharIndex, uFpu)
+//GO(FcFreeTypeCharSet, 
+//GO(FcFreeTypeCharSetAndSpacing, 
+//GO(FcFreeTypeQuery, pFpupp)
+//GO(FcFreeTypeQueryFace, pFppip)
+//GO(FcGetLangs, pFv)
+GO(FcGetVersion, iFv)
+GO(FcInit, iFv)
+GO(FcInitBringUptoDate, iFv)
+//GO(FcInitLoadConfig, pFv)
+//GO(FcInitLoadConfigAndFonts, pFv)
+GO(FcInitReinitialize, iFv)
+//GO(FcLangGetCharSet, pFp)
+//GO(FcLangSetAdd, iFpp)
+//GO(FcLangSetCompare, uFpp)
+//GO(FcLangSetContains, iFpp)
+//GO(FcLangSetCopy, pFp)
+//GO(FcLangSetCreate, pFv)
+//GO(FcLangSetDestroy, vFp)
+//GO(FcLangSetEqual, iFpp)
+//GO(FcLangSetGetLangs, pFp)
+//GO(FcLangSetHash, uFp)
+//GO(FcLangSetHasLang, uFpp)
+//GO(FcMatrixCopy, pFp)
+//GO(FcMatrixEqual, iFpp)
+//GO(FcMatrixMultiply, vFppp)
+//GO(FcMatrixRotate, vFpdd)
+//GO(FcMatrixScale, vFpdd)
+//GO(FcMatrixShear, vFpdd)
+//GO(FcNameConstant, iFpp)
+//GO(FcNameGetConstant, pFp)
+//GO(FcNameGetObjectType, pFp)
+//GO(FcNameParse, pFp)
+//GO(FcNameRegisterConstants, iFpi)
+//GO(FcNameRegisterObjectTypes, iFpi)
+//GO(FcNameUnparse, pFp)
+//GO(FcNameUnregisterConstants, iFpi)
+//GO(FcNameUnregisterObjectTypes, iFpi)
+GO(FcObjectSetAdd, iFpp)
+//GOM(FcObjectSetBuild, pFEpV)
+GO(FcObjectSetCreate, pFv)
+GO(FcObjectSetDestroy, vFp)
+//GOM(FcObjectSetVaBuild, pFEpA)
+GOM(FcPatternAdd, iFppiUi)  //%noE  //need M for the iU that is a an FcValue
+//GO(FcPatternAddBool, iFppi)
+//GO(FcPatternAddCharSet, iFppp)
+//GO(FcPatternAddDouble, iFppd)
+//GO(FcPatternAddFTFace, iFppp)
+//GO(FcPatternAddInteger, iFppi)
+//GO(FcPatternAddLangSet, iFppp)
+//GO(FcPatternAddMatrix, iFppp)
+//GO(FcPatternAddString, iFppp)
+//GO(FcPatternAddWeak, iFppiLi)
+//GOM(FcPatternBuild, pFEpV)
+GO(FcPatternCreate, pFv)
+//GO(FcPatternDel, iFpp)
+GO(FcPatternDestroy, vFp)
+//GO(FcPatternDuplicate, pFp)
+//GO(FcPatternEqual, iFpp)
+//GO(FcPatternEqualSubset, iFppp)
+//GO(FcPatternFilter, pFpp)
+//GO(FcPatternFormat, pFpp)
+//GO(FcPatternGet, uFppip)
+GO(FcPatternGetBool, uFppip)
+//GO(FcPatternGetCharSet, uFppip)
+//GO(FcPatternGetDouble, uFppip)
+//GO(FcPatternGetFTFace, iFppip)
+//GO(FcPatternGetInteger, uFppip)
+//GO(FcPatternGetLangSet, uFppip)
+//GO(FcPatternGetMatrix, uFppip)
+GO(FcPatternGetString, uFppiBp_)
+//GO(FcPatternHash, uFp)
+//GO(FcPatternPrint, vFp)
+//GO(FcPatternReference, vFp)
+//GO(FcPatternRemove, iFppi)
+//GOM(FcPatternVaBuild, pFEpA)
+//GO(FcStrBasename, pFp)
+//GO(FcStrCmp, iFpp)
+//GO(FcStrCmpIgnoreCase, iFpp)
+//GO(FcStrCopy, pFp)
+//GO(FcStrCopyFilename, pFp)
+//GO(FcStrDirname, pFp)
+//GO(FcStrDowncase, pFp)
+//GO(FcStrFree, vFp)
+//GO(FcStrListCreate, pFp)
+//GO(FcStrListDone, vFp)
+//GO(FcStrListFirst, vFp)
+//GO(FcStrListNext, pFp)
+//GO(FcStrPlus, pFpp)
+//GO(FcStrSetAdd, iFpp)
+//GO(FcStrSetAddFilename, iFpp)
+//GO(FcStrSetCreate, pFv)
+//GO(FcStrSetDel, iFpp)
+//GO(FcStrSetDestroy, vFp)
+//GO(FcStrSetEqual, iFpp)
+//GO(FcStrSetMember, iFpp)
+//GO(FcStrStr, pFpp)
+//GO(FcStrStrIgnoreCase, pFpp)
+//GO(FcUcs4ToUtf8, iFup)
+//GO(FcUtf16Len, iFpuipp)
+//GO(FcUtf16ToUcs4, iFpupi)
+//GO(FcUtf8Len, iFpipp)
+//GO(FcUtf8ToUcs4, iFppi)
+//GO(FcValueDestroy, 
+//GO(FcValueEqual, 
+//GO(FcValuePrint, 
+//GO(FcValueSave, 
+//GO(FcWeightFromOpenTypeDouble, dFd)
+//GO(FcWeightToOpenTypeDouble, dFd)
+//GO(_fini, 
+//GO(_init, 
diff --git a/src/wrapped32/wrappedlibc_private.h b/src/wrapped32/wrappedlibc_private.h
index 9fa0fe6e..03bc0193 100755
--- a/src/wrapped32/wrappedlibc_private.h
+++ b/src/wrapped32/wrappedlibc_private.h
@@ -652,7 +652,7 @@ GOM(__h_errno_location, pFEv)
 //GO(hstrerror, pFi)
 GO(htonl, uFu)
 GO(htons, uFu)
-GO(iconv, LFLbp_bL_Bp_BL_)
+GO(iconv, LFLbp_bL_bp_bL_)
 //GO(iconv_canonicalize, pFp)
 GO(iconv_close, iFL)
 GO(iconv_open, pFpp)