commit 493193d1c0a72a8d91b9c3cfcca7059bff36a25f
parent 766d34f3045c4e47f4d6a656a38a644d05d7429f
Author: Chris Bracken <chris@bracken.jp>
Date: Tue, 17 Feb 2026 18:29:01 +0900
repo: make submodules,readme,license owned copies
Diffstat:
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/git/repo.c b/src/git/repo.c
@@ -32,9 +32,9 @@ struct GitRepo {
char* owner;
char* description;
char* clone_url;
- const char* submodules;
- const char* readme;
- const char* license;
+ char* submodules;
+ char* readme;
+ char* license;
git_repository* repo;
};
@@ -262,10 +262,10 @@ void gitrepo_load_metadata(GitRepo* repo, const char* path) {
repo->description = first_line_of_file(desc_path);
repo->clone_url = first_line_of_file(url_path);
repo->submodules =
- gitrepo_has_blob(repo->repo, "HEAD:.gitmodules") ? ".gitmodules" : "";
- repo->readme = gitrepo_first_matching_file(repo->repo, kReadmes, kReadmesLen);
+ estrdup(gitrepo_has_blob(repo->repo, "HEAD:.gitmodules") ? ".gitmodules" : "");
+ repo->readme = estrdup(gitrepo_first_matching_file(repo->repo, kReadmes, kReadmesLen));
repo->license =
- gitrepo_first_matching_file(repo->repo, kLicenses, kLicensesLen);
+ estrdup(gitrepo_first_matching_file(repo->repo, kLicenses, kLicensesLen));
free(repo_path);
free(git_path);
@@ -301,6 +301,12 @@ void gitrepo_free(GitRepo* repo) {
repo->description = NULL;
free(repo->clone_url);
repo->clone_url = NULL;
+ free(repo->submodules);
+ repo->submodules = NULL;
+ free(repo->readme);
+ repo->readme = NULL;
+ free(repo->license);
+ repo->license = NULL;
git_repository_free(repo->repo);
repo->repo = NULL;
free(repo);