Loading...
--- readpassphrase.c.orig 2009-11-07 14:51:38.000000000 -0800 +++ readpassphrase.c 2009-11-07 14:51:39.000000000 -0800 @@ -33,6 +33,8 @@ static const char rcsid[] = "$OpenBSD: r #include <sys/cdefs.h> __FBSDID("$FreeBSD: src/lib/libc/gen/readpassphrase.c,v 1.6 2002/03/09 03:16:41 green Exp $"); +#include "xlocale_private.h" + #include "namespace.h" #include <ctype.h> #include <errno.h> @@ -59,6 +61,7 @@ readpassphrase(const char *prompt, char struct termios term, oterm; struct sigaction sa, saveint, savehup, savequit, saveterm; struct sigaction savetstp, savettin, savettou; + locale_t loc = __current_locale(); /* I suppose we could alloc on demand in this case (XXX). */ if (bufsiz == 0) { @@ -115,11 +118,11 @@ restart: if (p < end) { if ((flags & RPP_SEVENBIT)) ch &= 0x7f; - if (isalpha(ch)) { + if (isalpha_l(ch, loc)) { if ((flags & RPP_FORCELOWER)) - ch = tolower(ch); + ch = tolower_l(ch, loc); if ((flags & RPP_FORCEUPPER)) - ch = toupper(ch); + ch = toupper_l(ch, loc); } *p++ = ch; } |