Alan@1276: diff --git a/xhost.c b/xhost.c Alan@1370: index a67d136..f43b267 100644 Alan@1276: --- a/xhost.c Alan@1276: +++ b/xhost.c Alan@1370: @@ -119,6 +119,11 @@ extern int getdomainname(char *name, size_t len); Jay@294: #endif Jay@294: #endif Jay@294: Jay@294: +/* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: +#include /* setlocale() */ Jay@294: +#include /* gettext(), textdomain(), etc. */ Jay@294: +#include /* getenv() */ Jay@294: + Jay@294: static int change_host(Display *dpy, char *name, Bool add); Alan@1276: static const char *get_hostname(XHostAddress *ha); Jay@294: static int local_xerror(Display *dpy, XErrorEvent *rep); Alan@1370: @@ -171,15 +176,30 @@ main(int argc, char *argv[]) Alan@1370: Bool enabled = False; Alan@1370: Display *dpy; Jay@294: Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + char *domaindir; Jay@294: + setlocale(LC_ALL,""); Jay@294: + textdomain("xhost"); Jay@294: + Jay@294: + /* mainly for debugging */ Jay@294: + if((domaindir=getenv("TEXTDOMAINDIR")) == NULL) { Alan@851: + domaindir = "/usr/share/locale"; /*XLOCALEDIR;*/ Jay@294: + } Jay@294: + bindtextdomain("xhost",domaindir); Jay@294: + Jay@294: + Jay@294: ProgramName = argv[0]; Jay@294: Alan@1276: if (argc == 2 && !strcmp(argv[1], "-help")) { Alan@1276: - fprintf(stderr, "usage: %s [[+-]hostname ...]\n", argv[0]); Alan@1276: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Alan@1276: + fprintf(stderr, gettext("usage: %s [[+-]hostname ...]\n"), argv[0]); Alan@1276: exit(1); Alan@1276: } Alan@1276: Jay@294: if ((dpy = XOpenDisplay(NULL)) == NULL) { Jay@294: - fprintf(stderr, "%s: unable to open display \"%s\"\n", Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf(stderr, Jay@294: + gettext("%s: unable to open display \"%s\"\n"), Jay@294: ProgramName, XDisplayName (NULL)); Jay@294: exit(1); Jay@294: } Alan@1370: @@ -191,9 +211,11 @@ main(int argc, char *argv[]) Jay@294: sethostent(1); /* don't close the data base each time */ Jay@294: list = XListHosts(dpy, &nhosts, &enabled); Jay@294: if (enabled) Jay@294: - printf ("access control enabled, only authorized clients can connect\n"); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + printf (gettext("access control enabled, only authorized clients can connect\n")); Jay@294: else Jay@294: - printf ("access control disabled, clients can connect from any host\n"); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + printf (gettext("access control disabled, clients can connect from any host\n")); Jay@294: Jay@294: if (nhosts != 0) { Jay@294: for (i = 0; i < nhosts; i++ ) { Alan@1370: @@ -222,16 +244,18 @@ main(int argc, char *argv[]) Jay@294: printf("SI:"); Jay@294: break; Jay@294: default: Jay@294: - printf(":", list[i].family); Jay@294: + printf(gettext(":"), list[i].family); Jay@294: break; Jay@294: } Jay@294: printf ("%s", hostname); Jay@294: } else { Jay@294: - printf ("", Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + printf (gettext(""), Jay@294: list[i].family); Jay@294: } Jay@294: if (nameserver_timedout) { Jay@294: - printf("\t(no nameserver response within %d seconds)\n", Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + printf(gettext("\t(no nameserver response within %d seconds)\n"), Jay@294: NAMESERVER_TIMEOUT); Jay@294: nameserver_timedout = 0; Jay@294: } else Alan@1370: @@ -248,26 +272,30 @@ main(int argc, char *argv[]) Jay@294: if (*arg == '-') { Jay@294: Jay@294: if (!argv[i][1] && ((i+1) == argc)) { Jay@294: - printf ("access control enabled, only authorized clients can connect\n"); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + printf (gettext("access control enabled, only authorized clients can connect\n")); Jay@294: XEnableAccessControl(dpy); Jay@294: } else { Jay@294: arg = argv[i][1]? &argv[i][1] : argv[++i]; Jay@294: if (!change_host (dpy, arg, False)) { Jay@294: - fprintf (stderr, "%s: bad hostname \"%s\"\n", Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: bad hostname \"%s\"\n"), Jay@294: ProgramName, arg); Jay@294: nfailed++; Jay@294: } Jay@294: } Jay@294: } else { Jay@294: if (*arg == '+' && !argv[i][1] && ((i+1) == argc)) { Jay@294: - printf ("access control disabled, clients can connect from any host\n"); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + printf (gettext("access control disabled, clients can connect from any host\n")); Jay@294: XDisableAccessControl(dpy); Jay@294: } else { Jay@294: if (*arg == '+') { Jay@294: arg = argv[i][1]? &argv[i][1] : argv[++i]; Jay@294: } Jay@294: if (!change_host (dpy, arg, True)) { Jay@294: - fprintf (stderr, "%s: bad hostname \"%s\"\n", Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: bad hostname \"%s\"\n"), Jay@294: ProgramName, arg); Jay@294: nfailed++; Jay@294: } Alan@1370: @@ -308,12 +336,14 @@ change_host(Display *dpy, char *name, Bool add) Alan@1370: #endif Alan@1370: #endif Alan@1370: char *cp; Alan@1276: - static const char *add_msg = "being added to access control list"; Alan@1276: - static const char *remove_msg = "being removed from access control list"; Jay@294: + const char *add_msg = gettext("being added to access control list"); Jay@294: + const char *remove_msg = gettext("being removed from access control list"); Jay@294: Jay@294: namelen = strlen(name); Jay@294: if ((lname = (char *)malloc(namelen+1)) == NULL) { Jay@294: - fprintf (stderr, "%s: malloc bombed in change_host\n", ProgramName); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: malloc bombed in change_host\n"), Jay@294: + ProgramName); Jay@294: exit (1); Jay@294: } Jay@294: for (i = 0; i < namelen; i++) { Alan@1370: @@ -325,8 +355,8 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: family = FamilyInternet; Jay@294: name += 5; Jay@294: #else Jay@294: - fprintf (stderr, "%s: not compiled for TCP/IP\n", ProgramName); Jay@294: - free(lname); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: not compiled for TCP/IP\n"), ProgramName); Jay@294: return 0; Jay@294: #endif Jay@294: } Alan@1370: @@ -335,8 +365,8 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: family = FamilyInternet6; Jay@294: name += 6; Jay@294: #else Jay@294: - fprintf (stderr, "%s: not compiled for IPv6\n", ProgramName); Jay@294: - free(lname); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: not compiled for IPv6\n"), ProgramName); Jay@294: return 0; Jay@294: #endif Jay@294: } Alan@1370: @@ -347,15 +377,15 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: family = FamilyInternet6; Jay@294: name += 7; Jay@294: #else Jay@294: - fprintf (stderr, "%s: not compiled for IPv6\n", ProgramName); Jay@294: - free(lname); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: not compiled for IPv6\n"), ProgramName); Jay@294: return 0; Jay@294: #endif Jay@294: } Alan@1370: #endif /* ACCEPT_INETV6 */ Alan@1370: else if (!strncmp("dnet:", lname, 5)) { Jay@294: - fprintf (stderr, "%s: not compiled for DECnet\n", ProgramName); Jay@294: - free(lname); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: not compiled for DECnet\n"), ProgramName); Jay@294: return 0; Jay@294: } Alan@1370: else if (!strncmp("nis:", lname, 4)) { Alan@1370: @@ -363,8 +393,8 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: family = FamilyNetname; Jay@294: name += 4; Jay@294: #else Jay@294: - fprintf (stderr, "%s: not compiled for Secure RPC\n", ProgramName); Jay@294: - free(lname); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: not compiled for Secure RPC\n"), ProgramName); Jay@294: return 0; Jay@294: #endif Jay@294: } Alan@1370: @@ -373,8 +403,8 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: family = FamilyKrb5Principal; Jay@294: name +=4; Jay@294: #else Jay@294: - fprintf (stderr, "%s: not compiled for Kerberos 5\n", ProgramName); Jay@294: - free(lname); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: not compiled for Kerberos 5\n"), ProgramName); Jay@294: return 0; Jay@294: #endif Jay@294: } Alan@1370: @@ -386,11 +416,21 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: name += 3; Jay@294: } Jay@294: if (family == FamilyWild && (cp = strchr(lname, ':'))) { Jay@294: - *cp = '\0'; Jay@294: - fprintf (stderr, "%s: unknown address family \"%s\"\n", Jay@294: - ProgramName, lname); Jay@294: - free(lname); Jay@294: - return 0; Jay@294: +#ifdef IPv6 Jay@294: + /* Jay@294: + * Check to see if inet_pton() can grok it as an IPv6 address Jay@294: + */ Jay@294: + if (inet_pton(AF_INET6, lname, &addr6.s6_addr) == 1) { Jay@294: + family = FamilyInternet6; Jay@294: + } else Jay@294: +#endif Jay@294: + { Jay@294: + *cp = '\0'; Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf (stderr, gettext("%s: unknown address family \"%s\"\n"), Jay@294: + ProgramName, lname); Jay@294: + return 0; Jay@294: + } Jay@294: } Jay@294: free(lname); Jay@294: Alan@1370: @@ -400,8 +440,8 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: Jay@294: cp = strchr(name, ':'); Jay@294: if (cp == NULL || cp == name) { Jay@294: - fprintf(stderr, Jay@294: - "%s: type must be specified for server interpreted family \"%s\"\n", Jay@294: + fprintf(stderr, gettext( Jay@294: + "%s: type must be specified for server interpreted family \"%s\"\n"), Jay@294: ProgramName, name); Jay@294: return 0; Jay@294: } Alan@1370: @@ -429,7 +469,8 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: retval = krb5_parse_name(name, &princ); Jay@294: if (retval) { Jay@294: krb5_init_ets(); /* init krb errs for error_message() */ Jay@294: - fprintf(stderr, "%s: cannot parse Kerberos name: %s\n", Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf(stderr, gettext("%s: cannot parse Kerberos name: %s\n"), Jay@294: ProgramName, error_message(retval)); Jay@294: return 0; Jay@294: } Alan@1370: @@ -456,7 +497,7 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: XAddHost(dpy, &ha); Jay@294: else Jay@294: XRemoveHost(dpy, &ha); Jay@294: - printf( "non-network local connections %s\n", add ? add_msg : remove_msg); Jay@294: + printf( gettext("non-network local connections %s\n"), add ? add_msg : remove_msg); Jay@294: return 1; Jay@294: } Jay@294: /* Alan@1370: @@ -475,12 +516,14 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: *cp = '\0'; Jay@294: pwd = getpwnam(name); Jay@294: if (!pwd) { Jay@294: - fprintf(stderr, "no such user \"%s\"\n", name); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf(stderr, gettext("no such user \"%s\"\n"), name); Jay@294: return 0; Jay@294: } Jay@294: getdomainname(domainname, sizeof(domainname)); Jay@294: if (!user2netname(username, pwd->pw_uid, domainname)) { Jay@294: - fprintf(stderr, "failed to get netname for \"%s\"\n", name); Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: + fprintf(stderr, gettext("failed to get netname for \"%s\"\n"), name); Jay@294: return 0; Jay@294: } Jay@294: netname = username; Alan@1370: @@ -587,8 +630,11 @@ change_host(Display *dpy, char *name, Bool add) Jay@294: familyMsg = "inet "; Jay@294: } Jay@294: Jay@294: - fprintf(stderr, "%s: unable to get %saddress for \"%s\"\n", Jay@294: - ProgramName, familyMsg, name); Jay@294: + /* L10N_Comments - Parts composed to make full error string Jay@294: + 'unable to get' ['inet'|'inetv6'|''] 'address for'
*/ Jay@294: + fprintf (stderr, "%s: %s %s%s \"%s\"\n", ProgramName, Jay@294: + gettext("unable to get"), familyMsg, gettext("address for"), Jay@294: + name); Jay@294: } Jay@294: freeaddrinfo(addresses); Jay@294: return 1; Alan@1370: @@ -824,14 +870,16 @@ static int Jay@294: local_xerror(Display *dpy, XErrorEvent *rep) Jay@294: { Jay@294: if ((rep->error_code == BadAccess) && (rep->request_code == X_ChangeHosts)) { Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: fprintf (stderr, Jay@294: - "%s: must be on local machine to add or remove hosts.\n", Jay@294: + gettext("%s: must be on local machine to add or remove hosts.\n"), Jay@294: ProgramName); Jay@294: return 1; Jay@294: } else if ((rep->error_code == BadAccess) && Jay@294: (rep->request_code == X_SetAccessControl)) { Jay@294: + /* Internationalize messages for bug 4256527... S Swales 5/25/00 */ Jay@294: fprintf (stderr, Jay@294: - "%s: must be on local machine to enable or disable access control.\n", Jay@294: + gettext("%s: must be on local machine to enable or disable access control.\n"), Jay@294: ProgramName); Jay@294: return 1; Jay@294: } else if ((rep->error_code == BadValue) &&