| tstrip .git suffix from name - stagit - static git page generator | |
| git clone git://src.adamsgaard.dk/stagit | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit ede4982f67f54904a1be6de77c6db033d56b0a34 | |
| parent db02820a175c43cf1c225928bc09dd3fd5d93d71 | |
| Author: Hiltjo Posthuma <[email protected]> | |
| 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: | |
| M stagit-index.c | 14 +++++++------- | |
| M stagit.c | 23 ++++++++++++++--------- | |
| 2 files changed, 21 insertions(+), 16 deletions(-) | |
| --- | |
| diff --git a/stagit-index.c b/stagit-index.c | |
| t@@ -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; | |
| t@@ -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); | |
| t@@ -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 | |
| t@@ -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; | |
| t@@ -239,7 +240,7 @@ writeheader(FILE *fp) | |
| "<html dir=\"ltr\" lang=\"en\">\n<head>\n" | |
| "<meta http-equiv=\"Content-Type\" content=\"text/html; charse… | |
| "<meta http-equiv=\"Content-Language\" content=\"en\" />\n<tit… | |
| - xmlencode(fp, name, strlen(name)); | |
| + xmlencode(fp, stripped_name, strlen(stripped_name)); | |
| if (description[0]) | |
| fputs(" - ", fp); | |
| xmlencode(fp, description, strlen(description)); | |
| t@@ -251,7 +252,7 @@ writeheader(FILE *fp) | |
| fprintf(fp, "<a href=\"../%s\"><img src=\"%slogo.png\" alt=\"\" width=… | |
| 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); | |
| t@@ -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); | |
| t@@ -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", |