xref: /aoo4110/main/sw/source/core/doc/dbgoutsw.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 #ifdef DEBUG
27*b1cdbd2cSJim Jagielski 
28*b1cdbd2cSJim Jagielski #include <tools/string.hxx>
29*b1cdbd2cSJim Jagielski #include <svl/poolitem.hxx>
30*b1cdbd2cSJim Jagielski #include <svl/itemiter.hxx>
31*b1cdbd2cSJim Jagielski #include <string>
32*b1cdbd2cSJim Jagielski #include <map>
33*b1cdbd2cSJim Jagielski #include <node.hxx>
34*b1cdbd2cSJim Jagielski #include <ndtxt.hxx>
35*b1cdbd2cSJim Jagielski #include <ndhints.hxx>
36*b1cdbd2cSJim Jagielski #include <txatbase.hxx>
37*b1cdbd2cSJim Jagielski #include <pam.hxx>
38*b1cdbd2cSJim Jagielski #include <docary.hxx>
39*b1cdbd2cSJim Jagielski #include <swundo.hxx>
40*b1cdbd2cSJim Jagielski #include <undobj.hxx>
41*b1cdbd2cSJim Jagielski #include <numrule.hxx>
42*b1cdbd2cSJim Jagielski #include <doc.hxx>
43*b1cdbd2cSJim Jagielski #include <frmfmt.hxx>
44*b1cdbd2cSJim Jagielski #include <fmtanchr.hxx>
45*b1cdbd2cSJim Jagielski #include <swrect.hxx>
46*b1cdbd2cSJim Jagielski #include <ndarr.hxx>
47*b1cdbd2cSJim Jagielski #include <paratr.hxx>
48*b1cdbd2cSJim Jagielski #include <SwNodeNum.hxx>
49*b1cdbd2cSJim Jagielski #include <dbgoutsw.hxx>
50*b1cdbd2cSJim Jagielski #include <SwRewriter.hxx>
51*b1cdbd2cSJim Jagielski #include <iostream>
52*b1cdbd2cSJim Jagielski #include <cstdio>
53*b1cdbd2cSJim Jagielski 
54*b1cdbd2cSJim Jagielski using namespace std;
55*b1cdbd2cSJim Jagielski 
56*b1cdbd2cSJim Jagielski static ByteString aDbgOutResult;
57*b1cdbd2cSJim Jagielski bool bDbgOutStdErr = false;
58*b1cdbd2cSJim Jagielski bool bDbgOutPrintAttrSet = false;
59*b1cdbd2cSJim Jagielski 
db_pretty_print(const String * str,int flags,char * fmt)60*b1cdbd2cSJim Jagielski char* db_pretty_print(const String* str, int flags, char* fmt)
61*b1cdbd2cSJim Jagielski {
62*b1cdbd2cSJim Jagielski     (void) fmt;
63*b1cdbd2cSJim Jagielski     (void) flags;
64*b1cdbd2cSJim Jagielski     return const_cast<char*>(dbg_out(*str));
65*b1cdbd2cSJim Jagielski }
66*b1cdbd2cSJim Jagielski 
67*b1cdbd2cSJim Jagielski template<class T>
lcl_dbg_out_SvPtrArr(const T & rArr)68*b1cdbd2cSJim Jagielski String lcl_dbg_out_SvPtrArr(const T & rArr)
69*b1cdbd2cSJim Jagielski {
70*b1cdbd2cSJim Jagielski     String aStr("[ ", RTL_TEXTENCODING_ASCII_US);
71*b1cdbd2cSJim Jagielski 
72*b1cdbd2cSJim Jagielski     for (sal_Int16 n = 0; n < rArr.Count(); n++)
73*b1cdbd2cSJim Jagielski     {
74*b1cdbd2cSJim Jagielski         if (n > 0)
75*b1cdbd2cSJim Jagielski             aStr += String(", ", RTL_TEXTENCODING_ASCII_US);
76*b1cdbd2cSJim Jagielski 
77*b1cdbd2cSJim Jagielski         if (rArr[n])
78*b1cdbd2cSJim Jagielski             aStr += lcl_dbg_out(*rArr[n]);
79*b1cdbd2cSJim Jagielski         else
80*b1cdbd2cSJim Jagielski             aStr += String("(null)", RTL_TEXTENCODING_ASCII_US);
81*b1cdbd2cSJim Jagielski     }
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski     aStr += String(" ]", RTL_TEXTENCODING_ASCII_US);
84*b1cdbd2cSJim Jagielski 
85*b1cdbd2cSJim Jagielski     return aStr;
86*b1cdbd2cSJim Jagielski }
87*b1cdbd2cSJim Jagielski 
dbg_out(const void * pVoid)88*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const void * pVoid)
89*b1cdbd2cSJim Jagielski {
90*b1cdbd2cSJim Jagielski     char sBuffer[1024];
91*b1cdbd2cSJim Jagielski 
92*b1cdbd2cSJim Jagielski     sprintf(sBuffer, "%p", pVoid);
93*b1cdbd2cSJim Jagielski 
94*b1cdbd2cSJim Jagielski     String aTmpStr(sBuffer, RTL_TEXTENCODING_ASCII_US);
95*b1cdbd2cSJim Jagielski 
96*b1cdbd2cSJim Jagielski     return dbg_out(aTmpStr);
97*b1cdbd2cSJim Jagielski }
98*b1cdbd2cSJim Jagielski 
dbg_out(const String & aStr)99*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const String & aStr)
100*b1cdbd2cSJim Jagielski {
101*b1cdbd2cSJim Jagielski     aDbgOutResult = ByteString(aStr, RTL_TEXTENCODING_ASCII_US);
102*b1cdbd2cSJim Jagielski 
103*b1cdbd2cSJim Jagielski     if (bDbgOutStdErr)
104*b1cdbd2cSJim Jagielski         fprintf(stderr, "%s", aDbgOutResult.GetBuffer());
105*b1cdbd2cSJim Jagielski 
106*b1cdbd2cSJim Jagielski     return aDbgOutResult.GetBuffer();
107*b1cdbd2cSJim Jagielski }
108*b1cdbd2cSJim Jagielski 
dbg_out(const::rtl::OUString & aStr)109*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const ::rtl::OUString & aStr)
110*b1cdbd2cSJim Jagielski {
111*b1cdbd2cSJim Jagielski     return OUStringToOString(aStr, RTL_TEXTENCODING_ASCII_US).getStr();
112*b1cdbd2cSJim Jagielski }
113*b1cdbd2cSJim Jagielski 
114*b1cdbd2cSJim Jagielski 
115*b1cdbd2cSJim Jagielski struct CompareUShort
116*b1cdbd2cSJim Jagielski {
operator ()CompareUShort117*b1cdbd2cSJim Jagielski     bool operator()(sal_uInt16 a, sal_uInt16 b) const
118*b1cdbd2cSJim Jagielski     {
119*b1cdbd2cSJim Jagielski         return a < b;
120*b1cdbd2cSJim Jagielski     }
121*b1cdbd2cSJim Jagielski };
122*b1cdbd2cSJim Jagielski 
GetItemWhichMap()123*b1cdbd2cSJim Jagielski map<sal_uInt16,String,CompareUShort> & GetItemWhichMap()
124*b1cdbd2cSJim Jagielski {
125*b1cdbd2cSJim Jagielski     static map<sal_uInt16,String,CompareUShort> aItemWhichMap;
126*b1cdbd2cSJim Jagielski     static bool bInitialized = false;
127*b1cdbd2cSJim Jagielski 
128*b1cdbd2cSJim Jagielski     if (! bInitialized)
129*b1cdbd2cSJim Jagielski     {
130*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CASEMAP] = String("CHRATR_CASEMAP", RTL_TEXTENCODING_ASCII_US);
131*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CHARSETCOLOR] = String("CHRATR_CHARSETCOLOR", RTL_TEXTENCODING_ASCII_US);
132*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_COLOR] = String("CHRATR_COLOR", RTL_TEXTENCODING_ASCII_US);
133*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CONTOUR] = String("CHRATR_CONTOUR", RTL_TEXTENCODING_ASCII_US);
134*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CROSSEDOUT] = String("CHRATR_CROSSEDOUT", RTL_TEXTENCODING_ASCII_US);
135*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_ESCAPEMENT] = String("CHRATR_ESCAPEMENT", RTL_TEXTENCODING_ASCII_US);
136*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_FONT] = String("CHRATR_FONT", RTL_TEXTENCODING_ASCII_US);
137*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_FONTSIZE] = String("CHRATR_FONTSIZE", RTL_TEXTENCODING_ASCII_US);
138*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_KERNING] = String("CHRATR_KERNING", RTL_TEXTENCODING_ASCII_US);
139*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_LANGUAGE] = String("CHRATR_LANGUAGE", RTL_TEXTENCODING_ASCII_US);
140*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_POSTURE] = String("CHRATR_POSTURE", RTL_TEXTENCODING_ASCII_US);
141*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_PROPORTIONALFONTSIZE] = String("CHRATR_PROPORTIONALFONTSIZE", RTL_TEXTENCODING_ASCII_US);
142*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_SHADOWED] = String("CHRATR_SHADOWED", RTL_TEXTENCODING_ASCII_US);
143*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_UNDERLINE] = String("CHRATR_UNDERLINE", RTL_TEXTENCODING_ASCII_US);
144*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_OVERLINE] = String("CHRATR_OVERLINE", RTL_TEXTENCODING_ASCII_US);
145*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_WEIGHT] = String("CHRATR_WEIGHT", RTL_TEXTENCODING_ASCII_US);
146*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_WORDLINEMODE] = String("CHRATR_WORDLINEMODE", RTL_TEXTENCODING_ASCII_US);
147*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_AUTOKERN] = String("CHRATR_AUTOKERN", RTL_TEXTENCODING_ASCII_US);
148*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_BLINK] = String("CHRATR_BLINK", RTL_TEXTENCODING_ASCII_US);
149*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_NOHYPHEN] = String("CHRATR_NOHYPHEN", RTL_TEXTENCODING_ASCII_US);
150*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_NOLINEBREAK] = String("CHRATR_NOLINEBREAK", RTL_TEXTENCODING_ASCII_US);
151*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_BACKGROUND] = String("CHRATR_BACKGROUND", RTL_TEXTENCODING_ASCII_US);
152*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CJK_FONT] = String("CHRATR_CJK_FONT", RTL_TEXTENCODING_ASCII_US);
153*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CJK_FONTSIZE] = String("CHRATR_CJK_FONTSIZE", RTL_TEXTENCODING_ASCII_US);
154*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CJK_LANGUAGE] = String("CHRATR_CJK_LANGUAGE", RTL_TEXTENCODING_ASCII_US);
155*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CJK_POSTURE] = String("CHRATR_CJK_POSTURE", RTL_TEXTENCODING_ASCII_US);
156*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CJK_WEIGHT] = String("CHRATR_CJK_WEIGHT", RTL_TEXTENCODING_ASCII_US);
157*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CTL_FONT] = String("CHRATR_CTL_FONT", RTL_TEXTENCODING_ASCII_US);
158*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CTL_FONTSIZE] = String("CHRATR_CTL_FONTSIZE", RTL_TEXTENCODING_ASCII_US);
159*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CTL_LANGUAGE] = String("CHRATR_CTL_LANGUAGE", RTL_TEXTENCODING_ASCII_US);
160*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CTL_POSTURE] = String("CHRATR_CTL_POSTURE", RTL_TEXTENCODING_ASCII_US);
161*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_CTL_WEIGHT] = String("CHRATR_CTL_WEIGHT", RTL_TEXTENCODING_ASCII_US);
162*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_ROTATE] = String("CHRATR_ROTATE", RTL_TEXTENCODING_ASCII_US);
163*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_EMPHASIS_MARK] = String("CHRATR_EMPHASIS_MARK", RTL_TEXTENCODING_ASCII_US);
164*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_TWO_LINES] = String("CHRATR_TWO_LINES", RTL_TEXTENCODING_ASCII_US);
165*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_SCALEW] = String("CHRATR_SCALEW", RTL_TEXTENCODING_ASCII_US);
166*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_RELIEF] = String("CHRATR_RELIEF", RTL_TEXTENCODING_ASCII_US);
167*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHRATR_HIDDEN] = String("CHRATR_HIDDEN", RTL_TEXTENCODING_ASCII_US);
168*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_AUTOFMT] = String("TXTATR_AUTOFMT", RTL_TEXTENCODING_ASCII_US);
169*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_INETFMT] = String("TXTATR_INETFMT", RTL_TEXTENCODING_ASCII_US);
170*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_REFMARK] = String("TXTATR_REFMARK", RTL_TEXTENCODING_ASCII_US);
171*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_TOXMARK] = String("TXTATR_TOXMARK", RTL_TEXTENCODING_ASCII_US);
172*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_CHARFMT] = String("TXTATR_CHARFMT", RTL_TEXTENCODING_ASCII_US);
173*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_INPUTFIELD] = String("TXTATR_INPUTFIELD", RTL_TEXTENCODING_ASCII_US);
174*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_CJK_RUBY] = String("TXTATR_CJK_RUBY", RTL_TEXTENCODING_ASCII_US);
175*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_UNKNOWN_CONTAINER] = String("TXTATR_UNKNOWN_CONTAINER", RTL_TEXTENCODING_ASCII_US);
176*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_META] = String("TXTATR_META", RTL_TEXTENCODING_ASCII_US);
177*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_METAFIELD] = String("TXTATR_METAFIELD", RTL_TEXTENCODING_ASCII_US);
178*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_FIELD] = String("TXTATR_FIELD", RTL_TEXTENCODING_ASCII_US);
179*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_FLYCNT] = String("TXTATR_FLYCNT", RTL_TEXTENCODING_ASCII_US);
180*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_FTN] = String("TXTATR_FTN", RTL_TEXTENCODING_ASCII_US);
181*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_ANNOTATION] = String("TXTATR_ANNOTATION", RTL_TEXTENCODING_ASCII_US);
182*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_DUMMY3] = String("TXTATR_DUMMY3", RTL_TEXTENCODING_ASCII_US);
183*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_DUMMY1] = String("TXTATR_DUMMY1", RTL_TEXTENCODING_ASCII_US);
184*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TXTATR_DUMMY2] = String("TXTATR_DUMMY2", RTL_TEXTENCODING_ASCII_US);
185*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_LINESPACING] = String("PARATR_LINESPACING", RTL_TEXTENCODING_ASCII_US);
186*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_ADJUST] = String("PARATR_ADJUST", RTL_TEXTENCODING_ASCII_US);
187*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_SPLIT] = String("PARATR_SPLIT", RTL_TEXTENCODING_ASCII_US);
188*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_ORPHANS] = String("PARATR_ORPHANS", RTL_TEXTENCODING_ASCII_US);
189*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_WIDOWS] = String("PARATR_WIDOWS", RTL_TEXTENCODING_ASCII_US);
190*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_TABSTOP] = String("PARATR_TABSTOP", RTL_TEXTENCODING_ASCII_US);
191*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_HYPHENZONE] = String("PARATR_HYPHENZONE", RTL_TEXTENCODING_ASCII_US);
192*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_DROP] = String("PARATR_DROP", RTL_TEXTENCODING_ASCII_US);
193*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_REGISTER] = String("PARATR_REGISTER", RTL_TEXTENCODING_ASCII_US);
194*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_NUMRULE] = String("PARATR_NUMRULE", RTL_TEXTENCODING_ASCII_US);
195*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_SCRIPTSPACE] = String("PARATR_SCRIPTSPACE", RTL_TEXTENCODING_ASCII_US);
196*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_HANGINGPUNCTUATION] = String("PARATR_HANGINGPUNCTUATION", RTL_TEXTENCODING_ASCII_US);
197*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_FORBIDDEN_RULES] = String("PARATR_FORBIDDEN_RULES", RTL_TEXTENCODING_ASCII_US);
198*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_VERTALIGN] = String("PARATR_VERTALIGN", RTL_TEXTENCODING_ASCII_US);
199*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_SNAPTOGRID] = String("PARATR_SNAPTOGRID", RTL_TEXTENCODING_ASCII_US);
200*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PARATR_CONNECT_BORDER] = String("PARATR_CONNECT_BORDER", RTL_TEXTENCODING_ASCII_US);
201*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_FILL_ORDER] = String("FILL_ORDER", RTL_TEXTENCODING_ASCII_US);
202*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_FRM_SIZE] = String("FRM_SIZE", RTL_TEXTENCODING_ASCII_US);
203*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PAPER_BIN] = String("PAPER_BIN", RTL_TEXTENCODING_ASCII_US);
204*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_LR_SPACE] = String("LR_SPACE", RTL_TEXTENCODING_ASCII_US);
205*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_UL_SPACE] = String("UL_SPACE", RTL_TEXTENCODING_ASCII_US);
206*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PAGEDESC] = String("PAGEDESC", RTL_TEXTENCODING_ASCII_US);
207*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_BREAK] = String("BREAK", RTL_TEXTENCODING_ASCII_US);
208*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CNTNT] = String("CNTNT", RTL_TEXTENCODING_ASCII_US);
209*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_HEADER] = String("HEADER", RTL_TEXTENCODING_ASCII_US);
210*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_FOOTER] = String("FOOTER", RTL_TEXTENCODING_ASCII_US);
211*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PRINT] = String("PRINT", RTL_TEXTENCODING_ASCII_US);
212*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_OPAQUE] = String("OPAQUE", RTL_TEXTENCODING_ASCII_US);
213*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_PROTECT] = String("PROTECT", RTL_TEXTENCODING_ASCII_US);
214*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_SURROUND] = String("SURROUND", RTL_TEXTENCODING_ASCII_US);
215*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_VERT_ORIENT] = String("VERT_ORIENT", RTL_TEXTENCODING_ASCII_US);
216*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_HORI_ORIENT] = String("HORI_ORIENT", RTL_TEXTENCODING_ASCII_US);
217*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_ANCHOR] = String("ANCHOR", RTL_TEXTENCODING_ASCII_US);
218*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_BACKGROUND] = String("BACKGROUND", RTL_TEXTENCODING_ASCII_US);
219*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_BOX] = String("BOX", RTL_TEXTENCODING_ASCII_US);
220*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_SHADOW] = String("SHADOW", RTL_TEXTENCODING_ASCII_US);
221*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_FRMMACRO] = String("FRMMACRO", RTL_TEXTENCODING_ASCII_US);
222*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_COL] = String("COL", RTL_TEXTENCODING_ASCII_US);
223*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_KEEP] = String("KEEP", RTL_TEXTENCODING_ASCII_US);
224*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_URL] = String("URL", RTL_TEXTENCODING_ASCII_US);
225*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_EDIT_IN_READONLY] = String("EDIT_IN_READONLY", RTL_TEXTENCODING_ASCII_US);
226*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_LAYOUT_SPLIT] = String("LAYOUT_SPLIT", RTL_TEXTENCODING_ASCII_US);
227*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_CHAIN] = String("CHAIN", RTL_TEXTENCODING_ASCII_US);
228*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_TEXTGRID] = String("TEXTGRID", RTL_TEXTENCODING_ASCII_US);
229*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_LINENUMBER  ] = String("LINENUMBER  ", RTL_TEXTENCODING_ASCII_US);
230*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_FTN_AT_TXTEND] = String("FTN_AT_TXTEND", RTL_TEXTENCODING_ASCII_US);
231*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_END_AT_TXTEND] = String("END_AT_TXTEND", RTL_TEXTENCODING_ASCII_US);
232*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_COLUMNBALANCE] = String("COLUMNBALANCE", RTL_TEXTENCODING_ASCII_US);
233*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_FRAMEDIR] = String("FRAMEDIR", RTL_TEXTENCODING_ASCII_US);
234*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_HEADER_FOOTER_EAT_SPACING] = String("HEADER_FOOTER_EAT_SPACING", RTL_TEXTENCODING_ASCII_US);
235*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_ROW_SPLIT] = String("ROW_SPLIT", RTL_TEXTENCODING_ASCII_US);
236*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_MIRRORGRF] = String("GRFATR_MIRRORGRF", RTL_TEXTENCODING_ASCII_US);
237*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_CROPGRF] = String("GRFATR_CROPGRF", RTL_TEXTENCODING_ASCII_US);
238*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_ROTATION] = String("GRFATR_ROTATION", RTL_TEXTENCODING_ASCII_US);
239*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_LUMINANCE] = String("GRFATR_LUMINANCE", RTL_TEXTENCODING_ASCII_US);
240*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_CONTRAST] = String("GRFATR_CONTRAST", RTL_TEXTENCODING_ASCII_US);
241*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_CHANNELR] = String("GRFATR_CHANNELR", RTL_TEXTENCODING_ASCII_US);
242*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_CHANNELG] = String("GRFATR_CHANNELG", RTL_TEXTENCODING_ASCII_US);
243*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_CHANNELB] = String("GRFATR_CHANNELB", RTL_TEXTENCODING_ASCII_US);
244*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_GAMMA] = String("GRFATR_GAMMA", RTL_TEXTENCODING_ASCII_US);
245*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_INVERT] = String("GRFATR_INVERT", RTL_TEXTENCODING_ASCII_US);
246*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_TRANSPARENCY] = String("GRFATR_TRANSPARENCY", RTL_TEXTENCODING_ASCII_US);
247*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_GRFATR_DRAWMODE] = String("GRFATR_DRAWMODE", RTL_TEXTENCODING_ASCII_US);
248*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_BOXATR_FORMAT] = String("BOXATR_FORMAT", RTL_TEXTENCODING_ASCII_US);
249*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_BOXATR_FORMULA] = String("BOXATR_FORMULA", RTL_TEXTENCODING_ASCII_US);
250*b1cdbd2cSJim Jagielski         aItemWhichMap[RES_BOXATR_VALUE] = String("BOXATR_VALUE", RTL_TEXTENCODING_ASCII_US);
251*b1cdbd2cSJim Jagielski 
252*b1cdbd2cSJim Jagielski         bInitialized = true;
253*b1cdbd2cSJim Jagielski     }
254*b1cdbd2cSJim Jagielski 
255*b1cdbd2cSJim Jagielski     return aItemWhichMap;
256*b1cdbd2cSJim Jagielski }
257*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SfxPoolItem & rItem)258*b1cdbd2cSJim Jagielski const String lcl_dbg_out(const SfxPoolItem & rItem)
259*b1cdbd2cSJim Jagielski {
260*b1cdbd2cSJim Jagielski     String aStr("[ ", RTL_TEXTENCODING_ASCII_US);
261*b1cdbd2cSJim Jagielski 
262*b1cdbd2cSJim Jagielski     if (GetItemWhichMap().find(rItem.Which()) != GetItemWhichMap().end())
263*b1cdbd2cSJim Jagielski         aStr += GetItemWhichMap()[rItem.Which()];
264*b1cdbd2cSJim Jagielski     else
265*b1cdbd2cSJim Jagielski         aStr += String::CreateFromInt32(rItem.Which());
266*b1cdbd2cSJim Jagielski 
267*b1cdbd2cSJim Jagielski     aStr += String(" ]", RTL_TEXTENCODING_ASCII_US);
268*b1cdbd2cSJim Jagielski 
269*b1cdbd2cSJim Jagielski     return aStr;
270*b1cdbd2cSJim Jagielski }
271*b1cdbd2cSJim Jagielski 
dbg_out(const SfxPoolItem & rItem)272*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SfxPoolItem & rItem)
273*b1cdbd2cSJim Jagielski {
274*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rItem));
275*b1cdbd2cSJim Jagielski }
276*b1cdbd2cSJim Jagielski 
dbg_out(const SfxPoolItem * pItem)277*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SfxPoolItem * pItem)
278*b1cdbd2cSJim Jagielski {
279*b1cdbd2cSJim Jagielski     return dbg_out(pItem ? lcl_dbg_out(*pItem) :
280*b1cdbd2cSJim Jagielski                    String("(nil)", RTL_TEXTENCODING_ASCII_US));
281*b1cdbd2cSJim Jagielski }
282*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SfxItemSet & rSet)283*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const String lcl_dbg_out(const SfxItemSet & rSet)
284*b1cdbd2cSJim Jagielski {
285*b1cdbd2cSJim Jagielski     SfxItemIter aIter(rSet);
286*b1cdbd2cSJim Jagielski     const SfxPoolItem * pItem;
287*b1cdbd2cSJim Jagielski     bool bFirst = true;
288*b1cdbd2cSJim Jagielski     String aStr = String("[ ", RTL_TEXTENCODING_ASCII_US);
289*b1cdbd2cSJim Jagielski 
290*b1cdbd2cSJim Jagielski     pItem = aIter.FirstItem();
291*b1cdbd2cSJim Jagielski 
292*b1cdbd2cSJim Jagielski     while (pItem )
293*b1cdbd2cSJim Jagielski     {
294*b1cdbd2cSJim Jagielski         if (!bFirst)
295*b1cdbd2cSJim Jagielski             aStr += String(", ", RTL_TEXTENCODING_ASCII_US);
296*b1cdbd2cSJim Jagielski 
297*b1cdbd2cSJim Jagielski         if ((sal_uIntPtr)pItem != SAL_MAX_SIZE)
298*b1cdbd2cSJim Jagielski             aStr += lcl_dbg_out(*pItem);
299*b1cdbd2cSJim Jagielski         else
300*b1cdbd2cSJim Jagielski             aStr += String("invalid", RTL_TEXTENCODING_ASCII_US);
301*b1cdbd2cSJim Jagielski 
302*b1cdbd2cSJim Jagielski         bFirst = false;
303*b1cdbd2cSJim Jagielski 
304*b1cdbd2cSJim Jagielski         pItem = aIter.NextItem();
305*b1cdbd2cSJim Jagielski     }
306*b1cdbd2cSJim Jagielski 
307*b1cdbd2cSJim Jagielski     aStr += String(" ]", RTL_TEXTENCODING_ASCII_US);
308*b1cdbd2cSJim Jagielski 
309*b1cdbd2cSJim Jagielski     return aStr;
310*b1cdbd2cSJim Jagielski }
311*b1cdbd2cSJim Jagielski 
dbg_out(const SfxItemSet & rSet)312*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SfxItemSet & rSet)
313*b1cdbd2cSJim Jagielski {
314*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rSet));
315*b1cdbd2cSJim Jagielski }
316*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwTxtAttr & rAttr)317*b1cdbd2cSJim Jagielski const String lcl_dbg_out(const SwTxtAttr & rAttr)
318*b1cdbd2cSJim Jagielski {
319*b1cdbd2cSJim Jagielski     String aStr("[ ", RTL_TEXTENCODING_ASCII_US);
320*b1cdbd2cSJim Jagielski 
321*b1cdbd2cSJim Jagielski     aStr += String::CreateFromInt32(*rAttr.GetStart());
322*b1cdbd2cSJim Jagielski     aStr += String("->", RTL_TEXTENCODING_ASCII_US);
323*b1cdbd2cSJim Jagielski     aStr += String::CreateFromInt32(*rAttr.End());
324*b1cdbd2cSJim Jagielski     aStr += String(" ", RTL_TEXTENCODING_ASCII_US);
325*b1cdbd2cSJim Jagielski     aStr += lcl_dbg_out(rAttr.GetAttr());
326*b1cdbd2cSJim Jagielski 
327*b1cdbd2cSJim Jagielski     aStr += String(" ]", RTL_TEXTENCODING_ASCII_US);
328*b1cdbd2cSJim Jagielski 
329*b1cdbd2cSJim Jagielski     return aStr;
330*b1cdbd2cSJim Jagielski }
331*b1cdbd2cSJim Jagielski 
dbg_out(const SwTxtAttr & rAttr)332*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwTxtAttr & rAttr)
333*b1cdbd2cSJim Jagielski {
334*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rAttr));
335*b1cdbd2cSJim Jagielski }
336*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwpHints & rHints)337*b1cdbd2cSJim Jagielski const String lcl_dbg_out(const SwpHints & rHints)
338*b1cdbd2cSJim Jagielski {
339*b1cdbd2cSJim Jagielski     String aStr("[ SwpHints\n", RTL_TEXTENCODING_ASCII_US);
340*b1cdbd2cSJim Jagielski 
341*b1cdbd2cSJim Jagielski     for (sal_uInt16 i = 0; i < rHints.Count(); i++)
342*b1cdbd2cSJim Jagielski     {
343*b1cdbd2cSJim Jagielski         aStr += String("  ", RTL_TEXTENCODING_ASCII_US);
344*b1cdbd2cSJim Jagielski         aStr += lcl_dbg_out(*rHints[i]);
345*b1cdbd2cSJim Jagielski         aStr += String("\n", RTL_TEXTENCODING_ASCII_US);
346*b1cdbd2cSJim Jagielski     }
347*b1cdbd2cSJim Jagielski 
348*b1cdbd2cSJim Jagielski     aStr += String("]\n", RTL_TEXTENCODING_ASCII_US);
349*b1cdbd2cSJim Jagielski 
350*b1cdbd2cSJim Jagielski     return aStr;
351*b1cdbd2cSJim Jagielski }
352*b1cdbd2cSJim Jagielski 
dbg_out(const SwpHints & rHints)353*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwpHints &rHints)
354*b1cdbd2cSJim Jagielski {
355*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rHints));
356*b1cdbd2cSJim Jagielski }
357*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwPosition & rPos)358*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwPosition & rPos)
359*b1cdbd2cSJim Jagielski {
360*b1cdbd2cSJim Jagielski     String aStr("( ", RTL_TEXTENCODING_ASCII_US);
361*b1cdbd2cSJim Jagielski 
362*b1cdbd2cSJim Jagielski     aStr += String::CreateFromInt32(rPos.nNode.GetIndex());
363*b1cdbd2cSJim Jagielski     aStr += String(", ", RTL_TEXTENCODING_ASCII_US);
364*b1cdbd2cSJim Jagielski     aStr += String::CreateFromInt32(rPos.nContent.GetIndex());
365*b1cdbd2cSJim Jagielski     aStr += String(": ", RTL_TEXTENCODING_ASCII_US);
366*b1cdbd2cSJim Jagielski     aStr += String::CreateFromInt32
367*b1cdbd2cSJim Jagielski         (reinterpret_cast<sal_IntPtr>(rPos.nContent.GetIdxReg()), 16);
368*b1cdbd2cSJim Jagielski 
369*b1cdbd2cSJim Jagielski     aStr += String(" )", RTL_TEXTENCODING_ASCII_US);
370*b1cdbd2cSJim Jagielski 
371*b1cdbd2cSJim Jagielski     return aStr;
372*b1cdbd2cSJim Jagielski }
373*b1cdbd2cSJim Jagielski 
dbg_out(const SwPosition & rPos)374*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwPosition & rPos)
375*b1cdbd2cSJim Jagielski {
376*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rPos));
377*b1cdbd2cSJim Jagielski }
378*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwPaM & rPam)379*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwPaM & rPam)
380*b1cdbd2cSJim Jagielski {
381*b1cdbd2cSJim Jagielski    String aStr("[ Pt: ", RTL_TEXTENCODING_ASCII_US);
382*b1cdbd2cSJim Jagielski 
383*b1cdbd2cSJim Jagielski    aStr += lcl_dbg_out(*rPam.GetPoint());
384*b1cdbd2cSJim Jagielski 
385*b1cdbd2cSJim Jagielski    if (rPam.HasMark())
386*b1cdbd2cSJim Jagielski    {
387*b1cdbd2cSJim Jagielski        aStr += String(", Mk: ", RTL_TEXTENCODING_ASCII_US);
388*b1cdbd2cSJim Jagielski        aStr += lcl_dbg_out(*rPam.GetMark());
389*b1cdbd2cSJim Jagielski    }
390*b1cdbd2cSJim Jagielski 
391*b1cdbd2cSJim Jagielski    aStr += String(" ]", RTL_TEXTENCODING_ASCII_US);
392*b1cdbd2cSJim Jagielski 
393*b1cdbd2cSJim Jagielski    return aStr;
394*b1cdbd2cSJim Jagielski }
395*b1cdbd2cSJim Jagielski 
dbg_out(const SwPaM & rPam)396*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwPaM & rPam)
397*b1cdbd2cSJim Jagielski {
398*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rPam));
399*b1cdbd2cSJim Jagielski }
400*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwNodeNum &)401*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwNodeNum & )
402*b1cdbd2cSJim Jagielski {
403*b1cdbd2cSJim Jagielski     return String();/*rNum.ToString();*/
404*b1cdbd2cSJim Jagielski }
405*b1cdbd2cSJim Jagielski 
dbg_out(const SwNodeNum & rNum)406*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwNodeNum & rNum)
407*b1cdbd2cSJim Jagielski {
408*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rNum));
409*b1cdbd2cSJim Jagielski }
410*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwRect & rRect)411*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwRect & rRect)
412*b1cdbd2cSJim Jagielski {
413*b1cdbd2cSJim Jagielski     String aResult("[ [", RTL_TEXTENCODING_ASCII_US);
414*b1cdbd2cSJim Jagielski 
415*b1cdbd2cSJim Jagielski     aResult += String::CreateFromInt32(rRect.Left());
416*b1cdbd2cSJim Jagielski     aResult += String(", ", RTL_TEXTENCODING_ASCII_US);
417*b1cdbd2cSJim Jagielski     aResult += String::CreateFromInt32(rRect.Top());
418*b1cdbd2cSJim Jagielski     aResult += String("], [", RTL_TEXTENCODING_ASCII_US);
419*b1cdbd2cSJim Jagielski     aResult += String::CreateFromInt32(rRect.Right());
420*b1cdbd2cSJim Jagielski     aResult += String(", ", RTL_TEXTENCODING_ASCII_US);
421*b1cdbd2cSJim Jagielski     aResult += String::CreateFromInt32(rRect.Bottom());
422*b1cdbd2cSJim Jagielski 
423*b1cdbd2cSJim Jagielski     aResult += String("] ]", RTL_TEXTENCODING_ASCII_US);
424*b1cdbd2cSJim Jagielski 
425*b1cdbd2cSJim Jagielski     return aResult;
426*b1cdbd2cSJim Jagielski }
427*b1cdbd2cSJim Jagielski 
dbg_out(const SwRect & rRect)428*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwRect & rRect)
429*b1cdbd2cSJim Jagielski {
430*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rRect));
431*b1cdbd2cSJim Jagielski }
432*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwFrmFmt & rFrmFmt)433*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwFrmFmt & rFrmFmt)
434*b1cdbd2cSJim Jagielski {
435*b1cdbd2cSJim Jagielski     String aResult("[ ", RTL_TEXTENCODING_ASCII_US);
436*b1cdbd2cSJim Jagielski 
437*b1cdbd2cSJim Jagielski     char sBuffer[256];
438*b1cdbd2cSJim Jagielski     sprintf(sBuffer, "%p", &rFrmFmt);
439*b1cdbd2cSJim Jagielski 
440*b1cdbd2cSJim Jagielski     aResult += String(sBuffer, RTL_TEXTENCODING_ASCII_US);
441*b1cdbd2cSJim Jagielski     aResult += String("(", RTL_TEXTENCODING_ASCII_US);
442*b1cdbd2cSJim Jagielski     aResult += rFrmFmt.GetName();
443*b1cdbd2cSJim Jagielski     aResult += String(")", RTL_TEXTENCODING_ASCII_US);
444*b1cdbd2cSJim Jagielski 
445*b1cdbd2cSJim Jagielski     if (rFrmFmt.IsAuto())
446*b1cdbd2cSJim Jagielski         aResult += String("*", RTL_TEXTENCODING_ASCII_US);
447*b1cdbd2cSJim Jagielski 
448*b1cdbd2cSJim Jagielski     aResult += String(" ,", RTL_TEXTENCODING_ASCII_US);
449*b1cdbd2cSJim Jagielski     aResult += lcl_dbg_out(rFrmFmt.FindLayoutRect());
450*b1cdbd2cSJim Jagielski     aResult += String(" ]", RTL_TEXTENCODING_ASCII_US);
451*b1cdbd2cSJim Jagielski 
452*b1cdbd2cSJim Jagielski     return aResult;
453*b1cdbd2cSJim Jagielski }
454*b1cdbd2cSJim Jagielski 
dbg_out(const SwFrmFmt & rFrmFmt)455*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwFrmFmt & rFrmFmt)
456*b1cdbd2cSJim Jagielski {
457*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rFrmFmt));
458*b1cdbd2cSJim Jagielski }
459*b1cdbd2cSJim Jagielski 
lcl_AnchoredFrames(const SwNode & rNode)460*b1cdbd2cSJim Jagielski const String lcl_AnchoredFrames(const SwNode & rNode)
461*b1cdbd2cSJim Jagielski {
462*b1cdbd2cSJim Jagielski     String aResult("[", RTL_TEXTENCODING_ASCII_US);
463*b1cdbd2cSJim Jagielski 
464*b1cdbd2cSJim Jagielski     const SwDoc * pDoc = rNode.GetDoc();
465*b1cdbd2cSJim Jagielski     if (pDoc)
466*b1cdbd2cSJim Jagielski     {
467*b1cdbd2cSJim Jagielski         const SwSpzFrmFmts * pFrmFmts = pDoc->GetSpzFrmFmts();
468*b1cdbd2cSJim Jagielski 
469*b1cdbd2cSJim Jagielski         if (pFrmFmts)
470*b1cdbd2cSJim Jagielski         {
471*b1cdbd2cSJim Jagielski             bool bFirst = true;
472*b1cdbd2cSJim Jagielski             for (sal_uInt16 nI = 0; nI < pFrmFmts->Count(); nI++)
473*b1cdbd2cSJim Jagielski             {
474*b1cdbd2cSJim Jagielski                 const SwFmtAnchor & rAnchor = (*pFrmFmts)[nI]->GetAnchor();
475*b1cdbd2cSJim Jagielski                 const SwPosition * pPos = rAnchor.GetCntntAnchor();
476*b1cdbd2cSJim Jagielski 
477*b1cdbd2cSJim Jagielski                 if (pPos && &pPos->nNode.GetNode() == &rNode)
478*b1cdbd2cSJim Jagielski                 {
479*b1cdbd2cSJim Jagielski                     if (! bFirst)
480*b1cdbd2cSJim Jagielski                         aResult += String(", ", RTL_TEXTENCODING_ASCII_US);
481*b1cdbd2cSJim Jagielski 
482*b1cdbd2cSJim Jagielski                     if ((*pFrmFmts)[nI])
483*b1cdbd2cSJim Jagielski                         aResult += lcl_dbg_out(*(*pFrmFmts)[nI]);
484*b1cdbd2cSJim Jagielski                     bFirst = false;
485*b1cdbd2cSJim Jagielski                 }
486*b1cdbd2cSJim Jagielski             }
487*b1cdbd2cSJim Jagielski         }
488*b1cdbd2cSJim Jagielski     }
489*b1cdbd2cSJim Jagielski 
490*b1cdbd2cSJim Jagielski     aResult += String("]", RTL_TEXTENCODING_ASCII_US);
491*b1cdbd2cSJim Jagielski 
492*b1cdbd2cSJim Jagielski     return aResult;
493*b1cdbd2cSJim Jagielski }
494*b1cdbd2cSJim Jagielski 
lcl_dbg_out_NumType(sal_Int16 nType)495*b1cdbd2cSJim Jagielski String lcl_dbg_out_NumType(sal_Int16 nType)
496*b1cdbd2cSJim Jagielski {
497*b1cdbd2cSJim Jagielski     String aTmpStr;
498*b1cdbd2cSJim Jagielski 
499*b1cdbd2cSJim Jagielski     switch (nType)
500*b1cdbd2cSJim Jagielski     {
501*b1cdbd2cSJim Jagielski     case SVX_NUM_NUMBER_NONE:
502*b1cdbd2cSJim Jagielski         aTmpStr += String(" NONE", RTL_TEXTENCODING_ASCII_US);
503*b1cdbd2cSJim Jagielski 
504*b1cdbd2cSJim Jagielski         break;
505*b1cdbd2cSJim Jagielski     case SVX_NUM_CHARS_UPPER_LETTER:
506*b1cdbd2cSJim Jagielski         aTmpStr += String(" CHARS_UPPER_LETTER",
507*b1cdbd2cSJim Jagielski                           RTL_TEXTENCODING_ASCII_US);
508*b1cdbd2cSJim Jagielski 
509*b1cdbd2cSJim Jagielski         break;
510*b1cdbd2cSJim Jagielski     case SVX_NUM_CHARS_LOWER_LETTER:
511*b1cdbd2cSJim Jagielski         aTmpStr += String(" CHARS_LOWER_LETTER",
512*b1cdbd2cSJim Jagielski                           RTL_TEXTENCODING_ASCII_US);
513*b1cdbd2cSJim Jagielski 
514*b1cdbd2cSJim Jagielski         break;
515*b1cdbd2cSJim Jagielski     case SVX_NUM_ROMAN_UPPER:
516*b1cdbd2cSJim Jagielski         aTmpStr += String(" ROMAN_UPPER",
517*b1cdbd2cSJim Jagielski                           RTL_TEXTENCODING_ASCII_US);
518*b1cdbd2cSJim Jagielski 
519*b1cdbd2cSJim Jagielski         break;
520*b1cdbd2cSJim Jagielski     case SVX_NUM_ROMAN_LOWER:
521*b1cdbd2cSJim Jagielski         aTmpStr += String(" ROMAN_LOWER",
522*b1cdbd2cSJim Jagielski                           RTL_TEXTENCODING_ASCII_US);
523*b1cdbd2cSJim Jagielski 
524*b1cdbd2cSJim Jagielski         break;
525*b1cdbd2cSJim Jagielski     case SVX_NUM_ARABIC:
526*b1cdbd2cSJim Jagielski         aTmpStr += String(" ARABIC",
527*b1cdbd2cSJim Jagielski                           RTL_TEXTENCODING_ASCII_US);
528*b1cdbd2cSJim Jagielski 
529*b1cdbd2cSJim Jagielski         break;
530*b1cdbd2cSJim Jagielski     default:
531*b1cdbd2cSJim Jagielski         aTmpStr += String(" ??",
532*b1cdbd2cSJim Jagielski                           RTL_TEXTENCODING_ASCII_US);
533*b1cdbd2cSJim Jagielski 
534*b1cdbd2cSJim Jagielski         break;
535*b1cdbd2cSJim Jagielski     }
536*b1cdbd2cSJim Jagielski 
537*b1cdbd2cSJim Jagielski     return aTmpStr;
538*b1cdbd2cSJim Jagielski }
539*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwNode & rNode)540*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwNode & rNode)
541*b1cdbd2cSJim Jagielski {
542*b1cdbd2cSJim Jagielski     String aTmpStr;
543*b1cdbd2cSJim Jagielski 
544*b1cdbd2cSJim Jagielski     aTmpStr += String("<node ", RTL_TEXTENCODING_ASCII_US);
545*b1cdbd2cSJim Jagielski     aTmpStr += String("index=\"", RTL_TEXTENCODING_ASCII_US);
546*b1cdbd2cSJim Jagielski     aTmpStr += String::CreateFromInt32(rNode.GetIndex());
547*b1cdbd2cSJim Jagielski     aTmpStr += String("\"", RTL_TEXTENCODING_ASCII_US);
548*b1cdbd2cSJim Jagielski 
549*b1cdbd2cSJim Jagielski #ifdef DBG_UTIL
550*b1cdbd2cSJim Jagielski     aTmpStr += String(" serial=\"", RTL_TEXTENCODING_ASCII_US);
551*b1cdbd2cSJim Jagielski     aTmpStr += String::CreateFromInt32(rNode.GetSerial());
552*b1cdbd2cSJim Jagielski     aTmpStr += String("\"", RTL_TEXTENCODING_ASCII_US);
553*b1cdbd2cSJim Jagielski #endif
554*b1cdbd2cSJim Jagielski 
555*b1cdbd2cSJim Jagielski     aTmpStr += String(" type=\"", RTL_TEXTENCODING_ASCII_US);
556*b1cdbd2cSJim Jagielski     aTmpStr += String::CreateFromInt32(sal_Int32( rNode.GetNodeType() ) );
557*b1cdbd2cSJim Jagielski     aTmpStr += String("\"", RTL_TEXTENCODING_ASCII_US);
558*b1cdbd2cSJim Jagielski 
559*b1cdbd2cSJim Jagielski     aTmpStr += String(" pointer=\"", RTL_TEXTENCODING_ASCII_US);
560*b1cdbd2cSJim Jagielski 
561*b1cdbd2cSJim Jagielski     char aBuffer[128];
562*b1cdbd2cSJim Jagielski     sprintf(aBuffer, "%p", &rNode);
563*b1cdbd2cSJim Jagielski     aTmpStr += String(aBuffer, RTL_TEXTENCODING_ASCII_US);
564*b1cdbd2cSJim Jagielski 
565*b1cdbd2cSJim Jagielski     aTmpStr += String("\">", RTL_TEXTENCODING_ASCII_US);
566*b1cdbd2cSJim Jagielski 
567*b1cdbd2cSJim Jagielski     const SwTxtNode * pTxtNode = rNode.GetTxtNode();
568*b1cdbd2cSJim Jagielski 
569*b1cdbd2cSJim Jagielski     if (rNode.IsTxtNode())
570*b1cdbd2cSJim Jagielski     {
571*b1cdbd2cSJim Jagielski         const SfxItemSet * pAttrSet = pTxtNode->GetpSwAttrSet();
572*b1cdbd2cSJim Jagielski 
573*b1cdbd2cSJim Jagielski         aTmpStr += String("<txt>", RTL_TEXTENCODING_ASCII_US);
574*b1cdbd2cSJim Jagielski         aTmpStr += pTxtNode->GetTxt().Copy(0, 10);
575*b1cdbd2cSJim Jagielski         aTmpStr += String("</txt>", RTL_TEXTENCODING_ASCII_US);
576*b1cdbd2cSJim Jagielski 
577*b1cdbd2cSJim Jagielski         if (rNode.IsTableNode())
578*b1cdbd2cSJim Jagielski             aTmpStr += String("<tbl/>", RTL_TEXTENCODING_ASCII_US);
579*b1cdbd2cSJim Jagielski 
580*b1cdbd2cSJim Jagielski         aTmpStr += String("<outlinelevel>", RTL_TEXTENCODING_ASCII_US);
581*b1cdbd2cSJim Jagielski         aTmpStr += String::CreateFromInt32(pTxtNode->GetAttrOutlineLevel()-1);
582*b1cdbd2cSJim Jagielski         aTmpStr += String("</outlinelevel>", RTL_TEXTENCODING_ASCII_US);
583*b1cdbd2cSJim Jagielski 
584*b1cdbd2cSJim Jagielski 		const SwNumRule * pNumRule = pTxtNode->GetNumRule();
585*b1cdbd2cSJim Jagielski 
586*b1cdbd2cSJim Jagielski 		if (pNumRule != NULL)
587*b1cdbd2cSJim Jagielski 		{
588*b1cdbd2cSJim Jagielski 			aTmpStr += String("<number>", RTL_TEXTENCODING_ASCII_US);
589*b1cdbd2cSJim Jagielski             if ( pTxtNode->GetNum() )
590*b1cdbd2cSJim Jagielski             {
591*b1cdbd2cSJim Jagielski                 aTmpStr += lcl_dbg_out(*(pTxtNode->GetNum()));
592*b1cdbd2cSJim Jagielski             }
593*b1cdbd2cSJim Jagielski 			aTmpStr += String("</number>", RTL_TEXTENCODING_ASCII_US);
594*b1cdbd2cSJim Jagielski 
595*b1cdbd2cSJim Jagielski             aTmpStr += String("<rule>", RTL_TEXTENCODING_ASCII_US);
596*b1cdbd2cSJim Jagielski             aTmpStr += pNumRule->GetName();
597*b1cdbd2cSJim Jagielski 
598*b1cdbd2cSJim Jagielski             const SfxPoolItem * pItem = NULL;
599*b1cdbd2cSJim Jagielski 
600*b1cdbd2cSJim Jagielski             if (pAttrSet && SFX_ITEM_SET ==
601*b1cdbd2cSJim Jagielski                 pAttrSet->GetItemState(RES_PARATR_NUMRULE, sal_False, &pItem))
602*b1cdbd2cSJim Jagielski             {
603*b1cdbd2cSJim Jagielski                 aTmpStr += String("(", RTL_TEXTENCODING_ASCII_US);
604*b1cdbd2cSJim Jagielski                 aTmpStr +=
605*b1cdbd2cSJim Jagielski                     static_cast<const SwNumRuleItem *>(pItem)->GetValue();
606*b1cdbd2cSJim Jagielski                 aTmpStr += String(")", RTL_TEXTENCODING_ASCII_US);
607*b1cdbd2cSJim Jagielski                 aTmpStr += String("*", RTL_TEXTENCODING_ASCII_US);
608*b1cdbd2cSJim Jagielski             }
609*b1cdbd2cSJim Jagielski 
610*b1cdbd2cSJim Jagielski             const SwNumFmt * pNumFmt = NULL;
611*b1cdbd2cSJim Jagielski             aTmpStr += String("</rule>", RTL_TEXTENCODING_ASCII_US);
612*b1cdbd2cSJim Jagielski 
613*b1cdbd2cSJim Jagielski             if (pTxtNode->GetActualListLevel() > 0)
614*b1cdbd2cSJim Jagielski                 pNumFmt = pNumRule->GetNumFmt( static_cast< sal_uInt16 >(pTxtNode->GetActualListLevel()) );
615*b1cdbd2cSJim Jagielski 
616*b1cdbd2cSJim Jagielski             if (pNumFmt)
617*b1cdbd2cSJim Jagielski             {
618*b1cdbd2cSJim Jagielski                 aTmpStr += String("<numformat>", RTL_TEXTENCODING_ASCII_US);
619*b1cdbd2cSJim Jagielski                 aTmpStr +=
620*b1cdbd2cSJim Jagielski                     lcl_dbg_out_NumType(pNumFmt->GetNumberingType());
621*b1cdbd2cSJim Jagielski                 aTmpStr += String("</numformat>", RTL_TEXTENCODING_ASCII_US);
622*b1cdbd2cSJim Jagielski             }
623*b1cdbd2cSJim Jagielski 		}
624*b1cdbd2cSJim Jagielski 
625*b1cdbd2cSJim Jagielski         if (pTxtNode->IsCountedInList())
626*b1cdbd2cSJim Jagielski             aTmpStr += String("<counted/>", RTL_TEXTENCODING_ASCII_US);
627*b1cdbd2cSJim Jagielski 
628*b1cdbd2cSJim Jagielski         SwFmtColl * pColl = pTxtNode->GetFmtColl();
629*b1cdbd2cSJim Jagielski 
630*b1cdbd2cSJim Jagielski         if (pColl)
631*b1cdbd2cSJim Jagielski         {
632*b1cdbd2cSJim Jagielski             aTmpStr += String("<coll>", RTL_TEXTENCODING_ASCII_US);
633*b1cdbd2cSJim Jagielski             aTmpStr += pColl->GetName();
634*b1cdbd2cSJim Jagielski 
635*b1cdbd2cSJim Jagielski             aTmpStr += String("(", RTL_TEXTENCODING_ASCII_US);
636*b1cdbd2cSJim Jagielski             aTmpStr += String::CreateFromInt32
637*b1cdbd2cSJim Jagielski                 //(static_cast<SwTxtFmtColl *>(pColl)->GetOutlineLevel());//#outline level,zhaojianwei
638*b1cdbd2cSJim Jagielski 				(static_cast<SwTxtFmtColl *>(pColl)->IsAssignedToListLevelOfOutlineStyle()
639*b1cdbd2cSJim Jagielski 				 ? static_cast<SwTxtFmtColl *>(pColl)->GetAssignedOutlineStyleLevel()
640*b1cdbd2cSJim Jagielski 				 : 0);//<-end,zhaojianwei
641*b1cdbd2cSJim Jagielski 
642*b1cdbd2cSJim Jagielski             const SwNumRuleItem & rItem =
643*b1cdbd2cSJim Jagielski                 static_cast<const SwNumRuleItem &>
644*b1cdbd2cSJim Jagielski                 (pColl->GetFmtAttr(RES_PARATR_NUMRULE));
645*b1cdbd2cSJim Jagielski             const String sNumruleName = rItem.GetValue();
646*b1cdbd2cSJim Jagielski 
647*b1cdbd2cSJim Jagielski             if (sNumruleName.Len() > 0)
648*b1cdbd2cSJim Jagielski             {
649*b1cdbd2cSJim Jagielski                 aTmpStr += String(", ", RTL_TEXTENCODING_ASCII_US);
650*b1cdbd2cSJim Jagielski                 aTmpStr += sNumruleName;
651*b1cdbd2cSJim Jagielski             }
652*b1cdbd2cSJim Jagielski             aTmpStr += String(")", RTL_TEXTENCODING_ASCII_US);
653*b1cdbd2cSJim Jagielski             aTmpStr += String("</coll>", RTL_TEXTENCODING_ASCII_US);
654*b1cdbd2cSJim Jagielski         }
655*b1cdbd2cSJim Jagielski 
656*b1cdbd2cSJim Jagielski         SwFmtColl * pCColl = pTxtNode->GetCondFmtColl();
657*b1cdbd2cSJim Jagielski 
658*b1cdbd2cSJim Jagielski         if (pCColl)
659*b1cdbd2cSJim Jagielski         {
660*b1cdbd2cSJim Jagielski             aTmpStr += String("<ccoll>", RTL_TEXTENCODING_ASCII_US);
661*b1cdbd2cSJim Jagielski             aTmpStr += pCColl->GetName();
662*b1cdbd2cSJim Jagielski             aTmpStr += String("</ccoll>", RTL_TEXTENCODING_ASCII_US);
663*b1cdbd2cSJim Jagielski         }
664*b1cdbd2cSJim Jagielski 
665*b1cdbd2cSJim Jagielski         aTmpStr += String("<frms>", RTL_TEXTENCODING_ASCII_US);
666*b1cdbd2cSJim Jagielski         aTmpStr += lcl_AnchoredFrames(rNode);
667*b1cdbd2cSJim Jagielski         aTmpStr += String("</frms>", RTL_TEXTENCODING_ASCII_US);
668*b1cdbd2cSJim Jagielski 
669*b1cdbd2cSJim Jagielski         if (bDbgOutPrintAttrSet)
670*b1cdbd2cSJim Jagielski         {
671*b1cdbd2cSJim Jagielski             aTmpStr += String("<attrs>", RTL_TEXTENCODING_ASCII_US);
672*b1cdbd2cSJim Jagielski             aTmpStr += lcl_dbg_out(pTxtNode->GetSwAttrSet());
673*b1cdbd2cSJim Jagielski             aTmpStr += String("</attrs>", RTL_TEXTENCODING_ASCII_US);
674*b1cdbd2cSJim Jagielski         }
675*b1cdbd2cSJim Jagielski     }
676*b1cdbd2cSJim Jagielski     else if (rNode.IsStartNode())
677*b1cdbd2cSJim Jagielski     {
678*b1cdbd2cSJim Jagielski         aTmpStr += String("<start end=\"", RTL_TEXTENCODING_ASCII_US);
679*b1cdbd2cSJim Jagielski 
680*b1cdbd2cSJim Jagielski         const SwStartNode * pStartNode = dynamic_cast<const SwStartNode *> (&rNode);
681*b1cdbd2cSJim Jagielski         if (pStartNode != NULL)
682*b1cdbd2cSJim Jagielski             aTmpStr += String::CreateFromInt32(pStartNode->EndOfSectionNode()->GetIndex());
683*b1cdbd2cSJim Jagielski 
684*b1cdbd2cSJim Jagielski         aTmpStr += String("\"/>", RTL_TEXTENCODING_ASCII_US);
685*b1cdbd2cSJim Jagielski     }
686*b1cdbd2cSJim Jagielski     else if (rNode.IsEndNode())
687*b1cdbd2cSJim Jagielski         aTmpStr += String("<end/>", RTL_TEXTENCODING_ASCII_US);
688*b1cdbd2cSJim Jagielski 
689*b1cdbd2cSJim Jagielski     aTmpStr += String("</node>", RTL_TEXTENCODING_ASCII_US);
690*b1cdbd2cSJim Jagielski 
691*b1cdbd2cSJim Jagielski     return aTmpStr;
692*b1cdbd2cSJim Jagielski }
693*b1cdbd2cSJim Jagielski 
dbg_out(const SwNode & rNode)694*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwNode & rNode)
695*b1cdbd2cSJim Jagielski {
696*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rNode));
697*b1cdbd2cSJim Jagielski }
698*b1cdbd2cSJim Jagielski 
dbg_out(const SwNode * pNode)699*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwNode * pNode)
700*b1cdbd2cSJim Jagielski {
701*b1cdbd2cSJim Jagielski     if (NULL != pNode)
702*b1cdbd2cSJim Jagielski         return dbg_out(*pNode);
703*b1cdbd2cSJim Jagielski     else
704*b1cdbd2cSJim Jagielski         return NULL;
705*b1cdbd2cSJim Jagielski }
706*b1cdbd2cSJim Jagielski 
dbg_out(const SwCntntNode * pNode)707*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwCntntNode * pNode)
708*b1cdbd2cSJim Jagielski {
709*b1cdbd2cSJim Jagielski     if (NULL != pNode)
710*b1cdbd2cSJim Jagielski         return dbg_out(*pNode);
711*b1cdbd2cSJim Jagielski     else
712*b1cdbd2cSJim Jagielski         return NULL;
713*b1cdbd2cSJim Jagielski }
714*b1cdbd2cSJim Jagielski 
dbg_out(const SwTxtNode * pNode)715*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwTxtNode * pNode)
716*b1cdbd2cSJim Jagielski {
717*b1cdbd2cSJim Jagielski     if (NULL != pNode)
718*b1cdbd2cSJim Jagielski         return dbg_out(*pNode);
719*b1cdbd2cSJim Jagielski     else
720*b1cdbd2cSJim Jagielski         return NULL;
721*b1cdbd2cSJim Jagielski }
722*b1cdbd2cSJim Jagielski 
lcl_dbg_add_node(const SwNodePtr & pNode,void * pArgs)723*b1cdbd2cSJim Jagielski sal_Bool lcl_dbg_add_node(const SwNodePtr & pNode, void * pArgs)
724*b1cdbd2cSJim Jagielski {
725*b1cdbd2cSJim Jagielski     if (pNode)
726*b1cdbd2cSJim Jagielski     {
727*b1cdbd2cSJim Jagielski         (*((String *) pArgs)) += lcl_dbg_out(*pNode);
728*b1cdbd2cSJim Jagielski         (*((String *) pArgs)) += String("\n", RTL_TEXTENCODING_ASCII_US);
729*b1cdbd2cSJim Jagielski     }
730*b1cdbd2cSJim Jagielski 
731*b1cdbd2cSJim Jagielski     //MBA: this code didn't compile, needed to add a return value
732*b1cdbd2cSJim Jagielski     return sal_True;
733*b1cdbd2cSJim Jagielski }
734*b1cdbd2cSJim Jagielski 
lcl_dbg_nodes_inner(String & aStr,SwNodes & rNodes,sal_uLong & nIndex)735*b1cdbd2cSJim Jagielski void lcl_dbg_nodes_inner(String & aStr, SwNodes & rNodes, sal_uLong & nIndex)
736*b1cdbd2cSJim Jagielski {
737*b1cdbd2cSJim Jagielski     SwNode * pNode = rNodes[nIndex];
738*b1cdbd2cSJim Jagielski     SwStartNode * pStartNode = dynamic_cast<SwStartNode *> (pNode);
739*b1cdbd2cSJim Jagielski 
740*b1cdbd2cSJim Jagielski     SwNode * pEndNode = NULL;
741*b1cdbd2cSJim Jagielski     if (pStartNode != NULL)
742*b1cdbd2cSJim Jagielski         pEndNode = pStartNode->EndOfSectionNode();
743*b1cdbd2cSJim Jagielski 
744*b1cdbd2cSJim Jagielski     sal_uLong nCount = rNodes.Count();
745*b1cdbd2cSJim Jagielski     sal_uLong nStartIndex = nIndex;
746*b1cdbd2cSJim Jagielski 
747*b1cdbd2cSJim Jagielski     bool bDone = false;
748*b1cdbd2cSJim Jagielski 
749*b1cdbd2cSJim Jagielski     String aTag;
750*b1cdbd2cSJim Jagielski     if (pNode->IsTableNode())
751*b1cdbd2cSJim Jagielski         aTag += String("table", RTL_TEXTENCODING_ASCII_US);
752*b1cdbd2cSJim Jagielski     else if (pNode->IsSectionNode())
753*b1cdbd2cSJim Jagielski         aTag += String("section", RTL_TEXTENCODING_ASCII_US);
754*b1cdbd2cSJim Jagielski     else
755*b1cdbd2cSJim Jagielski         aTag += String("nodes", RTL_TEXTENCODING_ASCII_US);
756*b1cdbd2cSJim Jagielski 
757*b1cdbd2cSJim Jagielski     aStr += String("<", RTL_TEXTENCODING_ASCII_US);
758*b1cdbd2cSJim Jagielski     aStr += aTag;
759*b1cdbd2cSJim Jagielski     aStr += String(">", RTL_TEXTENCODING_ASCII_US);
760*b1cdbd2cSJim Jagielski 
761*b1cdbd2cSJim Jagielski     while (! bDone)
762*b1cdbd2cSJim Jagielski     {
763*b1cdbd2cSJim Jagielski         if (pNode->IsStartNode() && nIndex != nStartIndex)
764*b1cdbd2cSJim Jagielski             lcl_dbg_nodes_inner(aStr, rNodes, nIndex);
765*b1cdbd2cSJim Jagielski         else
766*b1cdbd2cSJim Jagielski         {
767*b1cdbd2cSJim Jagielski             aStr += lcl_dbg_out(*pNode);
768*b1cdbd2cSJim Jagielski             aStr += String("\n", RTL_TEXTENCODING_ASCII_US);
769*b1cdbd2cSJim Jagielski 
770*b1cdbd2cSJim Jagielski             nIndex++;
771*b1cdbd2cSJim Jagielski         }
772*b1cdbd2cSJim Jagielski 
773*b1cdbd2cSJim Jagielski         if (pNode == pEndNode || nIndex >= nCount)
774*b1cdbd2cSJim Jagielski             bDone = true;
775*b1cdbd2cSJim Jagielski         else
776*b1cdbd2cSJim Jagielski             pNode = rNodes[nIndex];
777*b1cdbd2cSJim Jagielski     }
778*b1cdbd2cSJim Jagielski 
779*b1cdbd2cSJim Jagielski     aStr += String("</", RTL_TEXTENCODING_ASCII_US);
780*b1cdbd2cSJim Jagielski     aStr += aTag;
781*b1cdbd2cSJim Jagielski     aStr += String(">\n", RTL_TEXTENCODING_ASCII_US);
782*b1cdbd2cSJim Jagielski }
783*b1cdbd2cSJim Jagielski 
lcl_dbg_out(SwNodes & rNodes)784*b1cdbd2cSJim Jagielski String lcl_dbg_out(SwNodes & rNodes)
785*b1cdbd2cSJim Jagielski {
786*b1cdbd2cSJim Jagielski     String aStr("<nodes-array>", RTL_TEXTENCODING_ASCII_US);
787*b1cdbd2cSJim Jagielski 
788*b1cdbd2cSJim Jagielski     sal_uLong nIndex = 0;
789*b1cdbd2cSJim Jagielski     sal_uLong nCount = rNodes.Count();
790*b1cdbd2cSJim Jagielski 
791*b1cdbd2cSJim Jagielski     while (nIndex < nCount)
792*b1cdbd2cSJim Jagielski     {
793*b1cdbd2cSJim Jagielski         lcl_dbg_nodes_inner(aStr, rNodes, nIndex);
794*b1cdbd2cSJim Jagielski     }
795*b1cdbd2cSJim Jagielski 
796*b1cdbd2cSJim Jagielski     aStr += String("</nodes-array>\n", RTL_TEXTENCODING_ASCII_US);
797*b1cdbd2cSJim Jagielski 
798*b1cdbd2cSJim Jagielski     return aStr;
799*b1cdbd2cSJim Jagielski }
800*b1cdbd2cSJim Jagielski 
dbg_out(SwNodes & rNodes)801*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(SwNodes & rNodes)
802*b1cdbd2cSJim Jagielski {
803*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rNodes));
804*b1cdbd2cSJim Jagielski }
805*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwUndo & rUndo)806*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwUndo & rUndo)
807*b1cdbd2cSJim Jagielski {
808*b1cdbd2cSJim Jagielski     String aStr("[ ", RTL_TEXTENCODING_ASCII_US);
809*b1cdbd2cSJim Jagielski 
810*b1cdbd2cSJim Jagielski     aStr += String::CreateFromInt32(
811*b1cdbd2cSJim Jagielski                 static_cast<SfxUndoAction const&>(rUndo).GetId());
812*b1cdbd2cSJim Jagielski     aStr += String(": ", RTL_TEXTENCODING_ASCII_US);
813*b1cdbd2cSJim Jagielski 
814*b1cdbd2cSJim Jagielski     aStr += rUndo.GetComment();
815*b1cdbd2cSJim Jagielski     aStr += String(" ]", RTL_TEXTENCODING_ASCII_US);
816*b1cdbd2cSJim Jagielski 
817*b1cdbd2cSJim Jagielski     return aStr;
818*b1cdbd2cSJim Jagielski }
819*b1cdbd2cSJim Jagielski 
dbg_out(const SwUndo & rUndo)820*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwUndo & rUndo)
821*b1cdbd2cSJim Jagielski {
822*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rUndo));
823*b1cdbd2cSJim Jagielski }
824*b1cdbd2cSJim Jagielski 
lcl_dbg_out(SwOutlineNodes & rNodes)825*b1cdbd2cSJim Jagielski String lcl_dbg_out(SwOutlineNodes & rNodes)
826*b1cdbd2cSJim Jagielski {
827*b1cdbd2cSJim Jagielski     String aStr("[\n", RTL_TEXTENCODING_ASCII_US);
828*b1cdbd2cSJim Jagielski 
829*b1cdbd2cSJim Jagielski     for (sal_uInt16 i = 0; i < rNodes.Count(); i++)
830*b1cdbd2cSJim Jagielski     {
831*b1cdbd2cSJim Jagielski         aStr += lcl_dbg_out(*rNodes[i]);
832*b1cdbd2cSJim Jagielski         aStr += String("\n", RTL_TEXTENCODING_ASCII_US);
833*b1cdbd2cSJim Jagielski     }
834*b1cdbd2cSJim Jagielski 
835*b1cdbd2cSJim Jagielski     aStr += String("]\n", RTL_TEXTENCODING_ASCII_US);
836*b1cdbd2cSJim Jagielski 
837*b1cdbd2cSJim Jagielski     return aStr;
838*b1cdbd2cSJim Jagielski }
839*b1cdbd2cSJim Jagielski 
dbg_out(SwOutlineNodes & rNodes)840*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(SwOutlineNodes & rNodes)
841*b1cdbd2cSJim Jagielski {
842*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rNodes));
843*b1cdbd2cSJim Jagielski }
844*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwRewriter & rRewriter)845*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwRewriter & rRewriter)
846*b1cdbd2cSJim Jagielski {
847*b1cdbd2cSJim Jagielski 	(void) rRewriter;
848*b1cdbd2cSJim Jagielski     String aResult;
849*b1cdbd2cSJim Jagielski 
850*b1cdbd2cSJim Jagielski     //aResult = rRewriter.ToString();
851*b1cdbd2cSJim Jagielski 
852*b1cdbd2cSJim Jagielski     return aResult;
853*b1cdbd2cSJim Jagielski }
854*b1cdbd2cSJim Jagielski 
dbg_out(const SwRewriter & rRewriter)855*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwRewriter & rRewriter)
856*b1cdbd2cSJim Jagielski {
857*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rRewriter));
858*b1cdbd2cSJim Jagielski }
859*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SvxNumberFormat & rFmt)860*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SvxNumberFormat & rFmt)
861*b1cdbd2cSJim Jagielski {
862*b1cdbd2cSJim Jagielski     String aResult;
863*b1cdbd2cSJim Jagielski 
864*b1cdbd2cSJim Jagielski     aResult = lcl_dbg_out_NumType(rFmt.GetNumberingType());
865*b1cdbd2cSJim Jagielski 
866*b1cdbd2cSJim Jagielski     return aResult;
867*b1cdbd2cSJim Jagielski }
868*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwNumRule & rRule)869*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwNumRule & rRule)
870*b1cdbd2cSJim Jagielski {
871*b1cdbd2cSJim Jagielski     String aResult("[ ", RTL_TEXTENCODING_ASCII_US);
872*b1cdbd2cSJim Jagielski 
873*b1cdbd2cSJim Jagielski     aResult += rRule.GetName();
874*b1cdbd2cSJim Jagielski     aResult += String(" [", RTL_TEXTENCODING_ASCII_US);
875*b1cdbd2cSJim Jagielski 
876*b1cdbd2cSJim Jagielski     for (sal_uInt8 n = 0; n < MAXLEVEL; n++)
877*b1cdbd2cSJim Jagielski     {
878*b1cdbd2cSJim Jagielski         if (n > 0)
879*b1cdbd2cSJim Jagielski             aResult += String(", ", RTL_TEXTENCODING_ASCII_US);
880*b1cdbd2cSJim Jagielski 
881*b1cdbd2cSJim Jagielski         aResult += lcl_dbg_out(rRule.Get(n));
882*b1cdbd2cSJim Jagielski     }
883*b1cdbd2cSJim Jagielski 
884*b1cdbd2cSJim Jagielski     aResult += String("]", RTL_TEXTENCODING_ASCII_US);
885*b1cdbd2cSJim Jagielski 
886*b1cdbd2cSJim Jagielski     aResult += String("]", RTL_TEXTENCODING_ASCII_US);
887*b1cdbd2cSJim Jagielski 
888*b1cdbd2cSJim Jagielski     return aResult;
889*b1cdbd2cSJim Jagielski }
890*b1cdbd2cSJim Jagielski 
dbg_out(const SwNumRule & rRule)891*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwNumRule & rRule)
892*b1cdbd2cSJim Jagielski {
893*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rRule));
894*b1cdbd2cSJim Jagielski }
895*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwTxtFmtColl & rFmt)896*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwTxtFmtColl & rFmt)
897*b1cdbd2cSJim Jagielski {
898*b1cdbd2cSJim Jagielski     String aResult(rFmt.GetName());
899*b1cdbd2cSJim Jagielski 
900*b1cdbd2cSJim Jagielski     aResult += String("(", RTL_TEXTENCODING_ASCII_US);
901*b1cdbd2cSJim Jagielski     aResult += String::CreateFromInt32(rFmt.GetAttrOutlineLevel());
902*b1cdbd2cSJim Jagielski     aResult += String(")", RTL_TEXTENCODING_ASCII_US);
903*b1cdbd2cSJim Jagielski 
904*b1cdbd2cSJim Jagielski     return aResult;
905*b1cdbd2cSJim Jagielski }
906*b1cdbd2cSJim Jagielski 
dbg_out(const SwTxtFmtColl & rFmt)907*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwTxtFmtColl & rFmt)
908*b1cdbd2cSJim Jagielski {
909*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rFmt));
910*b1cdbd2cSJim Jagielski }
911*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwFrmFmts & rFrmFmts)912*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwFrmFmts & rFrmFmts)
913*b1cdbd2cSJim Jagielski {
914*b1cdbd2cSJim Jagielski     return lcl_dbg_out_SvPtrArr<SwFrmFmts>(rFrmFmts);
915*b1cdbd2cSJim Jagielski }
916*b1cdbd2cSJim Jagielski 
dbg_out(const SwFrmFmts & rFrmFmts)917*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwFrmFmts & rFrmFmts)
918*b1cdbd2cSJim Jagielski {
919*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rFrmFmts));
920*b1cdbd2cSJim Jagielski }
921*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwNumRuleTbl & rTbl)922*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwNumRuleTbl & rTbl)
923*b1cdbd2cSJim Jagielski {
924*b1cdbd2cSJim Jagielski     String aResult("[", RTL_TEXTENCODING_ASCII_US);
925*b1cdbd2cSJim Jagielski 
926*b1cdbd2cSJim Jagielski     for (sal_uInt16 n = 0; n < rTbl.Count(); n++)
927*b1cdbd2cSJim Jagielski     {
928*b1cdbd2cSJim Jagielski         if (n > 0)
929*b1cdbd2cSJim Jagielski             aResult += String(", ", RTL_TEXTENCODING_ASCII_US);
930*b1cdbd2cSJim Jagielski 
931*b1cdbd2cSJim Jagielski         aResult += rTbl[n]->GetName();
932*b1cdbd2cSJim Jagielski 
933*b1cdbd2cSJim Jagielski         char sBuffer[256];
934*b1cdbd2cSJim Jagielski         sprintf(sBuffer, "(%p)", rTbl[n]);
935*b1cdbd2cSJim Jagielski         aResult += String(sBuffer, RTL_TEXTENCODING_ASCII_US);
936*b1cdbd2cSJim Jagielski     }
937*b1cdbd2cSJim Jagielski 
938*b1cdbd2cSJim Jagielski     aResult += String("]", RTL_TEXTENCODING_ASCII_US);
939*b1cdbd2cSJim Jagielski 
940*b1cdbd2cSJim Jagielski     return aResult;
941*b1cdbd2cSJim Jagielski }
942*b1cdbd2cSJim Jagielski 
dbg_out(const SwNumRuleTbl & rTbl)943*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwNumRuleTbl & rTbl)
944*b1cdbd2cSJim Jagielski {
945*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rTbl));
946*b1cdbd2cSJim Jagielski }
947*b1cdbd2cSJim Jagielski 
lcl_TokenType2Str(FormTokenType nType)948*b1cdbd2cSJim Jagielski String lcl_TokenType2Str(FormTokenType nType)
949*b1cdbd2cSJim Jagielski {
950*b1cdbd2cSJim Jagielski     switch(nType)
951*b1cdbd2cSJim Jagielski     {
952*b1cdbd2cSJim Jagielski     case TOKEN_ENTRY_NO:
953*b1cdbd2cSJim Jagielski         return String("NO", RTL_TEXTENCODING_ASCII_US);
954*b1cdbd2cSJim Jagielski 	case TOKEN_ENTRY_TEXT:
955*b1cdbd2cSJim Jagielski         return String("ENTRY_TEXT", RTL_TEXTENCODING_ASCII_US);
956*b1cdbd2cSJim Jagielski 	case TOKEN_ENTRY:
957*b1cdbd2cSJim Jagielski         return String("ENTRY", RTL_TEXTENCODING_ASCII_US);
958*b1cdbd2cSJim Jagielski 	case TOKEN_TAB_STOP:
959*b1cdbd2cSJim Jagielski         return String("TAB_STOP", RTL_TEXTENCODING_ASCII_US);
960*b1cdbd2cSJim Jagielski 	case TOKEN_TEXT:
961*b1cdbd2cSJim Jagielski         return String("TOKEN_TEXT", RTL_TEXTENCODING_ASCII_US);
962*b1cdbd2cSJim Jagielski 	case TOKEN_PAGE_NUMS:
963*b1cdbd2cSJim Jagielski         return String("NUMS", RTL_TEXTENCODING_ASCII_US);
964*b1cdbd2cSJim Jagielski 	case TOKEN_CHAPTER_INFO:
965*b1cdbd2cSJim Jagielski         return String("CHAPTER_INFO", RTL_TEXTENCODING_ASCII_US);
966*b1cdbd2cSJim Jagielski 	case TOKEN_LINK_START:
967*b1cdbd2cSJim Jagielski         return String("LINK_START", RTL_TEXTENCODING_ASCII_US);
968*b1cdbd2cSJim Jagielski 	case TOKEN_LINK_END:
969*b1cdbd2cSJim Jagielski         return String("LINK_END", RTL_TEXTENCODING_ASCII_US);
970*b1cdbd2cSJim Jagielski 	case TOKEN_AUTHORITY:
971*b1cdbd2cSJim Jagielski         return String("AUTHORITY", RTL_TEXTENCODING_ASCII_US);
972*b1cdbd2cSJim Jagielski     case TOKEN_END:
973*b1cdbd2cSJim Jagielski         return String("END", RTL_TEXTENCODING_ASCII_US);
974*b1cdbd2cSJim Jagielski     default:
975*b1cdbd2cSJim Jagielski         return String("??", RTL_TEXTENCODING_ASCII_US);
976*b1cdbd2cSJim Jagielski     }
977*b1cdbd2cSJim Jagielski 
978*b1cdbd2cSJim Jagielski     ASSERT(false, "should not be reached");
979*b1cdbd2cSJim Jagielski 
980*b1cdbd2cSJim Jagielski     return  String("??", RTL_TEXTENCODING_ASCII_US);
981*b1cdbd2cSJim Jagielski }
982*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwFormToken & rToken)983*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwFormToken & rToken)
984*b1cdbd2cSJim Jagielski {
985*b1cdbd2cSJim Jagielski     return rToken.GetString();
986*b1cdbd2cSJim Jagielski }
987*b1cdbd2cSJim Jagielski 
dbg_out(const SwFormToken & rToken)988*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwFormToken & rToken)
989*b1cdbd2cSJim Jagielski {
990*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rToken));
991*b1cdbd2cSJim Jagielski }
992*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwFormTokens & rTokens)993*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwFormTokens & rTokens)
994*b1cdbd2cSJim Jagielski {
995*b1cdbd2cSJim Jagielski     String aStr("[", RTL_TEXTENCODING_ASCII_US);
996*b1cdbd2cSJim Jagielski 
997*b1cdbd2cSJim Jagielski     SwFormTokens::const_iterator aIt;
998*b1cdbd2cSJim Jagielski 
999*b1cdbd2cSJim Jagielski     for (aIt = rTokens.begin(); aIt != rTokens.end(); aIt++)
1000*b1cdbd2cSJim Jagielski     {
1001*b1cdbd2cSJim Jagielski         if (aIt != rTokens.begin())
1002*b1cdbd2cSJim Jagielski             aStr += String(", ", RTL_TEXTENCODING_ASCII_US);
1003*b1cdbd2cSJim Jagielski 
1004*b1cdbd2cSJim Jagielski         aStr += lcl_TokenType2Str(aIt->eTokenType);
1005*b1cdbd2cSJim Jagielski         aStr += String(": ", RTL_TEXTENCODING_ASCII_US);
1006*b1cdbd2cSJim Jagielski         aStr += lcl_dbg_out(*aIt);
1007*b1cdbd2cSJim Jagielski     }
1008*b1cdbd2cSJim Jagielski 
1009*b1cdbd2cSJim Jagielski     aStr += String("]" , RTL_TEXTENCODING_ASCII_US);
1010*b1cdbd2cSJim Jagielski 
1011*b1cdbd2cSJim Jagielski     return aStr;
1012*b1cdbd2cSJim Jagielski }
1013*b1cdbd2cSJim Jagielski 
dbg_out(const SwFormTokens & rTokens)1014*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwFormTokens & rTokens)
1015*b1cdbd2cSJim Jagielski {
1016*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rTokens));
1017*b1cdbd2cSJim Jagielski }
1018*b1cdbd2cSJim Jagielski 
lcl_dbg_out(const SwNodeRange & rRange)1019*b1cdbd2cSJim Jagielski String lcl_dbg_out(const SwNodeRange & rRange)
1020*b1cdbd2cSJim Jagielski {
1021*b1cdbd2cSJim Jagielski     String aStr("[", RTL_TEXTENCODING_ASCII_US);
1022*b1cdbd2cSJim Jagielski 
1023*b1cdbd2cSJim Jagielski     aStr += lcl_dbg_out(SwPosition(rRange.aStart));
1024*b1cdbd2cSJim Jagielski     aStr += String(", ", RTL_TEXTENCODING_ASCII_US);
1025*b1cdbd2cSJim Jagielski     aStr += lcl_dbg_out(SwPosition(rRange.aEnd));
1026*b1cdbd2cSJim Jagielski 
1027*b1cdbd2cSJim Jagielski     aStr += String("]" , RTL_TEXTENCODING_ASCII_US);
1028*b1cdbd2cSJim Jagielski 
1029*b1cdbd2cSJim Jagielski     return aStr;
1030*b1cdbd2cSJim Jagielski }
1031*b1cdbd2cSJim Jagielski 
dbg_out(const SwNodeRange & rRange)1032*b1cdbd2cSJim Jagielski SW_DLLPUBLIC const char * dbg_out(const SwNodeRange & rRange)
1033*b1cdbd2cSJim Jagielski {
1034*b1cdbd2cSJim Jagielski     return dbg_out(lcl_dbg_out(rRange));
1035*b1cdbd2cSJim Jagielski }
1036*b1cdbd2cSJim Jagielski 
1037*b1cdbd2cSJim Jagielski #endif // DEBUG
1038*b1cdbd2cSJim Jagielski 
1039