commit c37c488c222ae62fa82edecd2391e5dd76de1e23
parent f8a73285fa1ba57d5815a9c365db13772896ad19
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sun, 17 Mar 2019 15:19:54 +0100
escape gph in paths
- escape paths in diff line.
- escape path in directory selector in files.gph
Diffstat:
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/stagit-gopher.c b/stagit-gopher.c
@@ -636,9 +636,13 @@ printshowfile(FILE *fp, struct commitinfo *ci)
patch = ci->deltas[i]->patch;
delta = git_patch_get_delta(patch);
/* NOTE: only links to new path */
- fprintf(fp, "[1|diff --git a/%s b/%s",
- delta->old_file.path, delta->new_file.path);
- fprintf(fp, "|%s/file/%s.gph|server|port]\n", relpath, delta->new_file.path);
+ fputs("[1|diff --git a/", fp);
+ gphlink(fp, delta->old_file.path, strlen(delta->old_file.path));
+ fputs(" b/", fp);
+ gphlink(fp, delta->new_file.path, strlen(delta->new_file.path));
+ fprintf(fp, "|%s/file/", relpath);
+ gphlink(fp, delta->new_file.path, strlen(delta->new_file.path));
+ fputs(".gph|server|port]\n", fp);
/* check binary data */
if (delta->flags & GIT_DIFF_FLAG_BINARY) {
@@ -968,7 +972,8 @@ writefilestree(FILE *fp, git_tree *tree, const char *path)
fprintf(fp, "%7dL", lc);
else
fprintf(fp, "%7juB", (uintmax_t)filesize);
- fprintf(fp, "|%s/%s", relpath, filepath);
+ fprintf(fp, "|%s/", relpath);
+ gphlink(fp, filepath, strlen(filepath));
fputs("|server|port]\n", fp);
git_object_free(obj);
} else if (!git_submodule_lookup(&module, repo, entryname)) {