Summary: | Word binary format: FIB version stored differently from spec | ||
---|---|---|---|
Product: | LibreOffice | Reporter: | Urmas <davian818> |
Component: | filters and storage | Assignee: | Not Assigned <libreoffice-bugs> |
Status: | NEW --- | QA Contact: | |
Severity: | enhancement | ||
Priority: | medium | CC: | jmadero.dev, qubit |
Version: | Inherited From OOo | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Urmas
2014-12-10 21:16:08 UTC
Way above my head - requesting input from Robinson and/or developers on this one. Thanks Urmas for the suggestion. @Robinson - any thoughts on this one? If not, let me know and I'll try to track someone down :) (In reply to Urmas from comment #0) > When exporting in Word 97/2003 format, the result file has the FibBase::nFib > field set to 0x101. According to spec, the maximum value for this field is > 0xC1. The following versions should be stored in FibRgCswNew struct (absent > in LO file). Word binary format spec: http://msdn.microsoft.com/en-us/library/cc313153.aspx http://download.microsoft.com/download/2/4/8/24862317-78F0-4C4B-B355-C7B2C1D997DB/%5BMS-DOC%5D.pdf According to Section "2.5.1 Fib" (pp 50, 51): "The Fib structure contains information about the document and specifies the file pointers to various portions that make up the document." It goes on to mention "cbRgFcLcb (2 bytes): An unsigned integer that specifies the count of 64-bit values corresponding to fibRgFcLcbBlo" and give a table that includes the following rows: Value of nFib cbRgFcLcb 0x00C1 0x005D ... 0x0101 0x0088 0x010C 0x00A4 ... From the table, it appears that nFib can be 0x101, as well as an even larger value. Of course, this is all based on my quick read of the spec. Urmas: Where did you read that the max value of nFib is 0xC1? From 2.5.2: nFib (2 bytes): An unsigned integer that specifies the version number of the file format used. Superseded by FibRgCswNew.nFibNew if it is present. This value SHOULD be 0x00C1. (In reply to Urmas from comment #3) > From 2.5.2: > > nFib (2 bytes): An unsigned integer that specifies the version number of the > file format used. Footnote #12 sounds like they made the application and documents first, and the spec 2nd: <12> Section 2.5.2: A special empty document is installed with Word 97, Word 2000, Word 2002, and Office Word 2003 to allow "Create New Word Document" from the operating system. This document has an nFib of 0x00C0. In addition the BiDi build of Word 97 differentiates its documents by saving 0x00C2 as the nFib. In both cases treat them as if they were 0x00C1. *shakes head* > Superseded by FibRgCswNew.nFibNew if it is present. This > value SHOULD be 0x00C1. Anyhow, I agree with Urmas' read of the spec here. Status -> NEW |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.