1 /************************************************************************/
2 /*									*/
3 /*  Table of rtf tags that are not treated as an exception.		*/
4 /*									*/
5 /************************************************************************/
6 
7 #   include	"docRtfConfig.h"
8 
9 #   include	<stdlib.h>
10 #   include	<string.h>
11 #   include	<stdio.h>
12 #   include	<ctype.h>
13 
14 #   include	<utilJenkinsPerfectHash.h>
15 
16 #   include	"docRtfReaderImpl.h"
17 #   include	"docRtfShpTab.h"
18 #   include	"docRtfTagHash.h"
19 #   include	<docShapeProp.h>
20 
21 #   include	<appDebugon.h>
22 
23 #   define	BUILD_NO_HASH				/*  for sed */
24 
25 #   ifdef	BUILD_HASH
26 
27 #	define		docRtfShpArray				0
28 #	define		docRtfShpString				0
29 #	define		docRtfShpPicture			0
30 #	define		docRtfShapeNumber			0
31 #	define		docRtfShpColor				0
32 
33 #   endif
34 
35 /************************************************************************/
36 /*									*/
37 /*  Table of common shape properties.					*/
38 /*									*/
39 /************************************************************************/
40 
41 # define	SHAPE_ARRAY(s,id) \
42 		    { s, id, RTCtypeANY, docRtfShpArray, }
43 # define	SHAPE_STRING(s,id) \
44 		    { s, id, RTCtypeANY, docRtfShpString, }
45 # define	SHAPE_PICTURE(s,id) \
46 		    { s, id, RTCtypeANY, docRtfShpPicture, }
47 # define	SHAPE_COLOR(s,id) \
48 		    { s, id, RTCtypeANY, docRtfShpColor, }
49 
50 # define	SHAPE_NUMBER(s,id) \
51 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
52 # define	SHAPE_POS_NUMBER(s,id) \
53 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
54 # define	SHAPE_TYPE_NUMBER(s,id) \
55 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
56 # define	SHAPE_LOCK_NUMBER(s,id) \
57 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
58 # define	SHAPE_FILL_NUMBER(s,id) \
59 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
60 # define	SHAPE_LINE_NUMBER(s,id) \
61 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
62 # define	SHAPE_GROUP_NUMBER(s,id) \
63 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
64 # define	SHAPE_SHADOW_NUMBER(s,id) \
65 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
66 # define	SHAPE_CONN_NUMBER(s,id) \
67 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
68 # define	SHAPE_TXBOX_NUMBER(s,id) \
69 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
70 # define	SHAPE_GEO_NUMBER(s,id) \
71 		    { s, id, RTCtypeANY, docRtfShapeNumber, }
72 
73 static RtfControlWord	docRtfShapePropertyWords[]=
74 {
75 
76     SHAPE_ARRAY( "pVerticies",	 	DSHPprop_pVerticies ),
77     SHAPE_ARRAY( "pWrapPolygonVertices",DSHPprop_pWrapPolygonVertices ),
78     SHAPE_ARRAY( "pSegmentInfo",	DSHPprop_pSegmentInfo ),
79 
80     SHAPE_STRING( "wzName",		DSHPprop_wzName ),
81     SHAPE_STRING( "wzDescription",	DSHPprop_wzDescription ),
82     SHAPE_STRING( "gtextUNICODE",	DSHPprop_gtextUNICODE ),
83     SHAPE_STRING( "gtextFont",		DSHPprop_gtextFont ),
84     SHAPE_STRING( "pibName",		DSHPprop_pibName ),
85     SHAPE_STRING( "fillBlipName",	DSHPprop_fillBlipName ),
86 
87     SHAPE_PICTURE( "pib",		DSHPprop_pib ),
88 
89 			    /********************************************/
90 			    /*   Number/Flag: Position.			*/
91 			    /********************************************/
92     SHAPE_POS_NUMBER( "posv",		DSHPprop_posv ),
93     SHAPE_POS_NUMBER( "posh",		DSHPprop_posh ),
94     SHAPE_POS_NUMBER( "posrelv",	DSHPprop_posrelv ),
95     SHAPE_POS_NUMBER( "posrelh",	DSHPprop_posrelh ),
96 
97     SHAPE_POS_NUMBER( "fUseShapeAnchor",DSHPprop_fUseShapeAnchor ),
98     SHAPE_POS_NUMBER( "fLayoutInCell",	DSHPprop_fLayoutInCell ),
99     SHAPE_POS_NUMBER( "fAllowOverlap",	DSHPprop_fAllowOverlap ),
100     SHAPE_POS_NUMBER( "fChangePage",	DSHPprop_fChangePage ),
101 
102 			    /********************************************/
103 			    /*						*/
104 			    /*  Object type.				*/
105 			    /*  1)  To deal with faulty documents.	*/
106 			    /*						*/
107 			    /********************************************/
108     SHAPE_TYPE_NUMBER( "shapeType",		DSHPprop_shapeType ),
109     SHAPE_TYPE_NUMBER( "ShapeType",		DSHPprop_shapeType ), /* 1 */
110     SHAPE_TYPE_NUMBER( "rotation",		DSHPprop_rotation ),
111 
112     SHAPE_TYPE_NUMBER( "dxWrapDistLeft",	DSHPprop_dxWrapDistLeft ),
113     SHAPE_TYPE_NUMBER( "dyWrapDistTop",		DSHPprop_dyWrapDistTop ),
114     SHAPE_TYPE_NUMBER( "dxWrapDistRight",	DSHPprop_dxWrapDistRight ),
115     SHAPE_TYPE_NUMBER( "dyWrapDistBottom",	DSHPprop_dyWrapDistBottom ),
116 
117     SHAPE_TYPE_NUMBER( "hspMaster",		DSHPprop_hspMaster ),
118     SHAPE_TYPE_NUMBER( "hspNext",		DSHPprop_hspNext ),
119 
120     SHAPE_TYPE_NUMBER( "xLimo",			DSHPprop_xLimo ),
121     SHAPE_TYPE_NUMBER( "yLimo",			DSHPprop_yLimo ),
122 
123     SHAPE_TYPE_NUMBER( "fIsBullet",		DSHPprop_fIsBullet ),
124     SHAPE_TYPE_NUMBER( "fFlipV",		DSHPprop_fFlipV ),
125     SHAPE_TYPE_NUMBER( "fFlipH",		DSHPprop_fFlipH ),
126     SHAPE_TYPE_NUMBER( "fBehindDocument",	DSHPprop_fBehindDocument ),
127     SHAPE_TYPE_NUMBER( "fIsButton",		DSHPprop_fIsButton ),
128     SHAPE_TYPE_NUMBER( "fHidden",		DSHPprop_fHidden ),
129     SHAPE_TYPE_NUMBER( "fReallyHidden",		DSHPprop_fReallyHidden ),
130     SHAPE_TYPE_NUMBER( "fArrowheadsOK",		DSHPprop_fArrowheadsOK ),
131     SHAPE_TYPE_NUMBER( "fBackground",		DSHPprop_fBackground ),
132     SHAPE_TYPE_NUMBER( "fDeleteAttachedObject",
133 						DSHPprop_fDeleteAttachedObject ),
134     SHAPE_TYPE_NUMBER( "fEditedWrap",		DSHPprop_fEditedWrap ),
135     SHAPE_TYPE_NUMBER( "fHitTestFill",		DSHPprop_fHitTestFill ),
136     SHAPE_TYPE_NUMBER( "fHitTestLine",		DSHPprop_fHitTestLine ),
137     SHAPE_TYPE_NUMBER( "fInitiator",		DSHPprop_fInitiator ),
138     SHAPE_TYPE_NUMBER( "fNoFillHitTest",	DSHPprop_fNoFillHitTest ),
139     SHAPE_TYPE_NUMBER( "fNoHitTestPicture",	DSHPprop_fNoHitTestPicture ),
140     SHAPE_TYPE_NUMBER( "fNoLineDrawDash",	DSHPprop_fNoLineDrawDash ),
141     SHAPE_TYPE_NUMBER( "fOleIcon",		DSHPprop_fOleIcon ),
142     SHAPE_TYPE_NUMBER( "fOnDblClickNotify",	DSHPprop_fOnDblClickNotify ),
143     SHAPE_TYPE_NUMBER( "fOneD",			DSHPprop_fOneD ),
144     SHAPE_TYPE_NUMBER( "fPreferRelativeSize",	DSHPprop_fPreferRelativeSize ),
145     SHAPE_TYPE_NUMBER( "fPrint",		DSHPprop_fPrint ),
146 
147     /* ? */
148     SHAPE_TYPE_NUMBER( "fPseudoInline",		DSHPprop_fPseudoInline ),
149 
150 			    /********************************************/
151 			    /*  Text Box.				*/
152 			    /********************************************/
153     SHAPE_TXBOX_NUMBER( "dxTextLeft",		DSHPprop_dxTextLeft ),
154     SHAPE_TXBOX_NUMBER( "dyTextTop",		DSHPprop_dyTextTop ),
155     SHAPE_TXBOX_NUMBER( "dxTextRight",		DSHPprop_dxTextRight ),
156     SHAPE_TXBOX_NUMBER( "dyTextBottom",		DSHPprop_dyTextBottom ),
157     SHAPE_TXBOX_NUMBER( "scaleText",		DSHPprop_scaleText ),
158     SHAPE_TXBOX_NUMBER( "lTxid",		DSHPprop_lTxid ),
159     SHAPE_TXBOX_NUMBER( "WrapText",		DSHPprop_WrapText ),
160     SHAPE_TXBOX_NUMBER( "anchorText",		DSHPprop_anchorText ),
161     SHAPE_TXBOX_NUMBER( "txflTextFlow",		DSHPprop_txflTextFlow ),
162     SHAPE_TXBOX_NUMBER( "cdirFont",		DSHPprop_cdirFont ),
163     SHAPE_TXBOX_NUMBER( "fAutoTextMargin",	DSHPprop_fAutoTextMargin ),
164     SHAPE_TXBOX_NUMBER( "fRotateText",		DSHPprop_fRotateText ),
165     SHAPE_TXBOX_NUMBER( "fSelectText",		DSHPprop_fSelectText ),
166     SHAPE_TXBOX_NUMBER( "fFitShapeToText",	DSHPprop_fFitShapeToText ),
167     SHAPE_TXBOX_NUMBER( "fFitTextToShape",	DSHPprop_fFitTextToShape ),
168 
169 			    /********************************************/
170 			    /*						*/
171 			    /*  Line.					*/
172 			    /*  1)  Deal with faulty documents.		*/
173 			    /*						*/
174 			    /********************************************/
175     SHAPE_LINE_NUMBER( "lineType",		DSHPprop_lineType ),
176 
177     SHAPE_LINE_NUMBER( "lineFillBlipFlags",	DSHPprop_lineFillBlipFlags ),
178 
179     SHAPE_LINE_NUMBER( "lineFillWidth",		DSHPprop_lineFillWidth ),
180     SHAPE_LINE_NUMBER( "lineFillHeight",	DSHPprop_lineFillHeight ),
181     SHAPE_LINE_NUMBER( "lineWidth",		DSHPprop_lineWidth ),
182 
183     SHAPE_LINE_NUMBER( "lineStyle",		DSHPprop_lineStyle ),
184     SHAPE_LINE_NUMBER( "lineDashing",		DSHPprop_lineDashing ),
185     SHAPE_LINE_NUMBER( "lineStartArrowhead",	DSHPprop_lineStartArrowhead ),
186     SHAPE_LINE_NUMBER( "lineEndArrowhead",	DSHPprop_lineEndArrowhead ),
187     SHAPE_LINE_NUMBER( "lineStartArrowWidth",	DSHPprop_lineStartArrowWidth ),
188     SHAPE_LINE_NUMBER( "lineStartArrowLength",	DSHPprop_lineStartArrowLength ),
189     SHAPE_LINE_NUMBER( "lineEndArrowWidth",	DSHPprop_lineEndArrowWidth ),
190     SHAPE_LINE_NUMBER( "lineEndArrowLength",	DSHPprop_lineEndArrowLength ),
191     SHAPE_LINE_NUMBER( "lineEndCapStyle",	DSHPprop_lineEndCapStyle ),
192     SHAPE_LINE_NUMBER( "lineFillDztype",	DSHPprop_lineFillDztype ),
193     SHAPE_LINE_NUMBER( "lineJoinStyle",		DSHPprop_lineJoinStyle ),
194 
195     SHAPE_LINE_NUMBER( "lineMiterLimit",	DSHPprop_lineMiterLimit ),
196 
197     SHAPE_LINE_NUMBER( "fLine",			DSHPprop_fLine ),
198     SHAPE_LINE_NUMBER( "fline",			DSHPprop_fLine ), /* 1 */
199     SHAPE_LINE_NUMBER( "fLineOK",		DSHPprop_fLineOK ),
200 
201     SHAPE_LINE_NUMBER( "fLineUseShapeAnchor",	DSHPprop_fLineUseShapeAnchor ),
202     SHAPE_LINE_NUMBER( "fColumnLineOK",		DSHPprop_fColumnLineOK ),
203     SHAPE_LINE_NUMBER( "fColumnLine",		DSHPprop_fColumnLine ),
204     SHAPE_LINE_NUMBER( "fLeftLine",		DSHPprop_fLeftLine ),
205     SHAPE_LINE_NUMBER( "fTopLine",		DSHPprop_fTopLine ),
206     SHAPE_LINE_NUMBER( "fRightLine",		DSHPprop_fRightLine ),
207     SHAPE_LINE_NUMBER( "fBottomLine",		DSHPprop_fBottomLine ),
208 
209     SHAPE_LINE_NUMBER( "fColumnHitTestLine",	DSHPprop_fColumnHitTestLine ),
210     SHAPE_LINE_NUMBER( "fLeftHitTestLine",	DSHPprop_fLeftHitTestLine ),
211     SHAPE_LINE_NUMBER( "fTopHitTestLine",	DSHPprop_fTopHitTestLine ),
212     SHAPE_LINE_NUMBER( "fRightHitTestLine",	DSHPprop_fRightHitTestLine ),
213     SHAPE_LINE_NUMBER( "fBottomHitTestLine",	DSHPprop_fBottomHitTestLine ),
214 
215     SHAPE_LINE_NUMBER( "lineFillShape",		DSHPprop_lineFillShape ),
216     SHAPE_LINE_NUMBER( "lineColumnFillShape",	DSHPprop_lineColumnFillShape ),
217     SHAPE_LINE_NUMBER( "lineLeftFillShape",	DSHPprop_lineLeftFillShape ),
218     SHAPE_LINE_NUMBER( "lineTopFillShape",	DSHPprop_lineTopFillShape ),
219     SHAPE_LINE_NUMBER( "lineRightFillShape",	DSHPprop_lineRightFillShape ),
220     SHAPE_LINE_NUMBER( "lineBottomFillShape",	DSHPprop_lineBottomFillShape ),
221 
222     SHAPE_LINE_NUMBER( "fInsetPen",		DSHPprop_fInsetPen ),
223     SHAPE_LINE_NUMBER( "fLeftInsetPen",		DSHPprop_fLeftInsetPen ),
224     SHAPE_LINE_NUMBER( "fTopInsetPen",		DSHPprop_fTopInsetPen ),
225     SHAPE_LINE_NUMBER( "fRightInsetPen",	DSHPprop_fRightInsetPen ),
226     SHAPE_LINE_NUMBER( "fBottomInsetPen",	DSHPprop_fBottomInsetPen ),
227 
228     SHAPE_COLOR( "lineColor",			DSHPprop_lineColor ),
229     SHAPE_COLOR( "lineBackColor",		DSHPprop_lineBackColor ),
230     SHAPE_COLOR( "lineCrMod",			DSHPprop_lineCrMod ),
231 
232 			    /********************************************/
233 			    /*  Lock.					*/
234 			    /********************************************/
235     SHAPE_LOCK_NUMBER( "fLockRotation",		DSHPprop_fLockRotation ),
236     SHAPE_LOCK_NUMBER( "fLockAspectRatio",	DSHPprop_fLockAspectRatio ),
237     SHAPE_LOCK_NUMBER( "fLockAgainstSelect",	DSHPprop_fLockAgainstSelect ),
238     SHAPE_LOCK_NUMBER( "fLockCropping",		DSHPprop_fLockCropping ),
239     SHAPE_LOCK_NUMBER( "fLockVerticies",	DSHPprop_fLockVerticies ),
240     SHAPE_LOCK_NUMBER( "fLockText",		DSHPprop_fLockText ),
241     SHAPE_LOCK_NUMBER( "fLockAdjustHandles",	DSHPprop_fLockAdjustHandles ),
242     SHAPE_LOCK_NUMBER( "fLockAgainstGrouping",	DSHPprop_fLockAgainstGrouping ),
243     SHAPE_LOCK_NUMBER( "fLockShapeType",	DSHPprop_fLockShapeType ),
244 
245     /*?*/
246     SHAPE_LOCK_NUMBER( "fLockPosition",		DSHPprop_fLockPosition ),
247 
248 			    /********************************************/
249 			    /*  Fill.					*/
250 			    /********************************************/
251     SHAPE_FILL_NUMBER( "fillType",		DSHPprop_fillType ),
252     SHAPE_FILL_NUMBER( "fillOpacity",		DSHPprop_fillOpacity ),
253     SHAPE_FILL_NUMBER( "fillBackOpacity",	DSHPprop_fillBackOpacity ),
254 
255     SHAPE_FILL_NUMBER( "fillblipflags",		DSHPprop_fillblipflags ),
256 
257     SHAPE_FILL_NUMBER( "fillWidth",		DSHPprop_fillWidth ),
258     SHAPE_FILL_NUMBER( "fillHeight",		DSHPprop_fillHeight ),
259     SHAPE_FILL_NUMBER( "fillAngle",		DSHPprop_fillAngle ),
260     SHAPE_FILL_NUMBER( "fillFocus",		DSHPprop_fillFocus ),
261 
262     SHAPE_FILL_NUMBER( "fillToLeft",		DSHPprop_fillToLeft ),
263     SHAPE_FILL_NUMBER( "fillToTop",		DSHPprop_fillToTop ),
264     SHAPE_FILL_NUMBER( "fillToRight",		DSHPprop_fillToRight ),
265     SHAPE_FILL_NUMBER( "fillToBottom",		DSHPprop_fillToBottom ),
266 
267     SHAPE_FILL_NUMBER( "fillOriginX",		DSHPprop_fillOriginX ),
268     SHAPE_FILL_NUMBER( "fillOriginY",		DSHPprop_fillOriginY ),
269     SHAPE_FILL_NUMBER( "fillShapeOriginX",	DSHPprop_fillShapeOriginX ),
270     SHAPE_FILL_NUMBER( "fillShapeOriginY",	DSHPprop_fillShapeOriginY ),
271 
272     SHAPE_FILL_NUMBER( "fillDztype",		DSHPprop_fillDztype ),
273 
274     SHAPE_FILL_NUMBER( "fillRectLeft",		DSHPprop_fillRectLeft ),
275     SHAPE_FILL_NUMBER( "fillRectTop",		DSHPprop_fillRectTop ),
276     SHAPE_FILL_NUMBER( "fillRectRight",		DSHPprop_fillRectRight ),
277     SHAPE_FILL_NUMBER( "fillRectBottom",	DSHPprop_fillRectBottom ),
278 
279     SHAPE_FILL_NUMBER( "fillShadePreset",	DSHPprop_fillShadePreset ),
280     SHAPE_FILL_NUMBER( "fillShadeType",		DSHPprop_fillShadeType ),
281 
282     SHAPE_FILL_NUMBER( "fFilled",		DSHPprop_fFilled ),
283     SHAPE_FILL_NUMBER( "fillShape",		DSHPprop_fillShape ),
284     SHAPE_FILL_NUMBER( "fillUseRect",		DSHPprop_fillUseRect ),
285     SHAPE_FILL_NUMBER( "fFillOK",		DSHPprop_fFillOK ),
286     SHAPE_FILL_NUMBER( "fFillShadeShapeOK",	DSHPprop_fFillShadeShapeOK ),
287 
288     SHAPE_COLOR( "fillColor",			DSHPprop_fillColor ),
289     SHAPE_COLOR( "fillBackColor",		DSHPprop_fillBackColor ),
290     SHAPE_COLOR( "fillCrMod",			DSHPprop_fillCrMod ),
291 
292 				    /************************************/
293 				    /*  Geometry			*/
294 				    /************************************/
295 
296     SHAPE_GEO_NUMBER( "geoLeft",		DSHPprop_geoLeft ),
297     SHAPE_GEO_NUMBER( "geoTop",			DSHPprop_geoTop ),
298     SHAPE_GEO_NUMBER( "geoRight",		DSHPprop_geoRight ),
299     SHAPE_GEO_NUMBER( "geoBottom",		DSHPprop_geoBottom ),
300     SHAPE_GEO_NUMBER( "adjustValue",		DSHPprop_adjustValue ),
301     SHAPE_GEO_NUMBER( "adjust2Value",		DSHPprop_adjust2Value ),
302     SHAPE_GEO_NUMBER( "adjust3Value",		DSHPprop_adjust3Value ),
303     SHAPE_GEO_NUMBER( "adjust4Value",		DSHPprop_adjust4Value ),
304     SHAPE_GEO_NUMBER( "adjust5Value",		DSHPprop_adjust5Value ),
305     SHAPE_GEO_NUMBER( "adjust6Value",		DSHPprop_adjust6Value ),
306     SHAPE_GEO_NUMBER( "adjust7Value",		DSHPprop_adjust7Value ),
307     SHAPE_GEO_NUMBER( "adjust8Value",		DSHPprop_adjust8Value ),
308     SHAPE_GEO_NUMBER( "adjust9Value",		DSHPprop_adjust9Value ),
309     SHAPE_GEO_NUMBER( "adjust10Value",		DSHPprop_adjust10Value ),
310 
311 				    /************************************/
312 				    /*  Grouped Shapes.			*/
313 				    /************************************/
314 
315     SHAPE_GROUP_NUMBER( "relLeft", 		DSHPprop_relLeft ),
316     SHAPE_GROUP_NUMBER( "relTop", 		DSHPprop_relTop ),
317     SHAPE_GROUP_NUMBER( "relRight", 		DSHPprop_relRight ),
318     SHAPE_GROUP_NUMBER( "relBottom", 		DSHPprop_relBottom ),
319 
320     SHAPE_GROUP_NUMBER( "relRotation", 		DSHPprop_relRotation ),
321     SHAPE_GROUP_NUMBER( "lidRegroup", 		DSHPprop_lidRegroup ),
322 
323     SHAPE_GROUP_NUMBER( "groupLeft", 		DSHPprop_groupLeft ),
324     SHAPE_GROUP_NUMBER( "groupTop", 		DSHPprop_groupTop ),
325     SHAPE_GROUP_NUMBER( "groupRight", 		DSHPprop_groupRight ),
326     SHAPE_GROUP_NUMBER( "groupBottom", 		DSHPprop_groupBottom ),
327 
328     SHAPE_GROUP_NUMBER( "fRelChangePage", 	DSHPprop_fRelChangePage ),
329     SHAPE_GROUP_NUMBER( "fRelFlipH", 		DSHPprop_fRelFlipH ),
330     SHAPE_GROUP_NUMBER( "fRelFlipV", 		DSHPprop_fRelFlipV ),
331 
332 			    /********************************************/
333 			    /*  Shadow.					*/
334 			    /********************************************/
335 
336     SHAPE_SHADOW_NUMBER( "shadowType",		DSHPprop_shadowType ),
337     SHAPE_SHADOW_NUMBER( "shadowOpacity",	DSHPprop_shadowOpacity ),
338     SHAPE_SHADOW_NUMBER( "shadowOffsetX",	DSHPprop_shadowOffsetX ),
339     SHAPE_SHADOW_NUMBER( "shadowOffsetY",	DSHPprop_shadowOffsetY ),
340     SHAPE_SHADOW_NUMBER( "shadowSecondOffsetX",	DSHPprop_shadowSecondOffsetX ),
341     SHAPE_SHADOW_NUMBER( "shadowSecondOffsetY",	DSHPprop_shadowSecondOffsetY ),
342     SHAPE_SHADOW_NUMBER( "shadowScaleXToX",	DSHPprop_shadowScaleXToX ),
343     SHAPE_SHADOW_NUMBER( "shadowScaleYToX",	DSHPprop_shadowScaleYToX ),
344     SHAPE_SHADOW_NUMBER( "shadowScaleXToY",	DSHPprop_shadowScaleXToY ),
345     SHAPE_SHADOW_NUMBER( "shadowScaleYToY",	DSHPprop_shadowScaleYToY ),
346     SHAPE_SHADOW_NUMBER( "shadowPerspectiveX",	DSHPprop_shadowPerspectiveX ),
347     SHAPE_SHADOW_NUMBER( "shadowPerspectiveY",	DSHPprop_shadowPerspectiveY ),
348     SHAPE_SHADOW_NUMBER( "shadowWeight",	DSHPprop_shadowWeight ),
349     SHAPE_SHADOW_NUMBER( "shadowOriginX",	DSHPprop_shadowOriginX ),
350     SHAPE_SHADOW_NUMBER( "shadowOriginY",	DSHPprop_shadowOriginY ),
351 
352     SHAPE_SHADOW_NUMBER( "fShadow",		DSHPprop_fShadow ),
353     SHAPE_SHADOW_NUMBER( "fshadowObscured", 	DSHPprop_fshadowObscured ),
354     SHAPE_SHADOW_NUMBER( "fShadowOK",		DSHPprop_fShadowOK ),
355 
356     SHAPE_COLOR( "shadowCrMod",			DSHPprop_shadowCrMod ),
357     SHAPE_COLOR( "shadowColor",			DSHPprop_shadowColor ),
358     SHAPE_COLOR( "shadowHighlight",		DSHPprop_shadowHighlight ),
359 
360 			    /********************************************/
361 			    /*  Connectors.				*/
362 			    /********************************************/
363 
364     SHAPE_CONN_NUMBER( "cxk", 			DSHPprop_cxk ),
365     SHAPE_CONN_NUMBER( "cxstyle", 		DSHPprop_cxstyle ),
366 
367 			    /********************************************/
368 			    /*  Various numeric properties.		*/
369 			    /********************************************/
370 
371     SHAPE_NUMBER( "gtextAlign",		DSHPprop_gtextAlign ),
372     SHAPE_NUMBER( "fGtext",		DSHPprop_fGtext ),
373     SHAPE_NUMBER( "gtextFVertical",	DSHPprop_gtextFVertical ),
374     SHAPE_NUMBER( "gtextFKern",		DSHPprop_gtextFKern ),
375     SHAPE_NUMBER( "gtextFTight",	DSHPprop_gtextFTight ),
376     SHAPE_NUMBER( "gtextFStretch",	DSHPprop_gtextFStretch ),
377     SHAPE_NUMBER( "gtextFShrinkFit",	DSHPprop_gtextFShrinkFit ),
378     SHAPE_NUMBER( "gtextFBestFit",	DSHPprop_gtextFBestFit ),
379     SHAPE_NUMBER( "gtextFNormalize",	DSHPprop_gtextFNormalize ),
380     SHAPE_NUMBER( "gtextFDxMeasure",	DSHPprop_gtextFDxMeasure ),
381     SHAPE_NUMBER( "gtextFBold",		DSHPprop_gtextFBold ),
382     SHAPE_NUMBER( "gtextFItalic",	DSHPprop_gtextFItalic ),
383     SHAPE_NUMBER( "gtextFUnderline",	DSHPprop_gtextFUnderline ),
384     SHAPE_NUMBER( "gtextFShadow",	DSHPprop_gtextFShadow ),
385     SHAPE_NUMBER( "gtextFSmallcaps",	DSHPprop_gtextFSmallcaps ),
386     SHAPE_NUMBER( "gtextFStrikethrough",DSHPprop_gtextFStrikethrough ),
387     SHAPE_NUMBER( "pibFlags",		DSHPprop_pibFlags ),
388     SHAPE_NUMBER( "pictureGray",	DSHPprop_pictureGray ),
389     SHAPE_NUMBER( "pictureBiLevel",	DSHPprop_pictureBiLevel ),
390     SHAPE_NUMBER( "c3DEdgeThickness",	DSHPprop_c3DEdgeThickness ),
391     SHAPE_NUMBER( "c3DExtrudeForward",	DSHPprop_c3DExtrudeForward ),
392     SHAPE_NUMBER( "c3DExtrudeBackward",	DSHPprop_c3DExtrudeBackward ),
393     SHAPE_NUMBER( "f3D",		DSHPprop_f3D ),
394     SHAPE_NUMBER( "fc3DMetallic",	DSHPprop_fc3DMetallic ),
395     SHAPE_NUMBER( "fc3DUseExtrusionColor",	DSHPprop_fc3DUseExtrusionColor ),
396     SHAPE_NUMBER( "fc3DLightFace",	DSHPprop_fc3DLightFace ),
397     SHAPE_NUMBER( "c3DRotationAxisX",	DSHPprop_c3DRotationAxisX ),
398     SHAPE_NUMBER( "c3DRotationAxisY",	DSHPprop_c3DRotationAxisY ),
399     SHAPE_NUMBER( "c3DRotationAxisZ",	DSHPprop_c3DRotationAxisZ ),
400     SHAPE_NUMBER( "fC3DRotationCenterAut",	DSHPprop_fC3DRotationCenterAut ),
401     SHAPE_NUMBER( "c3DRotationCenterZ",	DSHPprop_c3DRotationCenterZ ),
402     SHAPE_NUMBER( "c3DXViewpoint",	DSHPprop_c3DXViewpoint ),
403     SHAPE_NUMBER( "c3DYViewpoint",	DSHPprop_c3DYViewpoint ),
404     SHAPE_NUMBER( "c3DZViewpoint",	DSHPprop_c3DZViewpoint ),
405     SHAPE_NUMBER( "c3DKeyX",		DSHPprop_c3DKeyX ),
406     SHAPE_NUMBER( "c3DKeyY",		DSHPprop_c3DKeyY ),
407     SHAPE_NUMBER( "c3DKeyZ",		DSHPprop_c3DKeyZ ),
408     SHAPE_NUMBER( "c3DFillX",		DSHPprop_c3DFillX ),
409     SHAPE_NUMBER( "c3DFillY",		DSHPprop_c3DFillY ),
410     SHAPE_NUMBER( "c3DFillZ",		DSHPprop_c3DFillZ ),
411     SHAPE_NUMBER( "fc3DParallel",		DSHPprop_fc3DParallel ),
412     SHAPE_NUMBER( "fc3DKeyHarsh",		DSHPprop_fc3DKeyHarsh ),
413     SHAPE_NUMBER( "fc3DFillHarsh",		DSHPprop_fc3DFillHarsh ),
414     SHAPE_NUMBER( "fc3DConstrainRotation",	DSHPprop_fc3DConstrainRotation ),
415     SHAPE_NUMBER( "fc3DRotationCenterAuto",	DSHPprop_fc3DRotationCenterAuto ),
416     SHAPE_NUMBER( "spcot",			DSHPprop_spcot ),
417     SHAPE_NUMBER( "dxyCalloutGap",		DSHPprop_dxyCalloutGap ),
418     SHAPE_NUMBER( "spcoa",			DSHPprop_spcoa ),
419     SHAPE_NUMBER( "spcod",			DSHPprop_spcod ),
420     SHAPE_NUMBER( "dxyCalloutDropSpecified", DSHPprop_dxyCalloutDropSpecified ),
421     SHAPE_NUMBER( "dxyCalloutLengthSpecified", DSHPprop_dxyCalloutLengthSpecified ),
422     SHAPE_NUMBER( "fCallout",			DSHPprop_fCallout ),
423     SHAPE_NUMBER( "fCalloutAccentBar",		DSHPprop_fCalloutAccentBar ),
424     SHAPE_NUMBER( "fCalloutTextBorder",		DSHPprop_fCalloutTextBorder ),
425     SHAPE_NUMBER( "fCalloutDropAuto",		DSHPprop_fCalloutDropAuto ),
426     SHAPE_NUMBER( "fCalloutLengthSpecified",	DSHPprop_fCalloutLengthSpecified ),
427     SHAPE_NUMBER( "pictureId", 			DSHPprop_pictureId ),
428     SHAPE_NUMBER( "pictureActive", 		DSHPprop_pictureActive ),
429     SHAPE_NUMBER( "pictureContrast", 		DSHPprop_pictureContrast ),
430     SHAPE_NUMBER( "pictureBrightness", 		DSHPprop_pictureBrightness ),
431     SHAPE_NUMBER( "pictureDblCrMod", 		DSHPprop_pictureDblCrMod ),
432     SHAPE_NUMBER( "pictureFillCrMod", 		DSHPprop_pictureFillCrMod ),
433     SHAPE_NUMBER( "pictureLineCrMod", 		DSHPprop_pictureLineCrMod ),
434     SHAPE_NUMBER( "fCalloutMinusX", 		DSHPprop_fCalloutMinusX ),
435     SHAPE_NUMBER( "fCalloutMinusY", 		DSHPprop_fCalloutMinusY ),
436     SHAPE_NUMBER( "shapePath", 			DSHPprop_shapePath ),
437     SHAPE_NUMBER( "lineOpacity", 		DSHPprop_lineOpacity ),
438     SHAPE_NUMBER( "cropFromLeft",	 	DSHPprop_cropFromLeft ),
439     SHAPE_NUMBER( "cropFromRight",	 	DSHPprop_cropFromRight ),
440     SHAPE_NUMBER( "cropFromTop",	 	DSHPprop_cropFromTop ),
441     SHAPE_NUMBER( "cropFromBottom",	 	DSHPprop_cropFromBottom ),
442     SHAPE_NUMBER( "bWMode",			DSHPprop_bWMode ),
443     SHAPE_NUMBER( "f3DOK",			DSHPprop_f3DOK ),
444     SHAPE_NUMBER( "fPreferRelativeResize",	DSHPprop_fPreferRelativeResize ),
445     SHAPE_NUMBER( "fRecolorFillAsPicture",	DSHPprop_fRecolorFillAsPicture ),
446     SHAPE_NUMBER( "dgmt",			DSHPprop_dgmt ),
447     SHAPE_NUMBER( "ccol",			DSHPprop_ccol ),
448     SHAPE_NUMBER( "dzColMargin",		DSHPprop_dzColMargin ),
449 
450     SHAPE_NUMBER( "fScriptAnchor",		DSHPprop_fScriptAnchor ),
451     SHAPE_NUMBER( "fFakeMaster",		DSHPprop_fFakeMaster ),
452     SHAPE_NUMBER( "fCameFromImgDummy",		DSHPprop_fCameFromImgDummy ),
453     SHAPE_NUMBER( "c3DAmbientIntensity",	DSHPprop_c3DAmbientIntensity ),
454     SHAPE_NUMBER( "c3DDiffuseAmt",		DSHPprop_c3DDiffuseAmt ),
455     SHAPE_NUMBER( "c3DExtrudePlane",		DSHPprop_c3DExtrudePlane ),
456     SHAPE_NUMBER( "c3DFillIntensity",		DSHPprop_c3DFillIntensity ),
457     SHAPE_NUMBER( "c3DKeyIntensity",		DSHPprop_c3DKeyIntensity ),
458     SHAPE_NUMBER( "c3DOriginX",			DSHPprop_c3DOriginX ),
459     SHAPE_NUMBER( "c3DOriginY",			DSHPprop_c3DOriginY ),
460     SHAPE_NUMBER( "c3DRenderMode",		DSHPprop_c3DRenderMode ),
461     SHAPE_NUMBER( "c3DRotationAngle",		DSHPprop_c3DRotationAngle ),
462     SHAPE_NUMBER( "c3DRotationCenterX",		DSHPprop_c3DRotationCenterX ),
463     SHAPE_NUMBER( "c3DRotationCenterY",		DSHPprop_c3DRotationCenterY ),
464     SHAPE_NUMBER( "c3DShininess",		DSHPprop_c3DShininess ),
465     SHAPE_NUMBER( "c3DSkewAmount",		DSHPprop_c3DSkewAmount ),
466     SHAPE_NUMBER( "c3DSkewAngle",		DSHPprop_c3DSkewAngle ),
467     SHAPE_NUMBER( "c3DSpecularAmt",		DSHPprop_c3DSpecularAmt ),
468     SHAPE_NUMBER( "c3DTolerance",		DSHPprop_c3DTolerance ),
469     SHAPE_NUMBER( "c3DXRotationAngle",		DSHPprop_c3DXRotationAngle ),
470     SHAPE_NUMBER( "c3DYRotationAngle",		DSHPprop_c3DYRotationAngle ),
471     SHAPE_NUMBER( "c3DExtrusionColorExt",	DSHPprop_c3DExtrusionColorExt ),
472     SHAPE_NUMBER( "c3DExtrusionColorExtCMY",	DSHPprop_c3DExtrusionColorExtCMY ),
473     SHAPE_NUMBER( "c3DExtrusionColorExtK",	DSHPprop_c3DExtrusionColorExtK ),
474     SHAPE_NUMBER( "c3DExtrusionColorExtMod",	DSHPprop_c3DExtrusionColorExtMod ),
475     SHAPE_NUMBER( "fillColorExt",		DSHPprop_fillColorExt ),
476     SHAPE_NUMBER( "fillColorExtCMY",		DSHPprop_fillColorExtCMY ),
477     SHAPE_NUMBER( "fillColorExtK",		DSHPprop_fillColorExtK ),
478     SHAPE_NUMBER( "fillColorExtMod",		DSHPprop_fillColorExtMod ),
479     SHAPE_NUMBER( "lineBackColorExt",		DSHPprop_lineBackColorExt ),
480     SHAPE_NUMBER( "lineBackColorExtCMY",	DSHPprop_lineBackColorExtCMY ),
481     SHAPE_NUMBER( "lineBackColorExtK",		DSHPprop_lineBackColorExtK ),
482     SHAPE_NUMBER( "lineBackColorExtMod",	DSHPprop_lineBackColorExtMod ),
483     SHAPE_NUMBER( "lineBottomBackColor",	DSHPprop_lineBottomBackColor ),
484     SHAPE_NUMBER( "lineBottomBackColorExt",	DSHPprop_lineBottomBackColorExt ),
485     SHAPE_NUMBER( "lineBottomBackColorExtCMY",	DSHPprop_lineBottomBackColorExtCMY ),
486     SHAPE_NUMBER( "lineBottomBackColorExtK",	DSHPprop_lineBottomBackColorExtK ),
487     SHAPE_NUMBER( "lineBottomBackColorExtMod",	DSHPprop_lineBottomBackColorExtMod ),
488     SHAPE_NUMBER( "lineBottomColor",		DSHPprop_lineBottomColor ),
489     SHAPE_NUMBER( "lineBottomColorExt",		DSHPprop_lineBottomColorExt ),
490     SHAPE_NUMBER( "lineBottomColorExtCMY",	DSHPprop_lineBottomColorExtCMY ),
491     SHAPE_NUMBER( "lineBottomColorExtK",	DSHPprop_lineBottomColorExtK ),
492     SHAPE_NUMBER( "lineBottomColorExtMod",	DSHPprop_lineBottomColorExtMod ),
493     SHAPE_NUMBER( "lineBottomCrMod",		DSHPprop_lineBottomCrMod ),
494     SHAPE_NUMBER( "lineBottomDashing",		DSHPprop_lineBottomDashing ),
495     SHAPE_NUMBER( "lineBottomEndArrowLength",	DSHPprop_lineBottomEndArrowLength ),
496     SHAPE_NUMBER( "lineBottomEndArrowWidth",	DSHPprop_lineBottomEndArrowWidth ),
497     SHAPE_NUMBER( "lineBottomEndArrowhead",	DSHPprop_lineBottomEndArrowhead ),
498     SHAPE_NUMBER( "lineBottomEndCapStyle",	DSHPprop_lineBottomEndCapStyle ),
499     SHAPE_NUMBER( "lineBottomFillBlipFlags",	DSHPprop_lineBottomFillBlipFlags ),
500     SHAPE_NUMBER( "lineBottomFillDztype",	DSHPprop_lineBottomFillDztype ),
501     SHAPE_NUMBER( "lineBottomFillHeight",	DSHPprop_lineBottomFillHeight ),
502     SHAPE_NUMBER( "lineBottomFillWidth",	DSHPprop_lineBottomFillWidth ),
503     SHAPE_NUMBER( "lineBottomMiterLimit",	DSHPprop_lineBottomMiterLimit ),
504     SHAPE_NUMBER( "lineBottomOpacity",		DSHPprop_lineBottomOpacity ),
505     SHAPE_NUMBER( "lineBottomStartArrowLength",	DSHPprop_lineBottomStartArrowLength ),
506     SHAPE_NUMBER( "lineBottomStartArrowWidth",	DSHPprop_lineBottomStartArrowWidth ),
507     SHAPE_NUMBER( "lineBottomStartArrowhead",	DSHPprop_lineBottomStartArrowhead ),
508     SHAPE_NUMBER( "lineBottomStyle",		DSHPprop_lineBottomStyle ),
509     SHAPE_NUMBER( "lineBottomType",		DSHPprop_lineBottomType ),
510     SHAPE_NUMBER( "lineBottomWidth",		DSHPprop_lineBottomWidth ),
511     SHAPE_NUMBER( "lineColorExt",		DSHPprop_lineColorExt ),
512     SHAPE_NUMBER( "lineColorExtCMY",		DSHPprop_lineColorExtCMY ),
513     SHAPE_NUMBER( "lineColorExtK",		DSHPprop_lineColorExtK ),
514     SHAPE_NUMBER( "lineColorExtMod",		DSHPprop_lineColorExtMod ),
515     SHAPE_NUMBER( "lineColumnBackColor",	DSHPprop_lineColumnBackColor ),
516     SHAPE_NUMBER( "lineColumnBackColorExt",	DSHPprop_lineColumnBackColorExt ),
517     SHAPE_NUMBER( "lineColumnBackColorExtCMY",	DSHPprop_lineColumnBackColorExtCMY ),
518     SHAPE_NUMBER( "lineColumnBackColorExtK",	DSHPprop_lineColumnBackColorExtK ),
519     SHAPE_NUMBER( "lineColumnBackColorExtMod",	DSHPprop_lineColumnBackColorExtMod ),
520     SHAPE_NUMBER( "lineColumnColor",		DSHPprop_lineColumnColor ),
521     SHAPE_NUMBER( "lineColumnColorExt",		DSHPprop_lineColumnColorExt ),
522     SHAPE_NUMBER( "lineColumnColorExtCMY",	DSHPprop_lineColumnColorExtCMY ),
523     SHAPE_NUMBER( "lineColumnColorExtK",	DSHPprop_lineColumnColorExtK ),
524     SHAPE_NUMBER( "lineColumnColorExtMod",	DSHPprop_lineColumnColorExtMod ),
525     SHAPE_NUMBER( "lineColumnCrMod",		DSHPprop_lineColumnCrMod ),
526     SHAPE_NUMBER( "lineColumnDashing",		DSHPprop_lineColumnDashing ),
527     SHAPE_NUMBER( "lineColumnEndArrowLength",	DSHPprop_lineColumnEndArrowLength ),
528     SHAPE_NUMBER( "lineColumnEndArrowWidth",	DSHPprop_lineColumnEndArrowWidth ),
529     SHAPE_NUMBER( "lineColumnEndArrowhead",	DSHPprop_lineColumnEndArrowhead ),
530     SHAPE_NUMBER( "lineColumnEndCapStyle",	DSHPprop_lineColumnEndCapStyle ),
531     SHAPE_NUMBER( "lineColumnFillBlipFlags",	DSHPprop_lineColumnFillBlipFlags ),
532     SHAPE_NUMBER( "lineColumnFillDztype",	DSHPprop_lineColumnFillDztype ),
533     SHAPE_NUMBER( "lineColumnFillHeight",	DSHPprop_lineColumnFillHeight ),
534     SHAPE_NUMBER( "lineColumnFillWidth",	DSHPprop_lineColumnFillWidth ),
535     SHAPE_NUMBER( "lineColumnMiterLimit",	DSHPprop_lineColumnMiterLimit ),
536     SHAPE_NUMBER( "lineColumnOpacity",		DSHPprop_lineColumnOpacity ),
537     SHAPE_NUMBER( "lineColumnStartArrowLength",	DSHPprop_lineColumnStartArrowLength ),
538     SHAPE_NUMBER( "lineColumnStartArrowWidth",	DSHPprop_lineColumnStartArrowWidth ),
539     SHAPE_NUMBER( "lineColumnStartArrowhead",	DSHPprop_lineColumnStartArrowhead ),
540     SHAPE_NUMBER( "lineColumnStyle",		DSHPprop_lineColumnStyle ),
541     SHAPE_NUMBER( "lineColumnType",		DSHPprop_lineColumnType ),
542     SHAPE_NUMBER( "lineColumnWidth",		DSHPprop_lineColumnWidth ),
543     SHAPE_NUMBER( "lineLeftBackColor",		DSHPprop_lineLeftBackColor ),
544     SHAPE_NUMBER( "lineLeftBackColorExt",	DSHPprop_lineLeftBackColorExt ),
545     SHAPE_NUMBER( "lineLeftBackColorExtCMY",	DSHPprop_lineLeftBackColorExtCMY ),
546     SHAPE_NUMBER( "lineLeftBackColorExtK",	DSHPprop_lineLeftBackColorExtK ),
547     SHAPE_NUMBER( "lineLeftBackColorExtMod",	DSHPprop_lineLeftBackColorExtMod ),
548     SHAPE_NUMBER( "lineLeftColor",		DSHPprop_lineLeftColor ),
549     SHAPE_NUMBER( "lineLeftColorExt",		DSHPprop_lineLeftColorExt ),
550     SHAPE_NUMBER( "lineLeftColorExtCMY",	DSHPprop_lineLeftColorExtCMY ),
551     SHAPE_NUMBER( "lineLeftColorExtK",		DSHPprop_lineLeftColorExtK ),
552     SHAPE_NUMBER( "lineLeftColorExtMod",	DSHPprop_lineLeftColorExtMod ),
553     SHAPE_NUMBER( "lineLeftCrMod",		DSHPprop_lineLeftCrMod ),
554     SHAPE_NUMBER( "lineLeftDashing",		DSHPprop_lineLeftDashing ),
555     SHAPE_NUMBER( "lineLeftEndArrowLength",	DSHPprop_lineLeftEndArrowLength ),
556     SHAPE_NUMBER( "lineLeftEndArrowWidth",	DSHPprop_lineLeftEndArrowWidth ),
557     SHAPE_NUMBER( "lineLeftEndArrowhead",	DSHPprop_lineLeftEndArrowhead ),
558     SHAPE_NUMBER( "lineLeftEndCapStyle",	DSHPprop_lineLeftEndCapStyle ),
559     SHAPE_NUMBER( "lineLeftFillBlipFlags",	DSHPprop_lineLeftFillBlipFlags ),
560     SHAPE_NUMBER( "lineLeftFillDztype",		DSHPprop_lineLeftFillDztype ),
561     SHAPE_NUMBER( "lineLeftFillHeight",		DSHPprop_lineLeftFillHeight ),
562     SHAPE_NUMBER( "lineLeftFillWidth",		DSHPprop_lineLeftFillWidth ),
563     SHAPE_NUMBER( "lineLeftMiterLimit",		DSHPprop_lineLeftMiterLimit ),
564     SHAPE_NUMBER( "lineLeftOpacity",		DSHPprop_lineLeftOpacity ),
565     SHAPE_NUMBER( "lineLeftStartArrowLength",	DSHPprop_lineLeftStartArrowLength ),
566     SHAPE_NUMBER( "lineLeftStartArrowWidth",	DSHPprop_lineLeftStartArrowWidth ),
567     SHAPE_NUMBER( "lineLeftStartArrowhead",	DSHPprop_lineLeftStartArrowhead ),
568     SHAPE_NUMBER( "lineLeftStyle",		DSHPprop_lineLeftStyle ),
569     SHAPE_NUMBER( "lineLeftType",		DSHPprop_lineLeftType ),
570     SHAPE_NUMBER( "lineLeftWidth",		DSHPprop_lineLeftWidth ),
571     SHAPE_NUMBER( "lineRightBackColor",		DSHPprop_lineRightBackColor ),
572     SHAPE_NUMBER( "lineRightBackColorExt",	DSHPprop_lineRightBackColorExt ),
573     SHAPE_NUMBER( "lineRightBackColorExtCMY",	DSHPprop_lineRightBackColorExtCMY ),
574     SHAPE_NUMBER( "lineRightBackColorExtK",	DSHPprop_lineRightBackColorExtK ),
575     SHAPE_NUMBER( "lineRightBackColorExtMod",	DSHPprop_lineRightBackColorExtMod ),
576     SHAPE_NUMBER( "lineRightColor",		DSHPprop_lineRightColor ),
577     SHAPE_NUMBER( "lineRightColorExt",		DSHPprop_lineRightColorExt ),
578     SHAPE_NUMBER( "lineRightColorExtCMY",	DSHPprop_lineRightColorExtCMY ),
579     SHAPE_NUMBER( "lineRightColorExtK",		DSHPprop_lineRightColorExtK ),
580     SHAPE_NUMBER( "lineRightColorExtMod",	DSHPprop_lineRightColorExtMod ),
581     SHAPE_NUMBER( "lineRightCrMod",		DSHPprop_lineRightCrMod ),
582     SHAPE_NUMBER( "lineRightDashing",		DSHPprop_lineRightDashing ),
583     SHAPE_NUMBER( "lineRightEndArrowLength",	DSHPprop_lineRightEndArrowLength ),
584     SHAPE_NUMBER( "lineRightEndArrowWidth",	DSHPprop_lineRightEndArrowWidth ),
585     SHAPE_NUMBER( "lineRightEndArrowhead",	DSHPprop_lineRightEndArrowhead ),
586     SHAPE_NUMBER( "lineRightEndCapStyle",	DSHPprop_lineRightEndCapStyle ),
587     SHAPE_NUMBER( "lineRightFillBlipFlags",	DSHPprop_lineRightFillBlipFlags ),
588     SHAPE_NUMBER( "lineRightFillDztype",	DSHPprop_lineRightFillDztype ),
589     SHAPE_NUMBER( "lineRightFillHeight",	DSHPprop_lineRightFillHeight ),
590     SHAPE_NUMBER( "lineRightFillWidth",		DSHPprop_lineRightFillWidth ),
591     SHAPE_NUMBER( "lineRightMiterLimit",	DSHPprop_lineRightMiterLimit ),
592     SHAPE_NUMBER( "lineRightOpacity",		DSHPprop_lineRightOpacity ),
593     SHAPE_NUMBER( "lineRightStartArrowLength",	DSHPprop_lineRightStartArrowLength ),
594     SHAPE_NUMBER( "lineRightStartArrowWidth",	DSHPprop_lineRightStartArrowWidth ),
595     SHAPE_NUMBER( "lineRightStartArrowhead",	DSHPprop_lineRightStartArrowhead ),
596     SHAPE_NUMBER( "lineRightStyle",		DSHPprop_lineRightStyle ),
597     SHAPE_NUMBER( "lineRightType",		DSHPprop_lineRightType ),
598     SHAPE_NUMBER( "lineRightWidth",		DSHPprop_lineRightWidth ),
599     SHAPE_NUMBER( "lineTopBackColor",		DSHPprop_lineTopBackColor ),
600     SHAPE_NUMBER( "lineTopBackColorExt",	DSHPprop_lineTopBackColorExt ),
601     SHAPE_NUMBER( "lineTopBackColorExtCMY",	DSHPprop_lineTopBackColorExtCMY ),
602     SHAPE_NUMBER( "lineTopBackColorExtK",	DSHPprop_lineTopBackColorExtK ),
603     SHAPE_NUMBER( "lineTopBackColorExtMod",	DSHPprop_lineTopBackColorExtMod ),
604     SHAPE_NUMBER( "lineTopColor",		DSHPprop_lineTopColor ),
605     SHAPE_NUMBER( "lineTopColorExt",		DSHPprop_lineTopColorExt ),
606     SHAPE_NUMBER( "lineTopColorExtCMY",		DSHPprop_lineTopColorExtCMY ),
607     SHAPE_NUMBER( "lineTopColorExtK",		DSHPprop_lineTopColorExtK ),
608     SHAPE_NUMBER( "lineTopColorExtMod",		DSHPprop_lineTopColorExtMod ),
609     SHAPE_NUMBER( "lineTopCrMod",		DSHPprop_lineTopCrMod ),
610     SHAPE_NUMBER( "lineTopDashing",		DSHPprop_lineTopDashing ),
611     SHAPE_NUMBER( "lineTopEndArrowLength",	DSHPprop_lineTopEndArrowLength ),
612     SHAPE_NUMBER( "lineTopEndArrowWidth",	DSHPprop_lineTopEndArrowWidth ),
613     SHAPE_NUMBER( "lineTopEndArrowhead",	DSHPprop_lineTopEndArrowhead ),
614     SHAPE_NUMBER( "lineTopEndCapStyle",		DSHPprop_lineTopEndCapStyle ),
615     SHAPE_NUMBER( "lineTopFillBlipFlags",	DSHPprop_lineTopFillBlipFlags ),
616     SHAPE_NUMBER( "lineTopFillDztype",		DSHPprop_lineTopFillDztype ),
617     SHAPE_NUMBER( "lineTopFillHeight",		DSHPprop_lineTopFillHeight ),
618     SHAPE_NUMBER( "lineTopFillWidth",		DSHPprop_lineTopFillWidth ),
619     SHAPE_NUMBER( "lineTopMiterLimit",		DSHPprop_lineTopMiterLimit ),
620     SHAPE_NUMBER( "lineTopOpacity",		DSHPprop_lineTopOpacity ),
621     SHAPE_NUMBER( "lineTopStartArrowLength",	DSHPprop_lineTopStartArrowLength ),
622     SHAPE_NUMBER( "lineTopStartArrowWidth",	DSHPprop_lineTopStartArrowWidth ),
623     SHAPE_NUMBER( "lineTopStartArrowhead",	DSHPprop_lineTopStartArrowhead ),
624     SHAPE_NUMBER( "lineTopStyle",		DSHPprop_lineTopStyle ),
625     SHAPE_NUMBER( "lineTopType",		DSHPprop_lineTopType ),
626     SHAPE_NUMBER( "lineTopWidth",		DSHPprop_lineTopWidth ),
627     SHAPE_NUMBER( "shadowColorExt",		DSHPprop_shadowColorExt ),
628     SHAPE_NUMBER( "shadowColorExtCMY",		DSHPprop_shadowColorExtCMY ),
629     SHAPE_NUMBER( "shadowColorExtK",		DSHPprop_shadowColorExtK ),
630     SHAPE_NUMBER( "shadowColorExtMod",		DSHPprop_shadowColorExtMod ),
631     SHAPE_NUMBER( "shadowHighlightExt",		DSHPprop_shadowHighlightExt ),
632     SHAPE_NUMBER( "shadowHighlightExtCMY",	DSHPprop_shadowHighlightExtCMY ),
633     SHAPE_NUMBER( "shadowHighlightExtK",	DSHPprop_shadowHighlightExtK ),
634     SHAPE_NUMBER( "shadowHighlightExtMod",	DSHPprop_shadowHighlightExtMod ),
635 
636     SHAPE_COLOR( "pictureTransparent",		DSHPprop_pictureTransparent ),
637     SHAPE_COLOR( "c3DExtrusionColor",		DSHPprop_c3DExtrusionColor ),
638     SHAPE_COLOR( "c3DCrMod",			DSHPprop_c3DCrMod ),
639 
640     SHAPE_NUMBER( "fStandardHR",		DSHPprop_fStandardHR ),
641     SHAPE_NUMBER( "fNoshadeHR",			DSHPprop_fNoshadeHR ),
642     SHAPE_NUMBER( "fHorizRule",			DSHPprop_fHorizRule ),
643     SHAPE_NUMBER( "fUserDrawn",			DSHPprop_fUserDrawn ),
644 
645     SHAPE_NUMBER( "dhgt",			DSHPprop_dhgt ),
646     SHAPE_NUMBER( "sizerelh",			DSHPprop_sizerelh ),
647     SHAPE_NUMBER( "sizerelv",			DSHPprop_sizerelv ),
648     SHAPE_NUMBER( "pctHoriz",			DSHPprop_pctHoriz ),
649 
650 				/****************************************/
651 				/*  End.				*/
652 				/****************************************/
653     { (char *)0, 0, 0 }
654 };
655 
docRtfMakeShapePropHash(void)656 static int docRtfMakeShapePropHash( void )
657     {
658     int			rval= 0;
659     int			i;
660 
661     const unsigned char **	keyStrings= (const unsigned char **)0;
662     int				keyStringCount;
663 
664     keyStringCount= sizeof(docRtfShapePropertyWords)/sizeof(RtfControlWord)- 1;
665 
666     keyStrings= (const unsigned char **)malloc( keyStringCount* sizeof(const unsigned char *) );
667     if  ( ! keyStrings )
668 	{ LXDEB(keyStringCount,keyStrings); rval= -1; goto ready;	}
669 
670     for ( i= 0; i < keyStringCount; i++ )
671 	{
672 	keyStrings[i]=
673 		(const unsigned char *)docRtfShapePropertyWords[i].rcwWord;
674 	}
675 
676     if  ( utilJenkinsPerfectHash( keyStrings, keyStringCount,
677 						    "docRtfShapePropHash.c",
678 						    "\"docRtfTagHash.h\"",
679 						    "docRtfShapePropHash",
680 						    "docRtfShapePropIndex" ) )
681 	{ LDEB(keyStringCount); rval= -1;	}
682 
683   ready:
684 
685     if  ( keyStrings )
686 	{ free( keyStrings );	}
687 
688     return rval;
689     }
690 
691 #   ifndef	BUILD_HASH
692 
docRtfCheckShapePropHash(void)693 static int docRtfCheckShapePropHash( void )
694     {
695     int			rval= 0;
696     int			i;
697 
698     int			keyStringCount;
699 
700     keyStringCount= sizeof(docRtfShapePropertyWords)/sizeof(RtfControlWord)- 1;
701 
702     for ( i= 0; i < keyStringCount; i++ )
703 	{
704 	const unsigned char *	tagkey;
705 	int			taglen;
706 	int			idx;
707 
708 	tagkey= (const unsigned char *)docRtfShapePropertyWords[i].rcwWord;
709 	taglen= strlen( docRtfShapePropertyWords[i].rcwWord );
710 
711 	idx= docRtfTagIndex( tagkey, taglen );
712 
713 	if  ( idx != i )
714 	    {
715 	    long hash= docRtfTagHash( tagkey, taglen );
716 
717 	    LSLLDEB(i,docRtfShapePropertyWords[i].rcwWord,idx,hash); rval= -1;
718 	    }
719 	}
720 
721     return rval;
722     }
723 
docRtfFindShapePropertyWord(const char * controlWord)724 const RtfControlWord * docRtfFindShapePropertyWord(
725 					const char *	controlWord )
726     {
727     const RtfControlWord *	contolWords;
728 
729     static int			checked= 1;
730 
731     if  ( ! checked )
732 	{
733 	checked= 1;
734 
735 	if  ( docRtfCheckShapePropHash() )
736 	    {
737 	    checked= -1;
738 
739 	    LDEB(1);
740 	    if  ( docRtfMakeShapePropHash() )
741 		{ LDEB(1);	}
742 	    }
743 	}
744 
745     if  ( checked > 0 )
746 	{
747 	int			idx;
748 	int			keyStringCount;
749 
750 	keyStringCount=
751 		sizeof(docRtfShapePropertyWords)/sizeof(RtfControlWord)- 1;
752 
753 	idx= docRtfShapePropIndex( (const unsigned char *)controlWord,
754 							strlen( controlWord ) );
755 
756 	if  ( idx >= 0 && idx < keyStringCount )
757 	    {
758 	    contolWords= docRtfShapePropertyWords+ idx;
759 
760 	    if  ( ! strcmp( controlWord, contolWords->rcwWord ) )
761 		{ return contolWords;	}
762 	    }
763 
764 	return (const RtfControlWord *)0;
765 	}
766     else{
767 	contolWords= docRtfShapePropertyWords;
768 
769 	while( contolWords->rcwWord )
770 	    {
771 	    if  ( ! strcmp( contolWords->rcwWord, controlWord ) )
772 		{ return contolWords;	}
773 
774 	    contolWords++;
775 	    }
776 
777 	return (const RtfControlWord *)0;
778 	}
779     }
780 
781 #   endif
782 
783 #   ifdef	BUILD_HASH
784 
main(int argc,char ** argcv)785     int main(	int	argc,
786 		char **	argcv )
787 	{
788 	if  ( docRtfMakeShapePropHash() )
789 	    { LDEB(1); return 1;	}
790 
791 	return 0;
792 	}
793 
794 #   endif
795 
796