X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=spv-file-format.texi;h=223b2ef90fef85544c5fca6093913d78a4fac271;hb=7501fe1209b07d18977d8a9249036f2f3a34014d;hp=a0b5e1449ebe0f2778957de5964ec8af200aa916;hpb=e62ca4413e3d41f4def8595374d8a1937f749eeb;p=pspp diff --git a/spv-file-format.texi b/spv-file-format.texi index a0b5e1449e..223b2ef90f 100644 --- a/spv-file-format.texi +++ b/spv-file-format.texi @@ -174,7 +174,7 @@ describes what it labels, often by naming the statistical procedure that was executed, e.g.@: ``Frequencies'' or ``T-Test''. Labels are often very generic, especially within a @code{container}, e.g.@: ``Title'' or ``Warnings'' or ``Notes''. Label text is localized -according to the output language, e.g. in Italian a frequency table +according to the output language, e.g.@: in Italian a frequency table procedure is labeled ``Frequenze''. The corpus contains one example of an empty label, one that contains @@ -376,10 +376,10 @@ table-id := int @code{header} includes @code{version}, a version number that affects the interpretation of some of the other data in the member. We will -refer to ``version 1'' and ``version 3'' members later on. It also -@code{table-id} is a binary version of @code{tableId} attribute in the -structure member that refers to the detail member. For example, if -@code{tableId} is @code{-4154297861994971133}, then @code{table-id} +refer to ``version 1'' and ``version 3'' members later on. +@code{table-id} is a binary version of the @code{tableId} attribute in +the structure member that refers to the detail member. For example, +if @code{tableId} is @code{-4154297861994971133}, then @code{table-id} would be 0xdca00003. The meaning of the other variable parts of the header is not known. @@ -766,6 +766,8 @@ Given appropriate values for the first argument, expands to @code{X = Given appropriate values, expands to @code{1, 2, 3}. @end table @end table + +The format string is localized to the user's locale. @end table @example @@ -787,3 +789,73 @@ style := 01? 00? 00? 00? 01 string[fgcolor] string[bgcolor] string[font] byte format := 00 00 count(format-string (58 | 31 style) 58) format-string := count((i0 (58 | 31 string))?) @end example + +A @code{value-mod} can specify special modifications to a @code{value}: + +@itemize @bullet +@item +The @code{footnote-number}, if present, specifies a footnote that the +@code{value} references. The footnote's marker is shown appended to +the main text of the @code{value}, as a superscript. + +@item +The @code{subscript}, if present, specifies a string to append to the +main text of the @code{value}, as a subscript. The subscript text is +normally a brief indicator, e.g.@: @samp{a} or @samp{a,b}, with its +meaning indicated by the table caption. In this usage, subscripts are +similar to footnotes; one apparent difference is that a @code{value} +can only reference one footnote but a subscript can list more than one +letter. + +@item +The @code{format}, if present, is a format string for substitutions +using the syntax explained previously. It appears to be an +English-language version of the localized format string in the +@code{value} in which the @code{format} is nested. + +@item +The @code{style}, if present, changes the style for this individual +@code{value}. +@end itemize + +@node SPV Legacy Detail Member Binary Format +@subsection SPV Legacy Detail Member Binary Format + +A legacy detail member's binary file has a much simpler format than +the light member binary format. + +@example +legacy-member := 00 byte[version] int16[n-sources] int32[file-size] + metadata*[n-sources] data*[n-sources] +@end example + +@code{version} is a version number that affects the interpretation of +some of the other data in the member. Versions 0xaf and 0xb0 are +known. We will refer to ``version 0xaf'' and ``version 0xb0'' members +later on. + +A legacy member consists of @code{n-sources} data sources, each of +which has @code{metadata} and @code{data}. + +@code{file-size} is the size of the file, in bytes. + +@example +metadata := int32[per-series] int32[n-series] int32[offset] source-name +source-name := byte*[32] /* @r{version 0xaf} */ +source-name := byte*[64] int32 /* @r{version 0xb0} */ +@end example + +A data source consists of @code{n-series} series of data, with +@code{per-series} data items per series. Depending on the version, +@code{source-name} is a 32- or 64-byte string padded on the right with +zero bytes. The names that appear in the corpus are very generic, +usually @code{tableData} or @code{source0}. The @code{offset} is the +offset, in bytes, from the beginning of the file to the start of this +data source's @code{data}. + +The meaning of the number in version 0xb0 @code{source-name} is +unknown. + +@example + +@end example