strip .git suffix from name - stagit-gopher - A git gopher frontend. (mirror)
git clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/
Log
Files
Refs
Tags
README
LICENSE
---
commit ede4982f67f54904a1be6de77c6db033d56b0a34
parent db02820a175c43cf1c225928bc09dd3fd5d93d71
Author: Hiltjo Posthuma 
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
@@ -118,13 +118,13 @@ writeheader(FILE *fp)
 int
 writefooter(FILE *fp)
 {
-        return !fputs("
\n", fp); + return !fputs("\n\n\n\n\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("", 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("", fp); + xmlencode(fp, stripped_name, strlen(stripped_name)); fputs("", fp); xmlencode(fp, description, strlen(description)); fputs("", 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)
                 "\n\n"
                 "\n"
                 "\n", 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\n", fp);
-
+        xmlencode(fp, stripped_name, strlen(stripped_name));
+        fputs(", branch HEAD\n", fp);
         xmlencode(fp, description, strlen(description));
         fputs("\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",