about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/wrapped/generated/functions_list.txt4
-rw-r--r--src/wrapped/generated/wrappedgtk3types.h2
-rw-r--r--src/wrapped/generated/wrapper.c4
-rw-r--r--src/wrapped/generated/wrapper.h2
-rw-r--r--src/wrapped/wrappedgdk3_private.h1
-rw-r--r--src/wrapped/wrappedgnutls_private.h75
-rw-r--r--src/wrapped/wrappedgtk3.c29
-rw-r--r--src/wrapped/wrappedgtk3_private.h6
8 files changed, 83 insertions, 40 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index 8ff11ced..40736f01 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -161,6 +161,7 @@
 #() vFpl
 #() vFpL
 #() vFpp
+#() vFpV
 #() vFpS
 #() vFSi
 #() vFbi
@@ -2917,6 +2918,7 @@
 #() iFiiiiiiiiiip
 #() iFpiippiiipip
 #() iFpippupppppp
+#() iFpuppppppppp
 #() iFpLipiiiippp
 #() iFpLLpiiuuiiL
 #() iFppippipppip
@@ -3910,6 +3912,8 @@ wrappedgtk3:
   - gtk_text_iter_forward_find_char
 - vFpippp:
   - gtk_tree_sortable_set_sort_func
+- vFpuppp:
+  - gtk_file_filter_add_custom
 - vFppppp:
   - gtk_tree_view_column_set_cell_data_func
 - iFppuppp:
diff --git a/src/wrapped/generated/wrappedgtk3types.h b/src/wrapped/generated/wrappedgtk3types.h
index ac09efcf..93850e0f 100644
--- a/src/wrapped/generated/wrappedgtk3types.h
+++ b/src/wrapped/generated/wrappedgtk3types.h
@@ -27,6 +27,7 @@ typedef void (*vFpppi_t)(void*, void*, void*, int32_t);
 typedef void (*vFpppp_t)(void*, void*, void*, void*);
 typedef int32_t (*iFpppp_t)(void*, void*, void*, void*);
 typedef void (*vFpippp_t)(void*, int32_t, void*, void*, void*);
+typedef void (*vFpuppp_t)(void*, uint32_t, void*, void*, void*);
 typedef void (*vFppppp_t)(void*, void*, void*, void*, void*);
 typedef int32_t (*iFppuppp_t)(void*, void*, uint32_t, void*, void*, void*);
 typedef int32_t (*iFpppppp_t)(void*, void*, void*, void*, void*, void*);
