1 #   include	"docBufConfig.h"
2 
3 #   include	<stdio.h>
4 
5 #   include	"docBuf.h"
6 #   include	"docDebug.h"
7 #   include	"docField.h"
8 #   include	<docTreeType.h>
9 #   include	<docObjectProperties.h>
10 #   include	<docTextParticule.h>
11 #   include	<appDebugon.h>
12 
docKindStr(int kind)13 const char * docKindStr( int kind )
14     {
15     static char	scratch[12];
16 
17     switch( kind )
18 	{
19 	case DOCkindSPAN:		return "SPAN";
20 	case DOCkindTAB:		return "TAB ";
21 	case DOCkindOBJECT:		return "OBJ ";
22 	case DOCkindFIELDHEAD:		return "<FLD";
23 	case DOCkindFIELDTAIL:		return "FLD>";
24 	case DOCkindLINEBREAK:		return "LINE";
25 	case DOCkindPAGEBREAK:		return "PAGE";
26 	case DOCkindCOLUMNBREAK:	return "COL ";
27 	case DOCkindCHFTNSEP:		return "SEP ";
28 	case DOCkindCHFTNSEPC:		return "SEPC";
29 	case DOCkindOPT_HYPH:		return "HYPH";
30 	case DOCkindLTR_MARK:		return "LTR ";
31 	case DOCkindRTL_MARK:		return "RTL ";
32 
33 	default:
34 	    sprintf( scratch, "%-4d", kind );
35 	    return scratch;
36 	}
37     }
38 
docLevelStr(int level)39 const char * docLevelStr( int level )
40     {
41     static char	scratch[12];
42 
43     switch( level )
44 	{
45 	case DOClevANY:		return "ANY ";
46 	case DOClevOUT:		return "OUT ";
47 
48 	case DOClevBODY:	return "BODY";
49 	case DOClevSECT:	return "SECT";
50 	case DOClevROW:		return "ROW ";
51 	case DOClevCELL:	return "CELL";
52 	case DOClevPARA:	return "PARA";
53 	case DOClevSPAN:	return "SPAN";
54 
55 	case DOClevCOLUMN:	return "COLM";
56 	case DOClevTABLE:	return "TABL";
57 
58 	default:
59 	    sprintf( scratch, "%-4d", level );
60 	    return scratch;
61 	}
62     }
63 
docTreeTypeStr(int treeType)64 const char * docTreeTypeStr( int treeType )
65     {
66     static char	scratch[12];
67 
68     switch( treeType )
69 	{
70 	case DOCinBODY:			return "BODY";
71 
72 	case DOCinFIRST_HEADER:		return "FIRST_HEADER";
73 	case DOCinLEFT_HEADER:		return "LEFT_HEADER";
74 	case DOCinRIGHT_HEADER:		return "RIGHT_HEADER";
75 
76 	case DOCinFIRST_FOOTER:		return "FIRST_FOOTER";
77 	case DOCinLEFT_FOOTER:		return "LEFT_FOOTER";
78 	case DOCinRIGHT_FOOTER:		return "RIGHT_FOOTER";
79 
80 	case DOCinFOOTNOTE:		return "FOOTNOTE";
81 	case DOCinENDNOTE:		return "ENDNOTE";
82 
83 	case DOCinFTNSEP:		return "FTNSEP";
84 	case DOCinFTNSEPC:		return "FTNSEPC";
85 	case DOCinFTNCN:		return "FTNCN";
86 
87 	case DOCinAFTNSEP:		return "AFTNSEP";
88 	case DOCinAFTNSEPC:		return "AFTNSEPC";
89 	case DOCinAFTNCN:		return "AFTNCN";
90 
91 	case DOCinSHPTXT:		return "SHPTXT";
92 
93 	default:
94 	    sprintf( scratch, "%d", treeType );
95 	    return scratch;
96 	}
97     }
98 
docObjectKindStr(int objectKind)99 const char * docObjectKindStr(	int	objectKind )
100     {
101     static char	scratch[12];
102 
103     switch( objectKind )
104 	{
105 	case DOCokUNKNOWN:		return "UNKNOWN";
106 	case DOCokPICTWMETAFILE:	return "PICTWMETAFILE";
107 	case DOCokPICTPNGBLIP:		return "PICTPNGBLIP";
108 	case DOCokPICTJPEGBLIP:		return "PICTJPEGBLIP";
109 	case DOCokPICTEMFBLIP:		return "PICTEMFBLIP";
110 	case DOCokMACPICT:		return "MACPICT";
111 	case DOCokPMMETAFILE:		return "PMMETAFILE";
112 	case DOCokDIBITMAP:		return "DIBITMAP";
113 	case DOCokWBITMAP:		return "WBITMAP";
114 	case DOCokOLEOBJECT:		return "OLEOBJECT";
115 	case DOCokEPS_FILE:		return "EPS_FILE";
116 	case DOCokDRAWING_SHAPE:	return "DRAWING_SHAPE";
117 
118 	default:
119 	    sprintf( scratch, "%d", objectKind );
120 	    return scratch;
121 	}
122     }
123 
docFieldKindStr(int kind)124 const char * docFieldKindStr( int kind )
125     {
126     static char	scratch[12];
127 
128     if  ( kind >= 0 && kind < DOC_FieldKindCount )
129 	{ return DOC_FieldKinds[kind].fkiLabel;	}
130 
131     sprintf( scratch, "%4d", kind );
132     return scratch;
133     }
134 
docAttributeStr(const TextAttribute * ta)135 const char * docAttributeStr(	const TextAttribute *		ta )
136     {
137     static char	scratch[5];
138     char *	to= scratch;
139 
140     if  ( ta->taFontIsBold )
141 	{ *(to++)= 'B';	}
142     else{ *(to++)= 'b';	}
143     if  ( ta->taFontIsSlanted )
144 	{ *(to++)= 'I';	}
145     else{ *(to++)= 'i';	}
146     if  ( ta->taTextIsUnderlined )
147 	{ *(to++)= 'U';	}
148     else{ *(to++)= 'u';	}
149 
150     *(to)= '\0';
151     return scratch;
152     }
153 
docParticuleFlagsStr(int flags)154 const char * docParticuleFlagsStr(	int	flags )
155     {
156     static char	scratch[7];
157     char *	to= scratch;
158 
159     if  ( flags & TPflagXMATCH_LEFT )
160 	{ *(to++)= '[';	}
161     else{ *(to++)= '.';	}
162 
163     if  ( flags & TPflagLEFT_BORDER )
164 	{ *(to++)= 'B';	}
165     else{ *(to++)= 'b';	}
166 
167     if  ( flags & TPflagRIGHT_BORDER )
168 	{ *(to++)= 'B';	}
169     else{ *(to++)= 'b';	}
170 
171     if  ( flags & TPflagXMATCH_RIGHT )
172 	{ *(to++)= ']';	}
173     else{ *(to++)= '.';	}
174 
175     *(to)= '\0';
176     return scratch;
177     }
178 
docLogRectangle(const char * label,const DocumentRectangle * dr)179 void docLogRectangle(	const char *			label,
180 			const DocumentRectangle *	dr )
181     {
182     appDebug( "%s: [%4d+%4d=%4d]x[%4d+%4d=%4d]\n", label,
183 		dr->drX0, dr->drX1- dr->drX0+ 1, dr->drX1,
184 		dr->drY0, dr->drY1- dr->drY0+ 1, dr->drY1 );
185 
186     return;
187     }
188 
docLogRectangles(const char * label1,const DocumentRectangle * dr1,const char * label2,const DocumentRectangle * dr2)189 void docLogRectangles(	const char *			label1,
190 			const DocumentRectangle *	dr1,
191 			const char *			label2,
192 			const DocumentRectangle *	dr2 )
193     {
194     appDebug( "%s: [%4d+%4d]x[%4d+%4d] %s [%4d+%4d]x[%4d+%4d]\n",
195 		label1,
196 		dr1->drX0, dr1->drX1- dr1->drX0+ 1,
197 		dr1->drY0, dr1->drY1- dr1->drY0+ 1,
198 		label2,
199 		dr2->drX0, dr2->drX1- dr2->drX0+ 1,
200 		dr2->drY0, dr2->drY1- dr2->drY0+ 1 );
201 
202     return;
203     }
204 
docBreakKindStr(int kind)205 const char * docBreakKindStr( int kind )
206     {
207     static char scratch[20];
208 
209     switch( kind )
210 	{
211 	case DOCibkNONE:	return "NONE";
212 	case DOCibkCOL:		return "COL";
213 	case DOCibkPAGE:	return "PAGE";
214 	case DOCibkEVEN:	return "EVEN";
215 	case DOCibkODD:		return "ODD";
216 
217 	default:
218 	    sprintf( scratch, "%d", kind );
219 	    return scratch;
220 	}
221     }
222