Code

t/README: start testing porcelainish
[git.git] / name-rev.c
index 1f0135f5ab92a3eaadfb05b62a5ccea62cb43826..3a5ac35d163bae5431c9cad8c9e31918c2734241 100644 (file)
@@ -19,7 +19,7 @@ static void name_rev(struct commit *commit,
                const char *tip_name, int merge_traversals, int generation,
                int deref)
 {
-       struct rev_name *name = (struct rev_name *)commit->object.util;
+       struct rev_name *name = (struct rev_name *)commit->util;
        struct commit_list *parents;
        int parent_number = 1;
 
@@ -41,7 +41,7 @@ static void name_rev(struct commit *commit,
 
        if (name == NULL) {
                name = xmalloc(sizeof(rev_name));
-               commit->object.util = name;
+               commit->util = name;
                goto copy_data;
        } else if (name->merge_traversals > merge_traversals ||
                        (name->merge_traversals == merge_traversals &&
@@ -108,7 +108,13 @@ static int name_ref(const char *path, const unsigned char *sha1)
 static const char* get_rev_name(struct object *o)
 {
        static char buffer[1024];
-       struct rev_name *n = (struct rev_name *)o->util;
+       struct rev_name *n;
+       struct commit *c;
+
+       if (o->type != TYPE_COMMIT)
+               return "undefined";
+       c = (struct commit *) o;
+       n = c->util;
        if (!n)
                return "undefined";
 
@@ -119,11 +125,10 @@ static const char* get_rev_name(struct object *o)
 
        return buffer;
 }
-       
+
 int main(int argc, char **argv)
 {
-       struct object_list *revs = NULL;
-       struct object_list **walker = &revs;
+       struct object_array revs = { 0, 0, NULL };
        int as_is = 0, all = 0, transform_stdin = 0;
 
        setup_git_directory();
@@ -178,9 +183,7 @@ int main(int argc, char **argv)
                if (cutoff > commit->date)
                        cutoff = commit->date;
 
-               object_list_append((struct object *)commit, walker);
-               (*walker)->name = *argv;
-               walker = &((*walker)->next);
+               add_object_array((struct object *)commit, *argv, &revs);
        }
 
        for_each_ref(name_ref);
@@ -237,9 +240,13 @@ int main(int argc, char **argv)
                        if (objs[i])
                                printf("%s %s\n", sha1_to_hex(objs[i]->sha1),
                                                get_rev_name(objs[i]));
-       } else
-               for ( ; revs; revs = revs->next)
-                       printf("%s %s\n", revs->name, get_rev_name(revs->item));
+       } else {
+               int i;
+               for (i = 0; i < revs.nr; i++)
+                       printf("%s %s\n",
+                               revs.objects[i].name,
+                               get_rev_name(revs.objects[i].item));
+       }
 
        return 0;
 }