SMOLNET PORTAL home about changes
ifixes for escaping and printing - stagit-gopher - A git gopher frontend. (mirror)	Err	bitreich.org	70
hgit clone git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/	URL:git://bitreich.org/stagit-gopher/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/stagit-gopher/	bitreich.org	70
1Log	/scm/stagit-gopher/log.gph	bitreich.org	70
1Files	/scm/stagit-gopher/files.gph	bitreich.org	70
1Refs	/scm/stagit-gopher/refs.gph	bitreich.org	70
1Tags	/scm/stagit-gopher/tag	bitreich.org	70
1README	/scm/stagit-gopher/file/README.gph	bitreich.org	70
1LICENSE	/scm/stagit-gopher/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit e46c746c435114ae3e7541ca93ffa7aacf4aaff3	/scm/stagit-gopher/commit/e46c746c435114ae3e7541ca93ffa7aacf4aaff3.gph	bitreich.org	70
1parent daa814e5c59ef7dcadfe779b46bd305e0d93f7a1	/scm/stagit-gopher/commit/daa814e5c59ef7dcadfe779b46bd305e0d93f7a1.gph	bitreich.org	70
hAuthor: Hiltjo Posthuma <hiltjo@codemadness.org>	URL:mailto:hiltjo@codemadness.org	bitreich.org	70
iDate:   Fri, 17 Nov 2017 16:06:51 +0100	Err	bitreich.org	70
i	Err	bitreich.org	70
ifixes for escaping and printing	Err	bitreich.org	70
i	Err	bitreich.org	70
i- if the index or project description is empty don't print an empty line.	Err	bitreich.org	70
i- escape | in gph links.	Err	bitreich.org	70
i- when a column is not set / empty print it aligned.	Err	bitreich.org	70
i- pad text, then print it escaped.	Err	bitreich.org	70
i- print left-aligned headers of last column in a simpler way.	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M stagit-gopher-index.c               |     107 ++++++++++++++++++++-----------	Err	bitreich.org	70
i  M stagit-gopher.c                     |     130 ++++++++++++++-----------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i2 files changed, 127 insertions(+), 110 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/stagit-gopher-index.c b/stagit-gopher-index.c	/scm/stagit-gopher/file/stagit-gopher-index.c.gph	bitreich.org	70
i@@ -25,17 +25,17 @@ static char *name = "";	Err	bitreich.org	70
i #define pledge(p1,p2) 0	Err	bitreich.org	70
i #endif	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/* print `len' columns of characters. If string is shorter pad the rest	Err	bitreich.org	70
i+/* format `len' columns of characters. If string is shorter pad the rest	Err	bitreich.org	70
i  * with characters `pad`. */	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-printutf8pad(FILE *fp, const char *s, size_t len, int pad)	Err	bitreich.org	70
i+int	Err	bitreich.org	70
i+utf8pad(char *buf, size_t bufsiz, const char *s, size_t len, int pad)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         wchar_t w;	Err	bitreich.org	70
i-        size_t col = 0, i, slen;	Err	bitreich.org	70
i+        size_t col = 0, i, slen, siz = 0;	Err	bitreich.org	70
i         int rl, wc;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (!len)	Err	bitreich.org	70
i-                return;	Err	bitreich.org	70
i+                return -1;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         slen = strlen(s);	Err	bitreich.org	70
i         for (i = 0; i < slen && col < len + 1; i += rl) {	Err	bitreich.org	70
i@@ -43,43 +43,74 @@ printutf8pad(FILE *fp, const char *s, size_t len, int pad)	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 if ((wc = wcwidth(w)) == -1)	Err	bitreich.org	70
i                         wc = 1;	Err	bitreich.org	70
i-                col += (size_t)wc;	Err	bitreich.org	70
i+                col += wc;	Err	bitreich.org	70
i                 if (col >= len && s[i + rl]) {	Err	bitreich.org	70
i-                        fputs("\xe2\x80\xa6", fp);	Err	bitreich.org	70
i+                        if (siz + 4 >= bufsiz)	Err	bitreich.org	70
i+                                return -1;	Err	bitreich.org	70
i+                        memcpy(&buf[siz], "\xe2\x80\xa6", 4);	Err	bitreich.org	70
i+                        return 0;	Err	bitreich.org	70
i+                }	Err	bitreich.org	70
i+                if (siz + rl + 1 >= bufsiz)	Err	bitreich.org	70
i+                        return -1;	Err	bitreich.org	70
i+                memcpy(&buf[siz], &s[i], rl);	Err	bitreich.org	70
i+                siz += rl;	Err	bitreich.org	70
i+                buf[siz] = '\0';	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        len -= col;	Err	bitreich.org	70
i+        if (siz + len + 1 >= bufsiz)	Err	bitreich.org	70
i+                return -1;	Err	bitreich.org	70
i+        memset(&buf[siz], pad, len);	Err	bitreich.org	70
i+        siz += len;	Err	bitreich.org	70
i+        buf[siz] = '\0';	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        return 0;	Err	bitreich.org	70
i+}	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+/* Escape characters in text in geomyidae .gph format,	Err	bitreich.org	70
i+   newlines are ignored */	Err	bitreich.org	70
i+void	Err	bitreich.org	70
i+gphtext(FILE *fp, const char *s, size_t len)	Err	bitreich.org	70
i+{	Err	bitreich.org	70
i+        size_t i;	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        for (i = 0; *s && i < len; i++) {	Err	bitreich.org	70
i+                switch (s[i]) {	Err	bitreich.org	70
i+                case '\r': /* ignore CR */	Err	bitreich.org	70
i+                case '\n': /* ignore LF */	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                case '\t':	Err	bitreich.org	70
i+                        fputs("        ", fp);	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                default:	Err	bitreich.org	70
i+                        fputc(s[i], fp);	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i-                fwrite(&s[i], 1, rl, fp);	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-        for (; col < len; col++)	Err	bitreich.org	70
i-                putc(pad, fp);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i+/* Escape characters in links in geomyidae .gph format */	Err	bitreich.org	70
i void	Err	bitreich.org	70
i-trim(char *buf, size_t bufsiz, const char *src)	Err	bitreich.org	70
i+gphlink(FILE *fp, const char *s, size_t len)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        size_t d = 0, i, len, s;	Err	bitreich.org	70
i+        size_t i;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        len = strlen(src);	Err	bitreich.org	70
i-        for (s = 0; s < len && d < bufsiz - 1; s++) {	Err	bitreich.org	70
i-                switch (src[s]) {	Err	bitreich.org	70
i+        for (i = 0; *s && i < len; i++) {	Err	bitreich.org	70
i+                switch (s[i]) {	Err	bitreich.org	70
i+                case '\r': /* ignore CR */	Err	bitreich.org	70
i+                case '\n': /* ignore LF */	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i                 case '\t':	Err	bitreich.org	70
i-                        if (d + 8 >= bufsiz - 1)	Err	bitreich.org	70
i-                                goto end;	Err	bitreich.org	70
i-                        for (i = 0; i < 8; i++)	Err	bitreich.org	70
i-                                buf[d++] = ' ';	Err	bitreich.org	70
i+                        fputs("        ", fp);	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i-                case '|':	Err	bitreich.org	70
i-                case '\n':	Err	bitreich.org	70
i-                case '\r':	Err	bitreich.org	70
i-                        buf[d++] = ' ';	Err	bitreich.org	70
i+                case '|': /* escape separators */	Err	bitreich.org	70
i+                        fputs("\\|", fp);	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 default:	Err	bitreich.org	70
i-                        buf[d++] = src[s];	Err	bitreich.org	70
i+                        fputc(s[i], fp);	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-end:	Err	bitreich.org	70
i-        buf[d] = '\0';	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i@@ -111,16 +142,15 @@ printtimeshort(FILE *fp, const git_time *intime)	Err	bitreich.org	70
i void	Err	bitreich.org	70
i writeheader(FILE *fp)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i-        char buf[256];	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        trim(buf, sizeof(buf), description);	Err	bitreich.org	70
i-        if (buf[0] == 't' || buf[0] == '[')	Err	bitreich.org	70
i-                fputc('t', fp);	Err	bitreich.org	70
i-        fprintf(fp, "%s\n\n", buf);	Err	bitreich.org	70
i+        if (description[0]) {	Err	bitreich.org	70
i+                putchar('t');	Err	bitreich.org	70
i+                gphtext(fp, description, strlen(description));	Err	bitreich.org	70
i+                fputs("\n\n", fp);	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         fprintf(fp, "%-20.20s  ", "Name");	Err	bitreich.org	70
i         fprintf(fp, "%-50.50s  ", "Description");	Err	bitreich.org	70
i-        fprintf(fp, "%-16.16s\n", "Last commit");	Err	bitreich.org	70
i+        fprintf(fp, "%s\n", "Last commit");	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i int	Err	bitreich.org	70
i@@ -155,16 +185,15 @@ writelog(FILE *fp)	Err	bitreich.org	70
i                         *p = '\0';	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         fputs("[1|", fp);	Err	bitreich.org	70
i-        trim(buf, sizeof(buf), stripped_name);	Err	bitreich.org	70
i-        printutf8pad(fp, buf, 20, ' ');	Err	bitreich.org	70
i+        utf8pad(buf, sizeof(buf), stripped_name, 20, ' ');	Err	bitreich.org	70
i+        gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i         fputs("  ", fp);	Err	bitreich.org	70
i-        trim(buf, sizeof(buf), description);	Err	bitreich.org	70
i-        printutf8pad(fp, buf, 50, ' ');	Err	bitreich.org	70
i+        utf8pad(buf, sizeof(buf), description, 50, ' ');	Err	bitreich.org	70
i+        gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i         fputs("  ", fp);	Err	bitreich.org	70
i         if (author)	Err	bitreich.org	70
i                 printtimeshort(fp, &(author->when));	Err	bitreich.org	70
i-        trim(buf, sizeof(buf), stripped_name);	Err	bitreich.org	70
i-        fprintf(fp, "|%s/%s/log.gph|server|port]\n", relpath, buf);	Err	bitreich.org	70
i+        fprintf(fp, "|%s/%s/log.gph|server|port]\n", relpath, stripped_name);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         git_commit_free(commit);	Err	bitreich.org	70
i err:	Err	bitreich.org	70
1diff --git a/stagit-gopher.c b/stagit-gopher.c	/scm/stagit-gopher/file/stagit-gopher.c.gph	bitreich.org	70
i@@ -69,17 +69,17 @@ static const char *cachefile;	Err	bitreich.org	70
i #define pledge(p1,p2) 0	Err	bitreich.org	70
i #endif	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-/* print `len' columns of characters. If string is shorter pad the rest	Err	bitreich.org	70
i+/* format `len' columns of characters. If string is shorter pad the rest	Err	bitreich.org	70
i  * with characters `pad`. */	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-printutf8pad(FILE *fp, const char *s, size_t len, int pad)	Err	bitreich.org	70
i+int	Err	bitreich.org	70
i+utf8pad(char *buf, size_t bufsiz, const char *s, size_t len, int pad)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         wchar_t w;	Err	bitreich.org	70
i-        size_t col = 0, i, slen;	Err	bitreich.org	70
i+        size_t col = 0, i, slen, siz = 0;	Err	bitreich.org	70
i         int rl, wc;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (!len)	Err	bitreich.org	70
i-                return;	Err	bitreich.org	70
i+                return -1;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         slen = strlen(s);	Err	bitreich.org	70
i         for (i = 0; i < slen && col < len + 1; i += rl) {	Err	bitreich.org	70
i@@ -87,15 +87,28 @@ printutf8pad(FILE *fp, const char *s, size_t len, int pad)	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 if ((wc = wcwidth(w)) == -1)	Err	bitreich.org	70
i                         wc = 1;	Err	bitreich.org	70
i-                col += (size_t)wc;	Err	bitreich.org	70
i+                col += wc;	Err	bitreich.org	70
i                 if (col >= len && s[i + rl]) {	Err	bitreich.org	70
i-                        fputs("\xe2\x80\xa6", fp);	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i+                        if (siz + 4 >= bufsiz)	Err	bitreich.org	70
i+                                return -1;	Err	bitreich.org	70
i+                        memcpy(&buf[siz], "\xe2\x80\xa6", 4);	Err	bitreich.org	70
i+                        return 0;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i-                fwrite(&s[i], 1, rl, fp);	Err	bitreich.org	70
i+                if (siz + rl + 1 >= bufsiz)	Err	bitreich.org	70
i+                        return -1;	Err	bitreich.org	70
i+                memcpy(&buf[siz], &s[i], rl);	Err	bitreich.org	70
i+                siz += rl;	Err	bitreich.org	70
i+                buf[siz] = '\0';	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i-        for (; col < len; col++)	Err	bitreich.org	70
i-                putc(pad, fp);	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        len -= col;	Err	bitreich.org	70
i+        if (siz + len + 1 >= bufsiz)	Err	bitreich.org	70
i+                return -1;	Err	bitreich.org	70
i+        memset(&buf[siz], pad, len);	Err	bitreich.org	70
i+        siz += len;	Err	bitreich.org	70
i+        buf[siz] = '\0';	Err	bitreich.org	70
i+	Err	bitreich.org	70
i+        return 0;	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
i@@ -277,35 +290,6 @@ xmlencode(FILE *fp, const char *s, size_t len)	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-void	Err	bitreich.org	70
i-trim(char *buf, size_t bufsiz, const char *src)	Err	bitreich.org	70
i-{	Err	bitreich.org	70
i-        size_t d = 0, i, len, s;	Err	bitreich.org	70
i-	Err	bitreich.org	70
i-        len = strlen(src);	Err	bitreich.org	70
i-        for (s = 0; s < len && d < bufsiz - 1; s++) {	Err	bitreich.org	70
i-                switch (src[s]) {	Err	bitreich.org	70
i-                case '\t':	Err	bitreich.org	70
i-                        if (d + 8 >= bufsiz - 1)	Err	bitreich.org	70
i-                                goto end;	Err	bitreich.org	70
i-                        for (i = 0; i < 8; i++)	Err	bitreich.org	70
i-                                buf[d++] = ' ';	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i-                case '\r': /* ignore CR */	Err	bitreich.org	70
i-                case '|': /* ignore separators here */	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i-                case '\n':	Err	bitreich.org	70
i-                        buf[d++] = ' ';	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i-                default:	Err	bitreich.org	70
i-                        buf[d++] = src[s];	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i-                }	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-end:	Err	bitreich.org	70
i-        buf[d] = '\0';	Err	bitreich.org	70
i-}	Err	bitreich.org	70
i-	Err	bitreich.org	70
i /* Escape characters in text in geomyidae .gph format, with newlines */	Err	bitreich.org	70
i void	Err	bitreich.org	70
i gphtextnl(FILE *fp, const char *s, size_t len)	Err	bitreich.org	70
i@@ -316,7 +300,7 @@ gphtextnl(FILE *fp, const char *s, size_t len)	Err	bitreich.org	70
i                 if (s[i] == '\n')	Err	bitreich.org	70
i                         n = 0;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-                /* escape 't' at the start of a line */	Err	bitreich.org	70
i+                /* escape with 't' at the start of a line */	Err	bitreich.org	70
i                 if (!n && (s[i] == 't' || s[i] == '[')) {	Err	bitreich.org	70
i                         fputc('t', fp);	Err	bitreich.org	70
i                         n = 1;	Err	bitreich.org	70
i@@ -340,10 +324,15 @@ gphtext(FILE *fp, const char *s, size_t len)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         for (i = 0; *s && i < len; i++) {	Err	bitreich.org	70
i                 switch (s[i]) {	Err	bitreich.org	70
i-                case '\r':	Err	bitreich.org	70
i-                case '\n': break;	Err	bitreich.org	70
i-                case '\t': fputs("        ", fp); break;	Err	bitreich.org	70
i-                default: fputc(s[i], fp);	Err	bitreich.org	70
i+                case '\r': /* ignore CR */	Err	bitreich.org	70
i+                case '\n': /* ignore LF */	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                case '\t':	Err	bitreich.org	70
i+                        fputs("        ", fp);	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i+                default:	Err	bitreich.org	70
i+                        fputc(s[i], fp);	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i         }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i@@ -356,16 +345,15 @@ gphlink(FILE *fp, const char *s, size_t len)	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         for (i = 0; *s && i < len; i++) {	Err	bitreich.org	70
i                 switch (s[i]) {	Err	bitreich.org	70
i-                case '\n':	Err	bitreich.org	70
i-                        /* in this context replace newline with space */	Err	bitreich.org	70
i-                        fputc(' ', fp);	Err	bitreich.org	70
i-                        break;	Err	bitreich.org	70
i                 case '\r': /* ignore CR */	Err	bitreich.org	70
i-                case '|': /* ignore separators here */	Err	bitreich.org	70
i+                case '\n': /* ignore LF */	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i                 case '\t':	Err	bitreich.org	70
i                         fputs("        ", fp);	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i+                case '|': /* escape separators */	Err	bitreich.org	70
i+                        fputs("\\|", fp);	Err	bitreich.org	70
i+                        break;	Err	bitreich.org	70
i                 default:	Err	bitreich.org	70
i                         fputc(s[i], fp);	Err	bitreich.org	70
i                         break;	Err	bitreich.org	70
i@@ -575,12 +563,12 @@ printshowfile(FILE *fp, struct commitinfo *ci)	Err	bitreich.org	70
i                 if (strcmp(delta->old_file.path, delta->new_file.path)) {	Err	bitreich.org	70
i                         snprintf(filename, sizeof(filename), "%s -> %s",	Err	bitreich.org	70
i                                 delta->old_file.path, delta->new_file.path);	Err	bitreich.org	70
i-                        trim(buf, sizeof(buf), filename);	Err	bitreich.org	70
i+                        utf8pad(buf, sizeof(buf), filename, 35, ' ');	Err	bitreich.org	70
i                 } else {	Err	bitreich.org	70
i-                        trim(buf, sizeof(buf), delta->old_file.path);	Err	bitreich.org	70
i+                        utf8pad(buf, sizeof(buf), delta->old_file.path, 35, ' ');	Err	bitreich.org	70
i                 }	Err	bitreich.org	70
i                 fputs("  ", fp);	Err	bitreich.org	70
i-                printutf8pad(fp, buf, 35, ' ');	Err	bitreich.org	70
i+                gphtext(fp, buf, strlen(buf));	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                 add = ci->deltas[i]->addcount;	Err	bitreich.org	70
i                 del = ci->deltas[i]->delcount;	Err	bitreich.org	70
i@@ -655,16 +643,14 @@ writelogline(FILE *fp, struct commitinfo *ci)	Err	bitreich.org	70
i         fputs("[1|", fp);	Err	bitreich.org	70
i         if (ci->author)	Err	bitreich.org	70
i                 printtimeshort(fp, &(ci->author->when));	Err	bitreich.org	70
i+        else	Err	bitreich.org	70
i+                fputs("                ", fp);	Err	bitreich.org	70
i         fputs("  ", fp);	Err	bitreich.org	70
i-        if (ci->summary) {	Err	bitreich.org	70
i-                trim(buf, sizeof(buf), ci->summary);	Err	bitreich.org	70
i-                printutf8pad(fp, buf, 50, ' ');	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i+        utf8pad(buf, sizeof(buf), ci->summary ? ci->summary : "", 50, ' ');	Err	bitreich.org	70
i+        gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i         fputs("  ", fp);	Err	bitreich.org	70
i-        if (ci->author) {	Err	bitreich.org	70
i-                trim(buf, sizeof(buf), ci->author->name);	Err	bitreich.org	70
i-                printutf8pad(fp, buf, 25, ' ');	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i+        utf8pad(buf, sizeof(buf), ci->author ? ci->author->name : "", 25, ' ');	Err	bitreich.org	70
i+        gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i         fprintf(fp, "|%s/commit/%s.gph", relpath, ci->oid);	Err	bitreich.org	70
i         fputs("|server|port]\n", fp);	Err	bitreich.org	70
i }	Err	bitreich.org	70
i@@ -926,8 +912,8 @@ writefilestree(FILE *fp, git_tree *tree, const char *path)	Err	bitreich.org	70
i                         fputs("[1|", fp);	Err	bitreich.org	70
i                         fputs(filemode(git_tree_entry_filemode(entry)), fp);	Err	bitreich.org	70
i                         fputs("  ", fp);	Err	bitreich.org	70
i-                        trim(buf, sizeof(buf), entrypath);	Err	bitreich.org	70
i-                        printutf8pad(fp, buf, 50, ' ');	Err	bitreich.org	70
i+                        utf8pad(buf, sizeof(buf), entrypath, 50, ' ');	Err	bitreich.org	70
i+                        gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i                         fputs("  ", fp);	Err	bitreich.org	70
i                         if (lc > 0)	Err	bitreich.org	70
i                                 fprintf(fp, "%7dL", lc);	Err	bitreich.org	70
i@@ -938,8 +924,8 @@ writefilestree(FILE *fp, git_tree *tree, const char *path)	Err	bitreich.org	70
i                         git_object_free(obj);	Err	bitreich.org	70
i                 } else if (!git_submodule_lookup(&module, repo, entryname)) {	Err	bitreich.org	70
i                         fputs("[1|m---------  ", fp);	Err	bitreich.org	70
i-                        trim(buf, sizeof(buf), entrypath);	Err	bitreich.org	70
i-                        printutf8pad(fp, buf, 50, ' ');	Err	bitreich.org	70
i+                        utf8pad(buf, sizeof(buf), entrypath, 50, ' ');	Err	bitreich.org	70
i+                        gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i                         fprintf(fp, "|%s/file/.gitmodules.gph|server|port]\n", relpath);	Err	bitreich.org	70
i                         /* NOTE: linecount omitted */	Err	bitreich.org	70
i                         git_submodule_free(module);	Err	bitreich.org	70
i@@ -1042,21 +1028,23 @@ writerefs(FILE *fp)	Err	bitreich.org	70
i                                 fprintf(fp, "%s\n", titles[j]);	Err	bitreich.org	70
i                                 fprintf(fp, "  %-20.20s", "Name");	Err	bitreich.org	70
i                                 fprintf(fp, "  %-16.16s", "Last commit date");	Err	bitreich.org	70
i-                                fprintf(fp, "  %-25.25s\n", "Author");	Err	bitreich.org	70
i+                                fprintf(fp, "  %s\n", "Author");	Err	bitreich.org	70
i                         }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                         name = git_reference_shorthand(r);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i                         fputs("  ", fp);	Err	bitreich.org	70
i-                        trim(buf, sizeof(buf), name);	Err	bitreich.org	70
i-                        printutf8pad(fp, buf, 20, ' ');	Err	bitreich.org	70
i+                        utf8pad(buf, sizeof(buf), name, 20, ' ');	Err	bitreich.org	70
i+                        gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i                         fputs("  ", fp);	Err	bitreich.org	70
i                         if (ci->author)	Err	bitreich.org	70
i                                 printtimeshort(fp, &(ci->author->when));	Err	bitreich.org	70
i+                        else	Err	bitreich.org	70
i+                                fputs("                ", fp);	Err	bitreich.org	70
i                         fputs("  ", fp);	Err	bitreich.org	70
i                         if (ci->author) {	Err	bitreich.org	70
i-                                trim(buf, sizeof(buf), ci->author->name);	Err	bitreich.org	70
i-                                printutf8pad(fp, buf, 25, ' ');	Err	bitreich.org	70
i+                                utf8pad(buf, sizeof(buf), ci->author->name, 25, ' ');	Err	bitreich.org	70
i+                                gphlink(fp, buf, strlen(buf));	Err	bitreich.org	70
i                         }	Err	bitreich.org	70
i                         fputs("\n", fp);	Err	bitreich.org	70
i 	Err	bitreich.org	70
i@@ -1204,7 +1192,7 @@ main(int argc, char *argv[])	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         fprintf(fp, "%-16.16s  ", "Date");	Err	bitreich.org	70
i         fprintf(fp, "%-50.50s  ", "Commit message");	Err	bitreich.org	70
i-        fprintf(fp, "%-25.25s\n", "Author");	Err	bitreich.org	70
i+        fprintf(fp, "%s\n", "Author");	Err	bitreich.org	70
i 	Err	bitreich.org	70
i         if (cachefile) {	Err	bitreich.org	70
i                 /* read from cache file (does not need to exist) */	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/stagit-gopher/commit/e46c746c...
Content-Typetext/plain; charset=utf-8