ifix path join '/' - 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 fc60d78d8917fb930227ecc53936c9216e6298c2 /scm/stagit-gopher/commit/fc60d78d8917fb930227ecc53936c9216e6298c2.gph bitreich.org 70 1parent c13c4119501291e5c276d4d1217491b16a2a7ff9 /scm/stagit-gopher/commit/c13c4119501291e5c276d4d1217491b16a2a7ff9.gph bitreich.org 70 hAuthor: Hiltjo Posthuma URL:mailto:hiltjo@codemadness.org bitreich.org 70 iDate: Sun, 1 May 2016 14:38:57 +0200 Err bitreich.org 70 i Err bitreich.org 70 ifix path join '/' Err bitreich.org 70 i Err bitreich.org 70 iadd joinpath() function to handle this. Err bitreich.org 70 i Err bitreich.org 70 iDiffstat: Err bitreich.org 70 i M stagit-index.c | 42 ++++++++++++++----------------- Err bitreich.org 70 i M stagit.c | 39 ++++++++++++++----------------- Err bitreich.org 70 i Err bitreich.org 70 i2 files changed, 37 insertions(+), 44 deletions(-) Err bitreich.org 70 i--- Err bitreich.org 70 1diff --git a/stagit-index.c b/stagit-index.c /scm/stagit-gopher/file/stagit-index.c.gph bitreich.org 70 i@@ -140,13 +140,25 @@ err: Err bitreich.org 70 i return ret; Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i+void Err bitreich.org 70 i+joinpath(char *buf, size_t bufsiz, const char *path, const char *path2) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ int r; Err bitreich.org 70 i+ Err bitreich.org 70 i+ r = snprintf(buf, bufsiz, "%s%s%s", Err bitreich.org 70 i+ repodir, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2); Err bitreich.org 70 i+ if (r == -1 || (size_t)r >= bufsiz) Err bitreich.org 70 i+ errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i+ path, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2); Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i int Err bitreich.org 70 i main(int argc, char *argv[]) Err bitreich.org 70 i { Err bitreich.org 70 i const git_error *e = NULL; Err bitreich.org 70 i FILE *fp; Err bitreich.org 70 i char path[PATH_MAX], repodirabs[PATH_MAX + 1]; Err bitreich.org 70 i- int i, r, ret = 0; Err bitreich.org 70 i+ int i, ret = 0; Err bitreich.org 70 i Err bitreich.org 70 i if (argc < 2) { Err bitreich.org 70 i fprintf(stderr, "%s [repodir...]\n", argv[0]); Err bitreich.org 70 i@@ -176,20 +188,12 @@ main(int argc, char *argv[]) Err bitreich.org 70 i name = ""; Err bitreich.org 70 i Err bitreich.org 70 i /* read description or .git/description */ Err bitreich.org 70 i- description[0] = '\0'; Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "description"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "description"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, "description"); Err bitreich.org 70 i if (!(fp = fopen(path, "r"))) { Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/description"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/description"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, ".git/description"); Err bitreich.org 70 i fp = fopen(path, "r"); Err bitreich.org 70 i } Err bitreich.org 70 i+ description[0] = '\0'; Err bitreich.org 70 i if (fp) { Err bitreich.org 70 i if (!fgets(description, sizeof(description), fp)) Err bitreich.org 70 i description[0] = '\0'; Err bitreich.org 70 i@@ -197,20 +201,12 @@ main(int argc, char *argv[]) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i /* read owner or .git/owner */ Err bitreich.org 70 i- owner[0] = '\0'; Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "owner"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "owner"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, "owner"); Err bitreich.org 70 i if (!(fp = fopen(path, "r"))) { Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/owner"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/owner"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, ".git/owner"); Err bitreich.org 70 i fp = fopen(path, "r"); Err bitreich.org 70 i } Err bitreich.org 70 i+ owner[0] = '\0'; Err bitreich.org 70 i if (fp) { Err bitreich.org 70 i if (!fgets(owner, sizeof(owner), fp)) Err bitreich.org 70 i owner[0] = '\0'; Err bitreich.org 70 1diff --git a/stagit.c b/stagit.c /scm/stagit-gopher/file/stagit.c.gph bitreich.org 70 i@@ -970,6 +970,18 @@ err: 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+joinpath(char *buf, size_t bufsiz, const char *path, const char *path2) Err bitreich.org 70 i+{ Err bitreich.org 70 i+ int r; Err bitreich.org 70 i+ Err bitreich.org 70 i+ r = snprintf(buf, bufsiz, "%s%s%s", Err bitreich.org 70 i+ repodir, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2); Err bitreich.org 70 i+ if (r == -1 || (size_t)r >= bufsiz) Err bitreich.org 70 i+ errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i+ path, path[0] && path[strlen(path) - 1] != '/' ? "/" : "", path2); Err bitreich.org 70 i+} Err bitreich.org 70 i+ Err bitreich.org 70 i int Err bitreich.org 70 i main(int argc, char *argv[]) Err bitreich.org 70 i { Err bitreich.org 70 i@@ -978,13 +990,14 @@ main(int argc, char *argv[]) Err bitreich.org 70 i const git_error *e = NULL; Err bitreich.org 70 i FILE *fp, *fpread; Err bitreich.org 70 i char path[PATH_MAX], repodirabs[PATH_MAX + 1], *p; Err bitreich.org 70 i- int r, status; Err bitreich.org 70 i+ int status; Err bitreich.org 70 i Err bitreich.org 70 i if (argc != 2) { Err bitreich.org 70 i fprintf(stderr, "%s \n", argv[0]); Err bitreich.org 70 i return 1; Err bitreich.org 70 i } Err bitreich.org 70 i repodir = argv[1]; Err bitreich.org 70 i+ Err bitreich.org 70 i if (!realpath(repodir, repodirabs)) Err bitreich.org 70 i err(1, "realpath"); Err bitreich.org 70 i Err bitreich.org 70 i@@ -1017,17 +1030,9 @@ main(int argc, char *argv[]) Err bitreich.org 70 i *p = '\0'; Err bitreich.org 70 i Err bitreich.org 70 i /* read description or .git/description */ Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "description"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "description"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, "description"); Err bitreich.org 70 i if (!(fpread = fopen(path, "r"))) { Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/description"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/description"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, ".git/description"); Err bitreich.org 70 i fpread = fopen(path, "r"); Err bitreich.org 70 i } Err bitreich.org 70 i if (fpread) { Err bitreich.org 70 i@@ -1037,17 +1042,9 @@ main(int argc, char *argv[]) Err bitreich.org 70 i } Err bitreich.org 70 i Err bitreich.org 70 i /* read url or .git/url */ Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "url"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", "url"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, "url"); Err bitreich.org 70 i if (!(fpread = fopen(path, "r"))) { Err bitreich.org 70 i- r = snprintf(path, sizeof(path), "%s%s%s", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/url"); Err bitreich.org 70 i- if (r == -1 || (size_t)r >= sizeof(path)) Err bitreich.org 70 i- errx(1, "path truncated: '%s%s%s'", Err bitreich.org 70 i- repodir, repodir[strlen(repodir)] == '/' ? "" : "/", ".git/url"); Err bitreich.org 70 i+ joinpath(path, sizeof(path), repodir, ".git/url"); Err bitreich.org 70 i fpread = fopen(path, "r"); Err bitreich.org 70 i } Err bitreich.org 70 i if (fpread) { Err bitreich.org 70 .