]> asedeno.scripts.mit.edu Git - git.git/blobdiff - mktree.c
Drop strbuf's 'eof' marker, and make read_line a first class citizen.
[git.git] / mktree.c
index 2e84889c02dd110caff0e896a6899f877ca863f1..9c137dec4599c97d2827abda68692dc714f2d295 100644 (file)
--- a/mktree.c
+++ b/mktree.c
@@ -4,7 +4,6 @@
  * Copyright (c) Junio C Hamano, 2006
  */
 #include "cache.h"
-#include "strbuf.h"
 #include "quote.h"
 #include "tree.h"
 
@@ -51,9 +50,8 @@ static void write_tree(unsigned char *sha1)
        qsort(entries, used, sizeof(*entries), ent_compare);
        for (size = i = 0; i < used; i++)
                size += 32 + entries[i]->len;
-       strbuf_init(&buf);
-       strbuf_grow(&buf, size);
 
+       strbuf_init(&buf, size);
        for (i = 0; i < used; i++) {
                struct treeent *ent = entries[i];
                strbuf_addf(&buf, "%o %s%c", ent->mode, ent->name, '\0');
@@ -83,15 +81,14 @@ int main(int ac, char **av)
                av++;
        }
 
-       strbuf_init(&sb);
+       strbuf_init(&sb, 0);
        while (1) {
                char *ptr, *ntr;
                unsigned mode;
                enum object_type type;
                char *path;
 
-               read_line(&sb, stdin, line_termination);
-               if (sb.eof)
+               if (strbuf_getline(&sb, stdin, line_termination) == EOF)
                        break;
                ptr = sb.buf;
                /* Input is non-recursive ls-tree output format
@@ -123,6 +120,7 @@ int main(int ac, char **av)
                if (path != ntr)
                        free(path);
        }
+       strbuf_release(&sb);
        write_tree(sha1);
        puts(sha1_to_hex(sha1));
        exit(0);