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 <charnames.h>
15 # include <uniSpecials.h>
16 # include <utilJenkinsPerfectHash.h>
17 # include <textOfficeCharset.h>
18
19 # include "docRtfReaderImpl.h"
20 # include "docRtfTagHash.h"
21 # include "docRtfTraceImpl.h"
22 # include "docRtfTagEnum.h"
23 # include "docRtfTags.h"
24 # include <docTreeType.h>
25 # include <docItemShading.h>
26 # include <docDrawingObject.h>
27 # include <docTextParticule.h>
28 # include <docObjectProperties.h>
29 # include <docShape.h>
30 # include <psShading.h>
31 # include <psDocumentFontStyle.h>
32
33 # include <appDebugon.h>
34
35 # define BUILD_NO_HASH /* for sed */
36
37 # ifdef BUILD_HASH
38
39 # define docRtfBrdrProperty 0
40 # define docRtfBeginBorder 0
41 # define docRtfRememberProperty 0
42 # define docRtfRememberDocProperty 0
43 # define docRtfRememberStyleProperty 0
44 # define docRtfRememberSectionProperty 0
45 # define docRtfRememberRowProperty 0
46 # define docRtfRememberCellProperty 0
47 # define docRtfRememberCellInstanceProperty 0
48 # define docRtfRememberParagraphProperty 0
49 # define docRtfRememberTextProperty 0
50 # define docRtfRememberListLevelProperty 0
51 # define docRtfRememberListProperty 0
52 # define docRtfRememberListOverrideProperty 0
53 # define docRtfRememberListOverrideLevelProperty 0
54 # define docRtfRememberTabStopProperty 0
55 # define docRtfRememberParaFrameProperty 0
56 # define docRtfRememberRowFrameProperty 0
57 # define docRtfFontProperty 0
58 # define docRtfRememberPntextProperty 0
59 # define docRtfObjectProperty 0
60 # define docRtfPictureProperty 0
61 # define docRtfTextSpecialChar 0
62 # define docRtfTextUnicode 0
63 # define docRtfTextSpecialParticule 0
64 # define docRtfTextBidiMark 0
65 # define docRtfTextSpecialToField 0
66 # define docRtfDrawingObjectProperty 0
67 # define docRtfDrawingObjectCoordinate 0
68 # define docRtfShpProperty 0
69 # define docRtfPnProperty 0
70 # define docRtfLookupWord 0
71 # define docRtfColorComp 0
72 # define docRtfColorIgnored 0
73 # define docRtfHierarchy 0
74 # define docRtfRememberFieldProperty 0
75 # define docRtfRememberNoteProperty 0
76 # define docRtfIgnoreWord 0
77 # define docRtfReadTimeField 0
78
79 # define docRtfFontTable 0
80 # define docRtfColorTable 0
81 # define docRtfStylesheet 0
82 # define docRtfListTable 0
83 # define docRtfCommitListLevelText 0
84 # define docRtfCommitListLevelNumbers 0
85 # define docRtfCommitListName 0
86 # define docRtfCommitListStyleName 0
87 # define docRtfRememberList 0
88 # define docRtfRememberListLevel 0
89 # define docRtfApplyDocEncodedTextGroup 0
90 # define docRtfBkmkEnd 0
91 # define docRtfBkmkStart 0
92 # define docRtfListOverrideTable 0
93 # define docRtfLookupEntry 0
94 # define docRtfReadDrawingObject 0
95 # define docRtfReadExtTree 0
96 # define docRtfReadField 0
97 # define docRtfReadFootnote 0
98 # define docRtfReadInfo 0
99 # define docRtfReadObject 0
100 # define docRtfReadPict 0
101 # define docRtfReadPnseclvl 0
102 # define docRtfReadRowProperties 0
103 # define docRtfReadShape 0
104 # define docRtfReadShpXPict 0
105 # define docRtfReadTextField 0
106 # define docRtfRevisionTable 0
107 # define docRtfShapeProperty 0
108 # define docRtfShapePropertyName 0
109 # define docRtfShapePropertyValue 0
110 # define docRtfSkipGroup 0
111 # define docRtfSkipPn 0
112
113 # define docRtfCommitDocPropText 0
114 # define docRtfDocTimeGroup 0
115
116 # define docRtfRememberTextShadingProperty 0
117 # define docRtfRememberParaShadingProperty 0
118 # define docRtfRememberCellShadingProperty 0
119 # define docRtfRememberRowShadingProperty 0
120
121 # define docRtfSelectionScopeProperty 0
122 # define docRtfEditRangeProperty 0
123 # define docRtfSelectionOpen 0
124
docRtfApplyRawBytesGroup(const RtfControlWord * rcw,int arg,RtfReader * rrc)125 int docRtfApplyRawBytesGroup( const RtfControlWord * rcw,
126 int arg,
127 RtfReader * rrc )
128 { return 0; }
129
130 # endif
131
132 /************************************************************************/
133 /* */
134 /* Control words to remember border properties. */
135 /* */
136 /************************************************************************/
137
138 # define RTF_BORDER_PROP( s, id ) \
139 { s, id, RTCtypeVALUE, docRtfBrdrProperty, }
140 # define RTF_BORDER_STYLE(s,v) \
141 { s, BRDRpropSTYLE, RTCtypeENUM, docRtfBrdrProperty, v, }
142
143 static RtfControlWord docRtfBorderWords[]=
144 {
145 RTF_BORDER_PROP( "brdrw", BRDRpropPEN_WIDE ),
146 RTF_BORDER_PROP( "brdrcf", BRDRpropCOLOR ),
147 RTF_BORDER_PROP( "brsp", BRDRpropSPACING ),
148 RTF_BORDER_PROP( "brdrart", BRDRpropART ),
149
150 /**/
151
152 RTF_BORDER_STYLE( "brdrnone", DOCbsNONE ),
153 RTF_BORDER_STYLE( "brdrs", DOCbsS ),
154 RTF_BORDER_STYLE( "brdrth", DOCbsTH ),
155 RTF_BORDER_STYLE( "brdrsh", DOCbsSH ),
156
157 RTF_BORDER_STYLE( "brdrdb", DOCbsDB ),
158 RTF_BORDER_STYLE( "brdrhair", DOCbsHAIR ),
159 RTF_BORDER_STYLE( "brdrdot", DOCbsDOT ),
160 RTF_BORDER_STYLE( "brdrdash", DOCbsDASH ),
161 RTF_BORDER_STYLE( "brdrdashd", DOCbsDASHD ),
162 RTF_BORDER_STYLE( "brdrdashdd", DOCbsDASHDD ),
163 RTF_BORDER_STYLE( "brdrtriple", DOCbsTRIPLE ),
164
165 RTF_BORDER_STYLE( "brdrtnthsg", DOCbsTNTHSG ),
166 RTF_BORDER_STYLE( "brdrthtnsg", DOCbsTHTNSG ),
167 RTF_BORDER_STYLE( "brdrtnthtnsg", DOCbsTNTHTNSG ),
168 RTF_BORDER_STYLE( "brdrtnthmg", DOCbsTNTHMG ),
169 RTF_BORDER_STYLE( "brdrthtnmg", DOCbsTHTNMG ),
170 RTF_BORDER_STYLE( "brdrtnthtnmg", DOCbsTNTHTNMG ),
171 RTF_BORDER_STYLE( "brdrtnthlg", DOCbsTNTHLG ),
172 RTF_BORDER_STYLE( "brdrthtnlg", DOCbsTHTNLG ),
173 RTF_BORDER_STYLE( "brdrtnthtnlg", DOCbsTNTHTNLG ),
174
175 RTF_BORDER_STYLE( "brdrwavy", DOCbsWAVY ),
176 RTF_BORDER_STYLE( "brdrwavydb", DOCbsWAVYDB ),
177 RTF_BORDER_STYLE( "brdrdashsm", DOCbsDASHSM ),
178 RTF_BORDER_STYLE( "brdrdashdotstr", DOCbsDASHDOTSTR ),
179 RTF_BORDER_STYLE( "brdremboss", DOCbsEMBOSS ),
180 RTF_BORDER_STYLE( "brdrengrave", DOCbsENGRAVE ),
181 RTF_BORDER_STYLE( "brdrframe", DOCbsFRAME ),
182 RTF_BORDER_STYLE( "brdroutset", DOCbsOUTSET ),
183
184 RTF_BORDER_STYLE( "brdrtbl", DOCbsTBL ),
185 RTF_BORDER_STYLE( "brdrnil", DOCbsNIL ),
186
187 /**/
188
189 { (char *)0, 0, 0 }
190 };
191
192 # define RTF_BORDER(s,id,sp) \
193 { s, id, RTCtypeANY, sp, 0, \
194 docRtfBeginBorder, \
195 (RtfCommitGroup)0, \
196 docRtfBorderWords, }
197
198 /************************************************************************/
199 /* */
200 /* Table of common rtf tags. */
201 /* */
202 /************************************************************************/
203
204 # define RTF_REMEMBER(s,id) \
205 { s, id, RTCtypeANY, docRtfRememberProperty, }
206
207
208 # define RTF_LISTOVERR_NUMBER(s,id) \
209 { s, id, RTCtypeVALUE, docRtfRememberListOverrideProperty, }
210
211 # define RTF_LISTOVERRLEV_FLAG(s,id) \
212 { s, id, RTCtypeFLAG, docRtfRememberListOverrideLevelProperty, }
213
214 static RtfControlWord docRtfPropertyWords[]=
215 {
216 /****************************************/
217 /* Hierarchy/Structure tags. */
218 /****************************************/
219 # define RTF_HIERARCHY(s,id) \
220 { s, id, RTCtypeANY, docRtfHierarchy, }
221
222 RTF_HIERARCHY( RTFtag_par , DOClevPARA ),
223 RTF_HIERARCHY( "cell", DOClevCELL ),
224 RTF_HIERARCHY( "row", DOClevROW ),
225 RTF_HIERARCHY( "sect", DOClevSECT ),
226 RTF_HIERARCHY( "nestcell", DOClevNESTCELL ), /**/
227 RTF_HIERARCHY( "nestrow", DOClevNESTROW ), /**/
228 RTF_HIERARCHY( "nonesttables", DOClevNONESTTABLES ), /**/
229
230 /****************************************/
231 /* Text properties. */
232 /* Character Formatting Properties */
233 /****************************************/
234
235 # define RTF_TEXT_DEFAULT(s) \
236 { s, TAprop_NONE, RTCtypeANY, docRtfRememberTextProperty, }
237 # define RTF_TEXT_NUMBER(s,id) \
238 { s, id, RTCtypeVALUE, docRtfRememberTextProperty, }
239 # define RTF_TEXT_ENUM(s,id,v) \
240 { s, id, RTCtypeENUM, docRtfRememberTextProperty, v, }
241 # define RTF_TEXT_FLAG(s,id) \
242 { s, id, RTCtypeFLAG, docRtfRememberTextProperty, }
243
244 # define RTF_TEXT_SHD_ENUM(s,id,v) \
245 { s, id, RTCtypeENUM, docRtfRememberTextShadingProperty, }
246 # define RTF_TEXT_SHD_NUMBER(s,id) \
247 { s, id, RTCtypeVALUE, docRtfRememberTextShadingProperty, }
248
249 # define RTF_TEXT_BORDER(s,id) \
250 RTF_BORDER(s,id,docRtfRememberTextProperty)
251
252 RTF_TEXT_DEFAULT( RTFtag_plain ),
253
254 RTF_TEXT_NUMBER( "f", TApropFONT_NUMBER ),
255 RTF_TEXT_NUMBER( "fs", TApropFONTSIZE ),
256 RTF_TEXT_NUMBER( "cf", TApropTEXT_COLOR ),
257 RTF_TEXT_NUMBER( "fc", TApropTEXT_COLOR ), /* typo NextStep */
258 RTF_TEXT_NUMBER( "cs", TApropTEXT_STYLE ),
259
260 RTF_TEXT_NUMBER( "up", TApropBASELINE_SHIFT ),
261 RTF_TEXT_NUMBER( "dn", TAprop_BASELINE_SHIFT_DOWN ),
262
263 RTF_TEXT_BORDER( "chbrdr", TApropBORDER ),
264
265 RTF_TEXT_SHD_NUMBER( "chcfpat", ISpropFORE_COLOR ),
266 RTF_TEXT_SHD_NUMBER( "chcbpat", ISpropBACK_COLOR ),
267 RTF_TEXT_SHD_NUMBER( "chshdng", ISpropLEVEL ),
268 RTF_TEXT_SHD_NUMBER( "cb", ISpropBACK_SOLID ),
269
270 RTF_TEXT_SHD_ENUM( "chbghoriz", ISpropPATTERN, PSshdHORIZ ),
271 RTF_TEXT_SHD_ENUM( "chbgvert", ISpropPATTERN, PSshdVERT ),
272 RTF_TEXT_SHD_ENUM( "chbgfdiag", ISpropPATTERN, PSshdFDIAG ),
273 RTF_TEXT_SHD_ENUM( "chbgbdiag", ISpropPATTERN, PSshdBDIAG ),
274 RTF_TEXT_SHD_ENUM( "chbgcross", ISpropPATTERN, PSshdCROSS ),
275 RTF_TEXT_SHD_ENUM( "chbgdcross", ISpropPATTERN, PSshdDCROSS ),
276 RTF_TEXT_SHD_ENUM( "chbgdkhoriz", ISpropPATTERN, PSshdDKHORIZ ),
277 RTF_TEXT_SHD_ENUM( "chbgdkvert", ISpropPATTERN, PSshdDKVERT ),
278 RTF_TEXT_SHD_ENUM( "chbgdkfdiag", ISpropPATTERN, PSshdDKFDIAG ),
279 RTF_TEXT_SHD_ENUM( "chbgdkbdiag", ISpropPATTERN, PSshdDKBDIAG ),
280 RTF_TEXT_SHD_ENUM( "chbgdkcross", ISpropPATTERN, PSshdDKCROSS ),
281 RTF_TEXT_SHD_ENUM( "chbgdkdcross", ISpropPATTERN, PSshdDKDCROSS ),
282
283 RTF_TEXT_FLAG( "b", TApropFONTBOLD ),
284 RTF_TEXT_FLAG( "i", TApropFONTSLANTED ),
285 RTF_TEXT_FLAG( "ul", TApropTEXTUNDERLINED ),
286
287 RTF_TEXT_ENUM( RTFtag_nosupersub, TApropSUPERSUB, TEXTvaREGULAR ),
288 RTF_TEXT_ENUM( RTFtag_super, TApropSUPERSUB, TEXTvaSUPERSCRIPT ),
289 RTF_TEXT_ENUM( RTFtag_sub, TApropSUPERSUB, TEXTvaSUBSCRIPT ),
290
291 RTF_TEXT_FLAG( "caps", TApropCAPITALS ),
292 RTF_TEXT_FLAG( "scaps", TApropSMALLCAPS ),
293 RTF_TEXT_FLAG( "strike", TApropSTRIKETHROUGH ),
294 RTF_TEXT_NUMBER( "striked", TApropSTRIKETHROUGH ), /* HACK ! */
295
296 RTF_REMEMBER( "ulc", RTFid_NOT_SUPPORTED ),
297 RTF_REMEMBER( "embo", RTFid_NOT_SUPPORTED ),
298 RTF_REMEMBER( "impr", RTFid_NOT_SUPPORTED ),
299
300 /**/
301
302 /****************************************/
303 /* Paragraph number text attributes. */
304 /* Should eventually be mapped to list */
305 /* functionality. */
306 /****************************************/
307 # define RTF_PNTEXT_NUMBER(s,id) \
308 { s, id, RTCtypeVALUE, docRtfRememberPntextProperty, }
309 # define RTF_PNTEXT_FLAG(s,id) \
310 { s, id, RTCtypeFLAG, docRtfRememberPntextProperty, }
311
312 RTF_PNTEXT_NUMBER( "pnf", TApropFONT_NUMBER ),
313 RTF_PNTEXT_NUMBER( "pnfs", TApropFONTSIZE ),
314 RTF_PNTEXT_NUMBER( "pncf", TApropTEXT_COLOR ),
315
316 RTF_PNTEXT_FLAG( "pnb", TApropFONTBOLD ),
317 RTF_PNTEXT_FLAG( "pni", TApropFONTSLANTED ),
318 RTF_PNTEXT_FLAG( "pnul", TApropTEXTUNDERLINED ),
319
320 RTF_PNTEXT_FLAG( "pncaps", TApropCAPITALS ),
321 RTF_PNTEXT_FLAG( "pnscaps", TApropSMALLCAPS ),
322 RTF_PNTEXT_FLAG( "pnstrike", TApropSTRIKETHROUGH ),
323
324 /*
325 RTF_REMEMBER( "pnuld", RTFidPNULD ),
326 RTF_REMEMBER( "pnuldb", RTFidPNULDB ),
327 RTF_REMEMBER( "pnulnone", RTFidPNULNONE ),
328 */
329
330 /****************************************/
331 /* Paragraph number attributes. */
332 /* Should eventually be mapped to list */
333 /* functionality. */
334 /****************************************/
335 # define RTF_PN_FLAG(s,id) \
336 { s, id, RTCtypeFLAG, docRtfPnProperty }
337 # define RTF_PN_NUMBER(s,id) \
338 { s, id, RTCtypeVALUE, docRtfPnProperty }
339 # define RTF_PN_ENUM(s,id,v) \
340 { s, id, RTCtypeENUM, docRtfPnProperty, v }
341 # define RTF_PN_IGNORE(s,id) \
342 { s, id, RTCtypeANY, docRtfIgnoreWord }
343
344 RTF_PN_NUMBER( "pnstart", LLpropSTARTAT ),
345
346 RTF_PN_ENUM( "pndec", LLpropSTYLE, DOCpnDEC ),
347 RTF_PN_ENUM( "pnucrm", LLpropSTYLE, DOCpnUCRM ),
348 RTF_PN_ENUM( "pnlcrm", LLpropSTYLE, DOCpnLCRM ),
349 RTF_PN_ENUM( "pnucltr", LLpropSTYLE, DOCpnUCLTR ),
350 RTF_PN_ENUM( "pnlcltr", LLpropSTYLE, DOCpnLCLTR ),
351 RTF_PN_ENUM( "pnord", LLpropSTYLE, DOCpnORD ),
352 RTF_PN_ENUM( "pncard", LLpropSTYLE, DOCpnCARD ),
353 RTF_PN_ENUM( "pnordt", LLpropSTYLE, DOCpnORDT ),
354
355 RTF_PN_ENUM( "pndbnum", LLpropSTYLE, DOCpnDBNUM ),
356 RTF_PN_ENUM( "pndbnumd", LLpropSTYLE, DOCpnDBNUMD ),
357 RTF_PN_ENUM( "pnaiu", LLpropSTYLE, DOCpnAIU ),
358 RTF_PN_ENUM( "pniroha", LLpropSTYLE, DOCpnIROHA ),
359 RTF_PN_ENUM( "pndbnuml", LLpropSTYLE, DOCpnDBNUML ),
360 RTF_PN_ENUM( "pndbnumt", LLpropSTYLE, DOCpnDBNUMT ),
361 RTF_PN_ENUM( "pndbnumk", LLpropSTYLE, DOCpnDBNUMK ),
362 RTF_PN_ENUM( "pncnum", LLpropSTYLE, DOCpnCNUM ),
363 RTF_PN_ENUM( "pndecd", LLpropSTYLE, DOCpnDECD ),
364 RTF_PN_ENUM( "pnaiud", LLpropSTYLE, DOCpnAIUD ),
365 RTF_PN_ENUM( "pnirohad", LLpropSTYLE, DOCpnIROHAD ),
366 RTF_PN_ENUM( "pnganada", LLpropSTYLE, DOCpnGANADA ),
367 RTF_PN_ENUM( "pngbnum", LLpropSTYLE, DOCpnGBNUM ),
368 RTF_PN_ENUM( "pngbnumd", LLpropSTYLE, DOCpnGBNUMD ),
369 RTF_PN_ENUM( "pngbnuml", LLpropSTYLE, DOCpnGBNUML ),
370 RTF_PN_ENUM( "pngbnumk", LLpropSTYLE, DOCpnGBNUMK ),
371 RTF_PN_ENUM( "pnzodiac", LLpropSTYLE, DOCpnZODIAC ),
372 RTF_PN_ENUM( "pnzodiacd", LLpropSTYLE, DOCpnZODIACD ),
373 RTF_PN_ENUM( "pnzodiacl", LLpropSTYLE, DOCpnZODIACL ),
374 RTF_PN_ENUM( "pnchosung", LLpropSTYLE, DOCpnCHOSUNG ),
375 RTF_PN_ENUM( "pnaiueo", LLpropSTYLE, DOCpnAIUEO ),
376 RTF_PN_ENUM( "pnaiueod", LLpropSTYLE, DOCpnAIUEOD ),
377 RTF_PN_ENUM( "pnbidia", LLpropSTYLE, DOCpnBIDIA ),
378 RTF_PN_ENUM( "pnbidib", LLpropSTYLE, DOCpnBIDIB ),
379
380 RTF_PN_ENUM( "pnql", LLpropJUSTIFY, 0 ),
381 RTF_PN_ENUM( "pnqc", LLpropJUSTIFY, 1 ),
382 RTF_PN_ENUM( "pnqr", LLpropJUSTIFY, 2 ),
383
384 RTF_PN_NUMBER( "pnindent", LLpropINDENT ),
385 RTF_PN_NUMBER( "pnsp", LLpropSPACE ),
386 RTF_PN_FLAG( "pnprev", LLpropPREV ),
387
388 RTF_PN_IGNORE( "pnacross", RTFid_NOT_SUPPORTED ),
389 RTF_PN_IGNORE( "pnlvl", RTFid_NOT_SUPPORTED ),
390 RTF_PN_IGNORE( "pnlvlblt", RTFid_NOT_SUPPORTED ),
391 RTF_PN_IGNORE( "pnlvlbody", RTFid_NOT_SUPPORTED ),
392 RTF_PN_IGNORE( "pnlvlcont", RTFid_NOT_SUPPORTED ),
393 RTF_PN_IGNORE( "pnnumonce", RTFid_NOT_SUPPORTED ),
394 RTF_PN_IGNORE( "pnrestart", RTFid_NOT_SUPPORTED ),
395 RTF_PN_IGNORE( "pnrnot", RTFid_NOT_SUPPORTED ),
396
397 /**/
398
399 RTF_REMEMBER( "ulnone", RTFidULNONE ),
400 RTF_REMEMBER( "cgrid", RTFid_NOT_SUPPORTED ),
401
402 RTF_REMEMBER( "cchs", RTFid_NOT_SUPPORTED ),
403 RTF_REMEMBER( "outl", RTFid_NOT_SUPPORTED ),
404 RTF_REMEMBER( "revauth", RTFid_NOT_SUPPORTED ),
405 RTF_REMEMBER( "crauth", RTFid_NOT_SUPPORTED ),
406 RTF_REMEMBER( "crdate", RTFid_NOT_SUPPORTED ),
407 RTF_REMEMBER( "revauthdel", RTFid_NOT_SUPPORTED ),
408 RTF_REMEMBER( "revdttm", RTFid_NOT_SUPPORTED ),
409 RTF_REMEMBER( "revdttmdel", RTFid_NOT_SUPPORTED ),
410 RTF_REMEMBER( "revised", RTFid_NOT_SUPPORTED ),
411 RTF_REMEMBER( "shad", RTFid_NOT_SUPPORTED ),
412
413 RTF_REMEMBER( "fcs", RTFid_NOT_SUPPORTED ),
414
415 RTF_REMEMBER( "uld", RTFid_NOT_SUPPORTED ),
416 RTF_REMEMBER( "uldb", RTFid_NOT_SUPPORTED ),
417 RTF_REMEMBER( "ulw", RTFid_NOT_SUPPORTED ),
418 RTF_REMEMBER( "v", RTFidV ),
419 RTF_REMEMBER( "webhidden", RTFid_NOT_SUPPORTED ),
420 RTF_REMEMBER( "kerning", RTFid_NOT_SUPPORTED ),
421 RTF_REMEMBER( "expnd", RTFid_NOT_SUPPORTED ),
422 RTF_REMEMBER( "expndtw", RTFid_NOT_SUPPORTED ),
423 RTF_REMEMBER( "charscalex", RTFid_NOT_SUPPORTED ),
424 RTF_REMEMBER( "highlight", RTFid_NOT_SUPPORTED ),
425
426 RTF_REMEMBER( "faauto", RTFid_NOT_SUPPORTED ),
427 RTF_REMEMBER( "fahang", RTFid_NOT_SUPPORTED ),
428 RTF_REMEMBER( "facenter", RTFid_NOT_SUPPORTED ),
429 RTF_REMEMBER( "faroman", RTFid_NOT_SUPPORTED ),
430 RTF_REMEMBER( "favar", RTFid_NOT_SUPPORTED ),
431 RTF_REMEMBER( "fafixed", RTFid_NOT_SUPPORTED ),
432
433 /****************************************/
434 /* Paragraph properties. */
435 /****************************************/
436
437 # define RTF_PARA_DEFAULT(s) \
438 { s, PPprop_NONE, RTCtypeANY, docRtfRememberParagraphProperty, }
439 # define RTF_PARA_NUMBER(s,id) \
440 { s, id, RTCtypeVALUE, docRtfRememberParagraphProperty, }
441 # define RTF_PARA_ENUM(s,id,v) \
442 { s, id, RTCtypeENUM, docRtfRememberParagraphProperty, v, }
443 # define RTF_PARA_FLAG(s,id) \
444 { s, id, RTCtypeFLAG, docRtfRememberParagraphProperty, }
445 # define RTF_PARA_BORDER(s,id) \
446 RTF_BORDER(s,id,docRtfRememberParagraphProperty)
447
448 # define RTF_PARA_SHD_NUMBER(s,id) \
449 { s, id, RTCtypeVALUE, docRtfRememberParaShadingProperty, }
450 # define RTF_PARA_SHD_ENUM(s,id,v) \
451 { s, id, RTCtypeENUM, docRtfRememberParaShadingProperty, v, }
452
453 RTF_PARA_DEFAULT( RTFtag_pard ),
454
455 RTF_PARA_NUMBER( "s", PPpropSTYLE ),
456 RTF_PARA_NUMBER( "ls", PPpropLISTOVERRIDE ),
457
458 RTF_PARA_NUMBER( "li", PPpropLEFT_INDENT ),
459 RTF_PARA_NUMBER( "fi", PPpropFIRST_INDENT ),
460 RTF_PARA_NUMBER( "ri", PPpropRIGHT_INDENT ),
461
462 RTF_PARA_ENUM( "ql", PPpropALIGNMENT, DOCthaLEFT ),
463 RTF_PARA_ENUM( "qr", PPpropALIGNMENT, DOCthaRIGHT ),
464 RTF_PARA_ENUM( "qj", PPpropALIGNMENT, DOCthaJUSTIFIED ),
465 RTF_PARA_ENUM( "qc", PPpropALIGNMENT, DOCthaCENTERED ),
466
467 RTF_PARA_ENUM( "nopagebb", PPpropBREAK_KIND, DOCibkNONE ), /*!*/
468 RTF_PARA_ENUM( "pagebb", PPpropBREAK_KIND, DOCibkPAGE ),
469
470 RTF_PARA_ENUM( "nowidctlpar", PPpropWIDCTLPAR, 0 ),
471 RTF_PARA_ENUM( "widctlpar", PPpropWIDCTLPAR, 1 ),
472
473 RTF_PARA_FLAG( "keep", PPpropKEEP ),
474 RTF_PARA_FLAG( "keepn", PPpropKEEPN ),
475
476 RTF_PARA_NUMBER( "sb", PPpropSPACE_BEFORE ),
477 RTF_PARA_NUMBER( "sa", PPpropSPACE_AFTER ),
478 RTF_PARA_NUMBER( "sl", PPpropLINE_SPACING_DIST ),
479
480 RTF_PARA_NUMBER( "lisb", PPprop_LISB ),
481 RTF_PARA_NUMBER( "lisa", PPprop_LISA ),
482
483 RTF_PARA_FLAG( "slmult", PPpropLINE_SPACING_MULT ),
484
485 RTF_PARA_NUMBER( "outlinelevel", PPpropOUTLINELEVEL ),
486 RTF_PARA_NUMBER( "ilvl", PPpropLISTLEVEL ),
487
488 RTF_PARA_FLAG( "hyphpar", PPpropHYPHPAR ),
489 RTF_PARA_FLAG( "intbl", PPprop_IN_TABLE ),
490 RTF_PARA_NUMBER( "itap", PPpropTABLE_NESTING ),
491
492 RTF_PARA_SHD_ENUM( "bghoriz", ISpropPATTERN, PSshdHORIZ ),
493 RTF_PARA_SHD_ENUM( "bgvert", ISpropPATTERN, PSshdVERT ),
494 RTF_PARA_SHD_ENUM( "bgfdiag", ISpropPATTERN, PSshdFDIAG ),
495 RTF_PARA_SHD_ENUM( "bgbdiag", ISpropPATTERN, PSshdBDIAG ),
496 RTF_PARA_SHD_ENUM( "bgcross", ISpropPATTERN, PSshdCROSS ),
497 RTF_PARA_SHD_ENUM( "bgdcross", ISpropPATTERN, PSshdDCROSS ),
498 RTF_PARA_SHD_ENUM( "bgdkhoriz", ISpropPATTERN, PSshdDKHORIZ ),
499 RTF_PARA_SHD_ENUM( "bgdkvert", ISpropPATTERN, PSshdDKVERT ),
500 RTF_PARA_SHD_ENUM( "bgdkfdiag", ISpropPATTERN, PSshdDKFDIAG ),
501 RTF_PARA_SHD_ENUM( "bgdkbdiag", ISpropPATTERN, PSshdDKBDIAG ),
502 RTF_PARA_SHD_ENUM( "bgdkcross", ISpropPATTERN, PSshdDKCROSS ),
503 RTF_PARA_SHD_ENUM( "bgdkdcross", ISpropPATTERN, PSshdDKDCROSS ),
504
505 RTF_PARA_SHD_NUMBER( "cfpat", ISpropFORE_COLOR ),
506 RTF_PARA_SHD_NUMBER( "cbpat", ISpropBACK_COLOR ),
507 RTF_PARA_SHD_NUMBER( "shading", ISpropLEVEL ),
508
509 RTF_PARA_BORDER( "brdrt", PPpropTOP_BORDER ),
510 RTF_PARA_BORDER( "brdrb", PPpropBOTTOM_BORDER ),
511 RTF_PARA_BORDER( "brdrl", PPpropLEFT_BORDER ),
512 RTF_PARA_BORDER( "brdrr", PPpropRIGHT_BORDER ),
513 RTF_PARA_BORDER( "brdrbtw", PPpropBETWEEN_BORDER ),
514 RTF_PARA_BORDER( "brdrbar", PPpropBAR_BORDER ),
515 RTF_PARA_BORDER( "box", PPprop_BOX_BORDER ),
516
517 RTF_PARA_ENUM( "ltrpar", PPpropRTOL, 0 ),
518 RTF_PARA_ENUM( "rtlpar", PPpropRTOL, 1 ),
519
520 /**/
521
522 RTF_PARA_FLAG( "nosnaplinegrid", PPprop_IGNORED ),
523 RTF_PARA_FLAG( "wrapdefault", PPprop_IGNORED ),
524
525 RTF_PARA_FLAG( "adjustright", PPprop_IGNORED ),
526 RTF_PARA_FLAG( "adjustleft", PPprop_IGNORED ),
527
528 RTF_PARA_NUMBER( "sbauto", PPprop_IGNORED ),
529 RTF_PARA_NUMBER( "saauto", PPprop_IGNORED ),
530
531 RTF_PARA_FLAG( "nooverflow", PPprop_IGNORED ),
532
533 RTF_PARA_FLAG( "aspalpha", PPprop_IGNORED ),
534 RTF_PARA_FLAG( "aspnum", PPprop_IGNORED ),
535 RTF_PARA_FLAG( "contextualspace", PPprop_IGNORED ),
536
537 /****************************************/
538 /* Positioned Objects and Frames: */
539 /* (Row properties.) */
540 /****************************************/
541 # define RTF_ROW_FRAME_NUMBER(s,id) \
542 { s, id, RTCtypeVALUE, docRtfRememberRowFrameProperty, }
543 # define RTF_ROW_FRAME_ENUM(s,id,v) \
544 { s, id, RTCtypeENUM, docRtfRememberRowFrameProperty, v, }
545 # define RTF_ROW_FRAME_FLAG(s,id) \
546 { s, id, RTCtypeFLAG, docRtfRememberRowFrameProperty, }
547
548 /* no TFPpropABSW */
549 /* no TFPpropABSH */
550
551 /* no TFPpropLOCKED_TO_PARA */
552
553 /* no TFPpropWRAP_STYLE, FWSwrapNOWRAP */
554 /* no TFPpropWRAP_STYLE, FWSwrapOVERLAY */
555
556 RTF_ROW_FRAME_FLAG( "tabsnoovrlp", TFPpropNO_OVERLAP ),
557
558 RTF_ROW_FRAME_ENUM( "tphmrg", TFPpropHORIZONTAL_REF, FXrefMARGIN ),
559 RTF_ROW_FRAME_ENUM( "tphpg", TFPpropHORIZONTAL_REF, FXrefPAGE ),
560 RTF_ROW_FRAME_ENUM( "tphcol", TFPpropHORIZONTAL_REF, FXrefCOLUMN ),
561
562 RTF_ROW_FRAME_NUMBER( "tposx", TFPpropHORIZONTAL_POS ),
563 RTF_ROW_FRAME_NUMBER( "tposnegx", TFPpropHORIZONTAL_POS ),
564
565 RTF_ROW_FRAME_ENUM( "tposxl", TFPpropHORIZONTAL_ALIGN, FXposXL ),
566 RTF_ROW_FRAME_ENUM( "tposxr", TFPpropHORIZONTAL_ALIGN, FXposXR ),
567 RTF_ROW_FRAME_ENUM( "tposxc", TFPpropHORIZONTAL_ALIGN, FXposXC ),
568 RTF_ROW_FRAME_ENUM( "tposxi", TFPpropHORIZONTAL_ALIGN, FXposXI ),
569 RTF_ROW_FRAME_ENUM( "tposxo", TFPpropHORIZONTAL_ALIGN, FXposXO ),
570
571 RTF_ROW_FRAME_ENUM( "tpvmrg", TFPpropVERTICAL_REF, FYrefMARGIN ),
572 RTF_ROW_FRAME_ENUM( "tpvpara", TFPpropVERTICAL_REF, FYrefPARA ),
573 RTF_ROW_FRAME_ENUM( "tpvpg", TFPpropVERTICAL_REF, FYrefPAGE ),
574 RTF_ROW_FRAME_ENUM( "tposyil", TFPpropVERTICAL_REF, FYrefLINE ),
575
576 RTF_ROW_FRAME_NUMBER( "tposy", TFPpropVERTICAL_POS ),
577 RTF_ROW_FRAME_NUMBER( "tposnegy", TFPpropVERTICAL_POS ),
578
579 RTF_ROW_FRAME_ENUM( "tposyb", TFPpropVERTICAL_ALIGN, FYposYB ),
580 RTF_ROW_FRAME_ENUM( "tposyc", TFPpropVERTICAL_ALIGN, FYposYC ),
581 RTF_ROW_FRAME_ENUM( "tposyin", TFPpropVERTICAL_ALIGN, FYposYIN ),
582 RTF_ROW_FRAME_ENUM( "tposyout", TFPpropVERTICAL_ALIGN, FYposYOUT ),
583 RTF_ROW_FRAME_ENUM( "tposyt", TFPpropVERTICAL_ALIGN, FYposYT ),
584
585 /* no TFPpropDFRMTXT */
586 /* no TFPpropDFRMTXTX */
587 /* no TFPpropDFRMTXTY */
588
589 RTF_ROW_FRAME_NUMBER( "tdfrmtxtLeft", TFPpropDFRMTXTL ),
590 RTF_ROW_FRAME_NUMBER( "tdfrmtxtRight", TFPpropDFRMTXTR ),
591 RTF_ROW_FRAME_NUMBER( "tdfrmtxtTop", TFPpropDFRMTXTT ),
592 RTF_ROW_FRAME_NUMBER( "tdfrmtxtBottom", TFPpropDFRMTXTB ),
593
594 /****************************************/
595 /* Positioned Objects and Frames: */
596 /* (Paragraph properties.) */
597 /****************************************/
598 # define RTF_PARA_FRAME_NUMBER(s,id) \
599 { s, id, RTCtypeVALUE, docRtfRememberParaFrameProperty, }
600 # define RTF_PARA_FRAME_ENUM(s,id,v) \
601 { s, id, RTCtypeENUM, docRtfRememberParaFrameProperty, v, }
602 # define RTF_PARA_FRAME_FLAG(s,id) \
603 { s, id, RTCtypeFLAG, docRtfRememberParaFrameProperty, }
604
605 RTF_PARA_FRAME_NUMBER( "absw", TFPpropABSW ),
606 RTF_PARA_FRAME_NUMBER( "absh", TFPpropABSH ),
607
608 RTF_PARA_FRAME_FLAG( "abslock", TFPpropLOCK_ANCHOR ),
609
610 RTF_PARA_FRAME_ENUM( "nowrap", TFPpropWRAP_STYLE, FWSwrapNOWRAP ),
611 RTF_PARA_FRAME_ENUM( "overlay", TFPpropWRAP_STYLE, FWSwrapOVERLAY ),
612
613 RTF_PARA_FRAME_FLAG( "absnoovrlp", TFPpropNO_OVERLAP ),
614
615 RTF_PARA_FRAME_ENUM( "phmrg", TFPpropHORIZONTAL_REF, FXrefMARGIN ),
616 RTF_PARA_FRAME_ENUM( "phpg", TFPpropHORIZONTAL_REF, FXrefPAGE ),
617 RTF_PARA_FRAME_ENUM( "phcol", TFPpropHORIZONTAL_REF, FXrefCOLUMN ),
618
619 RTF_PARA_FRAME_NUMBER( "posx", TFPpropHORIZONTAL_POS ),
620 RTF_PARA_FRAME_NUMBER( "posnegx", TFPpropHORIZONTAL_POS ),
621
622 RTF_PARA_FRAME_ENUM( "posxl", TFPpropHORIZONTAL_ALIGN, FXposXL ),
623 RTF_PARA_FRAME_ENUM( "posxr", TFPpropHORIZONTAL_ALIGN, FXposXR ),
624 RTF_PARA_FRAME_ENUM( "posxc", TFPpropHORIZONTAL_ALIGN, FXposXC ),
625 RTF_PARA_FRAME_ENUM( "posxi", TFPpropHORIZONTAL_ALIGN, FXposXI ),
626 RTF_PARA_FRAME_ENUM( "posxo", TFPpropHORIZONTAL_ALIGN, FXposXO ),
627
628 RTF_PARA_FRAME_ENUM( "pvmrg", TFPpropVERTICAL_REF, FYrefMARGIN ),
629 RTF_PARA_FRAME_ENUM( "pvpara", TFPpropVERTICAL_REF, FYrefPARA ),
630 RTF_PARA_FRAME_ENUM( "pvpg", TFPpropVERTICAL_REF, FYrefPAGE ),
631 RTF_PARA_FRAME_ENUM( "posyil", TFPpropVERTICAL_REF, FYrefLINE ),
632
633 RTF_PARA_FRAME_NUMBER( "posy", TFPpropVERTICAL_POS ),
634 RTF_PARA_FRAME_NUMBER( "posnegy", TFPpropVERTICAL_POS ),
635
636 RTF_PARA_FRAME_ENUM( "posyb", TFPpropVERTICAL_ALIGN, FYposYB ),
637 RTF_PARA_FRAME_ENUM( "posyc", TFPpropVERTICAL_ALIGN, FYposYC ),
638 RTF_PARA_FRAME_ENUM( "posyin", TFPpropVERTICAL_ALIGN, FYposYIN ),
639 RTF_PARA_FRAME_ENUM( "posyout", TFPpropVERTICAL_ALIGN, FYposYOUT ),
640 RTF_PARA_FRAME_ENUM( "posyt", TFPpropVERTICAL_ALIGN, FYposYT ),
641
642 RTF_PARA_FRAME_NUMBER( "dxfrtext", TFPprop_DFRMTXT ),
643 RTF_PARA_FRAME_NUMBER( "dfrmtxtx", TFPprop_DFRMTXTX ),
644 RTF_PARA_FRAME_NUMBER( "dfrmtxty", TFPprop_DFRMTXTY ),
645
646 RTF_PARA_FRAME_ENUM( "frmtxlrtb", TFPpropTEXT_FLOW, TXflowTXLRTB ),
647 RTF_PARA_FRAME_ENUM( "frmtxtbrl", TFPpropTEXT_FLOW, TXflowTXTBRL ),
648 RTF_PARA_FRAME_ENUM( "frmtxbtlr", TFPpropTEXT_FLOW, TXflowTXBTLR ),
649 RTF_PARA_FRAME_ENUM( "frmtxlrtbv", TFPpropTEXT_FLOW, TXflowTXLRTBV ),
650 RTF_PARA_FRAME_ENUM( "frmtxtbrlv", TFPpropTEXT_FLOW, TXflowTXTBRLV ),
651
652 /* no TFPpropDFRMTXTL */
653 /* no TFPpropDFRMTXTR */
654 /* no TFPpropDFRMTXTT */
655 /* no TFPpropDFRMTXTB */
656
657 /**/
658 RTF_REMEMBER( "dropcapli", TFPprop_IGNORED ),
659 RTF_REMEMBER( "dropcapt", TFPprop_IGNORED ),
660 RTF_REMEMBER( "wraparound", TFPprop_IGNORED ),
661 /****************************************/
662 /* Revision marks for paragraph */
663 /* numbers. */
664 /****************************************/
665 RTF_REMEMBER( "pnrauth", RTFid_NOT_SUPPORTED ),
666 RTF_REMEMBER( "pnrdate", RTFid_NOT_SUPPORTED ),
667 RTF_REMEMBER( "pnrnfc", RTFid_NOT_SUPPORTED ),
668 RTF_REMEMBER( "pnrpnbr", RTFid_NOT_SUPPORTED ),
669 RTF_REMEMBER( "pnrrgb", RTFid_NOT_SUPPORTED ),
670 RTF_REMEMBER( "pnrstart", RTFid_NOT_SUPPORTED ),
671 RTF_REMEMBER( "pnrstop", RTFid_NOT_SUPPORTED ),
672 RTF_REMEMBER( "pnrxst", RTFid_NOT_SUPPORTED ),
673
674 /****************************************/
675 /* Associated Character Properties */
676 /****************************************/
677 RTF_REMEMBER( "ab", RTFid_NOT_SUPPORTED ),
678 RTF_REMEMBER( "acaps", RTFid_NOT_SUPPORTED ),
679 RTF_REMEMBER( "acf", RTFid_NOT_SUPPORTED ),
680 RTF_REMEMBER( "adn", RTFid_NOT_SUPPORTED ),
681 RTF_REMEMBER( "aexpnd", RTFid_NOT_SUPPORTED ),
682 RTF_REMEMBER( "af", RTFid_NOT_SUPPORTED ),
683 RTF_REMEMBER( "afs", RTFid_NOT_SUPPORTED ),
684 RTF_REMEMBER( "ai", RTFid_NOT_SUPPORTED ),
685 RTF_REMEMBER( "alang", RTFid_NOT_SUPPORTED ),
686 RTF_REMEMBER( "aoutl", RTFid_NOT_SUPPORTED ),
687 RTF_REMEMBER( "ascaps", RTFid_NOT_SUPPORTED ),
688 RTF_REMEMBER( "ashad", RTFid_NOT_SUPPORTED ),
689 RTF_REMEMBER( "astrike", RTFid_NOT_SUPPORTED ),
690 RTF_REMEMBER( "aul", RTFid_NOT_SUPPORTED ),
691 RTF_REMEMBER( "auld", RTFid_NOT_SUPPORTED ),
692 RTF_REMEMBER( "auldb", RTFid_NOT_SUPPORTED ),
693 RTF_REMEMBER( "aulnone", RTFid_NOT_SUPPORTED ),
694 RTF_REMEMBER( "aulw", RTFid_NOT_SUPPORTED ),
695 RTF_REMEMBER( "aup", RTFid_NOT_SUPPORTED ),
696 RTF_REMEMBER( "loch", RTFid_NOT_SUPPORTED ),
697 RTF_REMEMBER( "hich", RTFid_NOT_SUPPORTED ),
698 RTF_REMEMBER( "dbch", RTFid_NOT_SUPPORTED ),
699
700 /****************************************/
701 /* Row, Cell/Column properties. */
702 /****************************************/
703 # define RTF_CELL_DEFAULT(s) \
704 { s, CLprop_NONE, RTCtypeANY, docRtfRememberCellProperty, }
705 # define RTF_CELL_NUMBER(s,id) \
706 { s, id, RTCtypeVALUE, docRtfRememberCellProperty, }
707 # define RTF_CELL_ENUM(s,id,v) \
708 { s, id, RTCtypeENUM, docRtfRememberCellProperty, v, }
709 # define RTF_CELL_FLAG(s,id) \
710 { s, id, RTCtypeFLAG, docRtfRememberCellProperty, }
711 # define RTF_CELL_BORDER(s,id) \
712 RTF_BORDER(s,id,docRtfRememberCellProperty)
713
714 # define RTF_CELL_SHD_ENUM(s,id,v) \
715 { s, id, RTCtypeENUM, docRtfRememberCellShadingProperty, v, }
716 # define RTF_CELL_SHD_NUMBER(s,id) \
717 { s, id, RTCtypeVALUE, docRtfRememberCellShadingProperty, }
718
719 RTF_CELL_NUMBER( "cellx", CLpropCELLX ),
720
721 RTF_CELL_DEFAULT( "celld" ),
722
723 RTF_CELL_BORDER( "clbrdrt", CLpropTOP_BORDER ),
724 RTF_CELL_BORDER( "clbrdrb", CLpropBOTTOM_BORDER ),
725 RTF_CELL_BORDER( "clbrdrl", CLpropLEFT_BORDER ),
726 RTF_CELL_BORDER( "clbrdrr", CLpropRIGHT_BORDER ),
727
728 RTF_CELL_SHD_ENUM( "clbghoriz", ISpropPATTERN, PSshdHORIZ ),
729 RTF_CELL_SHD_ENUM( "clbgvert", ISpropPATTERN, PSshdVERT ),
730 RTF_CELL_SHD_ENUM( "clbgfdiag", ISpropPATTERN, PSshdFDIAG ),
731 RTF_CELL_SHD_ENUM( "clbgbdiag", ISpropPATTERN, PSshdBDIAG ),
732 RTF_CELL_SHD_ENUM( "clbgcross", ISpropPATTERN, PSshdCROSS ),
733 RTF_CELL_SHD_ENUM( "clbgdcross", ISpropPATTERN, PSshdDCROSS ),
734 RTF_CELL_SHD_ENUM( "clbgdkhor", ISpropPATTERN, PSshdDKHORIZ ),
735 RTF_CELL_SHD_ENUM( "clbgdkvert", ISpropPATTERN, PSshdDKVERT ),
736 RTF_CELL_SHD_ENUM( "clbgdkfdiag", ISpropPATTERN, PSshdDKFDIAG ),
737 RTF_CELL_SHD_ENUM( "clbgdkbdiag", ISpropPATTERN, PSshdDKBDIAG ),
738 RTF_CELL_SHD_ENUM( "clbgdkcross", ISpropPATTERN, PSshdDKCROSS ),
739 RTF_CELL_SHD_ENUM( "clbgdkdcross", ISpropPATTERN, PSshdDKDCROSS ),
740
741 RTF_CELL_SHD_NUMBER( "clcfpat", ISpropFORE_COLOR ),
742 RTF_CELL_SHD_NUMBER( "clcbpat", ISpropBACK_COLOR ),
743 RTF_CELL_SHD_NUMBER( "clshdng", ISpropLEVEL ),
744
745 RTF_CELL_SHD_NUMBER( "clcfpatraw", ISpropFORE_COLOR ), /*?*/
746 RTF_CELL_SHD_NUMBER( "clcbpatraw", ISpropBACK_COLOR ), /*?*/
747 RTF_CELL_SHD_NUMBER( "clshdngraw", ISpropLEVEL ), /*?*/
748
749 RTF_CELL_ENUM( "clvertalt", CLpropVALIGN, DOCtvaTOP ),
750 RTF_CELL_ENUM( "clvertalc", CLpropVALIGN, DOCtvaCENTERED ),
751 RTF_CELL_ENUM( "clvertalb", CLpropVALIGN, DOCtvaBOTTOM ),
752
753 /* In table styles */
754 RTF_CELL_ENUM( "tsvertalt", CLpropVALIGN, DOCtvaTOP ),
755 RTF_CELL_ENUM( "tsvertalc", CLpropVALIGN, DOCtvaCENTERED ),
756 RTF_CELL_ENUM( "tsvertalb", CLpropVALIGN, DOCtvaBOTTOM ),
757
758 RTF_CELL_ENUM( "cltxlrtb", CLpropTEXT_FLOW, TXflowTXLRTB ),
759 RTF_CELL_ENUM( "cltxtbrl", CLpropTEXT_FLOW, TXflowTXTBRL ),
760 RTF_CELL_ENUM( "cltxbtlr", CLpropTEXT_FLOW, TXflowTXBTLR ),
761 RTF_CELL_ENUM( "cltxlrtbv", CLpropTEXT_FLOW, TXflowTXLRTBV ),
762 RTF_CELL_ENUM( "cltxtbrlv", CLpropTEXT_FLOW, TXflowTXTBRLV ),
763
764 RTF_CELL_ENUM( "ClmNone", CLpropHOR_MERGE, CELLmergeNONE ),
765 RTF_CELL_ENUM( "clmgf", CLpropHOR_MERGE, CELLmergeHEAD ),
766 RTF_CELL_ENUM( "clmrg", CLpropHOR_MERGE, CELLmergeFOLLOW ),
767
768 RTF_CELL_ENUM( "ClvmNone", CLpropVERT_MERGE, CELLmergeNONE ),
769 RTF_CELL_ENUM( "clvmgf", CLpropVERT_MERGE, CELLmergeHEAD ),
770 RTF_CELL_ENUM( "clvmrg", CLpropVERT_MERGE, CELLmergeFOLLOW ),
771
772 RTF_CELL_FLAG( "clNoWrap", CLpropNO_WRAP ),
773
774 RTF_CELL_FLAG( "clshdrawnil", CLpropNO_SHADING ),
775
776 RTF_CELL_NUMBER( "clwWidth", CLpropCLW_WIDTH ),
777 RTF_CELL_NUMBER( "clftsWidth", CLpropCLFTS_WIDTH ),
778 RTF_CELL_NUMBER( "tscellwidthfts", RTFid_NOT_SUPPORTED ),
779 RTF_CELL_NUMBER( "tscellpct", RTFid_NOT_SUPPORTED ),
780 RTF_CELL_NUMBER( "tscbandsh", RTFid_NOT_SUPPORTED ),
781 RTF_CELL_NUMBER( "tscbandsv", RTFid_NOT_SUPPORTED ),
782
783 /********************************/
784 /* NOTE: Word 2003 swaps left */
785 /* and top. */
786 /********************************/
787 RTF_CELL_NUMBER( "clpadt", CLpropLEFT_PADDING ), /* !!! */
788 RTF_CELL_NUMBER( "clpadb", CLpropBOTTOM_PADDING ),
789 RTF_CELL_NUMBER( "clpadl", CLpropTOP_PADDING ), /* !!! */
790 RTF_CELL_NUMBER( "clpadr", CLpropRIGHT_PADDING ),
791
792 RTF_CELL_NUMBER( "clpadft", CLpropLEFT_PADDING_UNIT ), /* !!! */
793 RTF_CELL_NUMBER( "clpadfb", CLpropBOTTOM_PADDING_UNIT ),
794 RTF_CELL_NUMBER( "clpadfl", CLpropTOP_PADDING_UNIT ), /* !!! */
795 RTF_CELL_NUMBER( "clpadfr", CLpropRIGHT_PADDING_UNIT ),
796
797 /****************************************/
798 /* Application of table styles. */
799 /****************************************/
800
801 # define RTF_CELLI_NUMBER(s,id) \
802 { s, id, RTCtypeVALUE, docRtfRememberCellInstanceProperty, }
803 # define RTF_CELLI_FLAG(s,id) \
804 { s, id, RTCtypeFLAG, docRtfRememberCellInstanceProperty, }
805
806 RTF_CELLI_NUMBER( "yts", CIpropYTS ),
807
808 RTF_CELLI_FLAG( "tscfirstrow", CIpropFIRST_ROW ),
809 RTF_CELLI_FLAG( "tsclastrow", CIpropLAST_ROW ),
810 RTF_CELLI_FLAG( "tscfirstcol", CIpropFIRST_COLUMN ),
811 RTF_CELLI_FLAG( "tsclastcol", CIpropLAST_COLUMN ),
812
813 RTF_CELLI_FLAG( "tscbandhorzodd", CIpropODD_ROW_BAND ),
814 RTF_CELLI_FLAG( "tscbandhorzeven",CIpropEVEN_ROW_BAND ),
815 RTF_CELLI_FLAG( "tscbandvertodd", CIpropODD_COLUMN_BAND ),
816 RTF_CELLI_FLAG( "tscbandverteven",CIpropEVEN_COLUMN_BAND ),
817
818 RTF_CELLI_FLAG( "tscnwcell", CIpropNW_CELL ),
819 RTF_CELLI_FLAG( "tscnecell", CIpropNE_CELL ),
820 RTF_CELLI_FLAG( "tscswcell", CIpropSW_CELL ),
821 RTF_CELLI_FLAG( "tscsecell", CIpropSE_CELL ),
822
823 /****************************************/
824 /* Row properties. */
825 /****************************************/
826
827 # define RTF_ROW_DEFAULT(s) \
828 { s, RPprop_NONE, RTCtypeANY, docRtfRememberRowProperty, }
829 # define RTF_ROW_NUMBER(s,id) \
830 { s, id, RTCtypeVALUE, docRtfRememberRowProperty, }
831 # define RTF_ROW_ENUM(s,id,v) \
832 { s, id, RTCtypeENUM, docRtfRememberRowProperty, v, }
833 # define RTF_ROW_FLAG(s,id) \
834 { s, id, RTCtypeFLAG, docRtfRememberRowProperty, }
835 # define RTF_ROW_BORDER(s,id) \
836 RTF_BORDER(s,id,docRtfRememberRowProperty)
837
838 # define RTF_ROW_SHD_NUMBER(s,id) \
839 { s, id, RTCtypeVALUE, docRtfRememberRowShadingProperty, }
840 # define RTF_ROW_SHD_ENUM(s,id,v) \
841 { s, id, RTCtypeENUM, docRtfRememberRowShadingProperty, v, }
842
843 RTF_ROW_DEFAULT( "trowd" ),
844 /* In table styles */
845 RTF_ROW_DEFAULT( "tsrowd" ),
846
847 RTF_ROW_NUMBER( "trgaph", RPpropGAP_WIDTH ),
848 RTF_ROW_NUMBER( "trleft", RPpropLEFT_INDENT ),
849 RTF_ROW_NUMBER( "trrh", RPpropHEIGHT ),
850
851 RTF_ROW_FLAG( "trhdr", RPpropIS_TABLE_HEADER ),
852 RTF_ROW_FLAG( "trkeep", RPpropKEEP_ON_ONE_PAGE ),
853 RTF_ROW_FLAG( "trkeepfollow", RPprop_KEEPFOLLOW ),
854 RTF_ROW_FLAG( "trautofit", RPpropAUTOFIT ),
855
856 RTF_ROW_ENUM( "trql", RPpropALIGNMENT, DOCthaLEFT ),
857 RTF_ROW_ENUM( "trqr", RPpropALIGNMENT, DOCthaRIGHT ),
858 RTF_ROW_ENUM( "trqc", RPpropALIGNMENT, DOCthaCENTERED ),
859
860 RTF_ROW_ENUM( "rtlrow", RPpropRTOL, 1 ),
861 RTF_ROW_ENUM( "ltrrow", RPpropRTOL, 0 ),
862
863 /**/
864 RTF_ROW_BORDER( "trbrdrt", RPpropTOP_BORDER ),
865 RTF_ROW_BORDER( "trbrdrb", RPpropBOTTOM_BORDER ),
866 RTF_ROW_BORDER( "trbrdrl", RPpropLEFT_BORDER ),
867 RTF_ROW_BORDER( "trbrdrr", RPpropRIGHT_BORDER ),
868 RTF_ROW_BORDER( "trbrdrh", RPpropHORIZ_BORDER ),
869 RTF_ROW_BORDER( "trbrdrv", RPpropVERT_BORDER ),
870
871 /* In table styles */
872 RTF_ROW_BORDER( "tsbrdrt", RPpropTOP_BORDER ),
873 RTF_ROW_BORDER( "tsbrdrb", RPpropBOTTOM_BORDER ),
874 RTF_ROW_BORDER( "tsbrdrl", RPpropLEFT_BORDER ),
875 RTF_ROW_BORDER( "tsbrdrr", RPpropRIGHT_BORDER ),
876 RTF_ROW_BORDER( "tsbrdrh", RPpropHORIZ_BORDER ),
877 RTF_ROW_BORDER( "tsbrdrv", RPpropVERT_BORDER ),
878
879 RTF_ROW_BORDER( "tsbrdrdgl", RPprop_IGNORED ),
880 RTF_ROW_BORDER( "tsbrdrdgr", RPprop_IGNORED ),
881
882 /**/
883 RTF_ROW_NUMBER( "trwWidth", RPpropTRW_WIDTH ),
884 RTF_ROW_NUMBER( "trftsWidth", RPpropTRFTS_WIDTH ),
885
886 /**/
887 RTF_ROW_NUMBER( "trspdl", RPpropTRSPDL ),
888 RTF_ROW_NUMBER( "trspdr", RPpropTRSPDR ),
889 RTF_ROW_NUMBER( "trspdt", RPpropTRSPDT ),
890 RTF_ROW_NUMBER( "trspdb", RPpropTRSPDB ),
891
892 RTF_ROW_NUMBER( "trspdfl", RPpropTRSPDFL ),
893 RTF_ROW_NUMBER( "trspdfr", RPpropTRSPDFR ),
894 RTF_ROW_NUMBER( "trspdft", RPpropTRSPDFT ),
895 RTF_ROW_NUMBER( "trspdfb", RPpropTRSPDFB ),
896
897 /**/
898 RTF_ROW_NUMBER( "trpaddl", RPpropTRPADDL ),
899 RTF_ROW_NUMBER( "trpaddr", RPpropTRPADDR ),
900 RTF_ROW_NUMBER( "trpaddt", RPpropTRPADDT ),
901 RTF_ROW_NUMBER( "trpaddb", RPpropTRPADDB ),
902
903 RTF_ROW_NUMBER( "trpaddfl", RPpropTRPADDFL ),
904 RTF_ROW_NUMBER( "trpaddfr", RPpropTRPADDFR ),
905 RTF_ROW_NUMBER( "trpaddft", RPpropTRPADDFT ),
906 RTF_ROW_NUMBER( "trpaddfb", RPpropTRPADDFB ),
907
908 /* In table styles */
909 RTF_ROW_NUMBER( "tscellpaddl", RPpropTRPADDL ),
910 RTF_ROW_NUMBER( "tscellpaddr", RPpropTRPADDR ),
911 RTF_ROW_NUMBER( "tscellpaddt", RPpropTRPADDT ),
912 RTF_ROW_NUMBER( "tscellpaddb", RPpropTRPADDB ),
913
914 /* In table styles */
915 RTF_ROW_NUMBER( "tscellpaddfl", RPpropTRPADDFL ),
916 RTF_ROW_NUMBER( "tscellpaddfr", RPpropTRPADDFR ),
917 RTF_ROW_NUMBER( "tscellpaddft", RPpropTRPADDFT ),
918 RTF_ROW_NUMBER( "tscellpaddfb", RPpropTRPADDFB ),
919
920 /**/
921 RTF_ROW_NUMBER( "trwWidthB", RPpropTRW_WIDTHB ),
922 RTF_ROW_NUMBER( "trwWidthA", RPpropTRW_WIDTHA ),
923
924 RTF_ROW_NUMBER( "trftsWidthB", RPpropTRFTS_WIDTHB ),
925 RTF_ROW_NUMBER( "trftsWidthA", RPpropTRFTS_WIDTHA ),
926
927 /**/
928 RTF_ROW_SHD_ENUM( "trbghoriz", ISpropPATTERN, PSshdHORIZ ),
929 RTF_ROW_SHD_ENUM( "trbgvert", ISpropPATTERN, PSshdVERT ),
930 RTF_ROW_SHD_ENUM( "trbgfdiag", ISpropPATTERN, PSshdFDIAG ),
931 RTF_ROW_SHD_ENUM( "trbgbdiag", ISpropPATTERN, PSshdBDIAG ),
932 RTF_ROW_SHD_ENUM( "trbgcross", ISpropPATTERN, PSshdCROSS ),
933 RTF_ROW_SHD_ENUM( "trbgdcross", ISpropPATTERN, PSshdDCROSS ),
934 RTF_ROW_SHD_ENUM( "trbgdkhor", ISpropPATTERN, PSshdDKHORIZ ),
935 RTF_ROW_SHD_ENUM( "trbgdkvert", ISpropPATTERN, PSshdDKVERT ),
936 RTF_ROW_SHD_ENUM( "trbgdkfdiag", ISpropPATTERN, PSshdDKFDIAG ),
937 RTF_ROW_SHD_ENUM( "trbgdkbdiag", ISpropPATTERN, PSshdDKBDIAG ),
938 RTF_ROW_SHD_ENUM( "trbgdkcross", ISpropPATTERN, PSshdDKCROSS ),
939 RTF_ROW_SHD_ENUM( "trbgdkdcross", ISpropPATTERN, PSshdDKDCROSS ),
940
941 RTF_ROW_SHD_NUMBER( "trcfpat", ISpropFORE_COLOR ),
942 RTF_ROW_SHD_NUMBER( "trcbpat", ISpropBACK_COLOR ),
943 RTF_ROW_SHD_NUMBER( "trshdng", ISpropLEVEL ),
944
945 /* In table styles */
946 RTF_ROW_SHD_ENUM( "tsbghoriz", ISpropPATTERN, PSshdHORIZ ),
947 RTF_ROW_SHD_ENUM( "tsbgvert", ISpropPATTERN, PSshdVERT ),
948 RTF_ROW_SHD_ENUM( "tsbgfdiag", ISpropPATTERN, PSshdFDIAG ),
949 RTF_ROW_SHD_ENUM( "tsbgbdiag", ISpropPATTERN, PSshdBDIAG ),
950 RTF_ROW_SHD_ENUM( "tsbgcross", ISpropPATTERN, PSshdCROSS ),
951 RTF_ROW_SHD_ENUM( "tsbgdcross", ISpropPATTERN, PSshdDCROSS ),
952 RTF_ROW_SHD_ENUM( "tsbgdkhor", ISpropPATTERN, PSshdDKHORIZ ),
953 RTF_ROW_SHD_ENUM( "tsbgdkvert", ISpropPATTERN, PSshdDKVERT ),
954 RTF_ROW_SHD_ENUM( "tsbgdkfdiag", ISpropPATTERN, PSshdDKFDIAG ),
955 RTF_ROW_SHD_ENUM( "tsbgdkbdiag", ISpropPATTERN, PSshdDKBDIAG ),
956 RTF_ROW_SHD_ENUM( "tsbgdkcross", ISpropPATTERN, PSshdDKCROSS ),
957 RTF_ROW_SHD_ENUM( "tsbgdkdcross", ISpropPATTERN, PSshdDKDCROSS ),
958
959 /* In table styles */
960 RTF_ROW_SHD_NUMBER( "tscellcfpat", ISpropFORE_COLOR ),
961 RTF_ROW_SHD_NUMBER( "tscellcbpat", ISpropBACK_COLOR ),
962
963 RTF_ROW_FLAG( "tbllkborder", RPpropAUTOFORMAT_BORDERS ),
964 RTF_ROW_FLAG( "tbllkshading", RPpropAUTOFORMAT_SHADING ),
965 RTF_ROW_FLAG( "tbllkfont", RPpropAUTOFORMAT_FONT ),
966 RTF_ROW_FLAG( "tbllkcolor", RPpropAUTOFORMAT_COLOR ),
967 RTF_ROW_FLAG( "tbllkbestfit", RPpropAUTOFORMAT_APPLY_BEST_FIT ),
968 RTF_ROW_FLAG( "tbllkhdrrows", RPpropAUTOFORMAT_FIRST_ROW ),
969 RTF_ROW_FLAG( "tbllklastrow", RPpropAUTOFORMAT_LAST_ROW ),
970 RTF_ROW_FLAG( "tbllkhdrcols", RPpropAUTOFORMAT_FIRST_COLUMN ),
971 RTF_ROW_FLAG( "tbllklastcol", RPpropAUTOFORMAT_LAST_COLUMN ),
972
973 RTF_ROW_NUMBER( "irow", RPpropROW_NUMBER ),
974 RTF_ROW_NUMBER( "irowband", RPpropROW_BAND_NUMBER ),
975 RTF_ROW_NUMBER( "ts", RPpropROW_STYLE ),
976
977 RTF_ROW_FLAG( "lastrow", RPpropIS_LAST_ROW ),
978 RTF_ROW_FLAG( "trauth", RPpropTRAUTH ),
979
980 RTF_ROW_FLAG( "tbllknocolband", RPpropTRAUTH ),
981 RTF_ROW_NUMBER( "tblind", RPprop_IGNORED ),
982 RTF_ROW_NUMBER( "tblindtype", RPprop_IGNORED ),
983
984 /****************************************/
985 /* Document formatting. */
986 /****************************************/
987
988 # define RTF_DOC_NUMBER(s,id) \
989 { s, id, RTCtypeVALUE, docRtfRememberDocProperty, }
990 # define RTF_DOC_FLAG(s,id) \
991 { s, id, RTCtypeFLAG, docRtfRememberDocProperty, }
992 # define RTF_DOC_ENUM(s,id,v) \
993 { s, id, RTCtypeENUM, docRtfRememberDocProperty, v }
994 # define RTF_DOC_BORDER(s,id) \
995 RTF_BORDER(s,id,docRtfRememberDocProperty)
996
997 RTF_DOC_NUMBER( "margl", DGpropLEFT_MARGIN ),
998 RTF_DOC_NUMBER( "margr", DGpropRIGHT_MARGIN ),
999 RTF_DOC_NUMBER( "margt", DGpropTOP_MARGIN ),
1000 RTF_DOC_NUMBER( "margb", DGpropBOTTOM_MARGIN ),
1001 RTF_DOC_NUMBER( "paperh", DGpropPAGE_HEIGHT ),
1002 RTF_DOC_NUMBER( "paperw", DGpropPAGE_WIDTH ),
1003 RTF_DOC_NUMBER( "gutter", DGpropGUTTER ),
1004 RTF_DOC_FLAG( "margmirror", DGpropMARGMIR ),
1005
1006 RTF_DOC_FLAG( "facingp", DPpropFACING_PAGES ),
1007 RTF_DOC_FLAG( "gutterprl", DPpropGUTTER_HORIZONTAL ),
1008 RTF_DOC_FLAG( "widowctrl", DPpropWIDOWCTRL ),
1009 RTF_DOC_FLAG( "twoonone", DPpropTWO_ON_ONE ),
1010 RTF_DOC_FLAG( "doctemp", DPpropDOCTEMP ),
1011
1012 RTF_DOC_ENUM( "rtldoc", DPpropRTOL, 1 ),
1013 RTF_DOC_ENUM( "ltrdoc", DPpropRTOL, 0 ),
1014
1015 RTF_REMEMBER( "psz", RTFid_NOT_SUPPORTED ),
1016
1017 RTF_REMEMBER( "jcompress", RTFid_NOT_SUPPORTED),
1018 RTF_REMEMBER( "jexpand", RTFid_NOT_SUPPORTED),
1019 RTF_REMEMBER( "noqfpromote", RTFid_NOT_SUPPORTED),
1020 RTF_REMEMBER( "trackmoves", RTFid_NOT_SUPPORTED),
1021 RTF_REMEMBER( "trackformatting", RTFid_NOT_SUPPORTED),
1022 RTF_REMEMBER( "relyonvml", RTFid_NOT_SUPPORTED),
1023 RTF_REMEMBER( "viewbksp", RTFid_NOT_SUPPORTED),
1024 RTF_REMEMBER( "remdttm", RTFid_NOT_SUPPORTED),
1025 RTF_REMEMBER( "utinl", RTFid_NOT_SUPPORTED),
1026 RTF_REMEMBER( "readonlyrecommended",RTFid_NOT_SUPPORTED),
1027
1028 RTF_REMEMBER( "horzdoc", RTFid_NOT_SUPPORTED),
1029 RTF_REMEMBER( "dghspace", RTFid_NOT_SUPPORTED),
1030 RTF_REMEMBER( "dgvspace", RTFid_NOT_SUPPORTED),
1031 RTF_REMEMBER( "dghorigin", RTFid_NOT_SUPPORTED),
1032 RTF_REMEMBER( "dgvorigin", RTFid_NOT_SUPPORTED),
1033 RTF_REMEMBER( "dghshow", RTFid_NOT_SUPPORTED),
1034 RTF_REMEMBER( "dgvshow", RTFid_NOT_SUPPORTED),
1035 RTF_REMEMBER( "dgmargin", RTFid_NOT_SUPPORTED),
1036
1037 RTF_REMEMBER( "hres", RTFid_NOT_SUPPORTED),
1038 RTF_REMEMBER( "chhres", RTFid_NOT_SUPPORTED),
1039
1040 RTF_DOC_NUMBER( "pgnstart", DPpropSTART_PAGE ),
1041 RTF_DOC_NUMBER( "deftab", DPpropDEFTAB ),
1042
1043 RTF_DOC_NUMBER( "deff", DPpropDEFF ),
1044 RTF_DOC_NUMBER( "stshfdbch", DPpropSTSHFDBCH ),
1045 RTF_DOC_NUMBER( "stshfloch", DPpropSTSHFLOCH ),
1046 RTF_DOC_NUMBER( "stshfhich", DPpropSTSHFHICH ),
1047 RTF_DOC_NUMBER( "stshfbi", DPpropSTSHFBI ),
1048
1049 RTF_DOC_BORDER( "pgbrdrt", DPpropTOP_BORDER ),
1050 RTF_DOC_BORDER( "pgbrdrb", DPpropBOTTOM_BORDER ),
1051 RTF_DOC_BORDER( "pgbrdrl", DPpropLEFT_BORDER ),
1052 RTF_DOC_BORDER( "pgbrdrr", DPpropRIGHT_BORDER ),
1053 RTF_DOC_BORDER( "pgbrdrhead", DPpropHEAD_BORDER ),
1054 RTF_DOC_BORDER( "pgbrdrfoot", DPpropFOOT_BORDER ),
1055
1056 RTF_REMEMBER( "truncex", RTFid_NOT_SUPPORTED ),
1057 RTF_REMEMBER( "nolead", RTFid_NOT_SUPPORTED ),
1058 RTF_REMEMBER( "msmcap", RTFid_NOT_SUPPORTED ),
1059 RTF_REMEMBER( "splytwnine", RTFid_NOT_SUPPORTED ),
1060 RTF_REMEMBER( "ftnlytwnine", RTFid_NOT_SUPPORTED ),
1061 RTF_REMEMBER( "htmautsp", RTFid_NOT_SUPPORTED ),
1062 RTF_REMEMBER( "useltbaln", RTFid_NOT_SUPPORTED ),
1063 RTF_REMEMBER( "alntblind", RTFid_NOT_SUPPORTED ),
1064 RTF_REMEMBER( "lytcalctblwd", RTFid_NOT_SUPPORTED ),
1065 RTF_REMEMBER( "lyttblrtgr", RTFid_NOT_SUPPORTED ),
1066 RTF_REMEMBER( "lnbrkrule", RTFid_NOT_SUPPORTED ),
1067
1068 RTF_REMEMBER( "bdrrlswsix", RTFid_NOT_SUPPORTED ),
1069 RTF_REMEMBER( "oldas", RTFid_NOT_SUPPORTED ),
1070
1071 RTF_DOC_FLAG( "sprstsm", DPprop_IGNORED ),
1072 RTF_DOC_FLAG( "pgbrdropt", DPprop_IGNORED ),
1073 RTF_DOC_FLAG( "pgbrdrsnap", DPprop_IGNORED ),
1074 RTF_DOC_FLAG( "allowfieldendsel", DPprop_IGNORED ),
1075 RTF_DOC_FLAG( "nobrkwrptbl", DPprop_IGNORED ),
1076 RTF_DOC_FLAG( "snaptogridincell", DPprop_IGNORED ),
1077 RTF_DOC_FLAG( "wrppunct", DPprop_IGNORED ),
1078 RTF_DOC_FLAG( "asianbrkrule", DPprop_IGNORED ),
1079 RTF_DOC_FLAG( "newtblstyruls", DPprop_IGNORED ),
1080 RTF_DOC_FLAG( "nogrowautofit", DPprop_IGNORED ),
1081 RTF_DOC_FLAG( "rempersonalinfo", DPprop_IGNORED ),
1082 RTF_DOC_FLAG( "nojkernpunct", DPprop_IGNORED ),
1083 RTF_DOC_FLAG( "doctype", DPprop_IGNORED ),
1084
1085 RTF_DOC_FLAG( "usenormstyforlist", DPprop_IGNORED ),
1086 RTF_DOC_FLAG( "noindnmbrts", DPprop_IGNORED ),
1087 RTF_DOC_FLAG( "felnbrelev", DPprop_IGNORED ),
1088 RTF_DOC_FLAG( "nocxsptable", DPprop_IGNORED ),
1089 RTF_DOC_FLAG( "indrlsweleven", DPprop_IGNORED ),
1090 RTF_DOC_FLAG( "noafcnsttbl", DPprop_IGNORED ),
1091 RTF_DOC_FLAG( "afelev", DPprop_IGNORED ),
1092 RTF_DOC_FLAG( "hwelev", DPprop_IGNORED ),
1093 RTF_DOC_FLAG( "spltpgpar", DPprop_IGNORED ),
1094 RTF_DOC_FLAG( "notcvasp", DPprop_IGNORED ),
1095 RTF_DOC_FLAG( "notbrkcnstfrctbl", DPprop_IGNORED ),
1096 RTF_DOC_FLAG( "notvatxbx", DPprop_IGNORED ),
1097 RTF_DOC_FLAG( "krnprsnet", DPprop_IGNORED ),
1098 RTF_DOC_FLAG( "cachedcolbal", DPprop_IGNORED ),
1099 RTF_DOC_FLAG( "nouicompat", DPprop_IGNORED ),
1100 RTF_DOC_FLAG( "nofeaturethrottle", DPprop_IGNORED ),
1101
1102 RTF_DOC_NUMBER( "adeflang", DPprop_IGNORED ),
1103 RTF_DOC_NUMBER( "adeff", DPprop_IGNORED ),
1104
1105 /****************************************/
1106 /* Additional properties for lookup */
1107 /* entries. */
1108 /****************************************/
1109
1110 # define RTF_LOOKUP_FIELD(s,id) \
1111 { s, id, RTCtypeANY, docRtfLookupWord, }
1112 # define RTF_LOOKUP_FLAG(s,id) \
1113 { s, id, RTCtypeFLAG, docRtfLookupWord, }
1114
1115 RTF_LOOKUP_FIELD( "tc", RTFlookupTC ),
1116 RTF_LOOKUP_FIELD( "tcn", RTFlookupTCN ),
1117
1118 RTF_LOOKUP_FLAG( "xef", RTFlookupXEF ),
1119 RTF_LOOKUP_FLAG( "bxe", RTFlookupBXE ),
1120 RTF_LOOKUP_FLAG( "ixe", RTFlookupIXE ),
1121
1122 RTF_LOOKUP_FLAG( "tcf", RTFlookupTCF ),
1123 RTF_LOOKUP_FLAG( "tcl", RTFlookupTCL ),
1124
1125 /****************************************/
1126 /* Document properties. */
1127 /****************************************/
1128 RTF_REMEMBER( "noxlattoyen", RTFid_NOT_SUPPORTED ),
1129 RTF_REMEMBER( "expshrtn", RTFid_NOT_SUPPORTED ),
1130 RTF_REMEMBER( "noultrlspc", RTFid_NOT_SUPPORTED ),
1131 RTF_REMEMBER( "dntblnsbdb", RTFid_NOT_SUPPORTED ),
1132 RTF_REMEMBER( "nospaceforul", RTFid_NOT_SUPPORTED ),
1133
1134 /****************************************/
1135 /* Paragraph Numbering. */
1136 /****************************************/
1137 RTF_REMEMBER( "pnhang", RTFidPNHANG ),
1138
1139 RTF_REMEMBER( "pnuld", RTFid_NOT_SUPPORTED ),
1140 RTF_REMEMBER( "pnuldb", RTFid_NOT_SUPPORTED ),
1141 RTF_REMEMBER( "pnulnone", RTFidPNULNONE ),
1142
1143 /****************************************/
1144 /* Section properties. */
1145 /****************************************/
1146 # define RTF_SECT_DEFAULT(s) \
1147 { s, SPprop_NONE, RTCtypeANY, docRtfRememberSectionProperty, }
1148 # define RTF_SECT_NUMBER(s,id) \
1149 { s, id, RTCtypeVALUE, docRtfRememberSectionProperty, }
1150 # define RTF_SECT_ENUM(s,id,v) \
1151 { s, id, RTCtypeENUM, docRtfRememberSectionProperty, v, }
1152 # define RTF_SECT_FLAG(s,id) \
1153 { s, id, RTCtypeFLAG, docRtfRememberSectionProperty, }
1154
1155 RTF_SECT_DEFAULT( "sectd" ),
1156
1157 RTF_SECT_NUMBER( "headery", DGpropHEADER_POSITION ),
1158 RTF_SECT_NUMBER( "footery", DGpropFOOTER_POSITION ),
1159 RTF_SECT_NUMBER( "pgwsxn", DGpropPAGE_WIDTH ),
1160 RTF_SECT_NUMBER( "pghsxn", DGpropPAGE_HEIGHT ),
1161 RTF_SECT_NUMBER( "marglsxn", DGpropLEFT_MARGIN ),
1162 RTF_SECT_NUMBER( "margtsxn", DGpropTOP_MARGIN ),
1163 RTF_SECT_NUMBER( "margrsxn", DGpropRIGHT_MARGIN ),
1164 RTF_SECT_NUMBER( "margbsxn", DGpropBOTTOM_MARGIN ),
1165 RTF_SECT_NUMBER( "guttersxn", DGpropGUTTER ),
1166 RTF_SECT_FLAG( "margmirsxn", DGpropMARGMIR ),
1167
1168 RTF_SECT_NUMBER( "ds", SPpropSTYLE ),
1169
1170 RTF_SECT_FLAG( "titlepg", SPpropTITLEPG ),
1171
1172 RTF_SECT_ENUM( "sbknone", SPpropBREAK_KIND, DOCibkNONE ),
1173 RTF_SECT_ENUM( "sbkcol", SPpropBREAK_KIND, DOCibkCOL ),
1174 RTF_SECT_ENUM( "sbkpage", SPpropBREAK_KIND, DOCibkPAGE ),
1175 RTF_SECT_ENUM( "sbkeven", SPpropBREAK_KIND, DOCibkEVEN ),
1176 RTF_SECT_ENUM( "sbkodd", SPpropBREAK_KIND, DOCibkODD ),
1177
1178 RTF_SECT_ENUM( "pgndec", SPpropNUMBER_STYLE, DOCpgnDEC ),
1179 RTF_SECT_ENUM( "pgnucrm", SPpropNUMBER_STYLE, DOCpgnUCRM ),
1180 RTF_SECT_ENUM( "pgnlcrm", SPpropNUMBER_STYLE, DOCpgnLCRM ),
1181 RTF_SECT_ENUM( "pgnucltr", SPpropNUMBER_STYLE, DOCpgnUCLTR ),
1182 RTF_SECT_ENUM( "pgnlcltr", SPpropNUMBER_STYLE, DOCpgnLCLTR ),
1183
1184 RTF_SECT_ENUM( "pgncont", SPpropPAGE_RESTART, 0 ),
1185 RTF_SECT_ENUM( "pgnrestart", SPpropPAGE_RESTART, 1 ),
1186
1187 RTF_SECT_ENUM( "rtlsect", SPpropRTOL, 1 ),
1188 RTF_SECT_ENUM( "ltrsect", SPpropRTOL, 0 ),
1189
1190 RTF_SECT_NUMBER( "pgnstarts", SPpropSTART_PAGE ),
1191
1192 RTF_SECT_NUMBER( "cols", SPpropCOLUMN_COUNT ),
1193 RTF_SECT_NUMBER( "colsx", SPpropCOLUMN_SPACING ),
1194
1195 RTF_SECT_NUMBER( "colno", SPprop_COLUMN_NUMBER ),
1196 RTF_SECT_NUMBER( "colsr", SPprop_COLUMN_RIGHT ),
1197 RTF_SECT_NUMBER( "colw", SPprop_COLUMN_WIDTH ),
1198
1199 RTF_SECT_FLAG( "linebetcol", SPpropLINEBETCOL ),
1200
1201 RTF_SECT_ENUM( "pgnhnsh", SPpropNUMBER_HYPHEN, DOCpgnhPGNHNSH ),
1202 RTF_SECT_ENUM( "pgnhnsp", SPpropNUMBER_HYPHEN, DOCpgnhPGNHNSP ),
1203 RTF_SECT_ENUM( "pgnhnsc", SPpropNUMBER_HYPHEN, DOCpgnhPGNHNSC ),
1204 RTF_SECT_ENUM( "pgnhnsm", SPpropNUMBER_HYPHEN, DOCpgnhPGNHNSM ),
1205 RTF_SECT_ENUM( "pgnhnsn", SPpropNUMBER_HYPHEN, DOCpgnhPGNHNSN ),
1206
1207 /**/
1208
1209 RTF_REMEMBER( "sectdefaultcl", RTFid_NOT_SUPPORTED ),
1210
1211 RTF_REMEMBER( "pgnhn", RTFid_NOT_SUPPORTED ),
1212
1213 RTF_REMEMBER( "pgnx", RTFid_NOT_SUPPORTED ),
1214 RTF_REMEMBER( "pgny", RTFid_NOT_SUPPORTED ),
1215
1216 RTF_REMEMBER( "linex", RTFid_NOT_SUPPORTED ),
1217
1218 RTF_REMEMBER( "vertalb", RTFid_NOT_SUPPORTED ),
1219 RTF_REMEMBER( "vertalc", RTFid_NOT_SUPPORTED ),
1220 RTF_REMEMBER( "vertalj", RTFid_NOT_SUPPORTED ),
1221 RTF_REMEMBER( "vertalt", RTFid_NOT_SUPPORTED ),
1222
1223 RTF_REMEMBER( "sectlinegrid", RTFid_NOT_SUPPORTED ),
1224
1225 RTF_REMEMBER( "endnhere", RTFid_NOT_SUPPORTED ),
1226 RTF_REMEMBER( "binfsxn", RTFid_NOT_SUPPORTED ),
1227 RTF_REMEMBER( "binsxn", RTFid_NOT_SUPPORTED ),
1228 RTF_REMEMBER( "linecont", RTFid_NOT_SUPPORTED ),
1229 RTF_REMEMBER( "linemod", RTFid_NOT_SUPPORTED ),
1230 RTF_REMEMBER( "lineppage", RTFid_NOT_SUPPORTED ),
1231 RTF_REMEMBER( "linerestart", RTFid_NOT_SUPPORTED ),
1232 RTF_REMEMBER( "linestarts", RTFid_NOT_SUPPORTED ),
1233 RTF_REMEMBER( "lndscpsxn", RTFid_NOT_SUPPORTED ),
1234 RTF_REMEMBER( "sectunlocked", RTFid_NOT_SUPPORTED ),
1235
1236 /****************************************/
1237 /* Section properties: (Notes) */
1238 /****************************************/
1239
1240 RTF_SECT_ENUM( "sftntj", SPpropFOOTNOTE_JUSTIFICATION,
1241 FTNjustifyBELOW_TEXT ),
1242 RTF_SECT_ENUM( "sftnbj", SPpropFOOTNOTE_JUSTIFICATION,
1243 FTNjustifyPAGE_BOTTOM ),
1244
1245 RTF_SECT_NUMBER( "sftnstart", SPpropFOOTNOTE_STARTNR ),
1246 RTF_SECT_NUMBER( "saftnstart", SPpropENDNOTE_STARTNR ),
1247
1248 RTF_SECT_ENUM( "sftnrstpg", SPpropFOOTNOTE_RESTART,
1249 FTN_RST_PER_PAGE ),
1250 RTF_SECT_ENUM( "sftnrestart", SPpropFOOTNOTE_RESTART,
1251 FTN_RST_PER_SECTION ),
1252 RTF_SECT_ENUM( "sftnrstcont", SPpropFOOTNOTE_RESTART,
1253 FTN_RST_CONTINUOUS ),
1254
1255 RTF_SECT_ENUM( "saftnrstcont", SPpropENDNOTE_RESTART,
1256 FTN_RST_CONTINUOUS ),
1257 RTF_SECT_ENUM( "saftnrestart", SPpropENDNOTE_RESTART,
1258 FTN_RST_PER_SECTION ),
1259
1260 RTF_SECT_ENUM( "sftnnar", SPpropFOOTNOTE_STYLE, FTNstyleNAR ),
1261 RTF_SECT_ENUM( "sftnnalc", SPpropFOOTNOTE_STYLE, FTNstyleNALC ),
1262 RTF_SECT_ENUM( "sftnnauc", SPpropFOOTNOTE_STYLE, FTNstyleNAUC ),
1263 RTF_SECT_ENUM( "sftnnrlc", SPpropFOOTNOTE_STYLE, FTNstyleNRLC ),
1264 RTF_SECT_ENUM( "sftnnruc", SPpropFOOTNOTE_STYLE, FTNstyleNRUC ),
1265 RTF_SECT_ENUM( "sftnnchi", SPpropFOOTNOTE_STYLE, FTNstyleNCHI ),
1266
1267 RTF_SECT_ENUM( "saftnnar", SPpropENDNOTE_STYLE, FTNstyleNAR ),
1268 RTF_SECT_ENUM( "saftnnalc", SPpropENDNOTE_STYLE, FTNstyleNALC ),
1269 RTF_SECT_ENUM( "saftnnauc", SPpropENDNOTE_STYLE, FTNstyleNAUC ),
1270 RTF_SECT_ENUM( "saftnnrlc", SPpropENDNOTE_STYLE, FTNstyleNRLC ),
1271 RTF_SECT_ENUM( "saftnnruc", SPpropENDNOTE_STYLE, FTNstyleNRUC ),
1272 RTF_SECT_ENUM( "saftnnchi", SPpropENDNOTE_STYLE, FTNstyleNCHI ),
1273
1274 /****************************************/
1275 /* Document properties: (Notes) */
1276 /****************************************/
1277
1278 RTF_DOC_NUMBER( RTFtag_fet, DPpropNOTETYPES ),
1279
1280 RTF_DOC_ENUM( "endnotes", DPpropFOOTNOTE_PLACEMENT,
1281 FTNplaceSECT_END ),
1282 RTF_DOC_ENUM( "enddoc", DPpropFOOTNOTE_PLACEMENT,
1283 FTNplaceDOC_END ),
1284 RTF_DOC_ENUM( "ftntj", DPpropFOOTNOTE_JUSTIFICATION,
1285 FTNjustifyBELOW_TEXT ),
1286 RTF_DOC_ENUM( "ftnbj", DPpropFOOTNOTE_JUSTIFICATION,
1287 FTNjustifyPAGE_BOTTOM ),
1288
1289 RTF_DOC_ENUM( "aendnotes", DPpropENDNOTE_PLACEMENT,
1290 FTNplaceSECT_END ),
1291 RTF_DOC_ENUM( "aenddoc", DPpropENDNOTE_PLACEMENT,
1292 FTNplaceDOC_END ),
1293 RTF_DOC_ENUM( "aftntj", DPpropENDNOTE_JUSTIFICATION,
1294 FTNjustifyBELOW_TEXT ),
1295 RTF_DOC_ENUM( "aftnbj", DPpropENDNOTE_JUSTIFICATION,
1296 FTNjustifyPAGE_BOTTOM ),
1297
1298 RTF_DOC_NUMBER( "ftnstart", DPpropFOOTNOTE_STARTNR ),
1299 RTF_DOC_NUMBER( "aftnstart", DPpropENDNOTE_STARTNR ),
1300
1301 RTF_DOC_ENUM( "ftnrstpg", DPpropFOOTNOTE_RESTART,
1302 FTN_RST_PER_PAGE ),
1303 RTF_DOC_ENUM( "ftnrestart", DPpropFOOTNOTE_RESTART,
1304 FTN_RST_PER_SECTION ),
1305 RTF_DOC_ENUM( "ftnrstcont", DPpropFOOTNOTE_RESTART,
1306 FTN_RST_CONTINUOUS ),
1307
1308 RTF_DOC_ENUM( "aftnrstcont", DPpropENDNOTE_RESTART,
1309 FTN_RST_CONTINUOUS ),
1310 RTF_DOC_ENUM( "aftnrestart", DPpropENDNOTE_RESTART,
1311 FTN_RST_PER_SECTION ),
1312
1313 RTF_DOC_ENUM( "ftnnar", DPpropFOOTNOTE_STYLE, FTNstyleNAR ),
1314 RTF_DOC_ENUM( "ftnnalc", DPpropFOOTNOTE_STYLE, FTNstyleNALC ),
1315 RTF_DOC_ENUM( "ftnnauc", DPpropFOOTNOTE_STYLE, FTNstyleNAUC ),
1316 RTF_DOC_ENUM( "ftnnrlc", DPpropFOOTNOTE_STYLE, FTNstyleNRLC ),
1317 RTF_DOC_ENUM( "ftnnruc", DPpropFOOTNOTE_STYLE, FTNstyleNRUC ),
1318 RTF_DOC_ENUM( "ftnnchi", DPpropFOOTNOTE_STYLE, FTNstyleNCHI ),
1319
1320 RTF_DOC_ENUM( "aftnnar", DPpropENDNOTE_STYLE, FTNstyleNAR ),
1321 RTF_DOC_ENUM( "aftnnalc", DPpropENDNOTE_STYLE, FTNstyleNALC ),
1322 RTF_DOC_ENUM( "aftnnauc", DPpropENDNOTE_STYLE, FTNstyleNAUC ),
1323 RTF_DOC_ENUM( "aftnnrlc", DPpropENDNOTE_STYLE, FTNstyleNRLC ),
1324 RTF_DOC_ENUM( "aftnnruc", DPpropENDNOTE_STYLE, FTNstyleNRUC ),
1325 RTF_DOC_ENUM( "aftnnchi", DPpropENDNOTE_STYLE, FTNstyleNCHI ),
1326
1327 /****************************************/
1328 /* Footnotes/Endnotes. */
1329 /****************************************/
1330 # define RTF_NOTE_ENUM(s,id,v) \
1331 { s, id, RTCtypeENUM, docRtfRememberNoteProperty, v, }
1332 # define RTF_NOTE_FLAG(s,id) \
1333 { s, id, RTCtypeFLAG, docRtfRememberNoteProperty, }
1334
1335 RTF_NOTE_ENUM( "ftnalt", NOTEpropTREE_TYPE, DOCinENDNOTE ),
1336 /**
1337 * For undo/redo only:
1338 * Cause the masks to be set.
1339 */
1340 RTF_NOTE_ENUM( "NoFtnalt", NOTEpropTREE_TYPE, DOCinFOOTNOTE ),
1341 RTF_NOTE_FLAG( "FtnAuto", NOTEpropAUTO_NUMBER ),
1342
1343 /****************************************/
1344 /* StyleSheet. */
1345 /****************************************/
1346 # define RTF_STYLE_FLAG(s,id) \
1347 { s, id, RTCtypeFLAG, docRtfRememberStyleProperty, }
1348 # define RTF_STYLE_NUMBER(s,id) \
1349 { s, id, RTCtypeVALUE, docRtfRememberStyleProperty, }
1350
1351 RTF_STYLE_FLAG( "additive", DSpropADDITIVE ),
1352 RTF_STYLE_NUMBER( "sbasedon", DSpropBASED_ON ),
1353 RTF_STYLE_NUMBER( "snext", DSpropNEXT ),
1354 RTF_STYLE_NUMBER( "slink", DSpropLINK ),
1355
1356 /*
1357
1358 Handeled for the style where the reference to the style is handeled.
1359
1360 RTF_STYLE_VAL_ENUM( "ds", DSpropSTYLE_NUMBER, DOClevSECT ),
1361 RTF_STYLE_VAL_ENUM( "ts", DSpropSTYLE_NUMBER, DOClevROW ),
1362 RTF_STYLE_VAL_ENUM( "s", DSpropSTYLE_NUMBER, DOClevPARA ),
1363 RTF_STYLE_VAL_ENUM( "cs", DSpropSTYLE_NUMBER, DOClevSPAN ),
1364 */
1365
1366 RTF_STYLE_FLAG( "sautoupd", DSpropAUTO_UPD ),
1367 RTF_STYLE_FLAG( "shidden", DSpropHIDDEN ),
1368 RTF_STYLE_FLAG( "slocked", DSpropLOCKED ),
1369 RTF_STYLE_FLAG( "ssemihidden", DSpropSEMI_HIDDEN ),
1370 RTF_STYLE_FLAG( "spersonal", DSpropPERSONAL ),
1371
1372 RTF_STYLE_NUMBER( "spriority", DSpropIGNORED ),
1373 RTF_STYLE_NUMBER( "sqformat", DSpropIGNORED ),
1374 RTF_STYLE_NUMBER( "sunhideused", DSpropIGNORED ),
1375 /****************************************/
1376 /* Encoding. */
1377 /****************************************/
1378 RTF_DOC_ENUM( "ansi", DPpropDOC_CHARSET, DOCcharsetANSI ),
1379 RTF_DOC_ENUM( "mac", DPpropDOC_CHARSET, DOCcharsetMAC ),
1380 RTF_DOC_ENUM( "pc", DPpropDOC_CHARSET, DOCcharsetPC ),
1381 RTF_DOC_ENUM( "pca", DPpropDOC_CHARSET, DOCcharsetPCA ),
1382 RTF_DOC_NUMBER( "ansicpg", DPpropANSICPG ),
1383
1384 RTF_DOC_NUMBER( "deflang", DPpropDEFLANG ),
1385
1386 /****************************************/
1387 /* Colors in the color table. */
1388 /****************************************/
1389 # define RTF_COLOR_NUMBER(s,id) \
1390 { s, id, RTCtypeVALUE, docRtfColorComp, }
1391 # define RTF_COLOR_IGNORED(s,id) \
1392 { s, id, RTCtypeANY, docRtfColorIgnored, }
1393
1394 RTF_COLOR_NUMBER( "red", RGBAcompRED ),
1395 RTF_COLOR_NUMBER( "green", RGBAcompGREEN ),
1396 RTF_COLOR_NUMBER( "blue", RGBAcompBLUE ),
1397
1398 RTF_COLOR_IGNORED( "caccentone", 1 ),
1399 RTF_COLOR_IGNORED( "caccenttwo", 1 ),
1400 RTF_COLOR_IGNORED( "caccentthree", 1 ),
1401 RTF_COLOR_IGNORED( "caccentfour", 1 ),
1402 RTF_COLOR_IGNORED( "caccentfive", 1 ),
1403 RTF_COLOR_IGNORED( "caccentsix", 1 ),
1404 RTF_COLOR_IGNORED( "chyperlink", 1 ),
1405 RTF_COLOR_IGNORED( "cfollowedhyperlink", 1 ),
1406 RTF_COLOR_IGNORED( "cbackgroundone", 1 ),
1407 RTF_COLOR_IGNORED( "ctextone", 1 ),
1408 RTF_COLOR_IGNORED( "cbackgroundtwo", 1 ),
1409 RTF_COLOR_IGNORED( "ctexttwo", 1 ),
1410 RTF_COLOR_IGNORED( "ctint", 1 ),
1411 RTF_COLOR_IGNORED( "cshade", 1 ),
1412
1413 /****************************************/
1414 /* Fields. */
1415 /****************************************/
1416
1417 # define RTF_FIELD_FLAG(s,id) \
1418 { s, id, RTCtypeFLAG, docRtfRememberFieldProperty, }
1419 # define RTF_FIELD_NUMBER(s,id) \
1420 { s, id, RTCtypeVALUE, docRtfRememberFieldProperty, }
1421
1422 RTF_FIELD_FLAG( "flddirty", FPpropDIRTY ),
1423 RTF_FIELD_FLAG( "fldedit", FPpropEDITED ),
1424 RTF_FIELD_FLAG( "fldlock", FPpropLOCKED ),
1425 RTF_FIELD_FLAG( "fldpriv", FPpropPRIVATE ),
1426
1427 RTF_FIELD_NUMBER( "bkmkcolf", FPpropFIRST_COLUMN ),
1428 RTF_FIELD_NUMBER( "bkmkcoll", FPpropLAST_COLUMN ),
1429
1430 /****************************************/
1431 /* Unknown */
1432 /****************************************/
1433 RTF_REMEMBER( "lin", RTFid_NOT_SUPPORTED ),
1434 RTF_REMEMBER( "rin", RTFid_NOT_SUPPORTED ),
1435 RTF_REMEMBER( "lang", RTFid_NOT_SUPPORTED ),
1436 RTF_REMEMBER( "noproof", RTFid_NOT_SUPPORTED ),
1437 RTF_REMEMBER( "langnp", RTFid_NOT_SUPPORTED ),
1438 RTF_REMEMBER( "langfe", RTFid_NOT_SUPPORTED ),
1439 RTF_REMEMBER( "langfenp", RTFid_NOT_SUPPORTED ),
1440 RTF_REMEMBER( "langf", RTFid_NOT_SUPPORTED ), /* ? */
1441 RTF_REMEMBER( "nopro", RTFid_NOT_SUPPORTED ), /* ? */
1442 RTF_REMEMBER( "nolnhtadjtbl", RTFid_NOT_SUPPORTED ),
1443 RTF_REMEMBER( "themelang", RTFid_NOT_SUPPORTED ),
1444 RTF_REMEMBER( "themelangfe", RTFid_NOT_SUPPORTED ),
1445 RTF_REMEMBER( "themelangcs", RTFid_NOT_SUPPORTED ),
1446
1447 /****************************************/
1448 /* Document Formatting properties. */
1449 /****************************************/
1450 RTF_REMEMBER( "allprot", RTFid_NOT_SUPPORTED ),
1451 RTF_REMEMBER( "annotprot", RTFid_NOT_SUPPORTED ),
1452 RTF_REMEMBER( "brkfrm", RTFid_NOT_SUPPORTED ),
1453 RTF_REMEMBER( "cvmme", RTFid_NOT_SUPPORTED ),
1454 RTF_REMEMBER( "defformat", RTFid_NOT_SUPPORTED ),
1455 RTF_REMEMBER( "fldalt", RTFid_NOT_SUPPORTED ),
1456 RTF_REMEMBER( "formdisp", RTFid_NOT_SUPPORTED ),
1457 RTF_REMEMBER( "formprot", RTFid_NOT_SUPPORTED ),
1458 RTF_REMEMBER( "formshade", RTFid_NOT_SUPPORTED ),
1459 RTF_REMEMBER( "fracwidth", RTFid_NOT_SUPPORTED ),
1460 RTF_REMEMBER( "hyphauto", RTFid_NOT_SUPPORTED ),
1461 RTF_REMEMBER( "hyphcaps", RTFid_NOT_SUPPORTED ),
1462 RTF_REMEMBER( "hyphconsec", RTFid_NOT_SUPPORTED ),
1463 RTF_REMEMBER( "hyphhotz", RTFid_NOT_SUPPORTED ),
1464 RTF_REMEMBER( "landscape", RTFid_NOT_SUPPORTED ),
1465 RTF_REMEMBER( "linestart", RTFid_NOT_SUPPORTED ),
1466 RTF_REMEMBER( "linkstyles", RTFid_NOT_SUPPORTED ),
1467 RTF_REMEMBER( "makebackup", RTFid_NOT_SUPPORTED ),
1468 RTF_REMEMBER( "nocolbal", RTFid_NOT_SUPPORTED ),
1469 RTF_REMEMBER( "noextrasprl", RTFid_NOT_SUPPORTED ),
1470 RTF_REMEMBER( "notabind", RTFid_NOT_SUPPORTED ),
1471 RTF_REMEMBER( "otblrul", RTFid_NOT_SUPPORTED ),
1472 RTF_REMEMBER( "prcolbl", RTFid_NOT_SUPPORTED ),
1473 RTF_REMEMBER( "printdata", RTFid_NOT_SUPPORTED ),
1474 RTF_REMEMBER( "psover", RTFid_NOT_SUPPORTED ),
1475 RTF_REMEMBER( "revbar", RTFid_NOT_SUPPORTED ),
1476 RTF_REMEMBER( "revisions", RTFid_NOT_SUPPORTED ),
1477 RTF_REMEMBER( "revprop", RTFid_NOT_SUPPORTED ),
1478 RTF_REMEMBER( "revprot", RTFid_NOT_SUPPORTED ),
1479 RTF_REMEMBER( "sprslnsp", RTFid_NOT_SUPPORTED ),
1480 RTF_REMEMBER( "sprsspbf", RTFid_NOT_SUPPORTED ),
1481 RTF_REMEMBER( "sprstsp", RTFid_NOT_SUPPORTED ),
1482 RTF_REMEMBER( "subfontbysize", RTFid_NOT_SUPPORTED ),
1483 RTF_REMEMBER( "swpbdr", RTFid_NOT_SUPPORTED ),
1484 RTF_REMEMBER( "transmf", RTFid_NOT_SUPPORTED ),
1485 RTF_REMEMBER( "ight", RTFid_NOT_SUPPORTED ),
1486 RTF_REMEMBER( "wraptrsp", RTFid_NOT_SUPPORTED ),
1487 RTF_REMEMBER( "viewzk", RTFid_NOT_SUPPORTED ),
1488 RTF_REMEMBER( "viewkind", RTFid_NOT_SUPPORTED ),
1489 RTF_REMEMBER( "viewscale", RTFid_NOT_SUPPORTED ),
1490 RTF_REMEMBER( "lytprtmet", RTFid_NOT_SUPPORTED ),
1491 RTF_REMEMBER( "ogutter", RTFid_NOT_SUPPORTED ),
1492 RTF_REMEMBER( "rtlgutter", RTFid_NOT_SUPPORTED ),
1493 RTF_REMEMBER( "deflangfe", RTFid_NOT_SUPPORTED ),
1494 RTF_REMEMBER( "uc", RTFidUC ),
1495 RTF_REMEMBER( "level", RTFid_NOT_SUPPORTED ),
1496 RTF_REMEMBER( "noline", RTFid_NOT_SUPPORTED ),
1497 RTF_REMEMBER( "sbys", RTFid_NOT_SUPPORTED ),
1498 RTF_REMEMBER( "subdocument", RTFid_NOT_SUPPORTED ),
1499
1500 RTF_REMEMBER( "donotembedsysfont", RTFid_NOT_SUPPORTED ),
1501 RTF_REMEMBER( "donotembedlingdata", RTFid_NOT_SUPPORTED ),
1502 RTF_REMEMBER( "grfdocevents", RTFid_NOT_SUPPORTED ),
1503 RTF_REMEMBER( "validatexml", RTFid_NOT_SUPPORTED ),
1504 RTF_REMEMBER( "showplaceholdtext", RTFid_NOT_SUPPORTED ),
1505 RTF_REMEMBER( "ignoremixedcontent", RTFid_NOT_SUPPORTED ),
1506 RTF_REMEMBER( "saveinvalidxml", RTFid_NOT_SUPPORTED ),
1507 RTF_REMEMBER( "showxmlerrors", RTFid_NOT_SUPPORTED ),
1508 RTF_REMEMBER( "ilfomacatclnup", RTFid_NOT_SUPPORTED ),
1509
1510 /****************************************/
1511 /* Fields in dates and times. */
1512 /****************************************/
1513 # define RTF_TIME_NUMBER(s,id) \
1514 { s, id, RTCtypeVALUE, docRtfReadTimeField, }
1515
1516 RTF_TIME_NUMBER( "hr", RTFidHR ),
1517 RTF_TIME_NUMBER( "min", RTFidMIN ),
1518 RTF_TIME_NUMBER( "sec", RTFidSEC ),
1519 RTF_TIME_NUMBER( "dy", RTFidDY ),
1520 RTF_TIME_NUMBER( "mo", RTFidMO ),
1521 RTF_TIME_NUMBER( "yr", RTFidYR ),
1522
1523 /****************************************/
1524 /* Unsupported W2002 revision */
1525 /* control. */
1526 /****************************************/
1527 RTF_REMEMBER( "insrsid", RTFid_NOT_SUPPORTED ),
1528 RTF_REMEMBER( "rsidroot", RTFid_NOT_SUPPORTED ),
1529 RTF_REMEMBER( "delrsid", RTFid_NOT_SUPPORTED ),
1530 RTF_REMEMBER( "charrsid", RTFid_NOT_SUPPORTED ),
1531 RTF_REMEMBER( "sectrsid", RTFid_NOT_SUPPORTED ),
1532 RTF_REMEMBER( "pararsid", RTFid_NOT_SUPPORTED ),
1533 RTF_REMEMBER( "tblrsid", RTFid_NOT_SUPPORTED ),
1534 RTF_REMEMBER( "styrsid", RTFid_NOT_SUPPORTED ),
1535
1536 /****************************************/
1537 /* List table &c. */
1538 /****************************************/
1539 # define RTF_LISTLEV_NUMBER(s,id) \
1540 { s, id, RTCtypeVALUE, docRtfRememberListLevelProperty, }
1541
1542 # define RTF_LIST_NUMBER(s,id) \
1543 { s, id, RTCtypeVALUE, docRtfRememberListProperty, }
1544 # define RTF_LIST_ENUM(s,id,v) \
1545 { s, id, RTCtypeENUM, docRtfRememberListProperty, v, }
1546 # define RTF_LIST_FLAG(s,id) \
1547 { s, id, RTCtypeFLAG, docRtfRememberListProperty, }
1548
1549 RTF_DEST_XX( "list", DPpropLISTTABLE,
1550 docRtfRememberList ),
1551 RTF_DEST_XX( "listlevel", DLpropLEVELS,
1552 docRtfRememberListLevel ),
1553
1554 RTF_TEXT_GROUP( "leveltext", LLpropTEXT,
1555 docRtfCommitListLevelText ),
1556 RTF_BYTE_GROUP( "levelnumbers", LLpropNUMBERS,
1557 docRtfCommitListLevelNumbers ),
1558 RTF_TEXT_GROUP( "listname", DLpropNAME,
1559 docRtfCommitListName ),
1560 RTF_TEXT_GROUP( "liststylename", DLpropSTYLENAME,
1561 docRtfCommitListStyleName ),
1562
1563 RTF_LISTLEV_NUMBER( "levelstartat", LLpropSTARTAT ),
1564 RTF_LISTLEV_NUMBER( "levelnfcn", LLpropSTYLE ),
1565 RTF_LISTLEV_NUMBER( "levelnfc", LLpropSTYLE ), /**/
1566 RTF_LISTLEV_NUMBER( "leveljcn", LLpropJUSTIFY ),
1567 RTF_LISTLEV_NUMBER( "leveljc", LLpropJUSTIFY ), /**/
1568 RTF_LISTLEV_NUMBER( "levelfollow", LLpropFOLLOW ),
1569 RTF_LISTLEV_NUMBER( "levellegal", LLpropLEGAL ),
1570 RTF_LISTLEV_NUMBER( "levelnorestart", LLpropNORESTART ),
1571 RTF_LISTLEV_NUMBER( "levelpicture", LLpropPICTURE ),
1572 RTF_LISTLEV_NUMBER( "fbias", LLpropFBIAS ),
1573
1574 RTF_LIST_FLAG( "lvltentative", RTFid_NOT_SUPPORTED ),
1575
1576 RTF_LISTLEV_NUMBER( "leveltemplateid", LLpropTEMPLATEID ),
1577
1578 RTF_LISTLEV_NUMBER( "levelold", LLpropOLD ), /**/
1579 RTF_LISTLEV_NUMBER( "levelprev", LLpropPREV ), /**/
1580 RTF_LISTLEV_NUMBER( "levelprevspace", LLpropPREVSPACE ), /**/
1581 RTF_LISTLEV_NUMBER( "levelindent", LLpropINDENT ), /**/
1582 RTF_LISTLEV_NUMBER( "levelspace", LLpropSPACE ), /**/
1583
1584 RTF_LIST_NUMBER( "listid", DLpropLISTID ),
1585 RTF_LIST_NUMBER( "listtemplateid", DLpropTEMPLATEID ),
1586 RTF_LIST_ENUM( "listsimple", DLpropHYBRID, 0 ),
1587 RTF_LIST_ENUM( "listhybrid", DLpropHYBRID, 1 ),
1588 RTF_LIST_FLAG( "listrestarthdn", DLpropRESTARTHDN ),
1589 RTF_LIST_NUMBER( "liststyleid", DLpropSTYLEID ),
1590
1591 RTF_LISTOVERR_NUMBER( "listoverridecount", LOpropOVERRIDECOUNT ),
1592 /* "listid" -> LOpropLISTID used via list */
1593 /* "ls" -> LOpropINDEX used via paragraph properties */
1594
1595 RTF_LISTOVERRLEV_FLAG( "listoverridestartat", LOLpropSTARTAT ),
1596 RTF_LISTOVERRLEV_FLAG( "listoverrideformat", LOLpropFORMAT ),
1597
1598 /****************************************/
1599 /* Tab stops. */
1600 /* */
1601 /* "tql" is not part of the rtf spec */
1602 /* but it can be found in some */
1603 /* documents. */
1604 /* */
1605 /* "tx" is handeled differently. */
1606 /* */
1607 /****************************************/
1608 # define RTF_TAB_ENUM(s,id,v) \
1609 { s, id, RTCtypeENUM, docRtfRememberTabStopProperty, v }
1610 # define RTF_TAB_FLAG(s,id) \
1611 { s, id, RTCtypeFLAG, docRtfRememberTabStopProperty }
1612 # define RTF_TAB_NUMBER(s,id) \
1613 { s, id, RTCtypeVALUE, docRtfRememberTabStopProperty, }
1614
1615 RTF_TAB_ENUM( RTFtag_tql, TABpropALIGN, DOCtaLEFT ),
1616 RTF_TAB_ENUM( RTFtag_tqr, TABpropALIGN, DOCtaRIGHT ),
1617 RTF_TAB_ENUM( RTFtag_tqc, TABpropALIGN, DOCtaCENTER ),
1618 RTF_TAB_ENUM( RTFtag_tqdec, TABpropALIGN, DOCtaDECIMAL ),
1619
1620 RTF_TAB_ENUM( "tldot", TABpropLEADER, DOCtlDOTS ),
1621 RTF_TAB_ENUM( "tlul", TABpropLEADER, DOCtlUNDERLINE ),
1622 RTF_TAB_ENUM( "tlhyph", TABpropLEADER, DOCtlHYPH ),
1623 RTF_TAB_ENUM( "tlth", TABpropLEADER, DOCtlTHICK ),
1624 RTF_TAB_ENUM( "tleq", TABpropLEADER, DOCtlEQUAL ),
1625
1626 RTF_TAB_FLAG( "jclisttab", TABpropFROM_STYLE ),
1627
1628 RTF_TAB_NUMBER( "tx", TABpropX ),
1629
1630 RTF_REMEMBER( "tb", RTFid_NOT_SUPPORTED ),
1631
1632 /****************************************/
1633 /* Font table. */
1634 /****************************************/
1635 # define RTF_FONT_ENUM(s,id,v) \
1636 { s, id, RTCtypeENUM, docRtfFontProperty, v }
1637 # define RTF_FONT_NUMBER(s,id) \
1638 { s, id, RTCtypeVALUE, docRtfFontProperty, }
1639
1640 RTF_FONT_ENUM( "fnil", DFpropFAMILY_STYLE, DFstyleFNIL ),
1641 RTF_FONT_ENUM( "froman", DFpropFAMILY_STYLE, DFstyleFROMAN ),
1642 RTF_FONT_ENUM( "fswiss", DFpropFAMILY_STYLE, DFstyleFSWISS ),
1643 RTF_FONT_ENUM( "fmodern", DFpropFAMILY_STYLE, DFstyleFMODERN ),
1644 RTF_FONT_ENUM( "fscript", DFpropFAMILY_STYLE, DFstyleFSCRIPT ),
1645 RTF_FONT_ENUM( "fdecor", DFpropFAMILY_STYLE, DFstyleFDECOR ),
1646 RTF_FONT_ENUM( "ftech", DFpropFAMILY_STYLE, DFstyleFTECH ),
1647 RTF_FONT_ENUM( "fbidi", DFpropFAMILY_STYLE, DFstyleFBIDI ),
1648
1649 RTF_FONT_NUMBER( "fcharset", DFpropCHARSET ),
1650 RTF_FONT_NUMBER( "cpg", DFpropCODEPAGE ),
1651 RTF_FONT_NUMBER( "fprq", DFpropPITCH ),
1652
1653 /****************************************/
1654 /* Pictures/Objects */
1655 /****************************************/
1656
1657 # define RTF_PICT_TYPE(s,id,v) \
1658 { s, id, RTCtypeANY, docRtfPictureProperty, v }
1659 # define RTF_PICT_NUMBER(s,id) \
1660 { s, id, RTCtypeVALUE, docRtfPictureProperty, }
1661 # define RTF_PICT_FLAG(s,id) \
1662 { s, id, RTCtypeFLAG, docRtfPictureProperty, }
1663
1664 RTF_PICT_TYPE( "macpict", PIPpropTYPE, DOCokMACPICT ),
1665 RTF_PICT_TYPE( "wmetafile", PIPpropTYPE, DOCokPICTWMETAFILE ),
1666 RTF_PICT_TYPE( "pngblip", PIPpropTYPE, DOCokPICTPNGBLIP ),
1667 RTF_PICT_TYPE( "jpegblip", PIPpropTYPE, DOCokPICTJPEGBLIP ),
1668 RTF_PICT_TYPE( "emfblip", PIPpropTYPE, DOCokPICTEMFBLIP ),
1669 RTF_PICT_TYPE( "dibitmap", PIPpropTYPE, DOCokDIBITMAP ),
1670 RTF_PICT_TYPE( "wbitmap", PIPpropTYPE, DOCokWBITMAP ),
1671 RTF_PICT_TYPE( "pmmetafile",PIPpropTYPE, DOCokPMMETAFILE ),
1672
1673 RTF_PICT_NUMBER( "wbmbitspixel", PIPpropWBMBITSPIXEL ),
1674 RTF_PICT_NUMBER( "wbmplanes", PIPpropWBMPLANES ),
1675 RTF_PICT_NUMBER( "wbmwidthbytes", PIPpropWBMWIDTHBYTES ),
1676
1677 RTF_PICT_NUMBER( "picw", PIPpropPICX_WIN_EXT ),
1678 RTF_PICT_NUMBER( "pich", PIPpropPICY_WIN_EXT ),
1679
1680 RTF_PICT_NUMBER( "picwgoal", PIPpropPICTWIPS_WIDE ),
1681 RTF_PICT_NUMBER( "pichgoal", PIPpropPICTWIPS_HIGH ),
1682
1683 RTF_PICT_NUMBER( "picscalex", PIPpropPICSCALE_X ),
1684 RTF_PICT_NUMBER( "picscaley", PIPpropPICSCALE_Y ),
1685
1686 RTF_PICT_NUMBER( "piccropt", PIPpropPICCROP_TOP ),
1687 RTF_PICT_NUMBER( "piccropb", PIPpropPICCROP_BOTTOM ),
1688 RTF_PICT_NUMBER( "piccropl", PIPpropPICCROP_LEFT ),
1689 RTF_PICT_NUMBER( "piccropr", PIPpropPICCROP_RIGHT ),
1690
1691 RTF_PICT_FLAG( "defshp", PIPpropDEFSHP ),
1692
1693 RTF_PICT_FLAG( "picscaled", PIPpropPICSCALED ),
1694
1695 RTF_PICT_NUMBER( "bliptag", PIPpropBLIPTAG ),
1696
1697 RTF_PICT_FLAG( "picbmp", PIPpropPICBMP ),
1698 RTF_PICT_NUMBER( "picbpp", PIPpropPICBPP ),
1699 RTF_PICT_NUMBER( "blipupi", PIPpropBLIPUPI ),
1700
1701 # define RTF_OBJ_ENUM(s,id,v) \
1702 { s, id, RTCtypeENUM, docRtfObjectProperty, v }
1703 # define RTF_OBJ_NUMBER(s,id) \
1704 { s, id, RTCtypeVALUE, docRtfObjectProperty, }
1705 # define RTF_OBJ_FLAG(s,id) \
1706 { s, id, RTCtypeFLAG, docRtfObjectProperty, }
1707
1708 RTF_OBJ_ENUM( "rsltrtf", IOpropRESULT_KIND, RESULTkindRTF ),
1709 RTF_OBJ_ENUM( "rslttxt", IOpropRESULT_KIND, RESULTkindTXT ),
1710 RTF_OBJ_ENUM( "rsltpict", IOpropRESULT_KIND, RESULTkindPICT ),
1711 RTF_OBJ_ENUM( "rsltbmp", IOpropRESULT_KIND, RESULTkindBMP ),
1712 RTF_OBJ_ENUM( "rslthtml", IOpropRESULT_KIND, RESULTkindHTML ),
1713
1714 RTF_OBJ_ENUM( "objemb", IOpropEMBED_KIND, EMBEDkindOBJEMB ),
1715 RTF_OBJ_ENUM( "objlink", IOpropEMBED_KIND, EMBEDkindOBJLINK ),
1716 RTF_OBJ_ENUM( "objautlink", IOpropEMBED_KIND, EMBEDkindOBJAUTLINK ),
1717 RTF_OBJ_ENUM( "objsub", IOpropEMBED_KIND, EMBEDkindOBJSUB ),
1718 RTF_OBJ_ENUM( "objpub", IOpropEMBED_KIND, EMBEDkindOBJPUB ),
1719 RTF_OBJ_ENUM( "objicemb", IOpropEMBED_KIND, EMBEDkindOBJICEMB ),
1720 RTF_OBJ_ENUM( "objhtml", IOpropEMBED_KIND, EMBEDkindOBJHTML ),
1721 RTF_OBJ_ENUM( "objocx", IOpropEMBED_KIND, EMBEDkindOBJOCX ),
1722
1723 RTF_OBJ_NUMBER( "objw", IOpropOBJTWIPS_WIDE ),
1724 RTF_OBJ_NUMBER( "objh", IOpropOBJTWIPS_HIGH ),
1725
1726 RTF_OBJ_NUMBER( "objscalex", IOpropOBJSCALE_X ),
1727 RTF_OBJ_NUMBER( "objscaley", IOpropOBJSCALE_Y ),
1728
1729 RTF_OBJ_NUMBER( "objcropt", IOpropOBJCROP_TOP ),
1730 RTF_OBJ_NUMBER( "objcropb", IOpropOBJCROP_BOTTOM ),
1731 RTF_OBJ_NUMBER( "objcropl", IOpropOBJCROP_LEFT ),
1732 RTF_OBJ_NUMBER( "objcropr", IOpropOBJCROP_RIGHT ),
1733
1734 RTF_OBJ_NUMBER( "objsetsize", IOprop_UNSUPPORTED ),
1735 RTF_OBJ_NUMBER( "rsltmerge", IOprop_UNSUPPORTED ),
1736
1737 /****************************************/
1738 /* Special characters (mostly ignored) */
1739 /****************************************/
1740 # define RTF_SPECIAL_CHAR(s,id) \
1741 { s, id, RTCtypeSYMBOL, docRtfTextSpecialChar, }
1742
1743 RTF_SPECIAL_CHAR( "bullet", ISO1_periodcentered ),
1744 RTF_SPECIAL_CHAR( "emdash", ISO1_hyphen ),
1745 RTF_SPECIAL_CHAR( "emspace", ISO1_space ),
1746 RTF_SPECIAL_CHAR( "endash", ISO1_hyphen ),
1747 RTF_SPECIAL_CHAR( "enspace", ISO1_space ),
1748 RTF_SPECIAL_CHAR( "ldblquote", ISO1_quotedbl ),
1749 RTF_SPECIAL_CHAR( "lquote", ASCII_quoteleft ),
1750 RTF_SPECIAL_CHAR( "rdblquote", ISO1_quotedbl ),
1751 RTF_SPECIAL_CHAR( "rquote", ISO1_quotesingle ),
1752
1753 RTF_SPECIAL_CHAR( "softcol", ISO1_space ),
1754 RTF_SPECIAL_CHAR( "softlheight", ISO1_space ),
1755 RTF_SPECIAL_CHAR( "softline", ISO1_space ),
1756 RTF_SPECIAL_CHAR( "softpage", ISO1_space ),
1757 RTF_SPECIAL_CHAR( "zwj", ISO1_space ),
1758 RTF_SPECIAL_CHAR( "zwnj", ISO1_space ),
1759
1760 # define RTF_UNICODE(s,id) \
1761 { s, id, RTCtypeVALUE, docRtfTextUnicode, }
1762
1763 RTF_UNICODE( "u", ISO1_space ),
1764
1765 # define RTF_SPECIAL_PART(s,id) \
1766 { s, id, RTCtypeANY, docRtfTextSpecialParticule, }
1767 # define RTF_BIDI_MARK(s,id) \
1768 { s, id, RTCtypeANY, docRtfTextBidiMark, }
1769
1770 RTF_SPECIAL_PART( "-", DOCkindOPT_HYPH ),
1771 RTF_SPECIAL_PART( "tab", DOCkindTAB ),
1772 RTF_SPECIAL_PART( "line", DOCkindLINEBREAK ),
1773 RTF_SPECIAL_PART( "lbr", DOCkindLINEBREAK ),
1774 RTF_SPECIAL_PART( "page", DOCkindPAGEBREAK ),
1775 RTF_SPECIAL_PART( "column", DOCkindCOLUMNBREAK ),
1776 RTF_SPECIAL_PART( "chftnsep", DOCkindCHFTNSEP ),
1777 RTF_SPECIAL_PART( "chftnsepc", DOCkindCHFTNSEPC ),
1778 RTF_SPECIAL_PART( "ltrmark", DOCkindLTR_MARK ),
1779 RTF_SPECIAL_PART( "rtlmark", DOCkindRTL_MARK ),
1780
1781 RTF_BIDI_MARK( "ltrch", UNI_LEFT_TO_RIGHT_EMBEDDING ),
1782 RTF_BIDI_MARK( "rtlch", UNI_RIGHT_TO_LEFT_EMBEDDING ),
1783
1784 # define RTF_SPECIAL_FIELD(s,id) \
1785 { s, id, RTCtypeANY, docRtfTextSpecialToField, }
1786
1787 RTF_SPECIAL_FIELD( "chdate", DOCfkDATE ),
1788 RTF_SPECIAL_FIELD( "chpgn", DOCfkPAGE ),
1789 RTF_SPECIAL_FIELD( "chtime", DOCfkTIME ),
1790 RTF_SPECIAL_FIELD( RTFtag_chftn, DOCfkCHFTN ),
1791 RTF_SPECIAL_FIELD( "chatn", DOCfkCHATN ),
1792 RTF_SPECIAL_FIELD( "sectnum", DOCfkSECTION ),
1793
1794 RTF_SPECIAL_FIELD( "chdpa", DOCfkDATE ),
1795 RTF_SPECIAL_FIELD( "chdpl", DOCfkDATE ),
1796
1797 /****************************************/
1798 /* Word 95 drawing objects. */
1799 /****************************************/
1800 # define RTF_DO_FLAG(s,id) \
1801 { s, id, RTCtypeFLAG, docRtfDrawingObjectProperty }
1802 # define RTF_DO_ENUM(s,id,v) \
1803 { s, id, RTCtypeENUM, docRtfDrawingObjectProperty, v }
1804 # define RTF_DO_NUMBER(s,id) \
1805 { s, id, RTCtypeVALUE, docRtfDrawingObjectProperty }
1806 # define RTF_DO_COORD(s,id) \
1807 { s, id, RTCtypeVALUE, docRtfDrawingObjectCoordinate }
1808
1809 RTF_DO_FLAG( "dolock", DOpropANCHOR_LOCKED ),
1810
1811 RTF_DO_ENUM( "dobxpage", DOpropX_ATTACH, FXrefPAGE ),
1812 RTF_DO_ENUM( "dobxcolumn", DOpropX_ATTACH, FXrefCOLUMN ),
1813 RTF_DO_ENUM( "dobxmargin", DOpropX_ATTACH, FXrefMARGIN ),
1814
1815 RTF_DO_ENUM( "dobypage", DOpropY_ATTACH, FYrefPAGE ),
1816 RTF_DO_ENUM( "dobypara", DOpropY_ATTACH, FYrefPARA ),
1817 RTF_DO_ENUM( "dobymargin", DOpropY_ATTACH, FYrefMARGIN ),
1818
1819 RTF_DO_ENUM( "dparc", DOpropKIND, SHPtyARC ),
1820 RTF_DO_ENUM( "dpcallout", DOpropKIND, SHPtyCALLOUT_1 ),
1821 RTF_DO_ENUM( "dpellipse", DOpropKIND, SHPtyELLIPSE ),
1822 RTF_DO_ENUM( "dpline", DOpropKIND, SHPtyLINE ),
1823 RTF_DO_ENUM( "dppolygon", DOpropKIND, SHPtyFREEFORM_OR_NON_AUTOSHAPE ),
1824 RTF_DO_ENUM( "dppolyline", DOpropKIND, SHPtyFREEFORM_OR_NON_AUTOSHAPE ),
1825 RTF_DO_ENUM( "dprect", DOpropKIND, SHPtyRECTANGLE ),
1826 RTF_DO_ENUM( "dptxbx", DOpropKIND, SHPtyTEXT_BOX ),
1827
1828 RTF_DO_ENUM( "dplinesolid", DOpropLINE_STYLE, DSdashSOLID ),
1829 RTF_DO_ENUM( "dplinehollow",DOpropLINE_STYLE, DSdashHOLLOW ),
1830 RTF_DO_ENUM( "dplinedash", DOpropLINE_STYLE, DSdashDASHED ),
1831 RTF_DO_ENUM( "dplinedot", DOpropLINE_STYLE, DSdashDOT ),
1832 RTF_DO_ENUM( "dplinedado", DOpropLINE_STYLE, DSdashDASHDOT ),
1833 RTF_DO_ENUM( "dplinedadodo",DOpropLINE_STYLE, DSdashDASHDOTDOT ),
1834
1835 RTF_DO_ENUM( "dpaendhol", DOpropEND_ARROW_HEAD, DSarrowOPEN_ARROW ),
1836 RTF_DO_ENUM( "dpaendsol", DOpropEND_ARROW_HEAD, DSarrowARROW ),
1837 RTF_DO_ENUM( "dpastarthol", DOpropSTART_ARROW_HEAD, DSarrowOPEN_ARROW ),
1838 RTF_DO_ENUM( "dpastartsol", DOpropSTART_ARROW_HEAD, DSarrowARROW ),
1839
1840 RTF_DO_NUMBER( "dpaendl", DOpropEND_ARROW_LENGTH ),
1841 RTF_DO_NUMBER( "dpastartl", DOpropSTART_ARROW_LENGTH ),
1842 RTF_DO_NUMBER( "dpaendw", DOpropEND_ARROW_WIDTH ),
1843 RTF_DO_NUMBER( "dpastartw", DOpropSTART_ARROW_WIDTH ),
1844
1845 RTF_DO_NUMBER( "dpfillpat", DOpropFILL_PATTERN ),
1846
1847 RTF_DO_FLAG( "dparcflipx", DOpropARC_FLIP_X ),
1848 RTF_DO_FLAG( "dparcflipy", DOpropARC_FLIP_Y ),
1849
1850 RTF_DO_NUMBER( "dpx", DOpropX ),
1851 RTF_DO_NUMBER( "dpy", DOpropY ),
1852 RTF_DO_NUMBER( "dodhgt", DOpropZ ),
1853 RTF_DO_NUMBER( "dpxsize", DOpropWIDE ),
1854 RTF_DO_NUMBER( "dpysize", DOpropHIGH ),
1855
1856 RTF_DO_NUMBER( "dptxbxmar", DOpropTEXT_BOX_MARGIN ),
1857
1858 RTF_DO_NUMBER( "dplinew", DOpropLINE_WIDTH ),
1859 RTF_DO_NUMBER( "dppolycount",DOpropPOINT_COUNT ),
1860
1861 RTF_DO_NUMBER( "dplinecor", DOpropLINE_RED ),
1862 RTF_DO_NUMBER( "dplinecog", DOpropLINE_GREEN ),
1863 RTF_DO_NUMBER( "dplinecob", DOpropLINE_BLUE ),
1864 RTF_DO_NUMBER( "dplinegray", DOpropLINE_GRAY ),
1865
1866 RTF_DO_NUMBER( "dpfillfgcr", DOpropFILL_FORE_RED ),
1867 RTF_DO_NUMBER( "dpfillfgcg", DOpropFILL_FORE_GREEN ),
1868 RTF_DO_NUMBER( "dpfillfgcb", DOpropFILL_FORE_BLUE ),
1869 RTF_DO_NUMBER( "dpfillfggray", DOpropFILL_FORE_GRAY ),
1870
1871 RTF_DO_NUMBER( "dpfillbgcr", DOpropFILL_BACK_RED ),
1872 RTF_DO_NUMBER( "dpfillbgcg", DOpropFILL_BACK_GREEN ),
1873 RTF_DO_NUMBER( "dpfillbgcb", DOpropFILL_BACK_BLUE ),
1874 RTF_DO_NUMBER( "dpfillbggray", DOpropFILL_BACK_GRAY ),
1875
1876 RTF_DO_COORD( "dpptx", DOpropX ),
1877 RTF_DO_COORD( "dppty", DOpropY ),
1878
1879 RTF_DO_ENUM( "dptxlrtb", DOpropTEXT_FLOW, TXflowTXLRTB ),
1880 RTF_DO_ENUM( "dptxtbrl", DOpropTEXT_FLOW, TXflowTXTBRL ),
1881 RTF_DO_ENUM( "dptxbtlr", DOpropTEXT_FLOW, TXflowTXBTLR ),
1882 RTF_DO_ENUM( "dptxlrtbv", DOpropTEXT_FLOW, TXflowTXLRTBV ),
1883 RTF_DO_ENUM( "dptxtbrlv", DOpropTEXT_FLOW, TXflowTXTBRLV ),
1884
1885 /****************************************/
1886 /* Shapes. */
1887 /****************************************/
1888
1889 # define RTF_SHAPE_NUMBER(s,id) \
1890 { s, id, RTCtypeVALUE, docRtfShpProperty, }
1891 # define RTF_SHAPE_FLAG(s,id) \
1892 { s, id, RTCtypeFLAG, docRtfShpProperty, }
1893 # define RTF_SHAPE_ENUM(s,id,v) \
1894 { s, id, RTCtypeENUM, docRtfShpProperty, v, }
1895
1896 RTF_SHAPE_NUMBER( "shpleft", SHPpropLEFT ),
1897 RTF_SHAPE_NUMBER( "shptop", SHPpropTOP ),
1898 RTF_SHAPE_NUMBER( "shpbottom", SHPpropBOTTOM ),
1899 RTF_SHAPE_NUMBER( "shpright", SHPpropRIGHT ),
1900
1901 RTF_SHAPE_NUMBER( "shplid", SHPpropLID ),
1902 RTF_SHAPE_NUMBER( "shpz", SHPpropZ ),
1903
1904 RTF_SHAPE_FLAG( "shpfhdr", SHPpropFHDR ),
1905
1906 RTF_SHAPE_ENUM( "shpbxmargin", SHPpropBX, FXrefMARGIN ),
1907 RTF_SHAPE_ENUM( "shpbxpage", SHPpropBX, FXrefPAGE ),
1908 RTF_SHAPE_ENUM( "shpbxcolumn", SHPpropBX, FXrefCOLUMN ),
1909 /*RTF_SHAPE_ENUM( "shpbx?", SHPpropBX, FXrefCHARACTER ),*/
1910 RTF_SHAPE_ENUM( "shpbxignore", SHPpropBX, FXrefIGNORE ),
1911
1912 RTF_SHAPE_ENUM( "shpbymargin", SHPpropBY, FYrefMARGIN ),
1913 RTF_SHAPE_ENUM( "shpbypage", SHPpropBY, FYrefPAGE ),
1914 RTF_SHAPE_ENUM( "shpbypara", SHPpropBY, FYrefPARA ),
1915 /*RTF_SHAPE_ENUM( "shpby?", SHPpropBY, FYrefLINE ),*/
1916 RTF_SHAPE_ENUM( "shpbyignore", SHPpropBY, FYrefIGNORE ),
1917
1918 RTF_SHAPE_NUMBER( "shpwr", SHPpropWR ),
1919 RTF_SHAPE_NUMBER( "shpwrk", SHPpropWRK ),
1920 RTF_SHAPE_NUMBER( "shpfblwtxt", SHPpropFBLWTXT ),
1921
1922 RTF_SHAPE_FLAG( "shplockanchor", SHPpropLOCKANCHOR ),
1923
1924 /****************************************/
1925 /* Silently ignore \upr. */
1926 /****************************************/
1927 RTF_REMEMBER( "upr", RTFid_NOT_SUPPORTED ),
1928
1929 /****************************************/
1930 /* Various destinations without a */
1931 /* dedicated scope. */
1932 /****************************************/
1933
1934 RTF_DEST_XX( "fonttbl", DPpropFONTTABLE, docRtfFontTable ),
1935 RTF_DEST_XX( "colortbl", DPpropCOLORTABLE, docRtfColorTable ),
1936 RTF_DEST_XX( "stylesheet", DPpropSTYLESHEET, docRtfStylesheet ),
1937 RTF_DEST_XX( "listtable", DPpropLISTTABLE, docRtfListTable ),
1938 RTF_DEST_XX( "listoverridetable",
1939 DPpropLISTOVERRIDETABLE,
1940 docRtfListOverrideTable ),
1941 RTF_DEST_XX( "info", DPprop_INFO, docRtfReadInfo ),
1942 RTF_DEST_XX( "revtbl", 0, docRtfSkipGroup ),
1943 RTF_DEST_XX( "pn", RTFidPN, docRtfSkipPn ),
1944 RTF_DEST_XX( "pntext", DOCfkLISTTEXT, docRtfReadTextField ),
1945 RTF_DEST_XX( RTFtag_pict, PICshpPICT, docRtfReadPict ),
1946 RTF_DEST_XX( "do", RTFidDO, docRtfReadDrawingObject ),
1947 RTF_DEST_XX( "nonshppict", PICshpNONSHPPICT, docRtfReadShpXPict ),
1948 RTF_DEST_XX( "shppict", PICshpSHPPICT, docRtfReadShpXPict ),
1949 RTF_DEST_XX( "object", DOCokOLEOBJECT, docRtfReadObject ),
1950 RTF_DEST_XX( "field", RTFidFIELD, docRtfReadField ),
1951 RTF_DEST_XX( "shp", SHPtyUNKNOWN, docRtfReadShape ),
1952 RTF_DEST_XX( "shpgrp", SHPtyGROUP, docRtfReadShape ),
1953
1954 RTF_DEST_XX( "xe", DOCfkXE, docRtfLookupEntry ),
1955 /*
1956 RTF_DEST_XX( "tc", DOCfkTC, docRtfLookupEntry ),
1957 RTF_DEST_XX( "tcn", DOCfkTCN, docRtfLookupEntry ),
1958
1959 RTF_DEST_XX( "nonesttables", 1, docRtfSkipGroup ),
1960 */
1961
1962 /****************************************/
1963 /* Headers and Footers. */
1964 /****************************************/
1965 RTF_DEST_XX( "footer", DOCinRIGHT_FOOTER, docRtfReadExtTree ),
1966 RTF_DEST_XX( "footerf", DOCinFIRST_FOOTER, docRtfReadExtTree ),
1967 RTF_DEST_XX( "footerl", DOCinLEFT_FOOTER, docRtfReadExtTree ),
1968 RTF_DEST_XX( "footerr", DOCinRIGHT_FOOTER, docRtfReadExtTree ),
1969
1970 RTF_DEST_XX( "header", DOCinRIGHT_HEADER, docRtfReadExtTree ),
1971 RTF_DEST_XX( "headerf", DOCinFIRST_HEADER, docRtfReadExtTree ),
1972 RTF_DEST_XX( "headerl", DOCinLEFT_HEADER, docRtfReadExtTree ),
1973 RTF_DEST_XX( "headerr", DOCinRIGHT_HEADER, docRtfReadExtTree ),
1974
1975 RTF_DEST_XX( "ftnsep", DOCinFTNSEP, docRtfReadExtTree ),
1976 RTF_DEST_XX( "ftnsepc", DOCinFTNSEPC, docRtfReadExtTree ),
1977 RTF_DEST_XX( "ftncn", DOCinFTNCN, docRtfReadExtTree ),
1978
1979 RTF_DEST_XX( "aftnsep", DOCinAFTNSEP, docRtfReadExtTree ),
1980 RTF_DEST_XX( "aftnsepc", DOCinAFTNSEPC, docRtfReadExtTree ),
1981 RTF_DEST_XX( "aftncn", DOCinAFTNCN, docRtfReadExtTree ),
1982
1983 RTF_DEST_XX( RTFtag_footnote, DOCinFOOTNOTE, docRtfReadFootnote ),
1984 RTF_DEST_XX( "annotation", DOCinANNOTATION, docRtfReadFootnote ),
1985
1986 /****************************************/
1987 /* Multilevel Lists. */
1988 /****************************************/
1989 RTF_DEST_XX( "pnseclvl", RTFidPNSECLVL, docRtfReadPnseclvl ),
1990 /****************************************/
1991 /* Lists. */
1992 /****************************************/
1993 RTF_DEST_XX( "listtext", DOCfkLISTTEXT, docRtfReadTextField ),
1994 /****************************************/
1995 /* Bookmarks */
1996 /****************************************/
1997 RTF_DEST_XX( "bkmkstart", RTFidBKMKSTART, docRtfBkmkStart ),
1998 RTF_DEST_XX( "bkmkend", RTFidBKMKEND, docRtfBkmkEnd ),
1999 /********************************************/
2000 /* Shape Properties. */
2001 /********************************************/
2002 RTF_DEST_XX( "sp", 1, docRtfShapeProperty ),
2003 RTF_DEST_XX( "sn", 1, docRtfShapePropertyName ),
2004 RTF_DEST_XX( "sv", 1, docRtfShapePropertyValue ),
2005 /****************************************/
2006 /* To deal with faulty documents. */
2007 /****************************************/
2008 /*
2009 RTF_DEST_XX( "trowd", DOClevROW, docRtfReadRowProperties ),
2010 */
2011 RTF_DEST_XX( "nesttableprops", DOClevROW, docRtfReadRowProperties ),
2012
2013 /****************************************/
2014 /* Inside the \info destination. */
2015 /****************************************/
2016 RTF_TEXT_GROUP( "title", DPpropTITLE, docRtfCommitDocPropText ),
2017 RTF_TEXT_GROUP( "author", DPpropAUTHOR, docRtfCommitDocPropText ),
2018 RTF_TEXT_GROUP( "company", DPpropCOMPANY, docRtfCommitDocPropText ),
2019 RTF_TEXT_GROUP( "subject", DPpropSUBJECT, docRtfCommitDocPropText ),
2020 RTF_TEXT_GROUP( "keywords", DPpropKEYWORDS, docRtfCommitDocPropText ),
2021 RTF_TEXT_GROUP( "comment", DPpropDOCCOMM, docRtfCommitDocPropText ),
2022 RTF_TEXT_GROUP( "doccomm", DPpropDOCCOMM, docRtfCommitDocPropText ),
2023 RTF_TEXT_GROUP( RTFtag_hlinkbase, DPpropHLINKBASE,docRtfCommitDocPropText ),
2024 /****************************************/
2025 /* Outside the \info destination. */
2026 /****************************************/
2027 RTF_TEXT_GROUP( "generator",DPpropGENERATOR,docRtfCommitDocPropText ),
2028
2029
2030 RTF_DEST_XX( "creatim", DPpropCREATIM, docRtfDocTimeGroup ),
2031 RTF_DEST_XX( RTFtag_revtim, DPpropREVTIM, docRtfDocTimeGroup ),
2032 RTF_DEST_XX( "printim", DPpropPRINTIM, docRtfDocTimeGroup ),
2033
2034 RTF_DEST_XX( "operator", RTFidOPERATOR, docRtfSkipGroup ),
2035 RTF_DEST_XX( "version", RTFidVERSION, docRtfSkipGroup ),
2036 RTF_DEST_XX( "edmins", RTFidEDMINS, docRtfSkipGroup ),
2037 RTF_DEST_XX( "nofpages", RTFidNOFPAGES, docRtfSkipGroup ),
2038 RTF_DEST_XX( "nofwords", RTFidNOFWORDS, docRtfSkipGroup ),
2039 RTF_DEST_XX( "nofchars", RTFidNOFCHARS, docRtfSkipGroup ),
2040 RTF_DEST_XX( "nofcharsws", RTFidNOFCHARSWS,docRtfSkipGroup ),
2041 RTF_DEST_XX( "vern", RTFidVERN, docRtfSkipGroup ),
2042
2043 /****************************************/
2044 /* The Undo/Redo/Repeat trace. */
2045 /****************************************/
2046 # define RTF_OLD_SCOPE_NUMBER(s,id) \
2047 { s, id, RTCtypeVALUE, docRtfSelectionScopeProperty, }
2048 # define RTF_NEW_SCOPE_NUMBER(s,id) \
2049 { s, SSprop_COUNT+ id, RTCtypeVALUE, docRtfSelectionScopeProperty, }
2050 # define RTF_RANGE_NUMBER(s,id) \
2051 { s, id, RTCtypeVALUE, docRtfEditRangeProperty, }
2052 # define RTF_RANGE_ENUM(s,id,v) \
2053 { s, id, RTCtypeENUM, docRtfEditRangeProperty, v, }
2054
2055 RTF_OLD_SCOPE_NUMBER( RTFtag_OTT, SSpropTREE_TYPE ),
2056 RTF_OLD_SCOPE_NUMBER( RTFtag_OSN, SSpropSECT_NR ),
2057 RTF_OLD_SCOPE_NUMBER( RTFtag_OOSN, SSpropOWNER_SECT_NR ),
2058 RTF_OLD_SCOPE_NUMBER( RTFtag_OON, SSpropOWNER_NR ),
2059 RTF_OLD_SCOPE_NUMBER( RTFtag_OPG, SSpropPAGE ),
2060 RTF_OLD_SCOPE_NUMBER( RTFtag_OCO, SSpropCOLUMN ),
2061
2062 RTF_NEW_SCOPE_NUMBER( RTFtag_NTT, SSpropTREE_TYPE ),
2063 RTF_NEW_SCOPE_NUMBER( RTFtag_NSN, SSpropSECT_NR ),
2064 RTF_NEW_SCOPE_NUMBER( RTFtag_NOSN, SSpropOWNER_SECT_NR ),
2065 RTF_NEW_SCOPE_NUMBER( RTFtag_NON, SSpropOWNER_NR ),
2066 RTF_NEW_SCOPE_NUMBER( RTFtag_NPG, SSpropPAGE ),
2067 RTF_NEW_SCOPE_NUMBER( RTFtag_NCO, SSpropCOLUMN ),
2068
2069 RTF_RANGE_NUMBER( RTFtag_OHC, TRACEposOLD_HEAD_COL ),
2070 RTF_RANGE_NUMBER( RTFtag_OHP, TRACEposOLD_HEAD_PARA ),
2071 RTF_RANGE_NUMBER( RTFtag_OHS, TRACEposOLD_HEAD_STROFF ),
2072 RTF_RANGE_NUMBER( RTFtag_OTC, TRACEposOLD_TAIL_COL ),
2073 RTF_RANGE_NUMBER( RTFtag_OTP, TRACEposOLD_TAIL_PARA ),
2074 RTF_RANGE_NUMBER( RTFtag_OTS, TRACEposOLD_TAIL_STROFF ),
2075
2076 RTF_RANGE_NUMBER( RTFtag_NHP, TRACEposNEW_HEAD_PARA ),
2077 RTF_RANGE_NUMBER( RTFtag_NHS, TRACEposNEW_HEAD_STROFF ),
2078 RTF_RANGE_NUMBER( RTFtag_NTP, TRACEposNEW_TAIL_PARA ),
2079 RTF_RANGE_NUMBER( RTFtag_NTS, TRACEposNEW_TAIL_STROFF ),
2080
2081 RTF_RANGE_ENUM( RTFtag_SEH, TRACEposSELECTED, SELposHEAD ),
2082 RTF_RANGE_ENUM( RTFtag_SEN, TRACEposSELECTED, SELposNEXT ),
2083 RTF_RANGE_ENUM( RTFtag_SAL, TRACEposSELECTED, SELposALL ),
2084 RTF_RANGE_ENUM( RTFtag_SET, TRACEposSELECTED, SELposTAIL ),
2085 RTF_RANGE_ENUM( RTFtag_SEB, TRACEposSELECTED, SELposBEFORE ),
2086 RTF_RANGE_ENUM( RTFtag_SEA, TRACEposSELECTED, SELposAFTER ),
2087
2088 RTF_RANGE_NUMBER( RTFtag_FLK, TRACEposFIELD_KIND ),
2089
2090 RTF_RANGE_NUMBER( RTFtag_PRL, TRACEposPROP_LEVEL ),
2091
2092 /****************************************/
2093 RTF_DEST_XX( RTFtag__SelOpen+ 2, 1, docRtfSelectionOpen ),
2094
2095 /****************************************/
2096 /* End. */
2097 /****************************************/
2098 { (char *)0, 0, 0 }
2099 };
2100
2101 /************************************************************************/
2102 /* */
2103 /* String constants. */
2104 /* */
2105 /************************************************************************/
2106
2107 const char RTFtag__SelOpen[]= "*\\SelOpen";
2108
2109 const char RTFtag_FLK[]= "FLK";
2110
2111 const char RTFtag_OTX[]= "OTX";
2112 const char RTFtag_NTX[]= "NTX";
2113 const char RTFtag_NPR[]= "NPR";
2114
2115 const char RTFtag_SLI[]= "SLI";
2116 const char RTFtag_SBK[]= "SBK";
2117 const char RTFtag_DFL[]= "DFL";
2118 const char RTFtag_UFL[]= "UFL";
2119 const char RTFtag_ULI[]= "ULI";
2120 const char RTFtag_NLI[]= "NLI";
2121 const char RTFtag_NNO[]= "NNO";
2122 const char RTFtag_UNO[]= "UNO";
2123 const char RTFtag_UTA[]= "UTA";
2124 const char RTFtag_UPP[]= "UPP";
2125 const char RTFtag_UTP[]= "UTP";
2126 const char RTFtag_USP[]= "USP";
2127 const char RTFtag_USDP[]= "USDP";
2128 const char RTFtag_UDP[]= "UDP";
2129 const char RTFtag_REP[]= "REP";
2130 const char RTFtag_REPF[]= "REPF";
2131 const char RTFtag_REPB[]= "REPB";
2132 const char RTFtag_DELS[]= "DELS";
2133 const char RTFtag_DELF[]= "DELF";
2134 const char RTFtag_DELB[]= "DELB";
2135 const char RTFtag_REX[]= "REX";
2136 const char RTFtag_MPA[]= "MPA";
2137
2138 const char RTFtag_DPA[]= "DPA";
2139 const char RTFtag_DSE[]= "DSE";
2140 const char RTFtag_DRW[]= "DRW";
2141 const char RTFtag_DTB[]= "DTB";
2142 const char RTFtag_DCO[]= "DCO";
2143 const char RTFtag_DHD[]= "DHD";
2144 const char RTFtag_DFT[]= "DFT";
2145
2146 const char RTFtag_IPA[]= "IPA";
2147 const char RTFtag_APA[]= "APA";
2148 const char RTFtag_ITB[]= "ITB";
2149 const char RTFtag_ISE[]= "ISE";
2150 const char RTFtag_ASE[]= "ASE";
2151 const char RTFtag_SSE[]= "SSE";
2152 const char RTFtag_IRW[]= "IRW";
2153 const char RTFtag_ARW[]= "ARW";
2154 const char RTFtag_ICO[]= "ICO";
2155 const char RTFtag_ACO[]= "ACO";
2156 const char RTFtag_IHD[]= "IHD";
2157 const char RTFtag_IFT[]= "IFT";
2158
2159 const char RTFtag_UOB[]= "UOB";
2160 const char RTFtag_SRWD[]= "SRWD";
2161 const char RTFtag_SRWU[]= "SRWU";
2162
2163 const char RTFtag_SPR[]= "SPR";
2164 const char RTFtag_SPL[]= "SPL";
2165 const char RTFtag_Open[]= "Open";
2166 const char RTFtag_Save[]= "Save";
2167 const char RTFtag_New[]= "New";
2168
2169 const char RTFtag_OTT[]= "OTT";
2170 const char RTFtag_OSN[]= "OSN";
2171 const char RTFtag_OOSN[]= "OOSN";
2172 const char RTFtag_OON[]= "OON";
2173 const char RTFtag_OPG[]= "OPG";
2174 const char RTFtag_OCO[]= "OCO";
2175
2176 const char RTFtag_NTT[]= "NTT";
2177 const char RTFtag_NSN[]= "NSN";
2178 const char RTFtag_NOSN[]= "NOSN";
2179 const char RTFtag_NON[]= "NON";
2180 const char RTFtag_NPG[]= "NPG";
2181 const char RTFtag_NCO[]= "NCO";
2182
2183 const char RTFtag_OHC[]= "OHC";
2184 const char RTFtag_OHP[]= "OHP";
2185 const char RTFtag_OHS[]= "OHS";
2186
2187 const char RTFtag_OTC[]= "OTC";
2188 const char RTFtag_OTP[]= "OTP";
2189 const char RTFtag_OTS[]= "OTS";
2190 const char RTFtag_PRL[]= "PRL";
2191
2192 const char RTFtag_NHP[]= "NHP";
2193 const char RTFtag_NHS[]= "NHS";
2194 const char RTFtag_NTP[]= "NTP";
2195 const char RTFtag_NTS[]= "NTS";
2196
2197 const char RTFtag_SEH[]= "SEH";
2198 const char RTFtag_SEN[]= "SEN";
2199 const char RTFtag_SAL[]= "SAL";
2200 const char RTFtag_SET[]= "SET";
2201 const char RTFtag_SEB[]= "SEB";
2202 const char RTFtag_SEA[]= "SEA";
2203
2204 /* Regular tags */
2205
2206 const char RTFtag_pict[]= "pict";
2207 const char RTFtag_result[]= "result";
2208
2209 const char RTFtag_par[]= "par";
2210 const char RTFtag_pard[]= "pard";
2211 const char RTFtag_plain[]= "plain";
2212
2213 const char RTFtag_footnote[]= "footnote";
2214 const char RTFtag_chftn[]= "chftn";
2215 const char RTFtag_fet[]= "fet";
2216
2217 const char RTFtag_revtim[]= "revtim";
2218 const char RTFtag_hlinkbase[]= "hlinkbase";
2219 const char RTFtag__generator[]= "*\\generator";
2220
2221 const char RTFtag_nosupersub[]= "nosupersub";
2222 const char RTFtag_super[]= "super";
2223 const char RTFtag_sub[]= "sub";
2224
2225 const char RTFtag_tql[]= "tql";
2226 const char RTFtag_tqr[]= "tqr";
2227 const char RTFtag_tqc[]= "tqc";
2228 const char RTFtag_tqdec[]= "tqdec";
2229
2230 const char * const DOCrtf_DocFootNotesJustificationTags[]=
2231 {
2232 "ftntj",
2233 "ftnbj",
2234 };
2235
2236 const int DOCrtf_DocFootNotesJustificationTagCount=
2237 sizeof(DOCrtf_DocFootNotesJustificationTags)/sizeof(const char *);
2238
2239 const char * const DOCrtf_DocFootNotesPlacementTags[]=
2240 {
2241 (char *)0,
2242 "endnotes",
2243 "enddoc",
2244 };
2245
2246 const int DOCrtf_DocFootNotesPlacementTagCount=
2247 sizeof(DOCrtf_DocFootNotesPlacementTags)/sizeof(const char *);
2248
2249 const char * const DOCrtf_DocEndNotesJustificationTags[]=
2250 {
2251 "aftntj",
2252 "aftnbj",
2253 };
2254
2255 const int DOCrtf_DocEndNotesJustificationTagCount=
2256 sizeof(DOCrtf_DocEndNotesJustificationTags)/sizeof(const char *);
2257
2258 const char * const DOCrtf_DocEndNotesPlacementTags[]=
2259 {
2260 (char *)0,
2261 "aendnotes",
2262 "aenddoc",
2263 };
2264
2265 const int DOCrtf_DocEndNotesPlacementTagCount=
2266 sizeof(DOCrtf_DocEndNotesPlacementTags)/sizeof(const char *);
2267
2268 const char * const DOCrtf_SectFootNotesJustificationTags[]=
2269 {
2270 "sftntj",
2271 "sftnbj",
2272 };
2273
2274 const int DOCrtf_SectFootNotesJustificationTagCount=
2275 sizeof(DOCrtf_SectFootNotesJustificationTags)/sizeof(const char *);
2276
2277 const char * const DOCrtf_SectEndNotesJustificationTags[]=
2278 {
2279 "saftntj",
2280 "saftnbj",
2281 };
2282
2283 const int DOCrtf_SectEndNotesJustificationTagCount=
2284 sizeof(DOCrtf_SectEndNotesJustificationTags)/sizeof(const char *);
2285
2286 const char * const DOCrtf_DocFootNotesRestartTags[]=
2287 {
2288 "ftnrstcont",
2289 "ftnrestart",
2290 "ftnrstpg",
2291 };
2292
2293 const int DOCrtf_DocFootNotesRestartTagCount=
2294 sizeof(DOCrtf_DocFootNotesRestartTags)/sizeof(const char *);
2295
2296 const char * const DOCrtf_SectFootNotesRestartTags[]=
2297 {
2298 "sftnrstcont",
2299 "sftnrestart",
2300 "sftnrstpg",
2301 };
2302
2303 const int DOCrtf_SectFootNotesRestartTagCount=
2304 sizeof(DOCrtf_SectFootNotesRestartTags)/sizeof(const char *);
2305
2306 const char * const DOCrtf_DocEndNotesRestartTags[]=
2307 {
2308 "aftnrstcont",
2309 "aftnrestart",
2310 "aftnrstpg", /* UNUSED: Effectively makes them footnotes */
2311 };
2312
2313 const int DOCrtf_DocEndNotesRestartTagCount=
2314 sizeof(DOCrtf_DocEndNotesRestartTags)/sizeof(const char *);
2315
2316 const char * const DOCrtf_SectEndNotesRestartTags[]=
2317 {
2318 "saftnrstcont",
2319 "saftnrestart",
2320 "saftnrstpg", /* UNUSED: Effectively makes them footnotes */
2321 };
2322
2323 const int DOCrtf_SectEndNotesRestartTagCount=
2324 sizeof(DOCrtf_SectEndNotesRestartTags)/sizeof(const char *);
2325
2326 const char * const DOCrtf_DocFootNotesNumberStyleTags[]=
2327 {
2328 "ftnnar",
2329 "ftnnalc",
2330 "ftnnauc",
2331 "ftnnrlc",
2332 "ftnnruc",
2333 "ftnnchi",
2334 };
2335
2336 const int DOCrtf_DocFootNotesNumberStyleTagCount=
2337 sizeof(DOCrtf_DocFootNotesNumberStyleTags)/sizeof(const char *);
2338
2339 const char * const DOCrtf_DocEndNotesNumberStyleTags[]=
2340 {
2341 "aftnnar",
2342 "aftnnalc",
2343 "aftnnauc",
2344 "aftnnrlc",
2345 "aftnnruc",
2346 "aftnnchi",
2347 };
2348
2349 const int DOCrtf_DocEndNotesNumberStyleTagCount=
2350 sizeof(DOCrtf_DocEndNotesNumberStyleTags)/sizeof(const char *);
2351
2352 const char * const DOCrtf_SectFootNotesNumberStyleTags[]=
2353 {
2354 "sftnnar",
2355 "sftnnalc",
2356 "sftnnauc",
2357 "sftnnrlc",
2358 "sftnnruc",
2359 "sftnnchi",
2360 };
2361
2362 const int DOCrtf_SectFootNotesNumberStyleTagCount=
2363 sizeof(DOCrtf_SectFootNotesNumberStyleTags)/sizeof(const char *);
2364
2365 const char * const DOCrtf_SectEndNotesNumberStyleTags[]=
2366 {
2367 "saftnnar",
2368 "saftnnalc",
2369 "saftnnauc",
2370 "saftnnrlc",
2371 "saftnnruc",
2372 "saftnnchi",
2373 };
2374
2375 const int DOCrtf_SectEndNotesNumberStyleTagCount=
2376 sizeof(DOCrtf_SectEndNotesNumberStyleTags)/sizeof(const char *);
2377
2378 const char * const DOCrtf_BorderStyleTags[]=
2379 {
2380 "brdrnone",
2381 "brdrs",
2382 "brdrth",
2383 "brdrsh",
2384 "brdrdb",
2385 "brdrhair",
2386 "brdrdot",
2387 "brdrdash",
2388 "brdrdashd",
2389 "brdrdashdd",
2390 "brdrtriple",
2391 "brdrtnthsg",
2392 "brdrthtnsg",
2393 "brdrtnthtnsg",
2394 "brdrtnthmg",
2395 "brdrthtnmg",
2396 "brdrtnthtnmg",
2397 "brdrtnthlg",
2398 "brdrthtnlg",
2399 "brdrtnthtnlg",
2400 "brdrwavy",
2401 "brdrwavydb",
2402 "brdrdashsm",
2403 "brdrdashdotstr",
2404 "brdremboss",
2405 "brdrengrave",
2406 "brdrframe",
2407 "brdroutset",
2408 "brdrtbl",
2409 "brdrnil",
2410 };
2411
2412 const int DOCrtf_BorderStyleTagCount=
2413 sizeof(DOCrtf_BorderStyleTags)/sizeof(const char *);
2414
2415 const char * const DOCrtf_ParaShadingTags[]=
2416 {
2417 (const char *)0, /* solid */
2418 "bghoriz",
2419 "bgvert",
2420 "bgfdiag",
2421 "bgbdiag",
2422 "bgcross",
2423 "bgdcross",
2424 "bgdkhoriz",
2425 "bgdkvert",
2426 "bgdkfdiag",
2427 "bgdkbdiag",
2428 "bgdkcross",
2429 "bgdkdcross",
2430 };
2431
2432 const int DOCrtf_ParaShadingTagCount=
2433 sizeof(DOCrtf_ParaShadingTags)/sizeof(const char *);
2434
2435 const char * const DOCrtf_TextShadingTags[]=
2436 {
2437 (const char *)0, /* solid */
2438 "chbghoriz",
2439 "chbgvert",
2440 "chbgfdiag",
2441 "chbgbdiag",
2442 "chbgcross",
2443 "chbgdcross",
2444 "chbgdkhoriz",
2445 "chbgdkvert",
2446 "chbgdkfdiag",
2447 "chbgdkbdiag",
2448 "chbgdkcross",
2449 "chbgdkdcross",
2450 };
2451
2452 const int DOCrtf_TextShadingTagCount=
2453 sizeof(DOCrtf_TextShadingTags)/sizeof(const char *);
2454
2455 const char * const DOCrtf_RowShadingTags[]=
2456 {
2457 (const char *)0, /* solid */
2458 "trbghoriz",
2459 "trbgvert",
2460 "trbgfdiag",
2461 "trbgbdiag",
2462 "trbgcross",
2463 "trbgdcross",
2464 "trbgdkhor",
2465 "trbgdkvert",
2466 "trbgdkfdiag",
2467 "trbgdkbdiag",
2468 "trbgdkcross",
2469 "trbgdkdcross",
2470 };
2471
2472 const int DOCrtf_RowShadingTagCount=
2473 sizeof(DOCrtf_RowShadingTags)/sizeof(const char *);
2474
2475 const char * const DOCrtf_CellShadingTags[]=
2476 {
2477 (const char *)0, /* solid */
2478 "clbghoriz",
2479 "clbgvert",
2480 "clbgfdiag",
2481 "clbgbdiag",
2482 "clbgcross",
2483 "clbgdcross",
2484 "clbgdkhor",
2485 "clbgdkvert",
2486 "clbgdkfdiag",
2487 "clbgdkbdiag",
2488 "clbgdkcross",
2489 "clbgdkdcross",
2490 };
2491
2492 const int DOCrtf_CellShadingTagCount=
2493 sizeof(DOCrtf_CellShadingTags)/sizeof(const char *);
2494
2495 const char * const DOCrtf_SectBreakTags[]=
2496 {
2497 "sbknone",
2498 "sbkcol",
2499 "sbkpage",
2500 "sbkeven",
2501 "sbkodd",
2502 };
2503
2504 const int DOCrtf_SectBreakTagCount=
2505 sizeof(DOCrtf_SectBreakTags)/sizeof(const char *);
2506
2507 const char * const DOCrtf_ParaBreakTags[]=
2508 {
2509 "nopagebb", /* NOT part of RTF. Should never show up in docs */
2510 "column", /* Works as this is the last para prop to write */
2511 "pagebb",
2512 };
2513
2514 const int DOCrtf_ParaBreakTagCount=
2515 sizeof(DOCrtf_ParaBreakTags)/sizeof(const char *);
2516
2517 const char * const DOCrtf_PageNumberStyleTags[]=
2518 {
2519 "pgndec",
2520 "pgnucrm",
2521 "pgnlcrm",
2522 "pgnucltr",
2523 "pgnlcltr",
2524 };
2525
2526 const int DOCrtf_PageNumberStyleTagCount=
2527 sizeof(DOCrtf_PageNumberStyleTags)/sizeof(const char *);
2528
2529 const char * const DOCrtf_PageNumberHyphenTags[]=
2530 {
2531 "pgnhnsh",
2532 "pgnhnsp",
2533 "pgnhnsc",
2534 "pgnhnsm",
2535 "pgnhnsn",
2536 };
2537
2538 const int DOCrtf_PageNumberHyphenTagCount=
2539 sizeof(DOCrtf_PageNumberHyphenTags)/sizeof(const char *);
2540
2541 const char * const DOCrtf_CellValignTags[]=
2542 {
2543 "clvertalt",
2544 "clvertalc",
2545 "clvertalb",
2546 };
2547
2548 const int DOCrtf_CellValignTagCount=
2549 sizeof(DOCrtf_CellValignTags)/sizeof(const char *);
2550
2551 const char * const DOCrtf_CellTextFlowTags[]=
2552 {
2553 "cltxlrtb",
2554 "cltxtbrl",
2555 "cltxbtlr",
2556 "cltxlrtbv",
2557 "cltxtbrlv",
2558 };
2559
2560 const int DOCrtf_CellTextFlowTagCount=
2561 sizeof(DOCrtf_CellTextFlowTags)/sizeof(const char *);
2562
2563 const char * const DOCrtf_CellHorMergeTags[]=
2564 {
2565 "ClmNone",
2566 "clmgf",
2567 "clmrg",
2568 };
2569
2570 const int DOCrtf_CellHorMergeTagCount=
2571 sizeof(DOCrtf_CellHorMergeTags)/sizeof(const char *);
2572
2573 const char * const DOCrtf_CellVerMergeTags[]=
2574 {
2575 "ClvmNone",
2576 "clvmgf",
2577 "clvmrg",
2578 };
2579
2580 const int DOCrtf_CellVerMergeTagCount=
2581 sizeof(DOCrtf_CellVerMergeTags)/sizeof(const char *);
2582
2583 const char * const DOCrtf_ParaAlignTags[]=
2584 {
2585 "ql",
2586 "qr",
2587 "qc",
2588 "qj",
2589 };
2590
2591 const int DOCrtf_ParaAlignTagCount=
2592 sizeof(DOCrtf_ParaAlignTags)/sizeof(const char *);
2593
2594 const char * const DOCrtf_TabAlignTags[]=
2595 {
2596 RTFtag_tql,
2597 RTFtag_tqr,
2598 RTFtag_tqc,
2599 RTFtag_tqdec,
2600 };
2601
2602 const int DOCrtf_TabAlignTagCount=
2603 sizeof(DOCrtf_TabAlignTags)/sizeof(const char *);
2604
2605 const char * const DOCrtf_TabLeaderTags[]=
2606 {
2607 (const char *)0,
2608 "tldot",
2609 "tlul",
2610 "tlhyph",
2611 "tlth",
2612 "tleq",
2613 };
2614
2615 const int DOCrtf_TabLeaderTagCount=
2616 sizeof(DOCrtf_TabLeaderTags)/sizeof(const char *);
2617
2618 const char * const DOCrtf_SupersubTags[]=
2619 {
2620 RTFtag_nosupersub,
2621 RTFtag_super,
2622 RTFtag_sub,
2623 };
2624
2625 const int DOCrtf_SupersubTagCount=
2626 sizeof(DOCrtf_SupersubTags)/sizeof(const char *);
2627
docRtfMakeTagHash(void)2628 static int docRtfMakeTagHash( void )
2629 {
2630 int rval= 0;
2631 int i;
2632
2633 const unsigned char ** keyStrings= (const unsigned char **)0;
2634 int keyStringCount;
2635
2636 keyStringCount= sizeof(docRtfPropertyWords)/sizeof(RtfControlWord)- 1;
2637
2638 keyStrings= (const unsigned char **)malloc( keyStringCount* sizeof(const unsigned char *) );
2639 if ( ! keyStrings )
2640 { LXDEB(keyStringCount,keyStrings); rval= -1; goto ready; }
2641
2642 for ( i= 0; i < keyStringCount; i++ )
2643 {
2644 keyStrings[i]= (const unsigned char *)docRtfPropertyWords[i].rcwWord;
2645 }
2646
2647 if ( utilJenkinsPerfectHash( keyStrings, keyStringCount,
2648 "docRtfTagHash.c",
2649 "\"docRtfTagHash.h\"",
2650 "docRtfTagHash",
2651 "docRtfTagIndex" ) )
2652 { LDEB(keyStringCount); rval= 0; }
2653
2654 ready:
2655
2656 if ( keyStrings )
2657 { free( keyStrings ); }
2658
2659 return rval;
2660 }
2661
2662 # ifndef BUILD_HASH
2663
docRtfCheckTagHash(void)2664 static int docRtfCheckTagHash( void )
2665 {
2666 int rval= 0;
2667 int i;
2668
2669 int keyStringCount;
2670
2671 keyStringCount= sizeof(docRtfPropertyWords)/sizeof(RtfControlWord)- 1;
2672
2673 for ( i= 0; i < keyStringCount; i++ )
2674 {
2675 const unsigned char * tagkey;
2676 int taglen;
2677 int idx;
2678
2679 tagkey= (const unsigned char *)docRtfPropertyWords[i].rcwWord;
2680 taglen= strlen( docRtfPropertyWords[i].rcwWord );
2681
2682 idx= docRtfTagIndex( tagkey, taglen );
2683
2684 if ( idx != i )
2685 {
2686 long hash= docRtfTagHash( tagkey, taglen );
2687
2688 LSLLDEB(i,docRtfPropertyWords[i].rcwWord,idx,hash); rval= -1;
2689 }
2690 }
2691
2692 return rval;
2693 }
2694
docRtfFindPropertyWord(const char * controlWord)2695 const RtfControlWord * docRtfFindPropertyWord(
2696 const char * controlWord )
2697 {
2698 const RtfControlWord * rcw;
2699
2700 static int checked= 1;
2701
2702 if ( ! checked )
2703 {
2704 checked= 1;
2705
2706 if ( docRtfCheckTagHash() )
2707 {
2708 checked= -1;
2709
2710 LDEB(1);
2711 if ( docRtfMakeTagHash() )
2712 { LDEB(1); }
2713 }
2714 }
2715
2716 if ( checked > 0 )
2717 {
2718 int idx;
2719 int keyStringCount;
2720
2721 keyStringCount= sizeof(docRtfPropertyWords)/sizeof(RtfControlWord)- 1;
2722
2723 idx= docRtfTagIndex( (const unsigned char *)controlWord,
2724 strlen( controlWord ) );
2725
2726 if ( idx >= 0 && idx < keyStringCount )
2727 {
2728 rcw= docRtfPropertyWords+ idx;
2729
2730 if ( ! strcmp( controlWord, rcw->rcwWord ) )
2731 { return rcw; }
2732 }
2733
2734 return (const RtfControlWord *)0;
2735 }
2736 else{
2737 rcw= docRtfPropertyWords;
2738
2739 while( rcw->rcwWord )
2740 {
2741 if ( ! strcmp( rcw->rcwWord, controlWord ) )
2742 { return rcw; }
2743
2744 rcw++;
2745 }
2746
2747 return (const RtfControlWord *)0;
2748 }
2749 }
2750
2751 # endif
2752
2753 # ifdef BUILD_HASH
2754
main(int argc,char ** argcv)2755 int main( int argc,
2756 char ** argcv )
2757 {
2758 if ( docRtfMakeTagHash() )
2759 { LDEB(1); return 1; }
2760
2761 return 0;
2762 }
2763
2764 # endif
2765
2766