stagit

static git page generator (pmc local branch)
Log | Files | Refs | README | LICENSE

commit ede4982f67f54904a1be6de77c6db033d56b0a34
parent db02820a175c43cf1c225928bc09dd3fd5d93d71
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Wed,  6 Jan 2016 20:00:38 +0100

strip .git suffix from name

also free stripped_name in the case of stagit-index

Diffstat:
Mstagit-index.c | 14+++++++-------
Mstagit.c | 23++++++++++++++---------
2 files changed, 21 insertions(+), 16 deletions(-)

diff --git a/stagit-index.c b/stagit-index.c @@ -118,13 +118,13 @@ writeheader(FILE *fp) int writefooter(FILE *fp) { - return !fputs("</tbody></table></div></body>\n</html>", fp); + return !fputs("</tbody>\n</table>\n</div>\n</body>\n</html>\n", fp); } int writelog(FILE *fp) { - char *stripped_name, *p; + char *stripped_name = NULL, *p; git_commit *commit = NULL; const git_signature *author; git_revwalk *w = NULL; @@ -144,18 +144,17 @@ writelog(FILE *fp) author = git_commit_author(commit); - fputs("<tr><td><a href=\"", fp); - xmlencode(fp, name, strlen(name)); - fputs("/log.html\">", fp); - /* strip .git suffix */ if (!(stripped_name = strdup(name))) err(1, "strdup"); if ((p = strrchr(stripped_name, '.'))) if (!strcmp(p, ".git")) *p = '\0'; - xmlencode(fp, stripped_name, strlen(stripped_name)); + fputs("<tr><td><a href=\"", fp); + xmlencode(fp, stripped_name, strlen(stripped_name)); + fputs("/log.html\">", fp); + xmlencode(fp, stripped_name, strlen(stripped_name)); fputs("</a></td><td>", fp); xmlencode(fp, description, strlen(description)); fputs("</td><td>", fp); @@ -168,6 +167,7 @@ writelog(FILE *fp) git_commit_free(commit); err: git_revwalk_free(w); + free(stripped_name); return ret; } diff --git a/stagit.c b/stagit.c @@ -42,7 +42,8 @@ static git_repository *repo; static const char *relpath = ""; static const char *repodir; -static char name[255]; +static char *name; +static char *stripped_name; static char description[255]; static char cloneurl[1024]; static int hasreadme, haslicense; @@ -239,7 +240,7 @@ writeheader(FILE *fp) "<html dir=\"ltr\" lang=\"en\">\n<head>\n" "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n" "<meta http-equiv=\"Content-Language\" content=\"en\" />\n<title>", fp); - xmlencode(fp, name, strlen(name)); + xmlencode(fp, stripped_name, strlen(stripped_name)); if (description[0]) fputs(" - ", fp); xmlencode(fp, description, strlen(description)); @@ -251,7 +252,7 @@ writeheader(FILE *fp) fprintf(fp, "<a href=\"../%s\"><img src=\"%slogo.png\" alt=\"\" width=\"32\" height=\"32\" /></a>", relpath, relpath); fputs("</td><td><h1>", fp); - xmlencode(fp, name, strlen(name)); + xmlencode(fp, stripped_name, strlen(stripped_name)); fputs("</h1><span class=\"desc\">", fp); xmlencode(fp, description, strlen(description)); fputs("</span></td></tr>", fp); @@ -553,9 +554,8 @@ writeatom(FILE *fp) fputs("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" "<feed xmlns=\"http://www.w3.org/2005/Atom\">\n<title>", fp); - xmlencode(fp, name, strlen(name)); - fputs(", branch master</title>\n<subtitle>", fp); - + xmlencode(fp, stripped_name, strlen(stripped_name)); + fputs(", branch HEAD</title>\n<subtitle>", fp); xmlencode(fp, description, strlen(description)); fputs("</subtitle>\n", fp); @@ -914,9 +914,14 @@ main(int argc, char *argv[]) } /* use directory name as name */ - p = xbasename(repodir); - snprintf(name, sizeof(name), "%s", p); - free(p); + name = xbasename(repodir); + + /* strip .git suffix */ + if (!(stripped_name = strdup(name))) + err(1, "strdup"); + if ((p = strrchr(stripped_name, '.'))) + if (!strcmp(p, ".git")) + *p = '\0'; /* read description or .git/description */ snprintf(path, sizeof(path), "%s%s%s",