diff --git a/ChangeLog b/ChangeLog index 4176a62340..8e60e302a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,11 @@ -Sat Jan 4 19:13:34 2014 Nobuyoshi Nakada +Sat Jan 4 19:15:29 2014 Nobuyoshi Nakada + + * ext/socket/socket.c (rsock_syserr_fail_host_port): use format flags, + '+' to inspect, ' ' to quote unprintables. + + * ext/socket/socket.c (rsock_syserr_fail_path): ditto. + + * ext/socket/socket.c (rsock_syserr_fail_raddrinfo): ditto. * ext/socket/socket.c (rsock_syserr_fail_host_port): add errno argument version anduse rb_syserr_fail_str() instead of diff --git a/ext/socket/socket.c b/ext/socket/socket.c index c7fc5b76cb..ca256b6733 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -23,10 +23,8 @@ rsock_syserr_fail_host_port(int err, const char *mesg, VALUE host, VALUE port) { VALUE message; - port = rb_String(port); - - message = rb_sprintf("%s for \"%s\" port %s", - mesg, StringValueCStr(host), StringValueCStr(port)); + message = rb_sprintf("%s for %+"PRIsVALUE" port % "PRIsVALUE"", + mesg, host, port); rb_syserr_fail_str(err, message); } @@ -43,15 +41,7 @@ rsock_syserr_fail_path(int err, const char *mesg, VALUE path) VALUE message; if (RB_TYPE_P(path, T_STRING)) { - if (memchr(RSTRING_PTR(path), '\0', RSTRING_LEN(path))) { - path = rb_str_inspect(path); - message = rb_sprintf("%s for %s", mesg, - StringValueCStr(path)); - } - else { - message = rb_sprintf("%s for \"%s\"", mesg, - StringValueCStr(path)); - } + message = rb_sprintf("%s for % "PRIsVALUE"", mesg, path); rb_syserr_fail_str(err, message); } else { @@ -87,7 +77,7 @@ rsock_syserr_fail_raddrinfo(int err, const char *mesg, VALUE rai) VALUE str, message; str = rsock_addrinfo_inspect_sockaddr(rai); - message = rb_sprintf("%s for %s", mesg, StringValueCStr(str)); + message = rb_sprintf("%s for %"PRIsVALUE"", mesg, str); rb_syserr_fail_str(err, message); }