diff options
author | Christian Hesse | 2017-07-24 17:22:52 +0200 |
---|---|---|
committer | Lukas Fleischer | 2017-08-10 15:15:54 +0200 |
commit | 3d33b46df24d4dee140d0aafb1eba5fffa314cf0 (patch) | |
tree | 86086c5ca8dfe17322ced822e7c313fd09337824 | |
parent | Update .mailmap with my new email address (diff) | |
download | cgit-3d33b46df24d4dee140d0aafb1eba5fffa314cf0.tar.gz cgit-3d33b46df24d4dee140d0aafb1eba5fffa314cf0.zip |
git: update to v2.13.4
Update to git version v2.13.4: With commit 8aee769f (pathspec: copy and free owned memory) the definition of struct pathspec_item has changed with the expectation that pathspecs will be managed dynamically. We work around this a bit by setting up a static structure, but let's allocate the match string to avoid needing to cast away const. Updated a patch from John Keeping <john@keeping.me.uk> for git v2.12.1.
-rw-r--r-- | Makefile | 2 | ||||
m--------- | git | 0 | ||||
-rw-r--r-- | shared.c | 4 | ||||
-rw-r--r-- | ui-blob.c | 9 |
4 files changed, 10 insertions, 5 deletions
diff --git a/Makefile b/Makefile index fe6cc98..3d792ce 100644 --- a/Makefile +++ b/Makefile | |||
@@ -14,7 +14,7 @@ htmldir = $(docdir) | |||
14 | pdfdir = $(docdir) | 14 | pdfdir = $(docdir) |
15 | mandir = $(prefix)/share/man | 15 | mandir = $(prefix)/share/man |
16 | SHA1_HEADER = <openssl/sha.h> | 16 | SHA1_HEADER = <openssl/sha.h> |
17 | GIT_VER = 2.11.0 | 17 | GIT_VER = 2.13.4 |
18 | GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz | 18 | GIT_URL = https://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.gz |
19 | INSTALL = install | 19 | INSTALL = install |
20 | COPYTREE = cp -r | 20 | COPYTREE = cp -r |
diff --git a/git b/git | |||
Subproject 454cb6bd52a4de614a3633e4f547af03d5c3b64 | Subproject cf8899d285d2648013040ec7196ffd3de060666 | ||
diff --git a/shared.c b/shared.c index c63f1e3..13a65a9 100644 --- a/shared.c +++ b/shared.c | |||
@@ -352,7 +352,7 @@ void cgit_diff_tree(const struct object_id *old_oid, | |||
352 | opt.format_callback = cgit_diff_tree_cb; | 352 | opt.format_callback = cgit_diff_tree_cb; |
353 | opt.format_callback_data = fn; | 353 | opt.format_callback_data = fn; |
354 | if (prefix) { | 354 | if (prefix) { |
355 | item.match = prefix; | 355 | item.match = xstrdup(prefix); |
356 | item.len = strlen(prefix); | 356 | item.len = strlen(prefix); |
357 | opt.pathspec.nr = 1; | 357 | opt.pathspec.nr = 1; |
358 | opt.pathspec.items = &item; | 358 | opt.pathspec.items = &item; |
@@ -365,6 +365,8 @@ void cgit_diff_tree(const struct object_id *old_oid, | |||
365 | diff_root_tree_sha1(new_oid->hash, "", &opt); | 365 | diff_root_tree_sha1(new_oid->hash, "", &opt); |
366 | diffcore_std(&opt); | 366 | diffcore_std(&opt); |
367 | diff_flush(&opt); | 367 | diff_flush(&opt); |
368 | |||
369 | free(item.match); | ||
368 | } | 370 | } |
369 | 371 | ||
370 | void cgit_diff_commit(struct commit *commit, filepair_fn fn, const char *prefix) | 372 | void cgit_diff_commit(struct commit *commit, filepair_fn fn, const char *prefix) |
diff --git a/ui-blob.c b/ui-blob.c index 5f30de7..793817f 100644 --- a/ui-blob.c +++ b/ui-blob.c | |||
@@ -38,7 +38,7 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) | |||
38 | struct object_id oid; | 38 | struct object_id oid; |
39 | unsigned long size; | 39 | unsigned long size; |
40 | struct pathspec_item path_items = { | 40 | struct pathspec_item path_items = { |
41 | .match = path, | 41 | .match = xstrdup(path), |
42 | .len = strlen(path) | 42 | .len = strlen(path) |
43 | }; | 43 | }; |
44 | struct pathspec paths = { | 44 | struct pathspec paths = { |
@@ -53,10 +53,13 @@ int cgit_ref_path_exists(const char *path, const char *ref, int file_only) | |||
53 | }; | 53 | }; |
54 | 54 | ||
55 | if (get_oid(ref, &oid)) | 55 | if (get_oid(ref, &oid)) |
56 | return 0; | 56 | goto done; |
57 | if (sha1_object_info(oid.hash, &size) != OBJ_COMMIT) | 57 | if (sha1_object_info(oid.hash, &size) != OBJ_COMMIT) |
58 | return 0; | 58 | goto done; |
59 | read_tree_recursive(lookup_commit_reference(oid.hash)->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); | 59 | read_tree_recursive(lookup_commit_reference(oid.hash)->tree, "", 0, 0, &paths, walk_tree, &walk_tree_ctx); |
60 | |||
61 | done: | ||
62 | free(path_items.match); | ||
60 | return walk_tree_ctx.found_path; | 63 | return walk_tree_ctx.found_path; |
61 | } | 64 | } |
62 | 65 | ||