xref: /aoo4110/main/sw/source/filter/ww8/dump/ww8dout.cxx (revision b1cdbd2c)
1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski // MARKER(update_precomp.py): autogen include statement, do not remove
25*b1cdbd2cSJim Jagielski #include "precompiled_sw.hxx"
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include <stdio.h>			// getchar
28*b1cdbd2cSJim Jagielski 
29*b1cdbd2cSJim Jagielski //#include "defs.hxx"
30*b1cdbd2cSJim Jagielski #include <tools/solar.h>			// sal_uInt8
31*b1cdbd2cSJim Jagielski //#include "wwscan.hxx"	// aWwStor
32*b1cdbd2cSJim Jagielski #include "ww8dout.hxx"
33*b1cdbd2cSJim Jagielski #include <tools/stream.hxx>
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski #include <sot/storage.hxx>
36*b1cdbd2cSJim Jagielski 
37*b1cdbd2cSJim Jagielski extern SvStorageStreamRef xStrm;
38*b1cdbd2cSJim Jagielski extern SvStorageStreamRef xTableStream;
39*b1cdbd2cSJim Jagielski extern SvStorageStreamRef xDataStream; 	// ist bei Ver6-7 mit xStrm identisch,
40*b1cdbd2cSJim Jagielski void DumpSprms( sal_uInt8 nVersion, SvStream& rSt, short nLen );
41*b1cdbd2cSJim Jagielski 
42*b1cdbd2cSJim Jagielski ostream* pOut = 0;
43*b1cdbd2cSJim Jagielski 
44*b1cdbd2cSJim Jagielski #define DumpVer8
45*b1cdbd2cSJim Jagielski 
46*b1cdbd2cSJim Jagielski //-----------------------------------------
47*b1cdbd2cSJim Jagielski // 			Streams
48*b1cdbd2cSJim Jagielski //-----------------------------------------
49*b1cdbd2cSJim Jagielski 
50*b1cdbd2cSJim Jagielski 
51*b1cdbd2cSJim Jagielski static int level = 0;
52*b1cdbd2cSJim Jagielski static long lastpos = -1;
53*b1cdbd2cSJim Jagielski 
endl1(ostream & s)54*b1cdbd2cSJim Jagielski ostream& __cdecl endl1( ostream& s ){
55*b1cdbd2cSJim Jagielski //ostream& endl1( ostream& s ) {
56*b1cdbd2cSJim Jagielski 	s << endl;
57*b1cdbd2cSJim Jagielski 	return s;
58*b1cdbd2cSJim Jagielski }
59*b1cdbd2cSJim Jagielski 
hex2(ostream & s)60*b1cdbd2cSJim Jagielski ostream&  __cdecl hex2( ostream& s ) {
61*b1cdbd2cSJim Jagielski 	s.width( 2 ); s.fill( (const char)250 );
62*b1cdbd2cSJim Jagielski 	s << hex;
63*b1cdbd2cSJim Jagielski 	return s;
64*b1cdbd2cSJim Jagielski }
65*b1cdbd2cSJim Jagielski 
hex4(ostream & s)66*b1cdbd2cSJim Jagielski ostream&  __cdecl hex4( ostream& s ) {
67*b1cdbd2cSJim Jagielski 	s.width( 4 ); s.fill( (const char)250 );
68*b1cdbd2cSJim Jagielski 	s << hex ;
69*b1cdbd2cSJim Jagielski 	return s;
70*b1cdbd2cSJim Jagielski }
71*b1cdbd2cSJim Jagielski 
hex6(ostream & s)72*b1cdbd2cSJim Jagielski ostream&  __cdecl hex6( ostream& s ) {
73*b1cdbd2cSJim Jagielski 	s.width( 6 ); s.fill( (const char)250 );
74*b1cdbd2cSJim Jagielski 	s << hex ;
75*b1cdbd2cSJim Jagielski 	return s;
76*b1cdbd2cSJim Jagielski }
77*b1cdbd2cSJim Jagielski 
hex8(ostream & s)78*b1cdbd2cSJim Jagielski ostream&  __cdecl hex8( ostream& s ) {
79*b1cdbd2cSJim Jagielski 	s.width( 8 ); s.fill( (const char)250 );
80*b1cdbd2cSJim Jagielski 	s << hex ;
81*b1cdbd2cSJim Jagielski 	return s;
82*b1cdbd2cSJim Jagielski }
83*b1cdbd2cSJim Jagielski 
dec2(ostream & s)84*b1cdbd2cSJim Jagielski ostream&  __cdecl dec2( ostream& s ) {
85*b1cdbd2cSJim Jagielski 	s << dec;
86*b1cdbd2cSJim Jagielski 	s.width( 0 ); s.fill( 0 );
87*b1cdbd2cSJim Jagielski 	return s;
88*b1cdbd2cSJim Jagielski }
89*b1cdbd2cSJim Jagielski 
filepos(ostream & s,SvStream & rSt)90*b1cdbd2cSJim Jagielski ostream&  __cdecl filepos( ostream& s, SvStream& rSt ) {
91*b1cdbd2cSJim Jagielski 	long pos = rSt.Tell();
92*b1cdbd2cSJim Jagielski 
93*b1cdbd2cSJim Jagielski 	if ( pos != lastpos ){
94*b1cdbd2cSJim Jagielski #ifndef DumpVer8
95*b1cdbd2cSJim Jagielski 		if( &rSt == &xStrm )
96*b1cdbd2cSJim Jagielski 			s << "D";
97*b1cdbd2cSJim Jagielski 		else
98*b1cdbd2cSJim Jagielski 			s << "T";
99*b1cdbd2cSJim Jagielski #endif
100*b1cdbd2cSJim Jagielski 		s.width( 6 );
101*b1cdbd2cSJim Jagielski 		s.fill( (const char)250 );
102*b1cdbd2cSJim Jagielski 		s << hex << pos << dec << ' ';
103*b1cdbd2cSJim Jagielski 		s.width( 0 ); s.fill( 0 );
104*b1cdbd2cSJim Jagielski 		lastpos = pos;
105*b1cdbd2cSJim Jagielski 	}else{
106*b1cdbd2cSJim Jagielski #ifndef DumpVer8
107*b1cdbd2cSJim Jagielski 		s << "        ";
108*b1cdbd2cSJim Jagielski #else
109*b1cdbd2cSJim Jagielski 		s << "       ";
110*b1cdbd2cSJim Jagielski #endif
111*b1cdbd2cSJim Jagielski 	}
112*b1cdbd2cSJim Jagielski 	return s;
113*b1cdbd2cSJim Jagielski }
114*b1cdbd2cSJim Jagielski 
indent(ostream & s,SvStream & rSt)115*b1cdbd2cSJim Jagielski ostream&  __cdecl indent( ostream& s, SvStream& rSt ) {
116*b1cdbd2cSJim Jagielski 	filepos( s, rSt );
117*b1cdbd2cSJim Jagielski 	for( int i = 0; i < level; i++ ) s << "  ";
118*b1cdbd2cSJim Jagielski 	return s;
119*b1cdbd2cSJim Jagielski }
120*b1cdbd2cSJim Jagielski 
indent1(ostream & s)121*b1cdbd2cSJim Jagielski ostream&  __cdecl indent1( ostream& s ) {
122*b1cdbd2cSJim Jagielski 	for( int i = 0; i < level; i++ ) s << "  ";
123*b1cdbd2cSJim Jagielski 	return s;
124*b1cdbd2cSJim Jagielski }
125*b1cdbd2cSJim Jagielski 
indent2(ostream & s)126*b1cdbd2cSJim Jagielski ostream&  __cdecl indent2( ostream& s ) {
127*b1cdbd2cSJim Jagielski #ifndef DumpVer8
128*b1cdbd2cSJim Jagielski 	s << "        " << indent1;
129*b1cdbd2cSJim Jagielski #else
130*b1cdbd2cSJim Jagielski 	s << "       " << indent1;
131*b1cdbd2cSJim Jagielski #endif
132*b1cdbd2cSJim Jagielski 	return s;
133*b1cdbd2cSJim Jagielski }
134*b1cdbd2cSJim Jagielski 
begin(ostream & s,SvStream & rSt)135*b1cdbd2cSJim Jagielski ostream&  __cdecl begin( ostream& s, SvStream& rSt  ) { indent( s, rSt ) << "BEGIN "; level++; return s; }
136*b1cdbd2cSJim Jagielski 
137*b1cdbd2cSJim Jagielski // begin1 ohne indent
begin1(ostream & s)138*b1cdbd2cSJim Jagielski ostream&  __cdecl begin1( ostream& s ) { s << "BEGIN "; level++; return s; }
139*b1cdbd2cSJim Jagielski 
140*b1cdbd2cSJim Jagielski // begin2 ohne Nummer
begin2(ostream & s)141*b1cdbd2cSJim Jagielski ostream&  __cdecl begin2( ostream& s ) { s << indent2 << "BEGIN "; level++; return s; }
142*b1cdbd2cSJim Jagielski 
end(ostream & s,SvStream & rSt)143*b1cdbd2cSJim Jagielski ostream&  __cdecl end( ostream& s, SvStream& rSt  ) { level--; return indent( s, rSt ) << "END "; }
144*b1cdbd2cSJim Jagielski 
145*b1cdbd2cSJim Jagielski // end1 ohne filepos
end1(ostream & s)146*b1cdbd2cSJim Jagielski ostream&  __cdecl end1( ostream& s ) { level--; return s << indent1 << "END "; }
147*b1cdbd2cSJim Jagielski 
148*b1cdbd2cSJim Jagielski // end2 ohne Nummer
end2(ostream & s)149*b1cdbd2cSJim Jagielski ostream&  __cdecl end2( ostream& s ) { level--; return s << indent2 << "END "; }
150*b1cdbd2cSJim Jagielski 
151*b1cdbd2cSJim Jagielski //-----------------------------------------
152*b1cdbd2cSJim Jagielski //			Ausgabe-Funktionen
153*b1cdbd2cSJim Jagielski //-----------------------------------------
154*b1cdbd2cSJim Jagielski 
OutBool(SvStream & rSt,short)155*b1cdbd2cSJim Jagielski void OutBool( SvStream& rSt, short )
156*b1cdbd2cSJim Jagielski {
157*b1cdbd2cSJim Jagielski 	sal_uInt8 nPara;
158*b1cdbd2cSJim Jagielski 
159*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
160*b1cdbd2cSJim Jagielski 	switch( nPara ){
161*b1cdbd2cSJim Jagielski 	case 0:  *pOut << "F"; break;
162*b1cdbd2cSJim Jagielski 	case 1:  *pOut << "T"; break;
163*b1cdbd2cSJim Jagielski 	default: *pOut << "ERROR:" << (sal_uInt16)nPara; break;
164*b1cdbd2cSJim Jagielski 	}
165*b1cdbd2cSJim Jagielski }
166*b1cdbd2cSJim Jagielski 
OutBool4(SvStream & rSt,short)167*b1cdbd2cSJim Jagielski void OutBool4( SvStream& rSt, short )
168*b1cdbd2cSJim Jagielski {
169*b1cdbd2cSJim Jagielski 	sal_uInt8 nPara;
170*b1cdbd2cSJim Jagielski 
171*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
172*b1cdbd2cSJim Jagielski 	switch( nPara ){
173*b1cdbd2cSJim Jagielski 	case 0:   *pOut << "F"; break;
174*b1cdbd2cSJim Jagielski 	case 1:   *pOut << "T"; break;
175*b1cdbd2cSJim Jagielski 	case 128: *pOut << "==Style"; break;
176*b1cdbd2cSJim Jagielski 	case 129: *pOut << "!=Style"; break;
177*b1cdbd2cSJim Jagielski 	default:  *pOut << "ERROR:" << (sal_uInt16)nPara; break;
178*b1cdbd2cSJim Jagielski 	}
179*b1cdbd2cSJim Jagielski }
180*b1cdbd2cSJim Jagielski 
OutByte(SvStream & rSt,short)181*b1cdbd2cSJim Jagielski void OutByte( SvStream& rSt, short )
182*b1cdbd2cSJim Jagielski {
183*b1cdbd2cSJim Jagielski 	sal_uInt8 nPara;
184*b1cdbd2cSJim Jagielski 
185*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
186*b1cdbd2cSJim Jagielski 	*pOut << (sal_uInt16)nPara;
187*b1cdbd2cSJim Jagielski }
188*b1cdbd2cSJim Jagielski 
OutShort(SvStream & rSt,short)189*b1cdbd2cSJim Jagielski void OutShort( SvStream& rSt, short )
190*b1cdbd2cSJim Jagielski {
191*b1cdbd2cSJim Jagielski 	short nPara;
192*b1cdbd2cSJim Jagielski 
193*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
194*b1cdbd2cSJim Jagielski 	*pOut << nPara;
195*b1cdbd2cSJim Jagielski }
196*b1cdbd2cSJim Jagielski 
OutShorts(SvStream & rSt,short nLen)197*b1cdbd2cSJim Jagielski void OutShorts( SvStream& rSt, short nLen )
198*b1cdbd2cSJim Jagielski {
199*b1cdbd2cSJim Jagielski 	sal_Int16 nPara;
200*b1cdbd2cSJim Jagielski 
201*b1cdbd2cSJim Jagielski 	for( short i = 0; i < nLen / 2; i++ ){
202*b1cdbd2cSJim Jagielski 		rSt.Read( &nPara, sizeof( nPara ) );
203*b1cdbd2cSJim Jagielski 		*pOut << nPara << ' ';
204*b1cdbd2cSJim Jagielski 	}
205*b1cdbd2cSJim Jagielski }
206*b1cdbd2cSJim Jagielski 
OutWord(SvStream & rSt,short)207*b1cdbd2cSJim Jagielski void OutWord( SvStream& rSt, short )
208*b1cdbd2cSJim Jagielski {
209*b1cdbd2cSJim Jagielski 	sal_uInt16 nPara;
210*b1cdbd2cSJim Jagielski 
211*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
212*b1cdbd2cSJim Jagielski 	*pOut << nPara;
213*b1cdbd2cSJim Jagielski }
214*b1cdbd2cSJim Jagielski 
OutWords(SvStream & rSt,short nLen)215*b1cdbd2cSJim Jagielski void OutWords( SvStream& rSt, short nLen )
216*b1cdbd2cSJim Jagielski {
217*b1cdbd2cSJim Jagielski 	sal_uInt16 nPara;
218*b1cdbd2cSJim Jagielski 
219*b1cdbd2cSJim Jagielski 	for( short i = 0; i < nLen / 2; i++ ){
220*b1cdbd2cSJim Jagielski 		rSt.Read( &nPara, sizeof( nPara ) );
221*b1cdbd2cSJim Jagielski 		*pOut << nPara;
222*b1cdbd2cSJim Jagielski 	}
223*b1cdbd2cSJim Jagielski }
224*b1cdbd2cSJim Jagielski 
OutWordHex(SvStream & rSt,short)225*b1cdbd2cSJim Jagielski void OutWordHex( SvStream& rSt, short )
226*b1cdbd2cSJim Jagielski {
227*b1cdbd2cSJim Jagielski 	sal_uInt16 nPara;
228*b1cdbd2cSJim Jagielski 
229*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
230*b1cdbd2cSJim Jagielski 	*pOut << "0x" << hex4 << nPara << dec;
231*b1cdbd2cSJim Jagielski }
232*b1cdbd2cSJim Jagielski 
OutWordsHex(SvStream & rSt,short nLen)233*b1cdbd2cSJim Jagielski void OutWordsHex( SvStream& rSt, short nLen )
234*b1cdbd2cSJim Jagielski {
235*b1cdbd2cSJim Jagielski 	sal_uInt16 nPara;
236*b1cdbd2cSJim Jagielski 	nLen /= sizeof( nPara );
237*b1cdbd2cSJim Jagielski 	for( short i = 0; i < nLen; i++ ){
238*b1cdbd2cSJim Jagielski 		rSt.Read( &nPara, sizeof( nPara ) );
239*b1cdbd2cSJim Jagielski 		*pOut << "0x" << hex4 << nPara << dec;
240*b1cdbd2cSJim Jagielski 		if( i < nLen - 1 )
241*b1cdbd2cSJim Jagielski 			*pOut << ' ';
242*b1cdbd2cSJim Jagielski 	}
243*b1cdbd2cSJim Jagielski }
244*b1cdbd2cSJim Jagielski 
OutLongsHex(SvStream & rSt,short nLen)245*b1cdbd2cSJim Jagielski void OutLongsHex( SvStream& rSt, short nLen )
246*b1cdbd2cSJim Jagielski {
247*b1cdbd2cSJim Jagielski 	long nPara;
248*b1cdbd2cSJim Jagielski 	nLen /= sizeof( nPara );
249*b1cdbd2cSJim Jagielski 	for( short i = 0; i < nLen; i++ )
250*b1cdbd2cSJim Jagielski 	{
251*b1cdbd2cSJim Jagielski 		rSt.Read( &nPara, sizeof( nPara ) );
252*b1cdbd2cSJim Jagielski 		*pOut << "0x" << hex8 << nPara << dec;
253*b1cdbd2cSJim Jagielski 		if( i < nLen - 1 )
254*b1cdbd2cSJim Jagielski 			*pOut << ' ';
255*b1cdbd2cSJim Jagielski 	}
256*b1cdbd2cSJim Jagielski }
257*b1cdbd2cSJim Jagielski 
OutLongHex(SvStream & rSt,short)258*b1cdbd2cSJim Jagielski void OutLongHex( SvStream& rSt, short )
259*b1cdbd2cSJim Jagielski {
260*b1cdbd2cSJim Jagielski 	sal_uLong nPara;
261*b1cdbd2cSJim Jagielski 
262*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
263*b1cdbd2cSJim Jagielski 	*pOut << "0x" << hex8 << nPara << dec;
264*b1cdbd2cSJim Jagielski }
265*b1cdbd2cSJim Jagielski 
OutTab68(SvStream & rSt,short)266*b1cdbd2cSJim Jagielski void OutTab68( SvStream& rSt, short )
267*b1cdbd2cSJim Jagielski {
268*b1cdbd2cSJim Jagielski 	sal_uLong nPara;
269*b1cdbd2cSJim Jagielski 
270*b1cdbd2cSJim Jagielski 	rSt.Read( &nPara, sizeof( nPara ) );
271*b1cdbd2cSJim Jagielski 	if(  nPara == 0 )
272*b1cdbd2cSJim Jagielski 		*pOut << "None";
273*b1cdbd2cSJim Jagielski 	else
274*b1cdbd2cSJim Jagielski 		*pOut << "0x" << hex8 << nPara << dec;
275*b1cdbd2cSJim Jagielski }
276*b1cdbd2cSJim Jagielski 
277*b1cdbd2cSJim Jagielski 
OutTab(SvStream & rSt,short)278*b1cdbd2cSJim Jagielski void OutTab( SvStream& rSt, short )
279*b1cdbd2cSJim Jagielski {
280*b1cdbd2cSJim Jagielski 	sal_uInt8 nDel, nIns, nType;
281*b1cdbd2cSJim Jagielski 	short nPos, i;
282*b1cdbd2cSJim Jagielski 
283*b1cdbd2cSJim Jagielski 	rSt.Read( &nDel, sizeof( nDel ) );
284*b1cdbd2cSJim Jagielski 	*pOut << "Del " << (sal_uInt16)nDel;
285*b1cdbd2cSJim Jagielski 	if ( nDel )	*pOut << ": ";
286*b1cdbd2cSJim Jagielski 	else        *pOut << ", ";
287*b1cdbd2cSJim Jagielski 
288*b1cdbd2cSJim Jagielski 	for( i=1; i<=nDel; i++){
289*b1cdbd2cSJim Jagielski 		rSt.Read( &nPos, sizeof( nPos ) );
290*b1cdbd2cSJim Jagielski 		*pOut << nPos;
291*b1cdbd2cSJim Jagielski 		if( i<nDel ) *pOut << ',';
292*b1cdbd2cSJim Jagielski 		else *pOut << ' ';
293*b1cdbd2cSJim Jagielski 	}
294*b1cdbd2cSJim Jagielski 	rSt.Read( &nIns, sizeof( nIns ) );
295*b1cdbd2cSJim Jagielski 	*pOut << "Ins " << (sal_uInt16)nIns;
296*b1cdbd2cSJim Jagielski 	if ( nIns )	*pOut << ": ";
297*b1cdbd2cSJim Jagielski 
298*b1cdbd2cSJim Jagielski 	for( i=1; i<=nIns; i++){
299*b1cdbd2cSJim Jagielski 		rSt.Read( &nPos, sizeof( nPos ) );
300*b1cdbd2cSJim Jagielski 		*pOut << nPos;
301*b1cdbd2cSJim Jagielski 		if( i<nIns ) *pOut << ',';
302*b1cdbd2cSJim Jagielski 		else *pOut << ' ';
303*b1cdbd2cSJim Jagielski 	}
304*b1cdbd2cSJim Jagielski 	if ( nIns )	*pOut << "Typ: ";
305*b1cdbd2cSJim Jagielski 
306*b1cdbd2cSJim Jagielski 	for( i=1; i<=nIns; i++){
307*b1cdbd2cSJim Jagielski 		rSt.Read( &nType, sizeof( nType ) );
308*b1cdbd2cSJim Jagielski 		*pOut << (sal_uInt16)nType;
309*b1cdbd2cSJim Jagielski 		if( i<nIns ) *pOut << ',';
310*b1cdbd2cSJim Jagielski 		else *pOut << ' ';
311*b1cdbd2cSJim Jagielski 	}
312*b1cdbd2cSJim Jagielski 
313*b1cdbd2cSJim Jagielski //	nSiz = 1 + 2 * nDel + 1 + nIns * 3;	// genaue Laenge,
314*b1cdbd2cSJim Jagielski //      stimmt auch bei Laenge > 256
315*b1cdbd2cSJim Jagielski //	bei diesem Tab-Befehl anscheinend nicht noetig
316*b1cdbd2cSJim Jagielski }
317*b1cdbd2cSJim Jagielski 
OutTab190(SvStream & rSt,short nLen)318*b1cdbd2cSJim Jagielski void OutTab190( SvStream& rSt, short nLen )
319*b1cdbd2cSJim Jagielski {
320*b1cdbd2cSJim Jagielski 	sal_uInt8 nCols;
321*b1cdbd2cSJim Jagielski 	rSt.Read( &nCols, sizeof( nCols ) );
322*b1cdbd2cSJim Jagielski 	*pOut << (sal_uInt16)nCols << " Cols: ";
323*b1cdbd2cSJim Jagielski 
324*b1cdbd2cSJim Jagielski 	short nPos, i;
325*b1cdbd2cSJim Jagielski 	for( i = 0; i <= nCols; i++ ){
326*b1cdbd2cSJim Jagielski 		rSt.Read( &nPos, sizeof( nPos ) );
327*b1cdbd2cSJim Jagielski 		*pOut << nPos;
328*b1cdbd2cSJim Jagielski 		if( i < nCols )
329*b1cdbd2cSJim Jagielski 			*pOut << ", ";
330*b1cdbd2cSJim Jagielski 	}
331*b1cdbd2cSJim Jagielski 	*pOut << dec << "; ";
332*b1cdbd2cSJim Jagielski 	for( i = 0; i < nCols; i++ ){
333*b1cdbd2cSJim Jagielski 		*pOut << "Col " << i << " TC: ";
334*b1cdbd2cSJim Jagielski 		OutWordsHex( rSt, 10 );
335*b1cdbd2cSJim Jagielski 		if( i < nCols - 1 )
336*b1cdbd2cSJim Jagielski 			*pOut << "; ";
337*b1cdbd2cSJim Jagielski 	}
338*b1cdbd2cSJim Jagielski }
339*b1cdbd2cSJim Jagielski 
OutTab191(SvStream & rSt,short nLen)340*b1cdbd2cSJim Jagielski void OutTab191( SvStream& rSt, short nLen )
341*b1cdbd2cSJim Jagielski {
342*b1cdbd2cSJim Jagielski 	sal_uInt8 nCols;
343*b1cdbd2cSJim Jagielski 	rSt.Read( &nCols, sizeof( nCols ) );
344*b1cdbd2cSJim Jagielski 	*pOut << (sal_uInt16)nCols << " Cols, SHDs: ";
345*b1cdbd2cSJim Jagielski 	OutWordsHex( rSt, ( nCols + 1 ) * 2 );
346*b1cdbd2cSJim Jagielski }
347*b1cdbd2cSJim Jagielski 
OutTab192(SvStream & rSt,short)348*b1cdbd2cSJim Jagielski void OutTab192( SvStream& rSt, short )
349*b1cdbd2cSJim Jagielski {
350*b1cdbd2cSJim Jagielski 	OutWord(    rSt, 0 );
351*b1cdbd2cSJim Jagielski 	OutWordHex( rSt, 0 );
352*b1cdbd2cSJim Jagielski }
353*b1cdbd2cSJim Jagielski 
OutHugeHex(SvStream & rSt,short nLen)354*b1cdbd2cSJim Jagielski void OutHugeHex( SvStream& rSt, short nLen )
355*b1cdbd2cSJim Jagielski {
356*b1cdbd2cSJim Jagielski 	long nPos;
357*b1cdbd2cSJim Jagielski 	rSt.Read( &nPos, sizeof( nPos ) );
358*b1cdbd2cSJim Jagielski 
359*b1cdbd2cSJim Jagielski 	long nCurr = xDataStream->Tell();
360*b1cdbd2cSJim Jagielski 	xDataStream->Seek( nPos );
361*b1cdbd2cSJim Jagielski 
362*b1cdbd2cSJim Jagielski 	xDataStream->Read( &nLen, sizeof( nLen ) );
363*b1cdbd2cSJim Jagielski 
364*b1cdbd2cSJim Jagielski //	*pOut << ", Len max: " << nLen << ", ID:" << nIStd << endl1;
365*b1cdbd2cSJim Jagielski 	*pOut << endl1;
366*b1cdbd2cSJim Jagielski 	DumpSprms( 8, *xDataStream, nLen );
367*b1cdbd2cSJim Jagielski 
368*b1cdbd2cSJim Jagielski 	xDataStream->Seek( nCurr );
369*b1cdbd2cSJim Jagielski }
370*b1cdbd2cSJim Jagielski 
OutTabD608(SvStream & rSt,short nLen)371*b1cdbd2cSJim Jagielski void OutTabD608( SvStream& rSt, short nLen )
372*b1cdbd2cSJim Jagielski {
373*b1cdbd2cSJim Jagielski 	sal_uInt8 nHi, nCols;
374*b1cdbd2cSJim Jagielski 	rSt.Read( &nHi, sizeof( nHi ) );
375*b1cdbd2cSJim Jagielski //	nLen += ((short)nHi) << 8;
376*b1cdbd2cSJim Jagielski 
377*b1cdbd2cSJim Jagielski 	rSt.Read( &nCols, sizeof( nCols ) );
378*b1cdbd2cSJim Jagielski 	*pOut << " Cols: " << (short)nCols << ' ' << endl1 << indent2;
379*b1cdbd2cSJim Jagielski 
380*b1cdbd2cSJim Jagielski 	short nPos, i;
381*b1cdbd2cSJim Jagielski 	for( i = 0; i <= nCols; ++i )
382*b1cdbd2cSJim Jagielski 	{
383*b1cdbd2cSJim Jagielski 		rSt.Read( &nPos, sizeof( nPos ) );
384*b1cdbd2cSJim Jagielski 		*pOut << nPos;
385*b1cdbd2cSJim Jagielski 		if( i < nCols )
386*b1cdbd2cSJim Jagielski 			*pOut << ", ";
387*b1cdbd2cSJim Jagielski 	}
388*b1cdbd2cSJim Jagielski 	nLen -= ( nCols + 1 ) * 2;
389*b1cdbd2cSJim Jagielski 	nLen /= 20;
390*b1cdbd2cSJim Jagielski 
391*b1cdbd2cSJim Jagielski 	for( i = 0; i < nLen; ++i )
392*b1cdbd2cSJim Jagielski 	{
393*b1cdbd2cSJim Jagielski 		*pOut << endl1 << indent2 << "Col " << i << " TC: ";
394*b1cdbd2cSJim Jagielski 		OutLongsHex( rSt, 20 );
395*b1cdbd2cSJim Jagielski 		if( i < nLen - 1 )
396*b1cdbd2cSJim Jagielski 			*pOut << "; ";
397*b1cdbd2cSJim Jagielski 	}
398*b1cdbd2cSJim Jagielski }
399*b1cdbd2cSJim Jagielski 
OutTabD609(SvStream & rSt,short nLen)400*b1cdbd2cSJim Jagielski void OutTabD609( SvStream& rSt, short nLen )
401*b1cdbd2cSJim Jagielski {
402*b1cdbd2cSJim Jagielski 	*pOut << " Brush(FBS): ";
403*b1cdbd2cSJim Jagielski 	for( short i = 0; i < nLen / 2; ++i )
404*b1cdbd2cSJim Jagielski 	{
405*b1cdbd2cSJim Jagielski 		sal_uInt16 nVal;
406*b1cdbd2cSJim Jagielski 		rSt.Read( &nVal, sizeof( nVal ) );
407*b1cdbd2cSJim Jagielski 		*pOut << (nVal & 0x1f);
408*b1cdbd2cSJim Jagielski 		*pOut << "|" << ((nVal >> 5) & 0x1f);
409*b1cdbd2cSJim Jagielski 		*pOut << "|" << ((nVal >> 10) & 0x3f);
410*b1cdbd2cSJim Jagielski 		if( i < nLen )
411*b1cdbd2cSJim Jagielski 			*pOut << ", ";
412*b1cdbd2cSJim Jagielski 	}
413*b1cdbd2cSJim Jagielski }
414*b1cdbd2cSJim Jagielski 
415*b1cdbd2cSJim Jagielski 
416