summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVicent Marti <vicent@github.com>2014-05-01 01:23:10 -0700
committerVicent Marti <vicent@github.com>2014-05-01 01:23:10 -0700
commit9d878fc420037a78f6ab36b86a42641cbd9425e0 (patch)
tree7f3f5f6b059a553cbb2a9a3266d57e51ca51e81c
parentc522bed0af3f249d8617d214d2b3297ca6cac777 (diff)
parent183aa4f8317f5a64f1bc931551a342e6a93ce1c3 (diff)
downloadlibgit2-9d878fc420037a78f6ab36b86a42641cbd9425e0.tar.gz
Merge pull request #2304 from jacquesg/solaris
Solaris!
-rw-r--r--CMakeLists.txt6
-rw-r--r--src/common.h1
-rw-r--r--src/config.c4
-rw-r--r--src/remote.c2
4 files changed, 9 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b5bd669f0..884c9bcf1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -172,7 +172,7 @@ IF (ENABLE_TRACE STREQUAL "ON")
ENDIF()
# Include POSIX regex when it is required
-IF(WIN32 OR AMIGA OR ANDROID)
+IF(WIN32 OR AMIGA OR ANDROID OR CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
INCLUDE_DIRECTORIES(deps/regex)
SET(SRC_REGEX deps/regex/regex.c)
ENDIF()
@@ -290,6 +290,10 @@ IF (MSVC)
ELSE ()
SET(CMAKE_C_FLAGS "-D_GNU_SOURCE -Wall -Wextra ${CMAKE_C_FLAGS}")
+ IF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
+ SET(CMAKE_C_FLAGS "-std=c99 -D_POSIX_C_SOURCE=200112L -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS ${CMAKE_C_FLAGS}")
+ ENDIF()
+
IF (WIN32 AND NOT CYGWIN)
SET(CMAKE_C_FLAGS_DEBUG "-D_DEBUG")
ENDIF ()
diff --git a/src/common.h b/src/common.h
index 9c8bdc18a..dd97a3099 100644
--- a/src/common.h
+++ b/src/common.h
@@ -44,6 +44,7 @@
#else
# include <unistd.h>
+# include <strings.h>
# ifdef GIT_THREADS
# include <pthread.h>
# include <sched.h>
diff --git a/src/config.c b/src/config.c
index b3168f735..16854c0c8 100644
--- a/src/config.c
+++ b/src/config.c
@@ -1144,7 +1144,7 @@ int git_config_parse_int64(int64_t *out, const char *value)
}
fail_parse:
- giterr_set(GITERR_CONFIG, "Failed to parse '%s' as an integer", value);
+ giterr_set(GITERR_CONFIG, "Failed to parse '%s' as an integer", value ? value : "(null)");
return -1;
}
@@ -1164,7 +1164,7 @@ int git_config_parse_int32(int32_t *out, const char *value)
return 0;
fail_parse:
- giterr_set(GITERR_CONFIG, "Failed to parse '%s' as a 32-bit integer", value);
+ giterr_set(GITERR_CONFIG, "Failed to parse '%s' as a 32-bit integer", value ? value : "(null)");
return -1;
}
diff --git a/src/remote.c b/src/remote.c
index ea638e373..be7198a98 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -73,7 +73,7 @@ static int ensure_remote_name_is_valid(const char *name)
if (!git_remote_is_valid_name(name)) {
giterr_set(
GITERR_CONFIG,
- "'%s' is not a valid remote name.", name);
+ "'%s' is not a valid remote name.", name ? name : "(null)");
error = GIT_EINVALIDSPEC;
}