mirror of
				https://git.proxmox.com/git/libgit2
				synced 2025-11-04 10:33:00 +00:00 
			
		
		
		
	Merge pull request #261 from Romain-Geissler/discovery-path-v2
Fix: GIT_PATH_PATH_SEPARATOR is now a semi-colon under Windows.
This commit is contained in:
		
						commit
						ef9a6f4cbc
					
				@ -76,6 +76,10 @@
 | 
			
		||||
# define GIT_FORMAT_PRINTF(a,b) /* empty */
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32) && !defined(__CYGWIN__)
 | 
			
		||||
#define GIT_WIN32 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @file git2/common.h
 | 
			
		||||
 * @brief Git common platform definitions
 | 
			
		||||
@ -86,6 +90,22 @@
 | 
			
		||||
 | 
			
		||||
GIT_BEGIN_DECL
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The separator used in path list strings (ie like in the PATH
 | 
			
		||||
 * environment variable). A semi-colon ";" is used on Windows, and
 | 
			
		||||
 * a colon ":" for all other systems.
 | 
			
		||||
 */
 | 
			
		||||
#ifdef GIT_WIN32
 | 
			
		||||
#define GIT_PATH_LIST_SEPARATOR ';'
 | 
			
		||||
#else
 | 
			
		||||
#define GIT_PATH_LIST_SEPARATOR ':'
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The maximum length of a git valid git path.
 | 
			
		||||
 */
 | 
			
		||||
#define GIT_PATH_MAX 4096
 | 
			
		||||
 | 
			
		||||
typedef struct {
 | 
			
		||||
	char **strings;
 | 
			
		||||
	size_t count;
 | 
			
		||||
 | 
			
		||||
@ -151,9 +151,9 @@ GIT_EXTERN(int) git_repository_open3(git_repository **repository,
 | 
			
		||||
 * @param across_fs If true, then the lookup will not stop when a filesystem device change
 | 
			
		||||
 * is detected while exploring parent directories.
 | 
			
		||||
 *
 | 
			
		||||
 * @param ceiling_dirs A colon separated of absolute symbolic link free paths. The lookup will
 | 
			
		||||
 * stop when any of this paths is reached. Note that the lookup always performs on start_path
 | 
			
		||||
 * no matter start_path appears in ceiling_dirs
 | 
			
		||||
 * @param ceiling_dirs A GIT_PATH_LIST_SEPARATOR separated list of absolute symbolic link
 | 
			
		||||
 * free paths. The lookup will stop when any of this paths is reached. Note that the
 | 
			
		||||
 * lookup always performs on start_path no matter start_path appears in ceiling_dirs
 | 
			
		||||
 * ceiling_dirs might be NULL (which is equivalent to an empty string)
 | 
			
		||||
 *
 | 
			
		||||
 * @return 0 on success; error code otherwise
 | 
			
		||||
 | 
			
		||||
@ -1,13 +1,11 @@
 | 
			
		||||
#ifndef INCLUDE_common_h__
 | 
			
		||||
#define INCLUDE_common_h__
 | 
			
		||||
 | 
			
		||||
#include "git2/common.h"
 | 
			
		||||
 | 
			
		||||
/** Force 64 bit off_t size on POSIX. */
 | 
			
		||||
#define _FILE_OFFSET_BITS 64
 | 
			
		||||
 | 
			
		||||
#if defined(_WIN32) && !defined(__CYGWIN__)
 | 
			
		||||
#define GIT_WIN32 1
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "git2/thread-utils.h"
 | 
			
		||||
#include "cc-compat.h"
 | 
			
		||||
 | 
			
		||||
@ -47,13 +45,11 @@ typedef SSIZE_T ssize_t;
 | 
			
		||||
# endif
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#include "git2/common.h"
 | 
			
		||||
#include "git2/types.h"
 | 
			
		||||
#include "git2/errors.h"
 | 
			
		||||
#include "thread-utils.h"
 | 
			
		||||
#include "bswap.h"
 | 
			
		||||
 | 
			
		||||
#define GIT_PATH_MAX 4096
 | 
			
		||||
extern int git__throw(int error, const char *, ...) GIT_FORMAT_PRINTF(2, 3);
 | 
			
		||||
extern int git__rethrow(int error, const char *, ...) GIT_FORMAT_PRINTF(2, 3);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -12,8 +12,6 @@
 | 
			
		||||
#include <fcntl.h>
 | 
			
		||||
#include <time.h>
 | 
			
		||||
 | 
			
		||||
#define GIT_PATH_LIST_SEPARATOR ':'
 | 
			
		||||
 | 
			
		||||
#ifdef GIT_WIN32
 | 
			
		||||
#define GIT_PLATFORM_PATH_SEP '\\'
 | 
			
		||||
#else
 | 
			
		||||
 | 
			
		||||
@ -334,7 +334,7 @@ static int append_ceiling_dir(char *ceiling_dirs, const char *path)
 | 
			
		||||
		return git__rethrow(error, "Failed to append ceiling directory.");
 | 
			
		||||
 | 
			
		||||
	if (len)
 | 
			
		||||
		ceiling_dirs[len] = ':';
 | 
			
		||||
		ceiling_dirs[len] = GIT_PATH_LIST_SEPARATOR;
 | 
			
		||||
 | 
			
		||||
	return GIT_SUCCESS;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user