Bug 48926

Summary: [Patch] HWPF: added a convenience class for the revision mark authors table (sttbfrmark)
Product: POI Reporter: Ryan Lauck <ryanlauck>
Component: HWPFAssignee: POI Developers List <dev>
Severity: enhancement CC: ryanlauck
Priority: P2    
Version: 3.7-dev   
Target Milestone: ---   
Hardware: PC   
OS: Linux   
Attachments: svn diff
Author table text case

Description Ryan Lauck 2010-03-16 23:14:08 UTC
Created attachment 25138 [details]
svn diff

Added a convenience class (RevisionMarkAuthorTable) that holds the table of revision mark author names from the SttbfRMark structure, along with methods to get the length and offset locations from FileInformationBlock and code to read/write/get in HWPFDocument.  

All revision marks/tracked changes in the document store a zero-based index into this table, examples include ParagraphProperties.getIbstPropRMark(), CharacterProperties.getIbstRMarkDel(), CharacterProperties.getIbstPropRMark(), etc.

I have not added any unit tests for this code, but it is in use in my own production code that extracts revision mark data and is tested against revision marks created in word 97 - 2007.
Comment 1 Ryan Lauck 2010-03-16 23:14:56 UTC
Created attachment 25139 [details]
Comment 2 Nick Burch 2010-05-26 10:23:34 UTC
Sorry for the delay in looking at this. Patch applied to svn in r948435.

Any chance you could upload a document which has lots of entries in the table? I've added a couple of simple unit tests, one for a document with no table, and one for a document with only a single entry. However, it'd be good to have a file with loads of entries to properly stress the code with!
Comment 3 Ryan Lauck 2010-05-26 11:16:31 UTC
Created attachment 25486 [details]
Author table text case

Thanks for taking a look at this Nick!

Heres a simple test case with at least 3 different authors in the table.  Also, one of the authors name is blank (from a copy of office not registered to a user?) as an additional test case.
Comment 4 Nick Burch 2010-06-10 11:02:37 UTC
Thanks for the extra document, new tests added