Fix warnings and merge issues on Win64

This commit is contained in:
Russell Belfer 2012-08-23 09:20:17 -07:00
parent 85bd174626
commit e9ca852e4d
12 changed files with 30 additions and 43 deletions

View File

@ -466,6 +466,11 @@ GIT_EXTERN(void) git_repository_set_index(git_repository *repo, git_index *index
* *
* Use this function to get the contents of this file. Don't forget to * Use this function to get the contents of this file. Don't forget to
* remove the file after you create the commit. * remove the file after you create the commit.
*
* @param buffer Buffer to write data into or NULL to just read required size
* @param len Length of buffer in bytes
* @param repo Repository to read prepared message from
* @return Bytes written to buffer, GIT_ENOTFOUND if no message, or -1 on error
*/ */
GIT_EXTERN(int) git_repository_message(char *buffer, size_t len, git_repository *repo); GIT_EXTERN(int) git_repository_message(char *buffer, size_t len, git_repository *repo);

View File

@ -82,5 +82,5 @@ int git_message_prettify(char *message_out, size_t buffer_size, const char *mess
done: done:
git_buf_free(&buf); git_buf_free(&buf);
return out_size; return (int)out_size;
} }

View File

@ -1328,39 +1328,27 @@ int git_repository_message(char *buffer, size_t len, git_repository *repo)
{ {
git_buf buf = GIT_BUF_INIT, path = GIT_BUF_INIT; git_buf buf = GIT_BUF_INIT, path = GIT_BUF_INIT;
struct stat st; struct stat st;
ssize_t size;
int error; int error;
if (git_buf_joinpath(&path, repo->path_repository, MERGE_MSG_FILE) < 0) if (git_buf_joinpath(&path, repo->path_repository, MERGE_MSG_FILE) < 0)
return -1; return -1;
error = p_stat(git_buf_cstr(&path), &st); if ((error = p_stat(git_buf_cstr(&path), &st)) < 0) {
if (error < 0) {
if (errno == ENOENT) if (errno == ENOENT)
error = GIT_ENOTFOUND; error = GIT_ENOTFOUND;
git_buf_free(&path);
return error;
} }
else if (buffer != NULL) {
if (buffer == NULL) { error = git_futils_readbuffer(&buf, git_buf_cstr(&path));
git_buf_free(&path); git_buf_copy_cstr(buffer, len, &buf);
return (int)st.st_size;
} }
if (git_futils_readbuffer(&buf, git_buf_cstr(&path)) < 0)
goto on_error;
memcpy(buffer, git_buf_cstr(&buf), len);
size = git_buf_len(&buf);
git_buf_free(&path); git_buf_free(&path);
git_buf_free(&buf); git_buf_free(&buf);
return size;
on_error: if (!error)
git_buf_free(&path); error = (int)st.st_size + 1; /* add 1 for NUL byte */
return -1;
return error;
} }
int git_repository_message_remove(git_repository *repo) int git_repository_message_remove(git_repository *repo)

View File

@ -233,7 +233,7 @@ static int http_recv_cb(gitno_buffer *buf)
if (t->error < 0) if (t->error < 0)
return t->error; return t->error;
return buf->offset - old_len; return (int)(buf->offset - old_len);
} }
/* Set up the gitno_buffer so calling gitno_recv() grabs data from the HTTP response */ /* Set up the gitno_buffer so calling gitno_recv() grabs data from the HTTP response */

View File

@ -19,14 +19,6 @@ GIT_INLINE(int) p_link(const char *old, const char *new)
return -1; return -1;
} }
GIT_INLINE(int) p_symlink(const char *old, const char *new)
{
GIT_UNUSED(old);
GIT_UNUSED(new);
errno = ENOSYS;
return -1;
}
GIT_INLINE(int) p_mkdir(const char *path, mode_t mode) GIT_INLINE(int) p_mkdir(const char *path, mode_t mode)
{ {
wchar_t* buf = gitwin_to_utf16(path); wchar_t* buf = gitwin_to_utf16(path);

View File

@ -33,7 +33,7 @@ static void test_file_contents(const char *path, const char *expectedcontents)
actuallen = p_read(fd, buffer, 1024); actuallen = p_read(fd, buffer, 1024);
cl_git_pass(p_close(fd)); cl_git_pass(p_close(fd));
cl_assert_equal_i(actuallen, expectedlen); cl_assert_equal_sz(actuallen, expectedlen);
cl_assert_equal_s(buffer, expectedcontents); cl_assert_equal_s(buffer, expectedcontents);
} }

View File

