path: root/builtin-checkout-index.c
diff options
authorPierre Habouzit <>2007-09-17 09:19:04 (GMT)
committerJunio C Hamano <>2007-09-18 07:55:10 (GMT)
commite6c019d0b0140fae1cdfd661746cbe319b6c3670 (patch)
tree5711e59da3bda8207a41173df8d6a6b66696b7b5 /builtin-checkout-index.c
parent8b6087fb25068d6af927f112a93dc056930f3108 (diff)
Drop strbuf's 'eof' marker, and make read_line a first class citizen.
read_line is now strbuf_getline, and is a first class citizen, it returns 0 when reading a line worked, EOF else. The ->eof marker was used non-locally by fast-import.c, mimic the same behaviour using a static int in "read_next_command", that now returns -1 on EOF, and avoids to call strbuf_getline when it's in EOF state. Also no longer automagically strbuf_release the buffer, it's counter intuitive and breaks fast-import in a very subtle way. Note: being at EOF implies that command_buf.len == 0. Signed-off-by: Pierre Habouzit <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'builtin-checkout-index.c')
1 files changed, 2 insertions, 3 deletions
diff --git a/builtin-checkout-index.c b/builtin-checkout-index.c
index 85e8efe..a18ecc4 100644
--- a/builtin-checkout-index.c
+++ b/builtin-checkout-index.c
@@ -277,9 +277,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
while (1) {
char *path_name;
const char *p;
- read_line(&buf, stdin, line_termination);
- if (buf.eof)
+ if (strbuf_getline(&buf, stdin, line_termination) == EOF)
if (line_termination && buf.buf[0] == '"')
path_name = unquote_c_style(buf.buf, NULL);
@@ -292,6 +290,7 @@ int cmd_checkout_index(int argc, const char **argv, const char *prefix)
if (path_name != buf.buf)
+ strbuf_release(&buf);
if (all)