+
+namespace {
+
+string escape_string(const string &str) {
+ string ret;
+ for (size_t i = 0; i < str.size(); ++i) {
+ char buf[16];
+ if (isprint(str[i]) && str[i] >= 32 && str[i] != '"' && str[i] != '\\') {
+ ret.push_back(str[i]);
+ } else {
+ snprintf(buf, sizeof(buf), "\\x%02x", (unsigned char)str[i]);
+ ret += buf;
+ }
+ }
+ return ret;
+}
+
+} // namespace