diff options
Diffstat (limited to 'misc/getpass.c')
-rw-r--r-- | misc/getpass.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/misc/getpass.c b/misc/getpass.c index 5290c3c7d3..62e56866a1 100644 --- a/misc/getpass.c +++ b/misc/getpass.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992-1999,2001,2003,2004,2005 Free Software Foundation, Inc. +/* Copyright (C) 1992-1999, 2001, 2003, 2004 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -91,7 +91,12 @@ getpass (prompt) tty_changed = 0; /* Write the prompt. */ - __fxprintf (out, "%s", prompt); +#ifdef USE_IN_LIBIO + if (_IO_fwide (out, 0) > 0) + __fwprintf (out, L"%s", prompt); + else +#endif + fputs_unlocked (prompt, out); fflush_unlocked (out); /* Read the password. */ @@ -105,8 +110,15 @@ getpass (prompt) /* Remove the newline. */ buf[nread - 1] = '\0'; if (tty_changed) - /* Write the newline that was not echoed. */ - __fxprintf (out, "\n"); + { + /* Write the newline that was not echoed. */ +#ifdef USE_IN_LIBIO + if (_IO_fwide (out, 0) > 0) + putwc_unlocked (L'\n', out); + else +#endif + putc_unlocked ('\n', out); + } } } |