- else if (!strncmp ((CONST char *) XSTRING_DATA (connection),
- "unix:", 5))
- connection = concat2 (build_string ("localhost:"),
- Fsubstring (connection, make_int (5), Qnil));
+ else
+ {
+ /* connection =~ s/^unix:/localhost:/; */
+ const Bufbyte *p = XSTRING_DATA (connection);
+ const Bufbyte *end = XSTRING_DATA (connection) + XSTRING_LENGTH (connection);
+ size_t i;
+
+ for (i = 0; i < sizeof ("unix:") - 1; i++)
+ {
+ if (p == end || charptr_emchar (p) != "unix:"[i])
+ goto ok;
+ INC_CHARPTR (p);
+ }
+
+ connection = concat2 (build_string ("localhost:"),
+ make_string (p, end - p));
+ }
+ ok: