| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | 
							- /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 
-    file Copyright.txt or https://cmake.org/licensing for details.  */
 
- #ifndef cm_codecvt_hxx
 
- #define cm_codecvt_hxx
 
- #include <cmConfigure.h> // IWYU pragma: keep
 
- #include <locale>
 
- #include <vector>
 
- class codecvt : public std::codecvt<char, char, mbstate_t>
 
- {
 
- public:
 
-   enum Encoding
 
-   {
 
-     None,
 
-     UTF8,
 
-     ANSI
 
-   };
 
- #ifdef CMAKE_BUILD_WITH_CMAKE
 
-   codecvt(Encoding e);
 
- protected:
 
-   ~codecvt() CM_OVERRIDE;
 
-   bool do_always_noconv() const throw() CM_OVERRIDE;
 
-   result do_out(mbstate_t& state, const char* from, const char* from_end,
 
-                 const char*& from_next, char* to, char* to_end,
 
-                 char*& to_next) const CM_OVERRIDE;
 
-   result do_unshift(mbstate_t& state, char* to, char*,
 
-                     char*& to_next) const CM_OVERRIDE;
 
-   int do_max_length() const throw() CM_OVERRIDE;
 
-   int do_encoding() const throw() CM_OVERRIDE;
 
- private:
 
-   typedef struct
 
-   {
 
-     bool used;
 
-     unsigned char totalBytes;
 
-     unsigned char bytesLeft;
 
-     char bytes[4];
 
-   } State;
 
-   unsigned int findStateId() const;
 
-   bool m_noconv;
 
-   mutable std::vector<State> m_states;
 
-   mutable unsigned int m_lastState;
 
- #if defined(_WIN32)
 
-   unsigned int m_codepage;
 
- #endif
 
- #endif
 
- };
 
- #endif
 
 
  |