diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-03-01 23:23:01 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-03-01 23:23:01 +0100 |
commit | 17136370d8fa16697e8e5fce8ae65c67197f4438 (patch) | |
tree | 0717d860c28a44329cba01644f290944647620bf /sys | |
parent | 2f976d8b56b77baa7a3b3ed29a56652a53c5315c (diff) |
hgfs: fix loadrevinfo() for empty log bug
loadrevinfo() would fail on a empty log portion due
to a bug in the previous commit.
the loop is supposed to skip all bytes until we encounter
a empty line. the loop starts at the beginning of a line
so when we encounter a \n, we have to terminate, otherwise
read bytes until we see \n (end of a line) and then read
another and test the condition again.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/src/cmd/hgfs/info.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/sys/src/cmd/hgfs/info.c b/sys/src/cmd/hgfs/info.c index 0d4dbb974..53fbda936 100644 --- a/sys/src/cmd/hgfs/info.c +++ b/sys/src/cmd/hgfs/info.c @@ -45,18 +45,16 @@ loadrevinfo(Revlog *changelog, int rev) free(line); ri->logoff = Boffset(buf); - for(;;){ if((c = Bgetc(buf)) < 0) goto Error; - if(c == '\n'){ + if(c == '\n') + break; + do { if((c = Bgetc(buf)) < 0) goto Error; - if(c == '\n') - break; - } + } while(c != '\n'); } - ri->loglen = Boffset(buf) - ri->logoff - 1; line = Brdstr(buf, '\0', 1); |