We may need to look this over in the near future.. . I'm not sure its
correct even yet. It didn't hurt anything though since all unit tests
passed.
On Wed, 2002-03-20 at 21:09, [EMAIL PROTECTED] wrote:
> acoliver 02/03/20 18:09:31
>
> Modified: src/java/org/apache/poi/hssf/record FooterRecord.java
> HeaderRecord.java
> Log:
> Applied fixes from Shawn Laubach for footer and header records
>
> Revision Changes Path
> 1.5 +7 -7
>jakarta-poi/src/java/org/apache/poi/hssf/record/FooterRecord.java
>
> Index: FooterRecord.java
> ===================================================================
> RCS file:
>/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/FooterRecord.java,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- FooterRecord.java 1 Mar 2002 13:10:15 -0000 1.4
> +++ FooterRecord.java 21 Mar 2002 02:09:31 -0000 1.5
> @@ -117,7 +117,7 @@
> if (size > 0)
> {
> field_1_footer_len = data[ 0 + offset ];
> - field_2_footer = new String(data, 1 + offset,
> + field_2_footer = new String(data, 3 + offset, // [Shawn] Changed
>1 to 3 for offset of string
> LittleEndian.ubyteToInt(
>field_1_footer_len) );
> }
> }
> @@ -153,9 +153,9 @@
> * @see #getFooter()
> */
>
> - public byte getFooterLength()
> + public short getFooterLength()
> {
> - return field_1_footer_len;
> + return (short)(0xFF & field_1_footer_len); // [Shawn] Fixed needing
>unsigned byte
> }
>
> /**
> @@ -189,15 +189,15 @@
>
> if (getFooterLength() > 0)
> {
> - len++;
> + len+=3; // [Shawn] Fixed for two null bytes in the length
> }
> LittleEndian.putShort(data, 0 + offset, sid);
> LittleEndian.putShort(data, 2 + offset,
> ( short ) ((len - 4) + getFooterLength()));
> if (getFooterLength() > 0)
> {
> - data[ 4 + offset ] = getFooterLength();
> - StringUtil.putCompressedUnicode(getFooter(), data, 5 + offset);
> + data[ 4 + offset ] = (byte)getFooterLength();
> + StringUtil.putCompressedUnicode(getFooter(), data, 7 + offset); //
>[Shawn] Place the string in the correct offset
> }
> return getRecordSize();
> }
> @@ -208,7 +208,7 @@
>
> if (getFooterLength() > 0)
> {
> - retval++;
> + retval+=3; // [Shawn] Fixed for two null bytes in the length
> }
> return retval + getFooterLength();
> }
>
>
>
> 1.5 +8 -7
>jakarta-poi/src/java/org/apache/poi/hssf/record/HeaderRecord.java
>
> Index: HeaderRecord.java
> ===================================================================
> RCS file:
>/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/HeaderRecord.java,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -r1.4 -r1.5
> --- HeaderRecord.java 1 Mar 2002 13:10:15 -0000 1.4
> +++ HeaderRecord.java 21 Mar 2002 02:09:31 -0000 1.5
> @@ -117,7 +117,7 @@
> if (size > 0)
> {
> field_1_header_len = data[ 0 + offset ];
> - field_2_header = new String(data, 1 + offset,
> + field_2_header = new String(data, 3 + offset, // [Shawn] Changed
>1 to 3 for offset of string
>
>LittleEndian.ubyteToInt(field_1_header_len));
> }
> }
> @@ -153,9 +153,9 @@
> * @see #getHeader()
> */
>
> - public byte getHeaderLength()
> + public short getHeaderLength()
> {
> - return field_1_header_len;
> + return (short)(0xFF & field_1_header_len); // [Shawn] Fixed needing
>unsigned byte
> }
>
> /**
> @@ -189,15 +189,16 @@
>
> if (getHeaderLength() != 0)
> {
> - len++;
> + len+=3; // [Shawn] Fixed for two null bytes in the length
> }
> LittleEndian.putShort(data, 0 + offset, sid);
> LittleEndian.putShort(data, 2 + offset,
> ( short ) ((len - 4) + getHeaderLength()));
> +
> if (getHeaderLength() > 0)
> {
> - data[ 4 + offset ] = getHeaderLength();
> - StringUtil.putCompressedUnicode(getHeader(), data, 5 + offset);
> + data[ 4 + offset ] = (byte)getHeaderLength();
> + StringUtil.putCompressedUnicode(getHeader(), data, 7 + offset); //
>[Shawn] Place the string in the correct offset
> }
> return getRecordSize();
> }
> @@ -208,7 +209,7 @@
>
> if (getHeaderLength() != 0)
> {
> - retval++;
> + retval+=3; // [Shawn] Fixed for two null bytes in the length
> }
> retval += getHeaderLength();
> return retval;
>
>
>
--
http://www.superlinksoftware.com
http://jakarta.apache.org/poi - port of Excel/Word/OLE 2 Compound
Document
format to java
http://developer.java.sun.com/developer/bugParade/bugs/4487555.html
- fix java generics!
The avalanche has already started. It is too late for the pebbles to
vote.
-Ambassador Kosh