/* argv_array guarantees a trailing NULL entry. */
memcpy(nargv, argv.argv, sizeof(char *) * (argv.argc + 1));
- result = write_archive(argv.argc, nargv, NULL, 1, NULL, 0);
+ result = write_archive(argv.argc, nargv, NULL, NULL, 0);
argv_array_clear(&argv);
free(nargv);
return result;
"Bad object id: %s", hex);
return 1;
}
- if (!lookup_commit_reference(oid.hash)) {
+ if (!lookup_commit_reference(&oid)) {
cgit_print_error_page(400, "Bad request",
"Not a commit reference: %s", hex);
return 1;
* pending a 'v' or a 'V' to the remaining snapshot name ("0.7.2" ->
* "v0.7.2") gives us something valid.
*/
-static const char *get_ref_from_filename(const char *url, const char *filename,
+static const char *get_ref_from_filename(const struct cgit_repo *repo,
+ const char *filename,
const struct cgit_snapshot_format *format)
{
const char *reponame;
if (get_oid(snapshot.buf, &oid) == 0)
goto out;
- reponame = cgit_repobasename(url);
+ reponame = cgit_snapshot_prefix(repo);
if (starts_with(snapshot.buf, reponame)) {
const char *new_start = snapshot.buf;
new_start += strlen(reponame);
}
if (!hex && dwim) {
- hex = get_ref_from_filename(ctx.repo->url, filename, f);
+ hex = get_ref_from_filename(ctx.repo, filename, f);
if (hex == NULL) {
cgit_print_error_page(404, "Not found", "Not found");
return;
hex = head;
if (!prefix)
- prefix = xstrdup(cgit_repobasename(ctx.repo->url));
+ prefix = xstrdup(cgit_snapshot_prefix(ctx.repo));
make_snapshot(f, hex, prefix, filename);
free(prefix);