From 7700131df60059593c9a197537a51d25157d1c99 Mon Sep 17 00:00:00 2001 From: Yegor Kozlov Date: Thu, 18 Sep 2008 10:45:00 +0000 Subject: [PATCH] fixed bug 45815: bit mask values inStyleTextPropAtom are not preserved across read-write git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@696623 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/hslf/record/StyleTextPropAtom.java | 6 ++++ .../hslf/record/TestStyleTextPropAtom.java | 31 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java b/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java index 1207c68b3..0eebbfc56 100644 --- a/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java +++ b/src/scratchpad/src/org/apache/poi/hslf/record/StyleTextPropAtom.java @@ -157,6 +157,12 @@ public class StyleTextPropAtom extends RecordAtom new TextProp(0, 0x80, "kumi"), new TextProp(0, 0x100, "unused3"), new TextProp(0, 0x200, "emboss"), + new TextProp(0, 0x400, "nibble1"), + new TextProp(0, 0x800, "nibble2"), + new TextProp(0, 0x1000, "nibble3"), + new TextProp(0, 0x2000, "nibble4"), + new TextProp(0, 0x4000, "unused4"), + new TextProp(0, 0x8000, "unused5"), new CharFlagsTextProp(), new TextProp(2, 0x10000, "font.index"), new TextProp(0, 0x100000, "pp10ext"), diff --git a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestStyleTextPropAtom.java b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestStyleTextPropAtom.java index 17f9010eb..a31ddeb3f 100644 --- a/src/scratchpad/testcases/org/apache/poi/hslf/record/TestStyleTextPropAtom.java +++ b/src/scratchpad/testcases/org/apache/poi/hslf/record/TestStyleTextPropAtom.java @@ -738,4 +738,35 @@ public class TestStyleTextPropAtom extends TestCase { doReadWrite(data, length); } + + /** + * Bug 45815: bit mask values are not preserved on read-write + * + * From the test file attached to the bug: + * + * + * 14 00 00 00 00 00 41 00 0A 00 06 00 50 00 07 00 01 00 00 00 00 00 00 00 02 + * 00 00 00 01 04 00 00 01 04 01 00 00 00 01 08 00 00 01 08 0C 00 00 00 01 0C + * 00 00 01 0C 01 00 00 00 01 10 00 00 01 10 01 00 00 00 01 14 00 00 01 14 01 + * 00 00 00 01 18 00 00 01 18 01 00 00 00 01 1C 00 00 01 1C + * + */ + public void test45815() throws Exception { + int length = 19; + byte[] data = { + 0x00, 0x00, (byte)0xA1, 0x0F, 0x5E, 0x00, 0x00, 0x00, 0x14, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x0A, 0x00, 0x06, 0x00, + 0x50, 0x00, 0x07, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x04, 0x00, 0x00, + 0x01, 0x04, 0x01, 0x00, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, + 0x01, 0x08, 0x0C, 0x00, 0x00, 0x00, 0x01, 0x0C, 0x00, 0x00, + 0x01, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, + 0x01, 0x10, 0x01, 0x00, 0x00, 0x00, 0x01, 0x14, 0x00, 0x00, + 0x01, 0x14, 0x01, 0x00, 0x00, 0x00, 0x01, 0x18, 0x00, 0x00, + 0x01, 0x18, 0x01, 0x00, 0x00, 0x00, 0x01, 0x1C, 0x00, 0x00, + 0x01, 0x1C + }; + doReadWrite(data, length); + } + }