| 1283 | } |
| 1284 | |
| 1285 | static std::string protobuf_style_normalize_filename(const std::string & fname) { |
| 1286 | std::string norm_fname; |
| 1287 | norm_fname.reserve(fname.size() + 10); |
| 1288 | for (size_t i = 0; i < fname.size(); ++i) { |
| 1289 | if (fname[i] == '_' || isdigit(fname[i]) || isalpha(fname[i])) { |
| 1290 | norm_fname.push_back(fname[i]); |
| 1291 | } else { |
| 1292 | char symbol[4]; |
| 1293 | snprintf(symbol, sizeof(symbol), "_%02x", (int)fname[i]); |
| 1294 | norm_fname.append(symbol, 3); |
| 1295 | } |
| 1296 | } |
| 1297 | return norm_fname; |
| 1298 | } |
| 1299 | |
| 1300 | static bool generate_registration( |
| 1301 | const google::protobuf::FileDescriptor* file, |