Fix untranslatable assembly of libpq connection failure message

Even though this only affects the insertion of a parenthesized word,
it's unwise to assume that parentheses can pass through untranslated.
And in any case, the new version is clearer in the code and for
translators.
This commit is contained in:
Peter Eisentraut 2011-05-19 22:56:53 +03:00
parent 8d89549380
commit fcd4575905
1 changed files with 26 additions and 20 deletions

View File

@ -1012,7 +1012,7 @@ connectFailureMessage(PGconn *conn, int errorno)
#endif /* HAVE_UNIX_SOCKETS */ #endif /* HAVE_UNIX_SOCKETS */
{ {
char host_addr[NI_MAXHOST]; char host_addr[NI_MAXHOST];
bool display_host_addr; const char *displayed_host;
struct sockaddr_storage *addr = &conn->raddr.addr; struct sockaddr_storage *addr = &conn->raddr.addr;
/* /*
@ -1042,29 +1042,35 @@ connectFailureMessage(PGconn *conn, int errorno)
else else
strcpy(host_addr, "???"); strcpy(host_addr, "???");
if (conn->pghostaddr && conn->pghostaddr[0] != '\0')
displayed_host = conn->pghostaddr;
else if (conn->pghost && conn->pghost[0] != '\0')
displayed_host = conn->pghost;
else
displayed_host = DefaultHost;
/* /*
* If the user did not supply an IP address using 'hostaddr', and * If the user did not supply an IP address using 'hostaddr', and
* 'host' was missing or does not match our lookup, display the * 'host' was missing or does not match our lookup, display the
* looked-up IP address. * looked-up IP address.
*/ */
display_host_addr = (conn->pghostaddr == NULL) && if ((conn->pghostaddr == NULL) &&
((conn->pghost == NULL) || (conn->pghost == NULL || strcmp(conn->pghost, host_addr) != 0))
(strcmp(conn->pghost, host_addr) != 0));
appendPQExpBuffer(&conn->errorMessage, appendPQExpBuffer(&conn->errorMessage,
libpq_gettext("could not connect to server: %s\n" libpq_gettext("could not connect to server: %s\n"
"\tIs the server running on host \"%s\"%s%s%s and accepting\n" "\tIs the server running on host \"%s\" (%s) and accepting\n"
"\tTCP/IP connections on port %s?\n"), "\tTCP/IP connections on port %s?\n"),
SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)), SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)),
(conn->pghostaddr && conn->pghostaddr[0] != '\0') displayed_host,
? conn->pghostaddr host_addr,
: (conn->pghost && conn->pghost[0] != '\0') conn->pgport);
? conn->pghost else
: DefaultHost, appendPQExpBuffer(&conn->errorMessage,
/* display the IP address only if not already output */ libpq_gettext("could not connect to server: %s\n"
display_host_addr ? " (" : "", "\tIs the server running on host \"%s\" and accepting\n"
display_host_addr ? host_addr : "", "\tTCP/IP connections on port %s?\n"),
display_host_addr ? ")" : "", SOCK_STRERROR(errorno, sebuf, sizeof(sebuf)),
displayed_host,
conn->pgport); conn->pgport);
} }
} }