- if (!strcmp(argv[1], "title0"))
- {
- pos = 0x27;
- if (match_byte (0x03)
- || (match_byte (0x05) && match_byte (0x58)))
- printf ("%s\n", get_string());
- else
- printf ("<unknown>\n");
- return 0;
- }
- else if (!strcmp(argv[1], "title"))
- {
- dump_title();
- exit(0);
- }
- else if (!strcmp(argv[1], "titleraw"))
- {
- const char fonts[] = "\x01\x31\x09\0\0\0SansSerif";
- start = 0x27;
- n = find(fonts, sizeof fonts - 1);
- }
- else if (!strcmp(argv[1], "fonts"))
- {
- const char fonts[] = "\x01\x31\x09\0\0\0SansSerif";
- const char styles[] = "\xf0\0\0\0";
- start = find(fonts, sizeof fonts - 1);
- n = find(styles, sizeof styles - 1);
- }
- else if (!strcmp(argv[1], "styles"))
- {
- const char styles[] = "\xf0\0\0\0";
- const char dimensions[] = "-,,,.\0";
- start = find(styles, sizeof styles - 1);
- n = find(dimensions, sizeof dimensions - 1) + sizeof dimensions - 1;
- }
- else if (!strcmp(argv[1], "dimensions") || !strcmp(argv[1], "all"))
- {
- pos = 0;
- match_byte_assert(1);
- match_byte_assert(0);
- match_u32_assert(3);
- match_byte_assert(1);
- if (!match_byte(0))
- match_byte_assert(1);
- match_byte_assert(0);
- match_byte_assert(0);
- if (!match_byte(0))
- match_byte_assert(1);
- pos++;
- match_byte_assert(0);
- match_byte_assert(0);
- match_byte_assert(0);
- dump_title ();
- dump_fonts();
- dump_dims ();
- printf("\n\ndata:\n");
- dump_data ();
- if (pos == n - 1)
- match_byte_assert (1);
- if (pos != n)
- {
- fprintf (stderr, "%x / %x\n", pos, n);
- exit(1);
- }
- exit(0);
- }
- else
- {
- fprintf (stderr, "unknown section %s\n", argv[1]);
- exit(1);
- }