bincode: rework so functions advance pointer

laumann
Sep 6, 2022, 8:33 PM
VXGUQZIVOLPAPINOY3EMFDHLFNBI3H6BNYYENS7P4G2WT4CCWCAQC

Dependencies

  • [2] 3FT3XTJM change: support -v/-h flags
  • [3] Y26WT3ZF change: decode message, description and timestamp
  • [4] OBKF6SII change: decompress the hashed section too
  • [5] VKLGQREY change: add base32 decode, initial deconstruction of hashed
  • [*] Q7TKZCJP Add initial support for reading the offsets from a (fixed) change

Change contents

  • replacement in change.c at line 34
    [2.15][2.15:36]()
    cmd_change_usage() {
    [2.15]
    [2.36]
    cmd_change_usage()
    {
  • replacement in change.c at line 202
    [3.697][3.697:734]()
    hashed.version = bincode_getu64(p);
    [3.697]
    [3.734]
    hashed.version = bincode_getu64(&p);
  • edit in change.c at line 204
    [3.778][3.778:802]()
    p += sizeof(uint64_t);
  • replacement in change.c at line 205
    [3.803][3.803:853]()
    len = bincode_getu64(p);
    p += sizeof(uint64_t);
    [3.803]
    [3.853]
    len = bincode_getu64(&p);
  • replacement in change.c at line 207
    [3.854][3.854:914]()
    hashed.header.message = bincode_getstr(p, len);
    p += len;
    [3.854]
    [3.914]
    hashed.header.message = bincode_getstr(&p, len);
  • replacement in change.c at line 216
    [3.1143][3.1143:1262]()
    len = bincode_getu64(p);
    p += sizeof(uint64_t);
    hashed.header.description = bincode_getstr(p, len);
    p += len;
    [3.1143]
    [3.1262]
    len = bincode_getu64(&p);
    hashed.header.description = bincode_getstr(&p, len);
  • replacement in change.c at line 222
    [3.1368][3.1368:1418]()
    len = bincode_getu64(p);
    p += sizeof(uint64_t);
    [3.1368]
    [4.1399]
    len = bincode_getu64(&p);
  • replacement in change.c at line 226
    [3.1520][3.1520:1583]()
    hashed.header.timestamp = bincode_getstr(p, len);
    p += len;
    [3.1520]
    [3.1583]
    hashed.header.timestamp = bincode_getstr(&p, len);
  • replacement in bincode.h at line 20
    [3.2156][3.2156:2264]()
    uint16_t bincode_getu16(uint8_t *);
    uint32_t bincode_getu32(uint8_t *);
    uint64_t bincode_getu64(uint8_t *);
    [3.2156]
    [3.2264]
    uint16_t bincode_getu16(uint8_t **);
    uint32_t bincode_getu32(uint8_t **);
    uint64_t bincode_getu64(uint8_t **);
  • replacement in bincode.h at line 32
    [3.2502][3.2502:2543]()
    char *bincode_getstr(uint8_t *, size_t);
    [3.2502]
    [3.2543]
    char *bincode_getstr(uint8_t **, size_t);
  • replacement in bincode.c at line 10
    [3.2866][3.2866:2893]()
    bincode_getu16(uint8_t *b)
    [3.2866]
    [3.2893]
    bincode_getu16(uint8_t **bp)
  • replacement in bincode.c at line 12
    [3.2895][3.2895:2941]()
    return (uint16_t)b[1] << 8 | (uint16_t)b[0];
    [3.2895]
    [3.2941]
    uint16_t ret;
    uint8_t *b;
    b = *bp;
    ret = (uint16_t)b[1] << 8 | (uint16_t)b[0];
    *bp += sizeof(uint16_t);
    return ret;
  • replacement in bincode.c at line 24
    [3.2953][3.2953:2980]()
    bincode_getu32(uint8_t *b)
    [3.2953]
    [3.2980]
    bincode_getu32(uint8_t **bp)
  • replacement in bincode.c at line 26
    [3.2982][3.2982:3011]()
    return (uint32_t)b[3] << 24
    [3.2982]
    [3.3011]
    uint32_t ret;
    uint8_t *b;
    b = *bp;
    ret = (uint32_t)b[3] << 24
  • edit in bincode.c at line 35
    [3.3080]
    [3.3080]
    *bp += sizeof(uint32_t);
    return ret;
  • replacement in bincode.c at line 41
    [3.3092][3.3092:3119]()
    bincode_getu64(uint8_t *b)
    [3.3092]
    [3.3119]
    bincode_getu64(uint8_t **bp)
  • replacement in bincode.c at line 43
    [3.3121][3.3121:3150]()
    return (uint64_t)b[7] << 56
    [3.3121]
    [3.3150]
    uint64_t ret;
    uint8_t *b;
    b = *bp;
    ret = (uint64_t)b[7] << 56
  • edit in bincode.c at line 55
    [3.3319]
    [3.3319]
    *bp += sizeof(uint64_t);
    return ret;
  • replacement in bincode.c at line 61
    [3.3329][3.3329:3368]()
    bincode_getstr(uint8_t *b, size_t len)
    [3.3329]
    [3.3368]
    bincode_getstr(uint8_t **b, size_t len)
  • replacement in bincode.c at line 66
    [3.3408][3.3408:3430]()
    memcpy(str, b, len);
    [3.3408]
    [3.3430]
    memcpy(str, *b, len);
  • edit in bincode.c at line 68
    [3.3448]
    [3.3448]
    *b += len;