aboutsummaryrefslogtreecommitdiff
path: root/shared.c
diff options
context:
space:
mode:
authorChristian Hesse <mail@eworm.de>2023-05-16 15:02:27 +0000
committerChristian Hesse <mail@eworm.de>2023-06-01 10:00:43 +0000
commita6da40bf84527cbe77d1ec504e1fefb982b9a52a (patch)
treeb660336cbb902f7024daf8fe27a577fb15d23158 /shared.c
parent0e6744b3082f576be21dd1b88f519a3c1f7d3931 (diff)
downloadcgit-a6da40bf84527cbe77d1ec504e1fefb982b9a52a.tar
cgit-a6da40bf84527cbe77d1ec504e1fefb982b9a52a.tar.gz
cgit-a6da40bf84527cbe77d1ec504e1fefb982b9a52a.zip
git: update to v2.41.0ch/git-2-41ch/for-jason
Update to git version v2.41.0, with lots of changes... This requires changes for these upstream commits: * 60ff56f50372c1498718938ef504e744fe011ffb banned.h: mark `strtok()` and `strtok_r()` as banned * 52acddf36c8cb3778ab2098a0d95cc2e375a4069 string-list: multi-delimiter `string_list_split_in_place()` * d850b7a545fcfbd97460a921c7f7c59d933eb0f7 cocci: apply the "cache.h" part of "the_repository.pending" * cb338c23d6d518947bf6f7240bf30e2ec232bd3b cocci: apply the "commit-reach.h" part of "the_repository.pending" * ecb5091fd4301ac647db0bd2504112b38f7ee06d cocci: apply the "commit.h" part of "the_repository.pending" * 085390328f5fe1dfba67039b1fd6cc51546a4e41 cocci: apply the "diff.h" part of "the_repository.pending" * bc726bd075929aab6b3e09d4dd5c2b0726fd5350 cocci: apply the "object-store.h" part of "the_repository.pending" * bab821646a74c446370fa8d01ca851f247df5033 cocci: apply the "pretty.h" part of "the_repository.pending" * afe27c889429438829bc8818ed17e4960bd3ef02 cocci: apply the "packfile.h" part of "the_repository.pending" * 12cb1c10a64170a5d600dd1c6c8abfeec105fb6b cocci: apply the "refs.h" part of "the_repository.pending" * 035c7de9e9ea11d26df5f9e4bb117f91ed11a9fd cocci: apply the "revision.h" part of "the_repository.pending" ... and some more I missed to list 😜 - for example the move and cleanup of headers and includes (see changes in `cgit.h`) comes to mind... Signed-off-by: Christian Hesse <mail@eworm.de>
Diffstat (limited to 'shared.c')
-rw-r--r--shared.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/shared.c b/shared.c
index 0bceb98..26b6ddb 100644
--- a/shared.c
+++ b/shared.c
@@ -241,7 +241,7 @@ static int load_mmfile(mmfile_t *file, const struct object_id *oid)
file->ptr = (char *)"";
file->size = 0;
} else {
- file->ptr = read_object_file(oid, &type,
+ file->ptr = repo_read_object_file(the_repository, oid, &type,
(unsigned long *)&file->size);
}
return 1;
@@ -343,7 +343,7 @@ void cgit_diff_tree(const struct object_id *old_oid,
struct diff_options opt;
struct pathspec_item *item;
- diff_setup(&opt);
+ repo_diff_setup(the_repository, &opt);
opt.output_format = DIFF_FORMAT_CALLBACK;
opt.detect_rename = 1;
opt.rename_limit = ctx.cfg.renamelimit;
@@ -539,7 +539,9 @@ char *expand_macros(const char *txt)
char *get_mimetype_for_filename(const char *filename)
{
- char *ext, *mimetype, *token, line[1024], *saveptr;
+ char *ext, *mimetype, line[1024];
+ struct string_list list = STRING_LIST_INIT_NODUP;
+ int i;
FILE *file;
struct string_list_item *mime;
@@ -564,13 +566,16 @@ char *get_mimetype_for_filename(const char *filename)
while (fgets(line, sizeof(line), file)) {
if (!line[0] || line[0] == '#')
continue;
- mimetype = strtok_r(line, " \t\r\n", &saveptr);
- while ((token = strtok_r(NULL, " \t\r\n", &saveptr))) {
- if (!strcasecmp(ext, token)) {
+ string_list_split_in_place(&list, line, " \t\r\n", -1);
+ string_list_remove_empty_items(&list, 0);
+ mimetype = list.items[0].string;
+ for (i = 1; i < list.nr; i++) {
+ if (!strcasecmp(ext, list.items[i].string)) {
fclose(file);
return xstrdup(mimetype);
}
}
+ string_list_clear(&list, 0);
}
fclose(file);
return NULL;