change: separate decoding and printing of hashed struct
Dependencies
- [2]
FMYCPGKDchange: extract hash list decoding into reused function - [3]
IS5A7VT6change: print hashes - [4]
XTKRT6OQformat the codebase - [5]
YG4DZB3Aadd representation of hash, decode dependencies - [6]
OBKF6SIIchange: decompress the hashed section too - [7]
LCEKN25Gchange: parse authors - [8]
WMFNGOYTchange: reduce printed noise, rework some code - [9]
VXGUQZIVbincode: rework so functions advance pointer - [10]
3FT3XTJMchange: support -v/-h flags - [11]
LVX6U4EKchange: decode metadata bytes - [12]
Q7TKZCJPAdd initial support for reading the offsets from a (fixed) change - [13]
VKLGQREYchange: add base32 decode, initial deconstruction of hashed - [14]
Y26WT3ZFchange: decode message, description and timestamp - [15]
4RYULBDDbincode: introduce a bincode_state struct - [16]
KDJUAAALchange: prefix function names with change_ - [17]
RIWSVVASchange: decompress the 'contents' with zstd_seekable
Change contents
- replacement in change.c at line 191
uint8_t *expected_hashuint8_t *expected_hash, struct hashed *hashed - edit in change.c at line 195
struct hashed hashed; - replacement in change.c at line 230
dump_buf("hashed", buf, hashed_len);/* dump_buf("hashed", buf, hashed_len); */ - replacement in change.c at line 232
hashed.version = bincode_getu64(&binstat);printf("version = %lu\n", hashed.version);hashed->version = bincode_getu64(&binstat); - edit in change.c at line 235
hashed->header.message = bincode_getstr(&binstat, len); - edit in change.c at line 237
hashed.header.message = bincode_getstr(&binstat, len);printf("message = '%s'\n", hashed.header.message); - replacement in change.c at line 244[4.322]→[4.322:383](∅→∅),[4.223]→[4.1262:1367](∅→∅),[4.383]→[4.1262:1367](∅→∅),[4.1262]→[4.1262:1367](∅→∅)
hashed.header.description = bincode_getstr(&binstat, len);printf("description = '%s'\n", hashed.header.description);} elseprintf("description = (none)\n");hashed->header.description = bincode_getstr(&binstat, len);} - replacement in change.c at line 252[4.1248]→[4.418:476](∅→∅),[4.1520]→[4.418:476](∅→∅),[4.304]→[4.1583:1639](∅→∅),[4.476]→[4.1583:1639](∅→∅),[4.1583]→[4.1583:1639](∅→∅)
hashed.header.timestamp = bincode_getstr(&binstat, len);printf("timestamp = '%s'\n", hashed.header.timestamp);hashed->header.timestamp = bincode_getstr(&binstat, len); - replacement in change.c at line 255
hashed.header.authors.len = len;hashed.header.authors.map = xmalloc(sizeof(struct author) * len);hashed->header.authors.len = len;hashed->header.authors.map = xmalloc(sizeof(struct author) * len); - replacement in change.c at line 258
printf("[[authors]]\n");for (i = 0; i < hashed.header.authors.len; i++) {for (i = 0; i < hashed->header.authors.len; i++) { - replacement in change.c at line 261
hashed.header.authors.map[i].entries =hashed->header.authors.map[i].entries = - replacement in change.c at line 263
hashed.header.authors.map[i].len = len;for (j = 0; j < hashed.header.authors.map[i].len; j++) {hashed->header.authors.map[i].len = len;for (j = 0; j < hashed->header.authors.map[i].len; j++) { - replacement in change.c at line 266
hashed.header.authors.map[i].entries[j].key =hashed->header.authors.map[i].entries[j].key = - replacement in change.c at line 269
hashed.header.authors.map[i].entries[j].value =hashed->header.authors.map[i].entries[j].value = - edit in change.c at line 271
printf("%s = '%s'\n",hashed.header.authors.map[i].entries[j].key,hashed.header.authors.map[i].entries[j].value); - edit in change.c at line 274
printf("# Dependencies\n"); - replacement in change.c at line 275
change_decode_hashlist(&binstat, &hashed.dependencies);change_decode_hashlist(&binstat, &hashed->dependencies); - replacement in change.c at line 278
change_decode_hashlist(&binstat, &hashed.extra_known);for (i = 0; i < hashed.dependencies.len; i++) {printf(" ");hash_print(&hashed.dependencies.entries[i]);}for (i = 0; i < hashed.extra_known.len; i++) {printf("+");hash_print(&hashed.extra_known.entries[i]);}change_decode_hashlist(&binstat, &hashed->extra_known); - replacement in change.c at line 288
/* dump_buf("buf", binstat.buf, binstat.avail); */dump_buf("buf", binstat.buf, binstat.avail); - edit in change.c at line 328
struct hashed hashed; - replacement in change.c at line 353
contents_hashcontents_hash, &hashed - edit in change.c at line 358
}printf("--------------------------------------------------------------------------------\n");printf("version = %lu\n", off.version);printf("hashed_len = %lu\n", off.hashed_len);printf("unhashed_off = %lu\n", off.unhashed_off);printf("unhashed_len = %lu\n", off.unhashed_len);printf("contents_off = %lu\n", off.contents_off);printf("contents_len = %lu\n", off.contents_len);printf("total = %lu\n", off.total);printf("--------------------------------------------------------------------------------\n");printf("message = %s\n", hashed.header.message);if (hashed.header.description)printf("description = '%s'\n", hashed.header.description);printf("timestamp = '%s'\n\n", hashed.header.timestamp);printf("[[authors]]\n");for (i = 0; i < hashed.header.authors.len; i++) {int j;for (j = 0; j < hashed.header.authors.map[i].len; j++) {printf("%s = '%s'\n",hashed.header.authors.map[i].entries[j].key,hashed.header.authors.map[i].entries[j].value);} - edit in change.c at line 386
printf("\n"); - edit in change.c at line 388
printf("# Dependencies\n");for (i = 0; i < hashed.dependencies.len; i++) {printf(" ");hash_print(&hashed.dependencies.entries[i]);}for (i = 0; i < hashed.extra_known.len; i++) {printf("+");hash_print(&hashed.extra_known.entries[i]);}printf("\n"); - edit in change.c at line 412[4.256]→[4.2907:2908](∅→∅),[4.2907]→[4.2907:2908](∅→∅),[4.2908]→[4.2587:2966](∅→∅),[4.2587]→[4.2587:2966](∅→∅)
printf("version : %lu\n", off.version);printf("hashed_len : %lu\n", off.hashed_len);printf("unhashed_off : %lu\n", off.unhashed_off);printf("unhashed_len : %lu\n", off.unhashed_len);printf("contents_off : %lu\n", off.contents_off);printf("contents_len : %lu\n", off.contents_len);printf("total : %lu\n", off.total);