vb@926: #ifndef __APPLE__ vb@130: #define _POSIX_C_SOURCE 200809L vb@926: #endif vb@130: vb@130: #include vb@130: #include vb@130: #include vb@948: #include vb@130: vb@130: #ifdef __cplusplus vb@130: extern "C" { vb@130: #endif vb@130: vb@1: const char *unix_local_db(void); Edouard@347: vb@1: const char *gpg_conf(void); krista@763: const char *gpg_agent_conf(void); Edouard@175: const char *gpg_home(void); vb@130: Edouard@338: #ifdef ANDROID Edouard@380: Edouard@348: char *stpncpy(char *, const char *, size_t); Edouard@348: char *stpcpy(char *, const char *); roker@438: roker@438: // Beware: predictable pseudo random with static seed! roker@438: // Only the lowest 31 bits are filled randomly. Edouard@338: long int random(void); roker@438: Edouard@348: const char *android_system_db(void); Edouard@348: #define SYSTEM_DB android_system_db() Edouard@348: #define LIBGPGME "libgpgme.so" Edouard@380: Edouard@380: #elif __APPLE__ Edouard@380: #include "TargetConditionals.h" krista@919: #include Edouard@380: #if TARGET_OS_IPHONE Edouard@380: Edouard@380: extern char* SystemDB; Edouard@380: #define SYSTEM_DB SystemDB Edouard@380: Edouard@380: #endif Edouard@338: #endif Edouard@338: vb@926: #if !defined(BSD) && !defined(__APPLE__) krista@918: size_t strlcpy(char* dst, const char* src, size_t size); krista@918: size_t strlcat(char* dst, const char* src, size_t size); krista@918: #endif krista@918: vb@948: #ifndef _UUID_STRING_T vb@948: #define _UUID_STRING_T vb@948: typedef char uuid_string_t[37]; vb@948: #endif vb@948: #ifdef UUID vb@949: #undef UUID vb@949: #endif vb@948: // on *nix, uuid_t is an array and already implements pointer semantics vb@948: #define UUID uuid_t vb@948: vb@130: #ifdef __cplusplus vb@130: } vb@130: #endif