From: Ben Pfaff Date: Thu, 7 Jan 2016 05:05:12 +0000 (-0800) Subject: Document TableLook detail. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=d311608bad61aa116bea4d1ff1b1ea9d45f798b7 Document TableLook detail. --- diff --git a/dump.c b/dump.c index 4d7d7f468e..9e1bfd9f96 100644 --- a/dump.c +++ b/dump.c @@ -879,19 +879,15 @@ dump_fonts(void) match_u32_assert(18); pos += 18; - if (match_u32(117)) - pos += 117; - else if (match_u32(142)) - pos += 142; - else if (match_u32(143)) - pos += 143; - else if (match_u32(150)) - pos += 150; - else + int x3 = get_u32(); + if (version == 3) { - match_u32_assert(16); - pos += 16; + assert(x3 >= 117); + int len = data[pos + 0x34]; + if (len) + fprintf(stderr, "%.*s\n", len, &data[pos + 0x35]); } + pos += x3; int count = get_u32(); pos += 4 * count; diff --git a/spv-file-format.texi b/spv-file-format.texi index 38effad71f..4ecf62d35b 100644 --- a/spv-file-format.texi +++ b/spv-file-format.texi @@ -403,6 +403,8 @@ styles := 00 font*8 int[n-ccs] string*[n-ccs] /* @r{custom currency} */ styles2 +x2 := 00 00 00 01 00 00 00 00 00 00 00 00 00 02 00 00 00 00 /* @r{18 bytes} */ + styles2 := i0 /* @r{version 1} */ styles2 := count(count(x5) count(x6)) /* @r{version 3} */ x5 := byte*33 int[n] int*n @@ -427,10 +429,10 @@ follow it are @code{00 00 00 01 00 00 00 00 00 00 00 00 00 02 00 00 00 In every example in the corpus for version 1, @code{x3} is 16 and the bytes that follow it are @code{00 00 00 01 00 00 00 01 00 00 00 00 01 -01 01 01}. In version 3, observed @code{x3} varies from 117 to 150 and -the bytes that follow it vary somewhat and often include a readable -text string, e.g. ``Default'' or ``Academic'', which appears to be the -name of a ``TableLook''. +01 01 01}. In version 3, observed @code{x3} varies from 117 to 150, +and its bytes include a 1-byte count at offset 0x34. When the count +is nonzero, a text string of that length at offset 0x35 is the name of +a ``TableLook'', e.g. ``Default'' or ``Academic''. Observed values of @code{x4} vary from 0 to 17. Out of 7060 examples in the corpus, it is nonzero only 36 times.