diff -r 932c358ece3e -r d8fccb2cd802 Orb/Doxygen/src/textdocvisitor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Orb/Doxygen/src/textdocvisitor.cpp Fri Apr 23 20:47:58 2010 +0100 @@ -0,0 +1,86 @@ +/****************************************************************************** + * + * + * + * + * Copyright (C) 1997-2008 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + +#include +#include "textdocvisitor.h" +#include "message.h" + +//------------------------------------------------------------------------- + +void TextDocVisitor::visit(DocSymbol *s) +{ + switch(s->symbol()) + { + case DocSymbol::BSlash: m_t << "\\"; break; + case DocSymbol::At: m_t << "@"; break; + case DocSymbol::Less: m_t << "<"; break; + case DocSymbol::Greater: m_t << ">"; break; + case DocSymbol::Amp: m_t << "&"; break; + case DocSymbol::Dollar: m_t << "$"; break; + case DocSymbol::Hash: m_t << "#"; break; + case DocSymbol::Percent: m_t << "%"; break; + case DocSymbol::Copy: m_t << "©"; break; + case DocSymbol::Tm: m_t << "&tm;"; break; + case DocSymbol::Reg: m_t << "®"; break; + case DocSymbol::Apos: m_t << "'"; break; + case DocSymbol::Quot: m_t << "\""; break; + case DocSymbol::Lsquo: m_t << "‘"; break; + case DocSymbol::Rsquo: m_t << "’"; break; + case DocSymbol::Ldquo: m_t << "“"; break; + case DocSymbol::Rdquo: m_t << "”"; break; + case DocSymbol::Ndash: m_t << "–"; break; + case DocSymbol::Mdash: m_t << "—"; break; + case DocSymbol::Uml: m_t << "&" << s->letter() << "uml;"; break; + case DocSymbol::Acute: m_t << "&" << s->letter() << "acute;"; break; + case DocSymbol::Grave: m_t << "&" << s->letter() << "grave;"; break; + case DocSymbol::Circ: m_t << "&" << s->letter() << "circ;"; break; + case DocSymbol::Slash: m_t << "&" << s->letter() << "slash;"; break; + case DocSymbol::Tilde: m_t << "&" << s->letter() << "tilde;"; break; + case DocSymbol::Szlig: m_t << "ß"; break; + case DocSymbol::Cedil: m_t << "&" << s->letter() << "cedil;"; break; + case DocSymbol::Ring: m_t << "&" << s->letter() << "ring;"; break; + case DocSymbol::Nbsp: m_t << " "; break; + case DocSymbol::Aelig: m_t << "æ"; break; + case DocSymbol::AElig: m_t << "Æ"; break; + default: + err("Error: unknown symbol found\n"); + } +} + + +void TextDocVisitor::filter(const char *str) +{ + if (str==0) return; + const char *p=str; + char c; + while (*p) + { + c=*p++; + switch(c) + { + case '\n': m_t << " "; break; + case '"': m_t << """; break; + case '\'': m_t << "'"; break; + case '<': m_t << "<"; break; + case '>': m_t << ">"; break; + case '&': m_t << "&"; break; + default: m_t << c; + } + } +} +