Document TableLook detail.
authorBen Pfaff <blp@cs.stanford.edu>
Thu, 7 Jan 2016 05:05:12 +0000 (21:05 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Thu, 7 Jan 2016 05:05:12 +0000 (21:05 -0800)
dump.c
spv-file-format.texi

diff --git a/dump.c b/dump.c
index 4d7d7f468e694bfa11a59900f45c46920dd84146..9e1bfd9f960b2f97379db046204193bcd6cdfd6a 100644 (file)
--- 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, "<tablelook>%.*s</tablelook>\n", len, &data[pos + 0x35]);
     }
+  pos += x3;
 
   int count = get_u32();
   pos += 4 * count;
index 38effad71ff460b2978ea65eea991eea7af992cd..4ecf62d35b3d233b8eaf5643f06215bc664a3e2e 100644 (file)
@@ -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.