8 loadrevinfo(Revlog *changelog, int rev)
10 char buf[BUFSZ], *p, *e;
11 int fd, line, inmsg, n;
15 if((fd = revlogopentemp(changelog, rev)) < 0)
22 ri = malloc(sizeof(*ri));
23 memset(ri, 0, sizeof(*ri));
25 memmove(ri->chash, changelog->map[rev].hash, HASHSZ);
32 while((n = read(fd, p, e - p)) > 0){
34 while((p > buf) && (e = memchr(buf, '\n', p - buf))){
39 hex2hash(buf, ri->mhash);
42 ri->who = strdup(buf);
45 ri->when = strtol(buf, nil, 10);
52 ri->loglen = off - ri->logoff;
56 n = ri->why ? strlen(ri->why) : 0;
57 ri->why = realloc(ri->why, n + strlen(buf)+1);
58 strcpy(ri->why + n, buf);
64 memmove(buf, e, p - buf);