@ -25,6 +25,8 @@
*/ */
#define cl_git_fail(expr) cl_must_fail(expr) #define cl_git_fail(expr) cl_must_fail(expr)
#define cl_assert_equal_sz(sz1,sz2) cl_assert((sz1) == (sz2))
/* /*
* Some utility macros for building long strings * Some utility macros for building long strings
*/ */

View File

@ -665,7 +665,7 @@ static void assert_unescape(char *expected, char *to_unescape) {
cl_git_pass(git_buf_sets(&buf, to_unescape)); cl_git_pass(git_buf_sets(&buf, to_unescape));
git_buf_unescape(&buf); git_buf_unescape(&buf);
cl_assert_equal_s(expected, buf.ptr); cl_assert_equal_s(expected, buf.ptr);
cl_assert_equal_i(strlen(expected), buf.size); cl_assert_equal_sz(strlen(expected), buf.size);
git_buf_free(&buf); git_buf_free(&buf);
} }

View File

@ -36,7 +36,7 @@ void test_refs_list__all(void)
/* We have exactly 9 refs in total if we include the packed ones: /* We have exactly 9 refs in total if we include the packed ones:
* there is a reference that exists both in the packfile and as * there is a reference that exists both in the packfile and as
* loose, but we only list it once */ * loose, but we only list it once */
cl_assert_equal_i(ref_list.count, 10); cl_assert_equal_i((int)ref_list.count, 10);
git_strarray_free(&ref_list); git_strarray_free(&ref_list);
} }

View File

@ -44,7 +44,7 @@ static const unsigned int entry_statuses0[] = {
GIT_STATUS_WT_NEW, GIT_STATUS_WT_NEW,
}; };
static const size_t entry_count0 = 16; static const int entry_count0 = 16;
/* entries for a copy of tests/resources/status with all content /* entries for a copy of tests/resources/status with all content
* deleted from the working directory * deleted from the working directory
@ -86,7 +86,7 @@ static const unsigned int entry_statuses2[] = {
GIT_STATUS_WT_DELETED, GIT_STATUS_WT_DELETED,
}; };
static const size_t entry_count2 = 15; static const int entry_count2 = 15;
/* entries for a copy of tests/resources/status with some mods */ /* entries for a copy of tests/resources/status with some mods */
@ -140,7 +140,7 @@ static const unsigned int entry_statuses3[] = {
GIT_STATUS_WT_NEW, GIT_STATUS_WT_NEW,
}; };
static const size_t entry_count3 = 22; static const int entry_count3 = 22;
/* entries for a copy of tests/resources/status with some mods /* entries for a copy of tests/resources/status with some mods
@ -199,4 +199,4 @@ static const unsigned int entry_statuses4[] = {
GIT_STATUS_WT_NEW, GIT_STATUS_WT_NEW,
}; };
static const size_t entry_count4 = 23; static const int entry_count4 = 23;

View File

@ -2,12 +2,12 @@
#define INCLUDE_cl_status_helpers_h__ #define INCLUDE_cl_status_helpers_h__
typedef struct { typedef struct {
size_t wrong_status_flags_count; int wrong_status_flags_count;
size_t wrong_sorted_path; int wrong_sorted_path;
size_t entry_count; int entry_count;
const unsigned int* expected_statuses; const unsigned int* expected_statuses;
const char** expected_paths; const char** expected_paths;
size_t expected_entry_count; int expected_entry_count;
} status_entry_counts; } status_entry_counts;
/* cb_status__normal takes payload of "status_entry_counts *" */ /* cb_status__normal takes payload of "status_entry_counts *" */

View File

@ -683,7 +683,7 @@ static unsigned int filemode_statuses[] = {
GIT_STATUS_WT_NEW GIT_STATUS_WT_NEW
}; };
static const size_t filemode_count = 8; static const int filemode_count = 8;
void test_status_worktree__filemode_changes(void) void test_status_worktree__filemode_changes(void)
{ {
@ -697,7 +697,7 @@ void test_status_worktree__filemode_changes(void)
if (cl_is_chmod_supported()) if (cl_is_chmod_supported())
cl_git_pass(git_config_set_bool(cfg, "core.filemode", true)); cl_git_pass(git_config_set_bool(cfg, "core.filemode", true));
else { else {
unsigned int i; int i;
cl_git_pass(git_config_set_bool(cfg, "core.filemode", false)); cl_git_pass(git_config_set_bool(cfg, "core.filemode", false));
/* won't trust filesystem mode diffs, so these will appear unchanged */ /* won't trust filesystem mode diffs, so these will appear unchanged */