X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Funicode.h;h=17b95dd29079c7ad69ac7efa110647dd0cdd17a1;hb=bf56e2c8e1afa857cd5e313c19948040e41b8227;hp=ddcd6c8fd07e5ade79d3c109be115c3105799230;hpb=6a30211fef7beda0a91966b42ecfa4631953b776;p=lyx.git diff --git a/src/support/unicode.h b/src/support/unicode.h index ddcd6c8fd0..17b95dd290 100644 --- a/src/support/unicode.h +++ b/src/support/unicode.h @@ -1,3 +1,4 @@ +// -*- C++ -*- /** * \file unicode.h * This file is part of LyX, the document processor. @@ -14,8 +15,10 @@ #define LYX_SUPPORT_UNICODE_H #include "support/strfwd.h" +#include "support/unique_ptr.h" #include +#include #include @@ -44,32 +47,23 @@ namespace lyx { */ class IconvProcessor { + /// open iconv. + /// \return true if the processor is ready to use. + bool init(); + std::string const tocode_; + std::string const fromcode_; + struct Handler; + unique_ptr h_; public: - IconvProcessor(char const * tocode = "", char const * fromcode = ""); - /// copy constructor needed because of pimpl_ - IconvProcessor(IconvProcessor const &); - /// assignment operator needed because of pimpl_ - void operator=(IconvProcessor const &); - /// destructor - ~IconvProcessor(); - + IconvProcessor(std::string tocode, std::string fromcode); /// convert any data from \c fromcode to \c tocode unicode format. /// \return the number of bytes of the converted output buffer. int convert(char const * in_buffer, size_t in_size, char * out_buffer, size_t max_out_size); - - /// source encoding - std::string from() const; /// target encoding - std::string to() const; - -private: - /// open iconv. - /// \return true if the processor is ready to use. - bool init(); - /// hide internals - struct Impl; - Impl * pimpl_; + std::string to() const { return tocode_; } + // required by g++ 4.6 + IconvProcessor(IconvProcessor && other); }; /// Get the global IconvProcessor instance of the current thread for