libpsl.h.in: Decorate public symbols for export

Introduce a macro, PSL_PUBLIC, which is defined as nothing by default,
which can be used by the compiler to instruct the linker to export the
public symbols, such as __declspec (dllexport) on Visual Studio.
This commit is contained in:
Chun-wei Fan 2018-04-18 13:52:38 +08:00 committed by Tim Rühsen
parent 859b307593
commit 8e91838fd5
1 changed files with 26 additions and 0 deletions

View File

@ -40,6 +40,10 @@
#define PSL_VERSION_PATCH @LIBPSL_VERSION_PATCH@ #define PSL_VERSION_PATCH @LIBPSL_VERSION_PATCH@
#define PSL_VERSION_NUMBER @LIBPSL_VERSION_NUMBER@ #define PSL_VERSION_NUMBER @LIBPSL_VERSION_NUMBER@
#ifndef PSL_PUBLIC
# define PSL_PUBLIC
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -77,90 +81,112 @@ typedef enum {
typedef struct _psl_ctx_st psl_ctx_t; typedef struct _psl_ctx_st psl_ctx_t;
/* frees PSL context */ /* frees PSL context */
PSL_PUBLIC
void void
psl_free(psl_ctx_t *psl); psl_free(psl_ctx_t *psl);
/* frees memory allocated by libpsl routines */ /* frees memory allocated by libpsl routines */
PSL_PUBLIC
void void
psl_free_string(char *str); psl_free_string(char *str);
/* loads PSL data from file */ /* loads PSL data from file */
PSL_PUBLIC
psl_ctx_t * psl_ctx_t *
psl_load_file(const char *fname); psl_load_file(const char *fname);
/* loads PSL data from FILE pointer */ /* loads PSL data from FILE pointer */
PSL_PUBLIC
psl_ctx_t * psl_ctx_t *
psl_load_fp(FILE *fp); psl_load_fp(FILE *fp);
/* retrieves builtin PSL data */ /* retrieves builtin PSL data */
PSL_PUBLIC
const psl_ctx_t * const psl_ctx_t *
psl_builtin(void); psl_builtin(void);
/* retrieves most recent PSL data */ /* retrieves most recent PSL data */
PSL_PUBLIC
psl_ctx_t * psl_ctx_t *
psl_latest(const char *fname); psl_latest(const char *fname);
/* checks whether domain is a public suffix or not */ /* checks whether domain is a public suffix or not */
PSL_PUBLIC
int int
psl_is_public_suffix(const psl_ctx_t *psl, const char *domain); psl_is_public_suffix(const psl_ctx_t *psl, const char *domain);
/* checks whether domain is a public suffix regarding the type or not */ /* checks whether domain is a public suffix regarding the type or not */
PSL_PUBLIC
int int
psl_is_public_suffix2(const psl_ctx_t *psl, const char *domain, int type); psl_is_public_suffix2(const psl_ctx_t *psl, const char *domain, int type);
/* checks whether cookie_domain is acceptable for domain or not */ /* checks whether cookie_domain is acceptable for domain or not */
PSL_PUBLIC
int int
psl_is_cookie_domain_acceptable(const psl_ctx_t *psl, const char *hostname, const char *cookie_domain); psl_is_cookie_domain_acceptable(const psl_ctx_t *psl, const char *hostname, const char *cookie_domain);
/* returns the longest not registrable domain within 'domain' or NULL if none found */ /* returns the longest not registrable domain within 'domain' or NULL if none found */
PSL_PUBLIC
const char * const char *
psl_unregistrable_domain(const psl_ctx_t *psl, const char *domain); psl_unregistrable_domain(const psl_ctx_t *psl, const char *domain);
/* returns the shortest possible registrable domain part or NULL if domain is not registrable at all */ /* returns the shortest possible registrable domain part or NULL if domain is not registrable at all */
PSL_PUBLIC
const char * const char *
psl_registrable_domain(const psl_ctx_t *psl, const char *domain); psl_registrable_domain(const psl_ctx_t *psl, const char *domain);
/* convert a string into lowercase UTF-8 */ /* convert a string into lowercase UTF-8 */
PSL_PUBLIC
psl_error_t psl_error_t
psl_str_to_utf8lower(const char *str, const char *encoding, const char *locale, char **lower); psl_str_to_utf8lower(const char *str, const char *encoding, const char *locale, char **lower);
/* does not include exceptions */ /* does not include exceptions */
PSL_PUBLIC
int int
psl_suffix_count(const psl_ctx_t *psl); psl_suffix_count(const psl_ctx_t *psl);
/* just counts exceptions */ /* just counts exceptions */
PSL_PUBLIC
int int
psl_suffix_exception_count(const psl_ctx_t *psl); psl_suffix_exception_count(const psl_ctx_t *psl);
/* just counts wildcards */ /* just counts wildcards */
PSL_PUBLIC
int int
psl_suffix_wildcard_count(const psl_ctx_t *psl); psl_suffix_wildcard_count(const psl_ctx_t *psl);
/* returns mtime of PSL source file */ /* returns mtime of PSL source file */
PSL_PUBLIC
time_t time_t
psl_builtin_file_time(void); psl_builtin_file_time(void);
/* returns SHA1 checksum (hex-encoded, lowercase) of PSL source file */ /* returns SHA1 checksum (hex-encoded, lowercase) of PSL source file */
PSL_PUBLIC
const char * const char *
psl_builtin_sha1sum(void); psl_builtin_sha1sum(void);
/* returns file name of PSL source file */ /* returns file name of PSL source file */
PSL_PUBLIC
const char * const char *
psl_builtin_filename(void); psl_builtin_filename(void);
/* returns name of distribution PSL data file */ /* returns name of distribution PSL data file */
PSL_PUBLIC
const char * const char *
psl_dist_filename(void); psl_dist_filename(void);
/* returns library version string */ /* returns library version string */
PSL_PUBLIC
const char * const char *
psl_get_version(void); psl_get_version(void);
/* checks library version number */ /* checks library version number */
PSL_PUBLIC
int int
psl_check_version_number(int version); psl_check_version_number(int version);
/* returns whether the built-in data is outdated or not */ /* returns whether the built-in data is outdated or not */
PSL_PUBLIC
int int
psl_builtin_outdated(void); psl_builtin_outdated(void);