@@ -70,6 +71,7 @@ typedef void* (*pFpipppppppi_t)(void*, int32_t, void*, void*, void*, void*, void
 	GO(gtk_text_iter_backward_find_char, iFpppp_t) \
 	GO(gtk_text_iter_forward_find_char, iFpppp_t) \
 	GO(gtk_tree_sortable_set_sort_func, vFpippp_t) \
+	GO(gtk_file_filter_add_custom, vFpuppp_t) \
 	GO(gtk_tree_view_column_set_cell_data_func, vFppppp_t) \
 	GO(gtk_clipboard_set_with_data, iFppuppp_t) \
 	GO(gtk_clipboard_set_with_owner, iFppuppp_t) \
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index caa85b8f..298e3940 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -199,6 +199,7 @@ typedef void (*vFpd_t)(void*, double);
 typedef void (*vFpl_t)(void*, intptr_t);
 typedef void (*vFpL_t)(void*, uintptr_t);
 typedef void (*vFpp_t)(void*, void*);
+typedef void (*vFpV_t)(void*, void*);
 typedef void (*vFpS_t)(void*, void*);
 typedef void (*vFSi_t)(void*, int32_t);
 typedef void (*vFbi_t)(void*, int32_t);
@@ -2955,6 +2956,7 @@ typedef int32_t (*iFEpppppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*,
 typedef int32_t (*iFiiiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, int32_t, void*);
 typedef int32_t (*iFpiippiiipip_t)(void*, int32_t, int32_t, void*, void*, int32_t, int32_t, int32_t, void*, int32_t, void*);
 typedef int32_t (*iFpippupppppp_t)(void*, int32_t, void*, void*, uint32_t, void*, void*, void*, void*, void*, void*);
+typedef int32_t (*iFpuppppppppp_t)(void*, uint32_t, void*, void*, void*, void*, void*, void*, void*, void*, void*);
 typedef int32_t (*iFpLipiiiippp_t)(void*, uintptr_t, int32_t, void*, int32_t, int32_t, int32_t, int32_t, void*, void*, void*);
 typedef int32_t (*iFpLLpiiuuiiL_t)(void*, uintptr_t, uintptr_t, void*, int32_t, int32_t, uint32_t, uint32_t, int32_t, int32_t, uintptr_t);
 typedef int32_t (*iFppippipppip_t)(void*, void*, int32_t, void*, void*, int32_t, void*, void*, void*, int32_t, void*);
@@ -3291,6 +3293,7 @@ void vFpd(x64emu_t *emu, uintptr_t fcn) { vFpd_t fn = (vFpd_t)fcn; fn((void*)R_R
 void vFpl(x64emu_t *emu, uintptr_t fcn) { vFpl_t fn = (vFpl_t)fcn; fn((void*)R_RDI, (intptr_t)R_RSI); }
 void vFpL(x64emu_t *emu, uintptr_t fcn) { vFpL_t fn = (vFpL_t)fcn; fn((void*)R_RDI, (uintptr_t)R_RSI); }
 void vFpp(x64emu_t *emu, uintptr_t fcn) { vFpp_t fn = (vFpp_t)fcn; fn((void*)R_RDI, (void*)R_RSI); }
+void vFpV(x64emu_t *emu, uintptr_t fcn) { vFpV_t fn = (vFpV_t)fcn; fn((void*)R_RDI, (void*)(R_RSP + 8)); }
 void vFpS(x64emu_t *emu, uintptr_t fcn) { vFpS_t fn = (vFpS_t)fcn; fn((void*)R_RDI, io_convert((void*)R_RSI)); }
 void vFSi(x64emu_t *emu, uintptr_t fcn) { vFSi_t fn = (vFSi_t)fcn; fn(io_convert((void*)R_RDI), (int32_t)R_RSI); }
 void vFbi(x64emu_t *emu, uintptr_t fcn) { vFbi_t fn = (vFbi_t)fcn; void *aligned_xcb = align_xcb_connection((void*)R_RDI); fn(aligned_xcb, (int32_t)R_RSI); unalign_xcb_connection(aligned_xcb, (void*)R_RDI); }
@@ -6047,6 +6050,7 @@ void iFEpppppppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppppppp_t fn = (iFEpppp
 void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiiiip_t fn = (iFiiiiiiiiiip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
 void iFpiippiiipip(x64emu_t *emu, uintptr_t fcn) { iFpiippiiipip_t fn = (iFpiippiiipip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
 void iFpippupppppp(x64emu_t *emu, uintptr_t fcn) { iFpippupppppp_t fn = (iFpippupppppp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40)); }
+void iFpuppppppppp(x64emu_t *emu, uintptr_t fcn) { iFpuppppppppp_t fn = (iFpuppppppppp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40)); }
 void iFpLipiiiippp(x64emu_t *emu, uintptr_t fcn) { iFpLipiiiippp_t fn = (iFpLipiiiippp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40)); }
 void iFpLLpiiuuiiL(x64emu_t *emu, uintptr_t fcn) { iFpLLpiiuuiiL_t fn = (iFpLLpiiuuiiL_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(uintptr_t*)(R_RSP + 40)); }
 void iFppippipppip(x64emu_t *emu, uintptr_t fcn) { iFppippipppip_t fn = (iFppippipppip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(void**)(R_RSP + 40)); }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index d2be1ff7..224bf7fa 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -199,6 +199,7 @@ void vFpd(x64emu_t *emu, uintptr_t fnc);
 void vFpl(x64emu_t *emu, uintptr_t fnc);
 void vFpL(x64emu_t *emu, uintptr_t fnc);
 void vFpp(x64emu_t *emu, uintptr_t fnc);
+void vFpV(x64emu_t *emu, uintptr_t fnc);
 void vFpS(x64emu_t *emu, uintptr_t fnc);
 void vFSi(x64emu_t *emu, uintptr_t fnc);
 void vFbi(x64emu_t *emu, uintptr_t fnc);
@@ -2955,6 +2956,7 @@ void iFEpppppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFiiiiiiiiiip(x64emu_t *emu, uintptr_t fnc);
 void iFpiippiiipip(x64emu_t *emu, uintptr_t fnc);
 void iFpippupppppp(x64emu_t *emu, uintptr_t fnc);
+void iFpuppppppppp(x64emu_t *emu, uintptr_t fnc);
 void iFpLipiiiippp(x64emu_t *emu, uintptr_t fnc);
 void iFpLLpiiuuiiL(x64emu_t *emu, uintptr_t fnc);
 void iFppippipppip(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedgdk3_private.h b/src/wrapped/wrappedgdk3_private.h
index f8b2aed1..8dcee79e 100644
--- a/src/wrapped/wrappedgdk3_private.h
+++ b/src/wrapped/wrappedgdk3_private.h
@@ -425,6 +425,7 @@ GO(gdk_pango_renderer_set_stipple, vFpip)
 GO(gdk_parse_args, vFpp)
 GO(gdk_pixbuf_get_from_drawable, pFpppiiiiii)
 GO(gdk_pixbuf_get_from_image, pFpppiiiiii)
+GO(gdk_pixbuf_get_from_window, pFpiiii)
 GO(gdk_pixbuf_render_pixmap_and_mask, vFpppi)
 GO(gdk_pixbuf_render_pixmap_and_mask_for_colormap, vFppppi)
 GO(gdk_pixbuf_render_threshold_alpha, vFppiiiiiii)
diff --git a/src/wrapped/wrappedgnutls_private.h b/src/wrapped/wrappedgnutls_private.h
index 94971b6b..254e46e5 100644
--- a/src/wrapped/wrappedgnutls_private.h
+++ b/src/wrapped/wrappedgnutls_private.h
@@ -37,7 +37,7 @@ GO(gnutls_alpn_set_protocols, iFppuu)
 //GO(_gnutls_buffer_append_str, 
 //GO(_gnutls_buffer_init, 
 //GO(_gnutls_buffer_to_datum, 
-//GO(gnutls_bye, 
+GO(gnutls_bye, iFpi)
 //GO(gnutls_certificate_activation_time_peers, 
 GO(gnutls_certificate_allocate_credentials, iFp)
 //GO(gnutls_certificate_client_get_request_status, 
@@ -79,23 +79,23 @@ GO(gnutls_certificate_get_peers, pFpp)
 //GO(gnutls_certificate_set_retrieve_function, 
 //GO(gnutls_certificate_set_retrieve_function2, 
 //GO(gnutls_certificate_set_trust_list, 
-//GO(gnutls_certificate_set_verify_flags, 
+GO(gnutls_certificate_set_verify_flags, vFpu)
 //GO(gnutls_certificate_set_verify_function, 
 //GO(gnutls_certificate_set_verify_limits, 
 //GO(gnutls_certificate_set_x509_crl, 
-//GO(gnutls_certificate_set_x509_crl_file, 
+GO(gnutls_certificate_set_x509_crl_file, iFppi)
 //GO(gnutls_certificate_set_x509_crl_mem, 
 GO(gnutls_certificate_set_x509_key, iFppip)
-//GO(gnutls_certificate_set_x509_key_file, 
-//GO(gnutls_certificate_set_x509_key_file2, 
+GO(gnutls_certificate_set_x509_key_file, iFpppi)
+GO(gnutls_certificate_set_x509_key_file2, iFpppipu)
 //GO(gnutls_certificate_set_x509_key_mem, 
 //GO(gnutls_certificate_set_x509_key_mem2, 
 //GO(gnutls_certificate_set_x509_simple_pkcs12_file, 
 //GO(gnutls_certificate_set_x509_simple_pkcs12_mem, 
-//GO(gnutls_certificate_set_x509_system_trust, 
+GO(gnutls_certificate_set_x509_system_trust, iFp)
 //GO(gnutls_certificate_set_x509_trust, 
-//GO(gnutls_certificate_set_x509_trust_dir, 
-//GO(gnutls_certificate_set_x509_trust_file, 
+GO(gnutls_certificate_set_x509_trust_dir, iFppi)
+GO(gnutls_certificate_set_x509_trust_file, iFppi)
 //GO(gnutls_certificate_set_x509_trust_mem, 
 //GO(gnutls_certificate_type_get, 
 //GO(gnutls_certificate_type_get_id, 
@@ -103,7 +103,7 @@ GO(gnutls_certificate_set_x509_key, iFppip)
 //GO(gnutls_certificate_type_list, 
 //GO(gnutls_certificate_verification_status_print, 
 //GO(gnutls_certificate_verify_peers, 
-//GO(gnutls_certificate_verify_peers2, 
+GO(gnutls_certificate_verify_peers2, iFpp)
 //GO(gnutls_certificate_verify_peers3, 
 GO(gnutls_check_version, pFp)
 //GO(_gnutls_cidr_to_string, 
@@ -123,7 +123,7 @@ GO(gnutls_cipher_get_key_size, LFp)
 GO(gnutls_cipher_init, iFpppp)
 //GO(gnutls_cipher_list, 
 //GO(gnutls_cipher_set_iv, 
-//GO(gnutls_cipher_suite_get_name, 
+GO(gnutls_cipher_suite_get_name, pFiii)
 //GO(gnutls_cipher_suite_info, 
 GO(gnutls_cipher_tag, iFppL)
 //GO(gnutls_compression_get, 
@@ -193,7 +193,7 @@ GO(_gnutls_ecdh_compute_key, iFipppppp)
 GO(gnutls_ecdh_compute_key, iFipppppp)
 //GO(gnutls_encode_ber_digest_info, 
 //GO(_gnutls_encode_ber_rs_raw, 
-//GO(gnutls_error_is_fatal, 
+GO(gnutls_error_is_fatal, iFi)
 //GO(gnutls_error_to_alert, 
 //GO(gnutls_est_record_overhead_size, 
 GO(gnutls_privkey_export_dh_raw, iFppppu)
@@ -203,6 +203,7 @@ GO(gnutls_privkey_export_dh_raw, iFppppu)
 //GO(gnutls_ext_set_data, 
 //GO(gnutls_fingerprint, 
 //GO(gnutls_fips140_mode_enabled, 
+GO(gnutls_free, vFp)
 GO(gnutls_global_deinit, vFv)
 GO(gnutls_global_init, iFv)
 //GO(gnutls_global_set_audit_log_function, 
@@ -283,7 +284,7 @@ GO(gnutls_mac_get_key_size, LFp)
 //GO(gnutls_ocsp_req_set_extension, 
 //GO(gnutls_ocsp_req_set_nonce, 
 //GO(gnutls_ocsp_resp_check_crt, 
-//GO(gnutls_ocsp_resp_deinit, 
+GO(gnutls_ocsp_resp_deinit, vFp)
 //GO(gnutls_ocsp_resp_export, 
 //GO(gnutls_ocsp_resp_get_certs, 
 //GO(gnutls_ocsp_resp_get_extension, 
@@ -295,17 +296,17 @@ GO(gnutls_mac_get_key_size, LFp)
 //GO(gnutls_ocsp_resp_get_response, 
 //GO(gnutls_ocsp_resp_get_signature, 
 //GO(gnutls_ocsp_resp_get_signature_algorithm, 
-//GO(gnutls_ocsp_resp_get_single, 
+GO(gnutls_ocsp_resp_get_single, iFpuppppppppp)
 //GO(gnutls_ocsp_resp_get_status, 
 //GO(gnutls_ocsp_resp_get_version, 
-//GO(gnutls_ocsp_resp_import, 
-//GO(gnutls_ocsp_resp_init, 
+GO(gnutls_ocsp_resp_import, iFpp)
+GO(gnutls_ocsp_resp_init, iFp)
 //GO(gnutls_ocsp_resp_print, 
 //GO(gnutls_ocsp_resp_verify, 
 //GO(gnutls_ocsp_resp_verify_direct, 
-//GO(gnutls_ocsp_status_request_enable_client, 
-//GO(gnutls_ocsp_status_request_get, 
-//GO(gnutls_ocsp_status_request_is_checked, 
+GO(gnutls_ocsp_status_request_enable_client, iFppLp)
+GO(gnutls_ocsp_status_request_get, iFpp)
+GO(gnutls_ocsp_status_request_is_checked, uFpu)
 //GO(gnutls_oid_to_digest, 
 //GO(gnutls_oid_to_ecc_curve, 
 //GO(gnutls_oid_to_mac, 
@@ -396,7 +397,7 @@ GO(gnutls_mac_get_key_size, LFp)
 //GO(gnutls_pem_base64_encode, 
 //GO(gnutls_pem_base64_encode2, 
 GO(gnutls_perror, vFi)
-//GO(gnutls_pk_algorithm_get_name, 
+GO(gnutls_pk_algorithm_get_name, pFi)
 //GO(gnutls_pk_bits_to_sec_param, 
 //GO(gnutls_pkcs11_add_provider, 
 //GO(gnutls_pkcs11_copy_attached_extension, 
@@ -572,7 +573,7 @@ GO(gnutls_privkey_sign_hash, iFppupp)
 //GO(gnutls_privkey_verify_params, 
 //GO(gnutls_privkey_verify_seed, 
 //GO(gnutls_protocol_get_id, 
-//GO(gnutls_protocol_get_name, 
+GO(gnutls_protocol_get_name, pFi)
 GO(gnutls_protocol_get_version, iFp)
 //GO(gnutls_protocol_list, 
 //GO(gnutls_psk_allocate_client_credentials, 
@@ -592,7 +593,7 @@ GO(gnutls_protocol_get_version, iFp)
 //GO(gnutls_psk_set_server_params_function, 
 GO(gnutls_pubkey_deinit, vFp)
 GO(gnutls_pubkey_encrypt_data, iFpupp)
-//GO(gnutls_pubkey_export, 
+GO(gnutls_pubkey_export, iFpipp)
 //GO(gnutls_pubkey_export2, 
 GO(gnutls_pubkey_export_dsa_raw, iFppppp)
 GO(gnutls_pubkey_export_dh_raw, iFpupu)
@@ -617,7 +618,7 @@ GO(gnutls_pubkey_import_rsa_raw, iFppp)
 //GO(gnutls_pubkey_import_tpm_raw, 
 //GO(gnutls_pubkey_import_tpm_url, 
 //GO(gnutls_pubkey_import_url, 
-//GO(gnutls_pubkey_import_x509, 
+GO(gnutls_pubkey_import_x509, iFppu)
 //GO(gnutls_pubkey_import_x509_crq, 
 //GO(gnutls_pubkey_import_x509_raw, 
 GO(gnutls_pubkey_init, iFp)
@@ -632,11 +633,11 @@ GO(gnutls_pubkey_verify_hash2, iFppupp)
 //GO(gnutls_range_split, 
 //GO(gnutls_record_can_use_length_hiding, 
 //GO(gnutls_record_check_corked, 
-//GO(gnutls_record_check_pending, 
+GO(gnutls_record_check_pending, LFp)
 //GO(gnutls_record_cork, 
 //GO(gnutls_record_disable_padding, 
 //GO(gnutls_record_discard_queued, 
-//GO(gnutls_record_get_direction, 
+GO(gnutls_record_get_direction, iFp)
 //GO(gnutls_record_get_discarded, 
 GO(gnutls_record_get_max_size, LFp)
 //GO(gnutls_record_get_state, 
@@ -654,7 +655,7 @@ GO(gnutls_record_send, lFppL)
 //GO(gnutls_register_custom_url, 
 //GO(gnutls_rehandshake, 
 //GO(_gnutls_resolve_priorities, 
-//GO(gnutls_rnd, 
+GO(gnutls_rnd, iFipL)
 //GO(gnutls_rnd_refresh, 
 //GO(_gnutls_rsa_pms_set_version, 
 //GO(gnutls_safe_renegotiation_status, 
@@ -670,7 +671,7 @@ GO(gnutls_session_channel_binding, iFpip)
 //GO(gnutls_session_ext_master_secret_status, 
 //GO(gnutls_session_ext_register, 
 //GO(gnutls_session_force_valid, 
-//GO(gnutls_session_get_data, 
+GO(gnutls_session_get_data, iFppp)
 //GO(gnutls_session_get_data2, 
 //GO(gnutls_session_get_desc, 
 //GO(gnutls_session_get_flags, 
@@ -682,7 +683,7 @@ GO(gnutls_session_channel_binding, iFpip)
 //GO(gnutls_session_get_verify_cert_status, 
 //GO(gnutls_session_is_resumed, 
 //GO(gnutls_session_resumption_requested, 
-//GO(gnutls_session_set_data, 
+GO(gnutls_session_set_data, iFppL)
 //GO(gnutls_session_set_id, 
 //GO(gnutls_session_set_premaster, 
 //GO(gnutls_session_set_ptr, 
@@ -730,7 +731,7 @@ GO(gnutls_set_default_priority, iFp)
 //GO(gnutls_srtp_set_profile_direct, 
 //GO(gnutls_store_commitment, 
 //GO(gnutls_store_pubkey, 
-//GO(gnutls_strerror, 
+GO(gnutls_strerror, pFi)
 //GO(gnutls_strerror_name, 
 //GO(gnutls_subject_alt_names_deinit, 
 //GO(gnutls_subject_alt_names_get, 
@@ -887,9 +888,9 @@ GOM(gnutls_transport_set_push_function, vFEpp)
 //GO(gnutls_x509_crq_sign2, 
 //GO(gnutls_x509_crq_verify, 
 //GO(gnutls_x509_crt_check_email, 
-//GO(gnutls_x509_crt_check_hostname, 
+GO(gnutls_x509_crt_check_hostname, uFpp)
 //GO(gnutls_x509_crt_check_hostname2, 
-//GO(gnutls_x509_crt_check_issuer, 
+GO(gnutls_x509_crt_check_issuer, uFpp)
 //GO(gnutls_x509_crt_check_key_purpose, 
 //GO(gnutls_x509_crt_check_revocation, 
 //GO(gnutls_x509_crt_cpy_crl_dist_points, 
@@ -898,7 +899,7 @@ GO(gnutls_x509_crt_deinit, vFp)
 //GO(gnutls_x509_crt_equals2, 
 GO(gnutls_x509_crt_export, iFpppp)
 //GO(gnutls_x509_crt_export2, 
-//GO(gnutls_x509_crt_get_activation_time, 
+GO(gnutls_x509_crt_get_activation_time, lFp)
 //GO(gnutls_x509_crt_get_authority_info_access, 
 //GO(gnutls_x509_crt_get_authority_key_gn_serial, 
 //GO(gnutls_x509_crt_get_authority_key_id, 
@@ -906,11 +907,11 @@ GO(gnutls_x509_crt_export, iFpppp)
 //GO(gnutls_x509_crt_get_ca_status, 
 //GO(gnutls_x509_crt_get_crl_dist_points, 
 //GO(gnutls_x509_crt_get_dn, 
-//GO(gnutls_x509_crt_get_dn2, 
+GO(gnutls_x509_crt_get_dn2, iFpp)
 //GO(gnutls_x509_crt_get_dn3, 
-//GO(gnutls_x509_crt_get_dn_by_oid, 
+GO(gnutls_x509_crt_get_dn_by_oid, iFppuupp)
 //GO(gnutls_x509_crt_get_dn_oid, 
-//GO(gnutls_x509_crt_get_expiration_time, 
+GO(gnutls_x509_crt_get_expiration_time, lFp)
 //GO(gnutls_x509_crt_get_extension_by_oid, 
 //GO(gnutls_x509_crt_get_extension_by_oid2, 
 //GO(gnutls_x509_crt_get_extension_data, 
@@ -923,7 +924,7 @@ GO(gnutls_x509_crt_export, iFpppp)
 //GO(gnutls_x509_crt_get_issuer_alt_name2, 
 //GO(gnutls_x509_crt_get_issuer_alt_othername_oid, 
 //GO(gnutls_x509_crt_get_issuer_dn, 
-//GO(gnutls_x509_crt_get_issuer_dn2, 
+GO(gnutls_x509_crt_get_issuer_dn2, iFpp)
 //GO(gnutls_x509_crt_get_issuer_dn3, 
 //GO(gnutls_x509_crt_get_issuer_dn_by_oid, 
 //GO(gnutls_x509_crt_get_issuer_dn_oid, 
@@ -932,7 +933,7 @@ GO(gnutls_x509_crt_export, iFpppp)
 //GO(gnutls_x509_crt_get_key_purpose_oid, 
 //GO(gnutls_x509_crt_get_key_usage, 
 //GO(gnutls_x509_crt_get_name_constraints, 
-//GO(gnutls_x509_crt_get_pk_algorithm, 
+GO(gnutls_x509_crt_get_pk_algorithm, iFpp)
 //GO(gnutls_x509_crt_get_pk_dsa_raw, 
 //GO(gnutls_x509_crt_get_pk_ecc_raw, 
 //GO(gnutls_x509_crt_get_pk_oid, 
@@ -954,7 +955,7 @@ GO(gnutls_x509_crt_export, iFpppp)
 //GO(gnutls_x509_crt_get_subject_key_id, 
 //GO(gnutls_x509_crt_get_subject_unique_id, 
 //GO(gnutls_x509_crt_get_tlsfeatures, 
-//GO(gnutls_x509_crt_get_version, 
+GO(gnutls_x509_crt_get_version, iFp)
 GO(gnutls_x509_crt_import, iFppp)
 //GO(gnutls_x509_crt_import_pkcs11, 
 //GO(gnutls_x509_crt_import_url, 
diff --git a/src/wrapped/wrappedgtk3.c b/src/wrapped/wrappedgtk3.c
index 60671247..d39d9944 100644
--- a/src/wrapped/wrappedgtk3.c
+++ b/src/wrapped/wrappedgtk3.c
@@ -477,6 +477,29 @@ static void* findGtkClipboardTextReceivedFuncFct(void* fct)
     return NULL;
 }
 
+// GtkFileFilterFunc ...
+#define GO(A)   \
+static uintptr_t my_GtkFileFilterFunc_fct_##A = 0;                                      \
+static int my_GtkFileFilterFunc_##A(void* a, void* b)                                   \
+{                                                                                       \
+    return (int)RunFunctionFmt(my_GtkFileFilterFunc_fct_##A, "pp", a, b);         \
+}
+SUPER()
+#undef GO
+static void* find_GtkFileFilterFunc_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_GtkFileFilterFunc_fct_##A == (uintptr_t)fct) return my_GtkFileFilterFunc_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_GtkFileFilterFunc_fct_##A == 0) {my_GtkFileFilterFunc_fct_##A = (uintptr_t)fct; return my_GtkFileFilterFunc_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for gtk-2 GtkFileFilterFunc callback\n");
+    return NULL;
+}
+
 #undef SUPER
 
 EXPORT void my3_gtk_dialog_add_buttons(x64emu_t* emu, void* dialog, void* first, uintptr_t* b)
@@ -519,6 +542,12 @@ EXPORT void* my3_gtk_type_class(x64emu_t* emu, size_t type)
     return wrapCopyGTKClass(class, type);
 }
 
+EXPORT void my3_gtk_file_filter_add_custom(x64emu_t* emu, void* filter, uint32_t needed, void* f, void* data, void* d)
+{
+    (void)emu;
+    my->gtk_file_filter_add_custom(filter, needed, find_GtkFileFilterFunc_Fct(f), data, findGDestroyNotifyFct(d));
+}
+
 EXPORT void my3_gtk_init(x64emu_t* emu, void* argc, void* argv)
 {
     my->gtk_init(argc, argv);
diff --git a/src/wrapped/wrappedgtk3_private.h b/src/wrapped/wrappedgtk3_private.h
index b6b5e2f2..93ec5eaa 100644
--- a/src/wrapped/wrappedgtk3_private.h
+++ b/src/wrapped/wrappedgtk3_private.h
@@ -1116,7 +1116,7 @@ GO(gtk_file_chooser_unselect_uri, vFpp)
 GO(gtk_file_chooser_widget_get_type, LFv)
 GO(gtk_file_chooser_widget_new, pFu)
 GO(gtk_file_chooser_widget_new_with_backend, pFip)
-//GOM(gtk_file_filter_add_custom, vFEppppp)
+GOM(gtk_file_filter_add_custom, vFEpuppp)
 GO(gtk_file_filter_add_mime_type, vFpp)
 GO(gtk_file_filter_add_pattern, vFpp)
 GO(gtk_file_filter_add_pixbuf_formats, vFp)
@@ -2828,7 +2828,7 @@ GO(gtk_style_context_get_scale, iFp)
 GO(gtk_style_context_get_screen, pFp)
 GO(gtk_style_context_get_section, pFpp)
 GO(gtk_style_context_get_state, uFp)
-//GO2(gtk_style_context_get_style, vFpV, gtk_style_context_get_style_valist)
+GO2(gtk_style_context_get_style, vFpV, gtk_style_context_get_style_valist)
 GO(gtk_style_context_get_style_property, vFppp)
 GOM(gtk_style_context_get_style_valist, vFEpA)
 GOM(gtk_style_context_get_valist, vFEpiA)
@@ -4249,4 +4249,4 @@ GO(gtk_stack_get_visible_child_name, pFp)
 
 GO(dummy_iFppdd, iFppdd)    // for GtkEventController wrapping
 GO(dummy_iFppUup, iFppUup)
-GO(dummy_pFpLi, pFpLi)
\ No newline at end of file
+GO(dummy_pFpLi, pFpLi)