}
}
+size_t
+utf8_strlen (string s)
+{
+ size_t const len = s.length ();
+ int N = 0;
+ for (size_t i = 0; i < len; ++i) {
+ unsigned char c = s[i];
+ if ((c & 0xe0) == 0xc0) {
+ ++i;
+ } else if ((c & 0xf0) == 0xe0) {
+ i += 2;
+ } else if ((c & 0xf8) == 0xf0) {
+ i += 3;
+ }
+ ++N;
+ }
+ return N;
+}
+
#ifdef DCPOMATIC_VARIANT_SWAROOP
/* Make up a key from the machine UUID */
void
write_swaroop_chain (shared_ptr<const dcp::CertificateChain> chain, boost::filesystem::path output)
{
- cout << "write " << output.string() << "\n";
-
scoped_array<uint8_t> buffer (new uint8_t[65536]);
Header* header = (Header *) buffer.get();
memset (header, 0, sizeof(Header));