fprintf (stdout, " ");
printf ("<category>\n");
dump_value (stdout, level + 1);
- match_byte(1);
- match_byte(0);
- match_byte(0);
- match_byte(0);
- if (match_u32 (1))
- match_byte (0);
- else if (match_byte (1))
+ int start = pos;
+ int d0 = data[pos];
+ match_byte(1);
+ int c = 0;
+ c += match_byte(0);
+ c += match_byte(0);
+ c += match_byte(0);
+
+ int d1 = data[pos];
+ int d2 = 9;
+ if (match_byte (1))
{
- match_byte (0);
- if (!match_u32 (2))
- match_u32_assert (1);
- match_byte (0);
+ d2 = data[pos];
+ if (!match_u32 (0) && !match_u32 (1))
+ match_u32_assert (2);
}
- else if (!match_u32(2))
- match_u32_assert (0);
+ else
+ match_u32_assert (2);
+ int len = pos - start;
int indx = get_u32();
int n_categories = get_u32();
if (indx != -1)
{
+ fprintf (stderr, "category %d %d %d %d %d:", d0, c, d1, d2, len);
if (n_categories != 0)
{
fprintf(stderr, "index not -1 but subcategories\n");
}
indexes[(*n_indexes)++] = indx;
}
+ else
+ fprintf (stderr, "group %d %d %d %d %d:", d0, c, d1, d2, len);
+ for (int i = 0; i < len; i++)
+ fprintf (stderr, " %02x", data[start + i]);
+ putc ('\n', stderr);
+
if (n_categories == 0)
{
for (int i = 0; i <= level + 1; i++)
printf ("<dimension index=\"%d\">\n", indx);
dump_value (stdout, 0);
- /* This byte is usually 0x02 but many other values have been spotted. */
+ /* This byte is usually 0 but many other values have been spotted. */
pos++;
if (!match_byte(0) && !match_byte(1))