Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/libgit2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c136
1 files changed, 10 insertions, 126 deletions
diff --git a/src/util.c b/src/util.c
index 47516a8f7..f9d37e4f4 100644
--- a/src/util.c
+++ b/src/util.c
@@ -6,140 +6,21 @@
*/
#include <git2.h>
#include "common.h"
-#include <stdarg.h>
#include <stdio.h>
#include <ctype.h>
#include "posix.h"
-#include "fileops.h"
-#include "cache.h"
#ifdef _MSC_VER
# include <Shlwapi.h>
#endif
-void git_libgit2_version(int *major, int *minor, int *rev)
-{
- *major = LIBGIT2_VER_MAJOR;
- *minor = LIBGIT2_VER_MINOR;
- *rev = LIBGIT2_VER_REVISION;
-}
-
-int git_libgit2_capabilities()
-{
- return 0
-#ifdef GIT_THREADS
- | GIT_CAP_THREADS
-#endif
-#if defined(GIT_SSL) || defined(GIT_WINHTTP)
- | GIT_CAP_HTTPS
-#endif
-#if defined(GIT_SSH)
- | GIT_CAP_SSH
-#endif
- ;
-}
-
-/* Declarations for tuneable settings */
-extern size_t git_mwindow__window_size;
-extern size_t git_mwindow__mapped_limit;
-
-static int config_level_to_futils_dir(int config_level)
-{
- int val = -1;
-
- switch (config_level) {
- case GIT_CONFIG_LEVEL_SYSTEM: val = GIT_FUTILS_DIR_SYSTEM; break;
- case GIT_CONFIG_LEVEL_XDG: val = GIT_FUTILS_DIR_XDG; break;
- case GIT_CONFIG_LEVEL_GLOBAL: val = GIT_FUTILS_DIR_GLOBAL; break;
- default:
- giterr_set(
- GITERR_INVALID, "Invalid config path selector %d", config_level);
- }
-
- return val;
-}
-
-int git_libgit2_opts(int key, ...)
-{
- int error = 0;
- va_list ap;
-
- va_start(ap, key);
-
- switch (key) {
- case GIT_OPT_SET_MWINDOW_SIZE:
- git_mwindow__window_size = va_arg(ap, size_t);
- break;
-
- case GIT_OPT_GET_MWINDOW_SIZE:
- *(va_arg(ap, size_t *)) = git_mwindow__window_size;
- break;
-
- case GIT_OPT_SET_MWINDOW_MAPPED_LIMIT:
- git_mwindow__mapped_limit = va_arg(ap, size_t);
- break;
-
- case GIT_OPT_GET_MWINDOW_MAPPED_LIMIT:
- *(va_arg(ap, size_t *)) = git_mwindow__mapped_limit;
- break;
-
- case GIT_OPT_GET_SEARCH_PATH:
- if ((error = config_level_to_futils_dir(va_arg(ap, int))) >= 0) {
- char *out = va_arg(ap, char *);
- size_t outlen = va_arg(ap, size_t);
-
- error = git_futils_dirs_get_str(out, outlen, error);
- }
- break;
-
- case GIT_OPT_SET_SEARCH_PATH:
- if ((error = config_level_to_futils_dir(va_arg(ap, int))) >= 0)
- error = git_futils_dirs_set(error, va_arg(ap, const char *));
- break;
-
- case GIT_OPT_SET_CACHE_OBJECT_LIMIT:
- {
- git_otype type = (git_otype)va_arg(ap, int);
- size_t size = va_arg(ap, size_t);
- error = git_cache_set_max_object_size(type, size);
- break;
- }
-
- case GIT_OPT_SET_CACHE_MAX_SIZE:
- git_cache__max_storage = va_arg(ap, ssize_t);
- break;
-
- case GIT_OPT_ENABLE_CACHING:
- git_cache__enabled = (va_arg(ap, int) != 0);
- break;
-
- case GIT_OPT_GET_CACHED_MEMORY:
- *(va_arg(ap, ssize_t *)) = git_cache__current_storage.val;
- *(va_arg(ap, ssize_t *)) = git_cache__max_storage;
- break;
-
- case GIT_OPT_GET_TEMPLATE_PATH:
- {
- char *out = va_arg(ap, char *);
- size_t outlen = va_arg(ap, size_t);
-
- error = git_futils_dirs_get_str(out, outlen, GIT_FUTILS_DIR_TEMPLATE);
- }
- break;
-
- case GIT_OPT_SET_TEMPLATE_PATH:
- error = git_futils_dirs_set(GIT_FUTILS_DIR_TEMPLATE, va_arg(ap, const char *));
- break;
- }
-
- va_end(ap);
-
- return error;
-}
-
void git_strarray_free(git_strarray *array)
{
size_t i;
+
+ if (array == NULL)
+ return;
+
for (i = 0; i < array->count; ++i)
git__free(array->strings[i]);
@@ -661,10 +542,12 @@ int git__bsearch_r(
*/
int git__strcmp_cb(const void *a, const void *b)
{
- const char *stra = (const char *)a;
- const char *strb = (const char *)b;
+ return strcmp((const char *)a, (const char *)b);
+}
- return strcmp(stra, strb);
+int git__strcasecmp_cb(const void *a, const void *b)
+{
+ return strcasecmp((const char *)a, (const char *)b);
}
int git__parse_bool(int *out, const char *value)
@@ -729,6 +612,7 @@ void git__qsort_r(
#if defined(__MINGW32__) || defined(AMIGA) || \
defined(__OpenBSD__) || defined(__NetBSD__) || \
defined(__gnu_hurd__) || defined(__ANDROID_API__) || \
+ defined(__sun) || defined(__CYGWIN__) || \
(__GLIBC__ == 2 && __GLIBC_MINOR__ < 8)
git__insertsort_r(els, nel, elsize, NULL, cmp, payload);
#elif defined(GIT_WIN32)