X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fchset.h;h=468ce2399540d2aee9d8b1f731370ff81dee9132;hb=87cd77d1fc819bc8f14982fc6b20091720c011f5;hp=f32fb9b047cb08242a58b8b865cd132335346c3a;hpb=0eccdd1c3613e5170deb77b22174dd0afde833e9;p=lyx.git diff --git a/src/chset.h b/src/chset.h index f32fb9b047..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 string&); - /// - string getName(); - /// - bool encodeString(string&); + /** + * 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_; /// - string name_; - - /// - struct Cdef { - /// - unsigned char ic; - /// - string str; - /// - Cdef *next; - }; - - /// - Cdef *map_; - /// - void freeMap(); + typedef std::map Cdef; + /// mapping from string representation to encoded value + Cdef map_; }; #endif