Introduction
Introduction Statistics Contact Development Disclaimer Help
tfix file tree handling - stagit - static git page generator
git clone git://src.adamsgaard.dk/stagit
Log
Files
Refs
README
LICENSE
---
commit 502b95ce68ef3e08fb536a0d22c267dcd3e9c7fc
parent 9693d1d1a965006c14d43a8e73aa9cc4f512e75f
Author: Quentin Rameau <[email protected]>
Date: Mon, 18 Jan 2016 12:47:25 +0100
fix file tree handling
Do not forget to keep previous path when recursing or we end up with
filenames only.
Diffstat:
M stagit.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
---
diff --git a/stagit.c b/stagit.c
t@@ -662,8 +662,8 @@ int
writefilestree(FILE *fp, git_tree *tree, const char *branch, const char *path)
{
const git_tree_entry *entry = NULL;
- const char *filename;
- char filepath[PATH_MAX];
+ const char *entryname;
+ char filepath[PATH_MAX], entrypath[PATH_MAX];
git_object *obj = NULL;
git_off_t filesize;
size_t count, i;
t@@ -674,14 +674,16 @@ writefilestree(FILE *fp, git_tree *tree, const char *bra…
if (!(entry = git_tree_entry_byindex(tree, i)) ||
git_tree_entry_to_object(&obj, repo, entry))
return -1;
- filename = git_tree_entry_name(entry);
+ entryname = git_tree_entry_name(entry);
+ snprintf(entrypath, sizeof(entrypath), "%s%s%s",
+ path, path[0] ? "/" : "", entryname);
switch (git_object_type(obj)) {
case GIT_OBJ_BLOB:
break;
case GIT_OBJ_TREE:
/* NOTE: recurses */
ret = writefilestree(fp, (git_tree *)obj, branch,
- filename);
+ entrypath);
git_object_free(obj);
if (ret)
return ret;
t@@ -692,18 +694,18 @@ writefilestree(FILE *fp, git_tree *tree, const char *bra…
}
if (path[0])
snprintf(filepath, sizeof(filepath), "file/%s/%s.html",
- path, filename);
+ path, entryname);
else
snprintf(filepath, sizeof(filepath), "file/%s.html",
- filename);
+ entryname);
filesize = git_blob_rawsize((git_blob *)obj);
- lc = writeblob(obj, filepath, filename, filesize);
+ lc = writeblob(obj, filepath, entryname, filesize);
fputs("<tr><td>", fp);
fputs(filemode(git_tree_entry_filemode(entry)), fp);
fprintf(fp, "</td><td><a href=\"%s%s\">", relpath, filepath);
- xmlencode(fp, filename, strlen(filename));
+ xmlencode(fp, entrypath, strlen(entrypath));
fputs("</a></td><td class=\"num\">", fp);
if (showlinecount && lc > 0)
fprintf(fp, "%dL", lc);
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.