gout

A static git page generator
git clone https://git.bracken.jp/gout.git
Log | Files | Refs | README | LICENSE

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:
Msrc/git/repo.c | 18++++++++++++------
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);