commit - d0ea9c5bbace3a6602c6731b2b2a0465c3ac6d10
commit + 147269d583a21c9ce797d43111f6a162ec07527a
blob - 5f41af5fd128cd52b313dd595370a60287c95ed6
blob + a883cf2287a2ced4b8cb97444a96fb0be058a636
--- gotweb/gotweb.c
+++ gotweb/gotweb.c
static const struct got_error* cmp_tags(void *, int *,
struct got_reference *,
struct got_reference *);
-static const struct got_error* match_object_id(struct got_object_id **,
- char **, const char *r, int, int,
- struct got_repository *);
-static const struct got_error* blame_cb(void *, int, int,
+static const struct got_error* gw_blame_cb(void *, int, int,
struct got_object_id *);
static const struct got_error* gw_load_got_paths(struct gw_trans *);
static const struct got_error* gw_load_got_path(struct gw_trans *,
got_object_tag_close(tag1);
if (tag2)
got_object_tag_close(tag2);
- return err;
-}
-
-static const struct got_error *
-match_object_id(struct got_object_id **id, char **label,
- const char *id_str, int obj_type, int resolve_tags,
- struct got_repository *repo)
-{
- const struct got_error *err;
- struct got_tag_object *tag;
- struct got_reference *ref = NULL;
-
- *id = NULL;
- *label = NULL;
-
- if (resolve_tags) {
- err = got_repo_object_match_tag(&tag, id_str, GOT_OBJ_TYPE_ANY,
- repo);
- if (err == NULL) {
- *id = got_object_id_dup(
- got_object_tag_get_object_id(tag));
- if (*id == NULL)
- err = got_error_from_errno("got_object_id_dup");
- else if (asprintf(label, "refs/tags/%s",
- got_object_tag_get_name(tag)) == -1) {
- err = got_error_from_errno("asprintf");
- free(*id);
- *id = NULL;
- }
- got_object_tag_close(tag);
- return err;
- } else if (err->code != GOT_ERR_NO_OBJ)
- return err;
- }
-
- err = got_repo_match_object_id_prefix(id, id_str, obj_type, repo);
- if (err) {
- if (err->code != GOT_ERR_BAD_OBJ_ID_STR)
- return err;
- err = got_ref_open(&ref, repo, id_str, 0);
- if (err != NULL)
- goto done;
- *label = strdup(got_ref_get_name(ref));
- if (*label == NULL) {
- err = got_error_from_errno("strdup");
- goto done;
- }
- err = got_ref_resolve(id, repo, ref);
- } else {
- err = got_object_id_str(label, *id);
- if (*label == NULL) {
- err = got_error_from_errno("strdup");
- goto done;
- }
- }
-done:
- if (ref)
- got_ref_close(ref);
return err;
}
if (error)
goto done;
- error = match_object_id(&id1, &label1, id_str1, GOT_OBJ_TYPE_ANY, 1,
- repo);
+ error = got_repo_match_object_id(&id1, &label1, id_str1,
+ GOT_OBJ_TYPE_ANY, 1, repo);
if (error)
goto done;
if (id_str2) {
- error = match_object_id(&id2, &label2, id_str2,
+ error = got_repo_match_object_id(&id2, &label2, id_str2,
GOT_OBJ_TYPE_ANY, 1, repo);
if (error)
goto done;
char datebuf[11]; /* YYYY-MM-DD + NUL */
};
-struct blame_cb_args {
+struct gw_blame_cb_args {
struct blame_line *lines;
int nlines;
int nlines_prec;
};
static const struct got_error *
-blame_cb(void *arg, int nlines, int lineno, struct got_object_id *id)
+gw_blame_cb(void *arg, int nlines, int lineno, struct got_object_id *id)
{
const struct got_error *err = NULL;
- struct blame_cb_args *a = arg;
+ struct gw_blame_cb_args *a = arg;
struct blame_line *bline;
char *line = NULL;
size_t linesize = 0, newsize;
struct got_blob_object *blob = NULL;
char *blame_html = NULL, *path = NULL, *in_repo_path = NULL,
*folder = NULL;
- struct blame_cb_args bca;
+ struct gw_blame_cb_args bca;
int i, obj_type;
size_t filesize;
if (error)
goto done;
- error = got_repo_resolve_commit_arg(&commit_id, commit_str, repo);
+ error = got_repo_match_object_id(&commit_id, NULL, commit_str,
+ GOT_OBJ_TYPE_COMMIT, 1, repo);
if (error)
goto done;
bca.repo = repo;
bca.gw_trans = gw_trans;
- error = got_blame(in_repo_path, commit_id, repo, blame_cb, &bca, NULL,
- NULL);
+ error = got_blame(in_repo_path, commit_id, repo, gw_blame_cb, &bca,
+ NULL, NULL);
if (buf_len(bca.blamebuf) > 0) {
error = buf_putc(bca.blamebuf, '\0');
blame_html = strdup(buf_get(bca.blamebuf));
got_ref_close(head_ref);
} else
- error = got_repo_resolve_commit_arg(&commit_id, commit_str,
- repo);
+ error = got_repo_match_object_id(&commit_id, NULL, commit_str,
+ GOT_OBJ_TYPE_COMMIT, 1, repo);
if (error)
goto done;