| From 4d7b4d7c8e9966c593f472355607204c6c80fecb Mon Sep 17 00:00:00 2001 |
| From: Dan Kegel <dank@kegel.com> |
| Date: Sun, 4 Jun 2017 19:19:55 -0700 |
| Subject: [PATCH] Minimal tweaks to compile with Visual C 2015 |
| |
| Upstream-Status: Backport |
| |
| Signed-off-by: Maxin B. John <maxin.john@intel.com> |
| --- |
| getopt_long.c | 2 ++ |
| libpkgconf/bsdstubs.c | 1 + |
| libpkgconf/libpkgconf.h | 2 +- |
| libpkgconf/path.c | 10 +++++----- |
| libpkgconf/pkg.c | 28 +++++++++++++++++++--------- |
| libpkgconf/stdinc.h | 9 +++++++-- |
| 6 files changed, 35 insertions(+), 17 deletions(-) |
| |
| diff --git a/getopt_long.c b/getopt_long.c |
| index afeb68d..5ce9bfd 100644 |
| --- a/getopt_long.c |
| +++ b/getopt_long.c |
| @@ -62,7 +62,9 @@ |
| #include <stdio.h> |
| #include <stdlib.h> |
| #include <string.h> |
| +#ifndef _WIN32 |
| #include <unistd.h> |
| +#endif |
| |
| #define PKGCONF_HACK_LOGICAL_OR_ALL_VALUES |
| |
| diff --git a/libpkgconf/bsdstubs.c b/libpkgconf/bsdstubs.c |
| index 8f70ff3..2c000ac 100644 |
| --- a/libpkgconf/bsdstubs.c |
| +++ b/libpkgconf/bsdstubs.c |
| @@ -17,6 +17,7 @@ |
| * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| */ |
| |
| +#include <stdlib.h> |
| #include <sys/types.h> |
| #include <string.h> |
| |
| diff --git a/libpkgconf/libpkgconf.h b/libpkgconf/libpkgconf.h |
| index 404bf0c..551d85d 100644 |
| --- a/libpkgconf/libpkgconf.h |
| +++ b/libpkgconf/libpkgconf.h |
| @@ -310,7 +310,7 @@ void pkgconf_audit_log_dependency(pkgconf_client_t *client, const pkgconf_pkg_t |
| /* path.c */ |
| void pkgconf_path_add(const char *text, pkgconf_list_t *dirlist, bool filter); |
| size_t pkgconf_path_split(const char *text, pkgconf_list_t *dirlist, bool filter); |
| -size_t pkgconf_path_build_from_environ(const char *environ, const char *fallback, pkgconf_list_t *dirlist, bool filter); |
| +size_t pkgconf_path_build_from_environ(const char *envvarname, const char *fallback, pkgconf_list_t *dirlist, bool filter); |
| bool pkgconf_path_match_list(const char *path, const pkgconf_list_t *dirlist); |
| void pkgconf_path_free(pkgconf_list_t *dirlist); |
| bool pkgconf_path_relocate(char *buf, size_t buflen); |
| diff --git a/libpkgconf/path.c b/libpkgconf/path.c |
| index dddb3bf..59e003e 100644 |
| --- a/libpkgconf/path.c |
| +++ b/libpkgconf/path.c |
| @@ -20,7 +20,7 @@ |
| # include <sys/cygwin.h> |
| #endif |
| |
| -#ifdef HAVE_SYS_STAT_H |
| +#if defined(HAVE_SYS_STAT_H) && ! defined(_WIN32) |
| # include <sys/stat.h> |
| # define PKGCONF_CACHE_INODES |
| #endif |
| @@ -156,12 +156,12 @@ pkgconf_path_split(const char *text, pkgconf_list_t *dirlist, bool filter) |
| /* |
| * !doc |
| * |
| - * .. c:function:: size_t pkgconf_path_build_from_environ(const char *environ, const char *fallback, pkgconf_list_t *dirlist) |
| + * .. c:function:: size_t pkgconf_path_build_from_environ(const char *envvarname, const char *fallback, pkgconf_list_t *dirlist) |
| * |
| * Adds the paths specified in an environment variable to a path list. If the environment variable is not set, |
| * an optional default set of paths is added. |
| * |
| - * :param char* environ: The environment variable to look up. |
| + * :param char* envvarname: The environment variable to look up. |
| * :param char* fallback: The fallback paths to use if the environment variable is not set. |
| * :param pkgconf_list_t* dirlist: The path list to add the path nodes to. |
| * :param bool filter: Whether to perform duplicate filtering. |
| @@ -169,11 +169,11 @@ pkgconf_path_split(const char *text, pkgconf_list_t *dirlist, bool filter) |
| * :rtype: size_t |
| */ |
| size_t |
| -pkgconf_path_build_from_environ(const char *environ, const char *fallback, pkgconf_list_t *dirlist, bool filter) |
| +pkgconf_path_build_from_environ(const char *envvarname, const char *fallback, pkgconf_list_t *dirlist, bool filter) |
| { |
| const char *data; |
| |
| - data = getenv(environ); |
| + data = getenv(envvarname); |
| if (data != NULL) |
| return pkgconf_path_split(data, dirlist, filter); |
| |
| diff --git a/libpkgconf/pkg.c b/libpkgconf/pkg.c |
| index 7aebd61..5dacae3 100644 |
| --- a/libpkgconf/pkg.c |
| +++ b/libpkgconf/pkg.c |
| @@ -30,6 +30,8 @@ |
| # define PKG_CONFIG_REG_KEY "Software\\pkgconfig\\PKG_CONFIG_PATH" |
| # undef PKG_DEFAULT_PATH |
| # define PKG_DEFAULT_PATH "../lib/pkgconfig;../share/pkgconfig" |
| +#define strncasecmp _strnicmp |
| +#define strcasecmp _stricmp |
| #endif |
| |
| #define PKG_CONFIG_EXT ".pc" |
| @@ -134,21 +136,21 @@ static int pkgconf_pkg_parser_keyword_pair_cmp(const void *key, const void *ptr) |
| static void |
| pkgconf_pkg_parser_tuple_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value) |
| { |
| - char **dest = ((void *) pkg + offset); |
| + char **dest = (char **)((char *) pkg + offset); |
| *dest = pkgconf_tuple_parse(client, &pkg->vars, value); |
| } |
| |
| static void |
| pkgconf_pkg_parser_fragment_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value) |
| { |
| - pkgconf_list_t *dest = ((void *) pkg + offset); |
| + pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset); |
| pkgconf_fragment_parse(client, dest, &pkg->vars, value); |
| } |
| |
| static void |
| pkgconf_pkg_parser_dependency_func(const pkgconf_client_t *client, pkgconf_pkg_t *pkg, const ptrdiff_t offset, char *value) |
| { |
| - pkgconf_list_t *dest = ((void *) pkg + offset); |
| + pkgconf_list_t *dest = (pkgconf_list_t *)((char *) pkg + offset); |
| pkgconf_dependency_parse(client, pkg, dest, value); |
| } |
| |
| @@ -238,7 +240,7 @@ pkgconf_pkg_validate(const pkgconf_client_t *client, const pkgconf_pkg_t *pkg) |
| |
| for (i = 0; i < PKGCONF_ARRAY_SIZE(pkgconf_pkg_validations); i++) |
| { |
| - char **p = ((void *) pkg + pkgconf_pkg_validations[i].offset); |
| + char **p = (char **)((char *) pkg + pkgconf_pkg_validations[i].offset); |
| |
| if (*p != NULL) |
| continue; |
| @@ -587,7 +589,7 @@ pkgconf_scan_all(pkgconf_client_t *client, void *data, pkgconf_pkg_iteration_fun |
| |
| #ifdef _WIN32 |
| static pkgconf_pkg_t * |
| -pkgconf_pkg_find_in_registry_key(const pkgconf_client_t *client, HKEY hkey, const char *name) |
| +pkgconf_pkg_find_in_registry_key(pkgconf_client_t *client, HKEY hkey, const char *name) |
| { |
| pkgconf_pkg_t *pkg = NULL; |
| |
| @@ -1048,8 +1050,12 @@ typedef struct { |
| |
| static const pkgconf_pkg_provides_vermatch_rule_t pkgconf_pkg_provides_vermatch_rules[] = { |
| [PKGCONF_CMP_ANY] = { |
| - .rulecmp = {}, |
| - .depcmp = {}, |
| + .rulecmp = { |
| + [PKGCONF_CMP_ANY] = pkgconf_pkg_comparator_none, |
| + }, |
| + .depcmp = { |
| + [PKGCONF_CMP_ANY] = pkgconf_pkg_comparator_none, |
| + }, |
| }, |
| [PKGCONF_CMP_LESS_THAN] = { |
| .rulecmp = { |
| @@ -1121,7 +1127,9 @@ static const pkgconf_pkg_provides_vermatch_rule_t pkgconf_pkg_provides_vermatch_ |
| [PKGCONF_CMP_EQUAL] = pkgconf_pkg_comparator_eq, |
| [PKGCONF_CMP_NOT_EQUAL] = pkgconf_pkg_comparator_ne |
| }, |
| - .depcmp = {}, |
| + .depcmp = { |
| + [PKGCONF_CMP_ANY] = pkgconf_pkg_comparator_none, |
| + }, |
| }, |
| [PKGCONF_CMP_NOT_EQUAL] = { |
| .rulecmp = { |
| @@ -1133,7 +1141,9 @@ static const pkgconf_pkg_provides_vermatch_rule_t pkgconf_pkg_provides_vermatch_ |
| [PKGCONF_CMP_EQUAL] = pkgconf_pkg_comparator_ne, |
| [PKGCONF_CMP_NOT_EQUAL] = pkgconf_pkg_comparator_eq |
| }, |
| - .depcmp = {}, |
| + .depcmp = { |
| + [PKGCONF_CMP_ANY] = pkgconf_pkg_comparator_none, |
| + }, |
| }, |
| }; |
| |
| diff --git a/libpkgconf/stdinc.h b/libpkgconf/stdinc.h |
| index 58cc6c7..ac7e53c 100644 |
| --- a/libpkgconf/stdinc.h |
| +++ b/libpkgconf/stdinc.h |
| @@ -24,9 +24,7 @@ |
| #include <stdbool.h> |
| #include <stdarg.h> |
| #include <string.h> |
| -#include <dirent.h> |
| #include <sys/types.h> |
| -#include <unistd.h> |
| #include <stdint.h> |
| |
| #ifdef _WIN32 |
| @@ -34,8 +32,15 @@ |
| # include <windows.h> |
| # include <malloc.h> |
| # define PATH_DEV_NULL "nul" |
| +# ifndef ssize_t |
| +# include <BaseTsd.h> |
| +# define ssize_t SSIZE_T |
| +# endif |
| +# include "win-dirent.h" |
| #else |
| # define PATH_DEV_NULL "/dev/null" |
| +# include <dirent.h> |
| +# include <unistd.h> |
| #endif |
| |
| #endif |
| -- |
| 2.4.0 |
| |