root / trunk / util / arid.cpp

Revision 317, 0.8 kB (checked in by saurik, 5 months ago)

Added .ar and .elc determinism.

Line 
1#include <iostream>
2#include "minimal/mapping.h"
3
4struct ar_hdr {
5    char ar_name[16];
6    char ar_date[12];
7    char ar_uid[6];
8    char ar_gid[6];
9    char ar_mode[8];
10    char ar_size[10];
11#define ARFMAG "`\n"
12    char ar_fmag[2];
13};
14
15int main(int argc, char *argv[]) {
16    size_t size;
17    _assert(argc == 2);
18    uint8_t *data = reinterpret_cast<uint8_t *>(map(argv[1], 0, _not(size_t), &size, false));
19    data += 8;
20    uint8_t *end = data + size;
21    while (end - data >= sizeof(struct ar_hdr)) {
22        struct ar_hdr *head = reinterpret_cast<struct ar_hdr *>(data);
23        memset(head->ar_date + 1, ' ', sizeof(head->ar_date) - 1);
24        head->ar_date[0] = '0';
25        size_t length = strtoul(head->ar_size, NULL, 10);
26        data += length + sizeof(struct ar_hdr);
27    }
28    return 0;
29}
Note: See TracBrowser for help on using the browser.