ctucx.git: stagit

ctucx' stagit fork

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
2 files changed, 21 insertions(+), 16 deletions(-)
M
stagit-index.c
|
14
+++++++-------
M
stagit.c
|
23
++++++++++++++---------
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",