Convert a UTF-32 string back to locale defined multibyte coding.
| 183 | |
| 184 | //! Convert a UTF-32 string back to locale defined multibyte coding. |
| 185 | static std::string toLocaleMB(const u32string& wstr) |
| 186 | { |
| 187 | std::stringstream ss{}; |
| 188 | char mb[MB_CUR_MAX]; |
| 189 | std::mbstate_t state{}; |
| 190 | const size_t err = -1; |
| 191 | for (auto ch: wstr) { |
| 192 | size_t sz = c32rtomb(mb, ch, &state); |
| 193 | if (sz == err) |
| 194 | break; |
| 195 | ss.write(mb, sz); |
| 196 | } |
| 197 | return ss.str(); |
| 198 | } |
| 199 | |
| 200 | namespace DFHack |
| 201 | { |
no test coverage detected