summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/checkout.c10
-rw-r--r--src/diff_output.c11
-rw-r--r--src/notes.c2
-rw-r--r--src/refs.c2
-rw-r--r--src/transports/winhttp.c2
-rw-r--r--tests-clar/clar_libgit2.c16
-rw-r--r--tests-clar/core/env.c2
7 files changed, 28 insertions, 17 deletions
diff --git a/src/checkout.c b/src/checkout.c
index 0ce283beb..59cd218a9 100644
--- a/src/checkout.c
+++ b/src/checkout.c
@@ -64,6 +64,7 @@ static int checkout_notify(
{
git_diff_file wdfile;
const git_diff_file *baseline = NULL, *target = NULL, *workdir = NULL;
+ const char *path = NULL;
if (!data->opts.notify_cb)
return 0;
@@ -81,6 +82,8 @@ static int checkout_notify(
wdfile.mode = wditem->mode;
workdir = &wdfile;
+
+ path = wditem->path;
}
if (delta) {
@@ -101,11 +104,12 @@ static int checkout_notify(
baseline = &delta->old_file;
break;
}
+
+ path = delta->old_file.path;
}
return data->opts.notify_cb(
- why, delta ? delta->old_file.path : wditem->path,
- baseline, target, workdir, data->opts.notify_payload);
+ why, path, baseline, target, workdir, data->opts.notify_payload);
}
static bool checkout_is_workdir_modified(
@@ -683,7 +687,7 @@ static int blob_content_to_file(
{
int error = -1, nb_filters = 0;
mode_t file_mode = opts->file_mode;
- bool dont_free_filtered = false;
+ bool dont_free_filtered;
git_buf unfiltered = GIT_BUF_INIT, filtered = GIT_BUF_INIT;
git_vector filters = GIT_VECTOR_INIT;
diff --git a/src/diff_output.c b/src/diff_output.c
index 26b073aad..88ccc9d45 100644
--- a/src/diff_output.c
+++ b/src/diff_output.c
@@ -1280,14 +1280,15 @@ static void set_data_from_buffer(
{
file->size = (git_off_t)buffer_len;
file->mode = 0644;
+ map->len = buffer_len;
- if (!buffer)
+ if (!buffer) {
file->flags |= GIT_DIFF_FILE_NO_DATA;
- else
+ map->data = NULL;
+ } else {
+ map->data = (char *)buffer;
git_odb_hash(&file->oid, buffer, buffer_len, GIT_OBJ_BLOB);
-
- map->len = buffer_len;
- map->data = (char *)buffer;
+ }
}
typedef struct {
diff --git a/src/notes.c b/src/notes.c
index eff80bc82..f5537db3f 100644
--- a/src/notes.c
+++ b/src/notes.c
@@ -147,7 +147,7 @@ static int manipulate_note_in_tree_r(
int fanout,
int current_error))
{
- int error = -1;
+ int error;
git_tree *subtree = NULL, *new = NULL;
char subtree_name[3];
diff --git a/src/refs.c b/src/refs.c
index 7dabfefae..866c230e6 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -1493,7 +1493,7 @@ int git_reference_foreach(
/* list all the packed references first */
if (list_flags & GIT_REF_PACKED) {
const char *ref_name;
- void *ref;
+ void *ref = NULL;
GIT_UNUSED(ref);
if (packed_load(repo) < 0)
diff --git a/src/transports/winhttp.c b/src/transports/winhttp.c
index 64bfece34..970fa53bd 100644
--- a/src/transports/winhttp.c
+++ b/src/transports/winhttp.c
@@ -88,7 +88,7 @@ static int apply_basic_credential(HINTERNET request, git_cred *cred)
git_cred_userpass_plaintext *c = (git_cred_userpass_plaintext *)cred;
git_buf buf = GIT_BUF_INIT, raw = GIT_BUF_INIT;
wchar_t *wide = NULL;
- int error = -1, wide_len;
+ int error = -1, wide_len = 0;
git_buf_printf(&raw, "%s:%s", c->username, c->password);
diff --git a/tests-clar/clar_libgit2.c b/tests-clar/clar_libgit2.c
index 63efd5954..698aa90f0 100644
--- a/tests-clar/clar_libgit2.c
+++ b/tests-clar/clar_libgit2.c
@@ -86,14 +86,18 @@ int cl_setenv(const char *name, const char *value)
git__utf8_to_16(name_utf16, GIT_WIN_PATH, name);
- if (value != NULL)
+ if (value) {
git__utf8_to_16(value_utf16, GIT_WIN_PATH, value);
+ cl_assert(SetEnvironmentVariableW(name_utf16, value_utf16));
+ } else {
+ /* Windows XP returns 0 (failed) when passing NULL for lpValue when
+ * lpName does not exist in the environment block. This behavior
+ * seems to have changed in later versions. Don't check return value
+ * of SetEnvironmentVariable when passing NULL for lpValue.
+ */
+ SetEnvironmentVariableW(name_utf16, NULL);
+ }
- /* Windows XP returns 0 (failed) when passing NULL for lpValue when lpName
- * does not exist in the environment block. This behavior seems to have changed
- * in later versions. Don't fail when SetEnvironmentVariable fails, if we passed
- * NULL for lpValue. */
- cl_assert(SetEnvironmentVariableW(name_utf16, value ? value_utf16 : NULL) || !value);
return 0;
}
diff --git a/tests-clar/core/env.c b/tests-clar/core/env.c
index fa48de17e..2f5e91f71 100644
--- a/tests-clar/core/env.c
+++ b/tests-clar/core/env.c
@@ -74,6 +74,8 @@ void test_core_env__0(void)
char **val;
memset(testfile, 0, sizeof(testfile));
+ cl_assert_equal_s("", testfile);
+
memcpy(testfile, "testfile", 8);
cl_assert_equal_s("testfile", testfile);