8 loadrevinfo(Revlog *changelog, int rev)
10 char buf[BUFSZ], *p, *e;
11 int fd, line, inmsg, n;
14 if((fd = revlogopentemp(changelog, rev)) < 0)
21 ri = malloc(sizeof(*ri));
22 memset(ri, 0, sizeof(*ri));
24 memmove(ri->chash, changelog->map[rev].hash, HASHSZ);
30 while((n = read(fd, p, e - p)) > 0){
32 while((p > buf) && (e = memchr(buf, '\n', p - buf))){
37 strhash(buf, ri->mhash);
40 ri->who = strdup(buf);
43 ri->when = strtol(buf, nil, 10);
50 n = ri->why ? strlen(ri->why) : 0;
51 ri->why = realloc(ri->why, n + strlen(buf)+1);
52 strcpy(ri->why + n, buf);
57 memmove(buf, e, p - buf);