/* * tokens.cpp * * The sorted table of strings and token values * * Note: if you insert new keywords, be sure to insert the corresponding * i_keyword in the i_xxx enum in tokens.h. This enum defines the * indices used by RTFWrit to output RTF control words. * * Original RichEdit 1.0 RTF converter: Anthony Francisco * Conversion to C++ and RichEdit 2.0: Murray Sargent * * Copyright (c) 1995-1998 Microsoft Corporation. All rights reserved. */ #include "_common.h" #include "tokens.h" extern const KEYWORD rgKeyword[] = { {"adeff", tokenDefaultBiDiFont}, {"af", tokenAssocFontSelect}, {"animtext", tokenAnimText}, {"ansi", tokenCharSetAnsi}, {"ansicpg", tokenAnsiCodePage}, {"b", tokenBold}, {"bgbdiag", tokenBckgrndBckDiag}, {"bgcross", tokenBckgrndCross}, {"bgdcross", tokenBckgrndDiagCross}, {"bgdkbdiag", tokenBckgrndDrkBckDiag}, {"bgdkcross", tokenBckgrndDrkCross}, {"bgdkdcross", tokenBckgrndDrkDiagCross}, {"bgdkfdiag", tokenBckgrndDrkFwdDiag}, {"bgdkhoriz", tokenBckgrndDrkHoriz}, {"bgdkvert", tokenBckgrndDrkVert}, {"bgfdiag", tokenBckgrndFwdDiag}, {"bghoriz", tokenBckgrndHoriz}, {"bgvert", tokenBckgrndVert}, {"bin", tokenBinaryData}, {"blue", tokenColorBlue}, {"box", tokenBox}, {"brdrb", tokenBorderBottom}, {"brdrbar", tokenBorderOutside}, {"brdrbtw", tokenBorderBetween}, {"brdrcf", tokenBorderColor}, {"brdrdash", tokenBorderDash}, {"brdrdashsm", tokenBorderDashSmall}, {"brdrdb", tokenBorderDouble}, {"brdrdot", tokenBorderDot}, {"brdrhair", tokenBorderHairline}, {"brdrl", tokenBorderLeft}, {"brdrr", tokenBorderRight}, {"brdrs", tokenBorderSingleThick}, {"brdrsh", tokenBorderShadow}, {"brdrt", tokenBorderTop}, {"brdrth", tokenBorderDoubleThick}, {"brdrtriple", tokenBorderTriple}, {"brdrw", tokenBorderWidth}, {"brsp", tokenBorderSpace}, {"bullet", BULLET}, {"caps", tokenCaps}, {"cbpat", tokenColorBckgrndPat}, {"cell", tokenCell}, {"cellx", tokenCellX}, {"cf", tokenColorForeground}, {"cfpat", tokenColorForgrndPat}, {"clbrdrb", tokenCellBorderBottom}, {"clbrdrl", tokenCellBorderLeft}, {"clbrdrr", tokenCellBorderRight}, {"clbrdrt", tokenCellBorderTop}, {"collapsed", tokenCollapsed}, {"colortbl", tokenColorTable}, {"cpg", tokenCodePage}, {"cs", tokenCharStyle}, {"dbch", tokenDBChars}, {"deff", tokenDefaultFont}, {"deflang", tokenDefaultLanguage}, {"deflangfe", tokenDefaultLanguageFE}, {"deftab", tokenDefaultTabWidth}, {"deleted", tokenDeleted}, {"dibitmap", tokenPictureWindowsDIB}, {"disabled", tokenDisabled}, {"dn", tokenDown}, {"dropcapli", tokenDropCapLines}, {"embo", tokenEmboss}, #if 1 {"emdash", '-'}, {"emspace", ' '}, {"endash", '-'}, {"enspace", ' '}, #else // FUTURE(BradO): It turns out that we can't reliably // display these Unicode characters for any particular // font applied to them. If we choose to do something // more intelligent to ensure that these special chars // are displayed regardless of the font applied, then // we should re-enable this code (see Bug #3179). {"emdash", EMDASH}, {"emspace", EMSPACE}, {"endash", ENDASH}, {"enspace", ENSPACE}, #endif {"expndtw", tokenExpand}, {"f", tokenFontSelect}, {"fbidi", tokenFontFamilyBidi}, {"fchars", tokenFollowingPunct}, {"fcharset", tokenCharSet}, {"fdecor", tokenFontFamilyDecorative}, {"fi", tokenIndentFirst}, {"field", tokenField}, {"fldinst", tokenFieldInstruction}, {"fldrslt", tokenFieldResult}, {"fmodern", tokenFontFamilyModern}, {"fname", tokenRealFontName}, {"fnil", tokenFontFamilyDefault}, {"fonttbl", tokenFontTable}, {"footer", tokenNullDestination}, {"footerf", tokenNullDestination}, {"footerl", tokenNullDestination}, {"footerr", tokenNullDestination}, {"footnote", tokenNullDestination}, {"fprq", tokenPitch}, {"froman", tokenFontFamilyRoman}, {"fs", tokenFontSize}, {"fscript", tokenFontFamilyScript}, {"fswiss", tokenFontFamilySwiss}, {"ftech", tokenFontFamilyTechnical}, {"ftncn", tokenNullDestination}, {"ftnsep", tokenNullDestination}, {"ftnsepc", tokenNullDestination}, {"green", tokenColorGreen}, {"header", tokenNullDestination}, {"headerf", tokenNullDestination}, {"headerl", tokenNullDestination}, {"headerr", tokenNullDestination}, {"highlight", tokenColorBackground}, {"hyphpar", tokenHyphPar}, {"i", tokenItalic}, {"impr", tokenImprint}, {"info", tokenDocumentArea}, {"intbl", tokenInTable}, {"keep", tokenKeep}, {"keepn", tokenKeepNext}, {"kerning", tokenKerning}, {"lang", tokenLanguage}, {"lchars", tokenLeadingPunct}, {"ldblquote", LDBLQUOTE}, {"li", tokenIndentLeft}, {"line", tokenLineBreak}, {"lnkd", tokenLink}, {"lquote", LQUOTE}, {"ltrch", tokenLToRChars}, {"ltrdoc", tokenLToRDocument}, {"ltrmark", LTRMARK}, {"ltrpar", tokenLToRPara}, {"macpict", tokenPictureQuickDraw}, {"noline", tokenNoLineNumber}, {"nosupersub", tokenNoSuperSub}, {"nowidctlpar", tokenNoWidCtlPar}, {"objattph", tokenObjectPlaceholder}, {"objautlink", tokenObjectAutoLink}, {"objclass", tokenObjectClass}, {"objcropb", tokenCropBottom}, {"objcropl", tokenCropLeft}, {"objcropr", tokenCropRight}, {"objcropt", tokenCropTop}, {"objdata", tokenObjectData}, {"object", tokenObject}, {"objemb", tokenObjectEmbedded}, {"objh", tokenHeight}, {"objicemb", tokenObjectMacICEmbedder}, {"objlink", tokenObjectLink}, {"objname", tokenObjectName}, {"objpub", tokenObjectMacPublisher}, {"objscalex", tokenScaleX}, {"objscaley", tokenScaleY}, {"objsetsize", tokenObjectSetSize}, {"objsub", tokenObjectMacSubscriber}, {"objw", tokenWidth}, {"outl", tokenOutline}, {"page", tokenPage}, {"pagebb", tokenPageBreakBefore}, {"par", tokenEndParagraph}, {"pard", tokenParagraphDefault}, {"piccropb", tokenCropBottom}, {"piccropl", tokenCropLeft}, {"piccropr", tokenCropRight}, {"piccropt", tokenCropTop}, {"pich", tokenHeight}, {"pichgoal", tokenDesiredHeight}, {"picscalex", tokenScaleX}, {"picscaley", tokenScaleY}, {"pict", tokenPicture}, {"picw", tokenWidth}, {"picwgoal", tokenDesiredWidth}, {"plain", tokenCharacterDefault}, {"pmmetafile", tokenPictureOS2Metafile}, {"pn", tokenParaNum}, {"pndec", tokenParaNumDecimal}, {"pnindent", tokenParaNumIndent}, {"pnlcltr", tokenParaNumLCLetter}, {"pnlcrm", tokenParaNumLCRoman}, {"pnlvlblt", tokenParaNumBullet}, {"pnlvlbody", tokenParaNumBody}, {"pnlvlcont", tokenParaNumCont}, {"pnqc", tokenParaNumAlignCenter}, {"pnqr", tokenParaNumAlignRight}, {"pnstart", tokenParaNumStart}, {"pntext", tokenParaNumText}, {"pntxta", tokenParaNumAfter}, {"pntxtb", tokenParaNumBefore}, {"pnucltr", tokenParaNumUCLetter}, {"pnucrm", tokenParaNumUCRoman}, {"protect", tokenProtect}, {"pwd", tokenPocketWord}, {"qc", tokenAlignCenter}, {"qj", tokenAlignJustify}, {"ql", tokenAlignLeft}, {"qr", tokenAlignRight}, {"rdblquote", RDBLQUOTE}, {"red", tokenColorRed}, {"result", tokenObjectResult}, {"revauth", tokenRevAuthor}, {"revised", tokenRevised}, {"ri", tokenIndentRight}, {"row", tokenRow}, {"rquote", RQUOTE}, {"rtf", tokenRtf}, {"rtlch", tokenRToLChars}, {"rtldoc", tokenRToLDocument}, {"rtlmark", RTLMARK}, {"rtlpar", tokenRToLPara}, {"s", tokenStyle}, {"sa", tokenSpaceAfter}, {"sb", tokenSpaceBefore}, {"sbys", tokenSideBySide}, {"scaps", tokenSmallCaps}, {"sect", tokenEndSection}, {"sectd", tokenSectionDefault}, {"shad", tokenShadow}, {"shading", tokenShading}, {"sl", tokenLineSpacing}, {"slmult", tokenLineSpacingRule}, {"strike", tokenStrikeOut}, {"stylesheet", tokenStyleSheet}, {"sub", tokenSubscript}, {"super", tokenSuperscript}, {"tab", 9}, {"tb", tokenTabBar}, {"tc", tokenNullDestination}, {"tldot", tokenTabLeaderDots}, {"tleq", tokenTabLeaderEqual}, {"tlhyph", tokenTabLeaderHyphen}, {"tlth", tokenTabLeaderThick}, {"tlul", tokenTabLeaderUnderline}, {"tqc", tokenCenterTab}, {"tqdec", tokenDecimalTab}, {"tqr", tokenFlushRightTab}, {"trbrdrb", tokenBorderBottom}, {"trbrdrl", tokenBorderLeft}, {"trbrdrr", tokenBorderRight}, {"trbrdrt", tokenBorderTop}, {"trgaph", tokenCellHalfGap}, {"trleft", tokenRowLeft}, {"trowd", tokenRowDefault}, {"trqc", tokenRowAlignCenter}, {"trqr", tokenRowAlignRight}, {"tx", tokenTabPosition}, {"u", tokenUnicode}, {"uc", tokenUnicodeCharByteCount}, {"ul", tokenUnderline}, {"uld", tokenUnderlineDotted}, {"uldash", tokenUnderlineDash}, {"uldashd", tokenUnderlineDashDotted}, {"uldashdd", tokenUnderlineDashDotDotted}, {"uldb", tokenUnderlineDouble}, {"ulhair", tokenUnderlineHairline}, {"ulnone", tokenStopUnderline}, {"ulth", tokenUnderlineThick}, {"ulw", tokenUnderlineWord}, {"ulwave", tokenUnderlineWave}, {"up", tokenUp}, {"urtf", tokenURtf}, {"v", tokenHiddenText}, {"viewkind", tokenViewKind}, {"viewscale", tokenViewScale}, {"wbitmap", tokenPictureWindowsBitmap}, {"wbmbitspixel",tokenBitmapBitsPerPixel}, {"wbmplanes", tokenBitmapNumPlanes}, {"wbmwidthbytes",tokenBitmapWidthBytes}, {"wmetafile", tokenPictureWindowsMetafile}, {"xe", tokenNullDestination}, {"zwj", ZWJ}, {"zwnj", ZWNJ} }; INT cKeywords = sizeof(rgKeyword) / sizeof(rgKeyword[0]); extern const BYTE szSymbolKeywords[] = "*:{}\\_|\r\n-~"; extern const TOKEN tokenSymbol[] = // Keep in same order as szSymbolKeywords { tokenOptionalDestination, // * tokenIndexSubentry, // : '{', // { '}', // } '\\', // BSLASH '-', // _ (nonbreaking hyphen; should be 0x2011) tokenFormulaCharacter, // | tokenEndParagraph, // CR tokenEndParagraph, // LF 0xAD, // - (optional hyphen) #if 1 ' ' // ~ (nonbreaking space) #else // FUTURE(BradO): It turns out that we can't reliably // display these Unicode characters for any particular // font applied to them. If we choose to do something // more intelligent to ensure that these special chars // are displayed regardless of the font applied, then // we should re-enable this code (see Bug #3179). 0xa0 // ~ (nonbreaking space) #endif };