X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fchset.h;h=468ce2399540d2aee9d8b1f731370ff81dee9132;hb=78046794ccfce3a20751e00b35295c290853afd6;hp=6156606571c566d318bfb354eaa9cad428a8087a;hpb=27de1486ca34aaad446adb798d71a77d6f6304da;p=lyx.git diff --git a/src/chset.h b/src/chset.h index 6156606571..468ce23995 100644 --- a/src/chset.h +++ b/src/chset.h @@ -1,44 +1,50 @@ // -*- C++ -*- -#ifndef _Chset_h_ -#define _Chset_h_ +/** + * \file chset.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * + * \author Lars Gullik Bjønnes + * \author Jean-Marc Lasgouttes + * + * Full author contact details are available in file CREDITS. + */ -#ifdef __GNUG__ -#pragma interface -#endif +#ifndef CHSET_H +#define CHSET_H + +#include +#include +#include -#include "LString.h" -/// +/// a class for mapping char strings such as "\^{A}" to the integer value class CharacterSet { public: - /// - CharacterSet(); - /// - ~CharacterSet(); - - /// - bool loadFile(const LString&); - /// - LString getName(); - /// - bool encodeString(LString&); + /** + * initialise this charset from the given .cdef file + * param charset the charset to look for + * + * Finds a .cdef file corresponding to the named charset + * and parses it. This function is only intended to be + * called once. + */ + bool loadFile(std::string const & charset); + /// return the name of the current charset + std::string const & getName() const; + /** + * Return the encoded charset value of the given string. + * + * The bool value is false if an encoding could not be found + * in this charset, and true otherwise. + */ + std::pair const encodeString(std::string const &) const; private: + /// charset name + std::string name_; /// - LString name_; - - /// - struct Cdef { - /// - unsigned char ic; - /// - LString str; - /// - Cdef *next; - }; - - /// - Cdef *map_; - /// - void freeMap(); + typedef std::map Cdef; + /// mapping from string representation to encoded value + Cdef map_; }; #endif