summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--cgit.c3
-rw-r--r--ui-tag.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/cgit.c b/cgit.c
index 66dd140..5816f3d 100644
--- a/cgit.c
+++ b/cgit.c
@@ -174,12 +174,15 @@ void config_cb(const char *name, const char *value)
174 } else if (!strcmp(name, "include")) 174 } else if (!strcmp(name, "include"))
175 parse_configfile(value, config_cb); 175 parse_configfile(value, config_cb);
176} 176}
177 177
178static void querystring_cb(const char *name, const char *value) 178static void querystring_cb(const char *name, const char *value)
179{ 179{
180 if (!value)
181 value = "";
182
180 if (!strcmp(name,"r")) { 183 if (!strcmp(name,"r")) {
181 ctx.qry.repo = xstrdup(value); 184 ctx.qry.repo = xstrdup(value);
182 ctx.repo = cgit_get_repoinfo(value); 185 ctx.repo = cgit_get_repoinfo(value);
183 } else if (!strcmp(name, "p")) { 186 } else if (!strcmp(name, "p")) {
184 ctx.qry.page = xstrdup(value); 187 ctx.qry.page = xstrdup(value);
185 } else if (!strcmp(name, "url")) { 188 } else if (!strcmp(name, "url")) {
diff --git a/ui-tag.c b/ui-tag.c
index a9c8670..c2d72af 100644
--- a/ui-tag.c
+++ b/ui-tag.c
@@ -34,13 +34,16 @@ void cgit_print_tag(char *revname)
34{ 34{
35 unsigned char sha1[20]; 35 unsigned char sha1[20];
36 struct object *obj; 36 struct object *obj;
37 struct tag *tag; 37 struct tag *tag;
38 struct taginfo *info; 38 struct taginfo *info;
39 39
40 if (get_sha1(revname, sha1)) { 40 if (!revname)
41 revname = ctx.qry.head;
42
43 if (get_sha1(fmt("refs/tags/%s", revname), sha1)) {
41 cgit_print_error(fmt("Bad tag reference: %s", revname)); 44 cgit_print_error(fmt("Bad tag reference: %s", revname));
42 return; 45 return;
43 } 46 }
44 obj = parse_object(sha1); 47 obj = parse_object(sha1);
45 if (!obj) { 48 if (!obj) {
46 cgit_print_error(fmt("Bad object id: %s", sha1_to_hex(sha1))); 49 cgit_print_error(fmt("Bad object id: %s", sha1_to_hex(sha1)));