stagit-gopher

[fork] gopher git frontend
Log | Files | Refs | README | LICENSE

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:
Mstagit-gopher.c | 13+++++++++----
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)) {