X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fsupport%2Funicode.h;h=6559cf60b60e0c569943d8e5b4ad99cf64f345a8;hb=b96ce9a9c101a711ef8a1cdd5d6fe812a18966da;hp=aad4f8d408f697ca7a7c11ca78769331f34f4d72;hpb=c9c20dc23b0ca9bc11d6bcc6a324fabb2325080e;p=lyx.git diff --git a/src/support/unicode.h b/src/support/unicode.h index aad4f8d408..6559cf60b6 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,21 @@ 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_ - IconvProcessor & 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 - class Impl; - Impl * pimpl_; + std::string to() const { return tocode_; } }; /// Get the global IconvProcessor instance of the current thread for