And disable building binaries for win32 that make no sense --- src/Makefile.am | 22 ++++++++++++++++------ src/pulsecore/authkey.c | 2 +- src/pulsecore/core-util.c | 26 ++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 7 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index 4c4c09a..e80b4b0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -196,8 +196,11 @@ endif bin_PROGRAMS += \ pacat \ - pactl \ - pasuspender + pactl + +if !OS_IS_WIN32 +bin_PROGRAMS += pasuspender +endif if HAVE_AF_UNIX bin_PROGRAMS += pacmd @@ -275,9 +278,7 @@ TESTS = \ envelope-test \ proplist-test \ lock-autospawn-test \ - prioq-test \ - sigbus-test \ - usergroup-test + prioq-test TESTS_BINARIES = \ mainloop-test \ @@ -314,9 +315,16 @@ TESTS_BINARIES = \ rtstutter \ stripnul \ lock-autospawn-test \ - prioq-test \ + prioq-test + +if !OS_IS_WIN32 +TESTS += \ + sigbus-test \ + usergroup-test +TESTS_BINARIES += \ sigbus-test \ usergroup-test +endif if HAVE_SIGXCPU #TESTS += \ @@ -345,9 +353,11 @@ TESTS_BINARIES += \ endif if !OS_IS_DARWIN +if !OS_IS_WIN32 TESTS_BINARIES += \ once-test endif +endif if BUILD_TESTS_DEFAULT noinst_PROGRAMS = $(TESTS_BINARIES) diff --git a/src/pulsecore/authkey.c b/src/pulsecore/authkey.c index d671e36..684bc01 100644 --- a/src/pulsecore/authkey.c +++ b/src/pulsecore/authkey.c @@ -151,7 +151,7 @@ static char *normalize_path(const char *fn) { #ifndef OS_IS_WIN32 if (fn[0] != '/') { #else - if (strlen(fn) < 3 || !isalpha(fn[0]) || fn[1] != ':' || fn[2] != '\\') { + if (strlen(fn) < 3 || !IsCharAlpha(fn[0]) || fn[1] != ':' || fn[2] != '\\') { #endif char *homedir, *s; diff --git a/src/pulsecore/core-util.c b/src/pulsecore/core-util.c index 1659d3a..f8e471d 100644 --- a/src/pulsecore/core-util.c +++ b/src/pulsecore/core-util.c @@ -91,6 +91,10 @@ #include <windows.h> #endif +#ifndef ENOTSUP +#define ENOTSUP 135 +#endif + #ifdef HAVE_PWD_H #include <pwd.h> #endif @@ -2565,7 +2569,11 @@ void pa_unset_env_recorded(void) { if (!s) break; +#ifdef OS_IS_WIN32 + putenv(pa_sprintf_malloc("%s=", s)); +#else unsetenv(s); +#endif pa_xfree(s); } } @@ -2683,11 +2691,22 @@ char *pa_session_id(void) { } char *pa_uname_string(void) { +#ifdef HAVE_UNAME struct utsname u; pa_assert_se(uname(&u) >= 0); return pa_sprintf_malloc("%s %s %s %s", u.sysname, u.machine, u.release, u.version); +#endif +#ifdef OS_IS_WIN32 + OSVERSIONINFO i; + + pa_zero(i); + i.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + pa_assert_se(GetVersionEx(&i)); + + return pa_sprintf_malloc("Windows %d.%d (%d) %s", i.dwMajorVersion, i.dwMinorVersion, i.dwBuildNumber, i.szCSDVersion); +#endif } #ifdef HAVE_VALGRIND_MEMCHECK_H @@ -2836,10 +2855,17 @@ char *pa_realpath(const char *path) { char *path_buf; path_buf = pa_xmalloc(PATH_MAX); +#if defined(OS_IS_WIN32) + if (!(t = _fullpath(path_buf, path, _MAX_PATH))) { + pa_xfree(path_buf); + return NULL; + } +#else if (!(t = realpath(path, path_buf))) { pa_xfree(path_buf); return NULL; } +#endif } #else #error "It's not clear whether this system supports realpath(..., NULL) like GNU libc does. If it doesn't we need a private version of realpath() here." -- 1.7.1