Patch from dnapoletano from bug #45175 - Support for variable length operands in org.apache.poi.hwpf.sprm.SprmOperation
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@672567 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
70f9a0a528
commit
1f27ceb98f
@ -37,6 +37,7 @@
|
|||||||
|
|
||||||
<!-- Don't forget to update status.xml too! -->
|
<!-- Don't forget to update status.xml too! -->
|
||||||
<release version="3.1.1-alpha1" date="2008-??-??">
|
<release version="3.1.1-alpha1" date="2008-??-??">
|
||||||
|
<action dev="POI-DEVELOPERS" type="add">45175 - Support for variable length operands in org.apache.poi.hwpf.sprm.SprmOperation</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">Avoid spurious missing lines with the MissingRecordAware event code, and odd files that contain RowRecords in the middle of the cell Records.</action>
|
<action dev="POI-DEVELOPERS" type="fix">Avoid spurious missing lines with the MissingRecordAware event code, and odd files that contain RowRecords in the middle of the cell Records.</action>
|
||||||
<action dev="POI-DEVELOPERS" type="add">Support for parsing formulas during EventUserModel processing, via the new EventWorkbookBuilder</action>
|
<action dev="POI-DEVELOPERS" type="add">Support for parsing formulas during EventUserModel processing, via the new EventWorkbookBuilder</action>
|
||||||
</release>
|
</release>
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
<!-- Don't forget to update changes.xml too! -->
|
<!-- Don't forget to update changes.xml too! -->
|
||||||
<changes>
|
<changes>
|
||||||
<release version="3.1.1-alpha1" date="2008-??-??">
|
<release version="3.1.1-alpha1" date="2008-??-??">
|
||||||
|
<action dev="POI-DEVELOPERS" type="add">45175 - Support for variable length operands in org.apache.poi.hwpf.sprm.SprmOperation</action>
|
||||||
<action dev="POI-DEVELOPERS" type="fix">Avoid spurious missing lines with the MissingRecordAware event code, and odd files that contain RowRecords in the middle of the cell Records.</action>
|
<action dev="POI-DEVELOPERS" type="fix">Avoid spurious missing lines with the MissingRecordAware event code, and odd files that contain RowRecords in the middle of the cell Records.</action>
|
||||||
<action dev="POI-DEVELOPERS" type="add">Support for parsing formulas during EventUserModel processing, via the new EventWorkbookBuilder</action>
|
<action dev="POI-DEVELOPERS" type="add">Support for parsing formulas during EventUserModel processing, via the new EventWorkbookBuilder</action>
|
||||||
</release>
|
</release>
|
||||||
|
@ -101,7 +101,14 @@ public class SprmOperation
|
|||||||
case 3:
|
case 3:
|
||||||
return LittleEndian.getInt(_grpprl, _gOffset);
|
return LittleEndian.getInt(_grpprl, _gOffset);
|
||||||
case 6:
|
case 6:
|
||||||
throw new UnsupportedOperationException("This SPRM contains a variable length operand");
|
byte operandLength = _grpprl[_gOffset + 1]; //surely shorter than an int...
|
||||||
|
|
||||||
|
byte [] codeBytes = new byte[LittleEndian.INT_SIZE]; //initialized to zeros by JVM
|
||||||
|
for(int i = 0; i < operandLength; i++)
|
||||||
|
if(_gOffset + i < _grpprl.length)
|
||||||
|
codeBytes[i] = _grpprl[_gOffset + 1 + i];
|
||||||
|
|
||||||
|
return LittleEndian.getInt(codeBytes, 0);
|
||||||
case 7:
|
case 7:
|
||||||
byte threeByteInt[] = new byte[4];
|
byte threeByteInt[] = new byte[4];
|
||||||
threeByteInt[0] = _grpprl[_gOffset];
|
threeByteInt[0] = _grpprl[_gOffset];
|
||||||
|
@ -353,9 +353,6 @@ public final class TestMissingRecordAwareHSSFListener extends TestCase {
|
|||||||
public void testNoExtraNewLines() throws Exception {
|
public void testNoExtraNewLines() throws Exception {
|
||||||
// Load a different file
|
// Load a different file
|
||||||
openAlt();
|
openAlt();
|
||||||
for(int i=0; i<r.length; i++) {
|
|
||||||
System.err.println(r[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// This file has has something in lines 1-33
|
// This file has has something in lines 1-33
|
||||||
|
Loading…
Reference in New Issue
Block a user