X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fgetpass.c;h=1aac4b7147f37c837d8fd1968f268d173d75616f;hb=7c59efd8bc7abb8c79ae969a65ece95e68c9be4c;hp=4e3339659d1bcd303ee2671623eba695f8aa1b45;hpb=0a2c2d3bdc0d6661e52559c775ac3165f1bcee5e;p=gnulib.git diff --git a/lib/getpass.c b/lib/getpass.c index 4e3339659..1aac4b714 100644 --- a/lib/getpass.c +++ b/lib/getpass.c @@ -1,4 +1,5 @@ -/* Copyright (C) 1992-2001, 2003, 2004, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1992-2001, 2003-2007, 2009-2010 Free Software Foundation, Inc. + This file is part of the GNU C Library. This program is free software; you can redistribute it and/or modify @@ -15,7 +16,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#ifdef HAVE_CONFIG_H +#ifndef _LIBC # include #endif @@ -27,19 +28,18 @@ #include -#if HAVE_STDIO_EXT_H -# include -#endif -#if !HAVE___FSETLOCKING -# define __fsetlocking(stream, type) /* empty */ +#if HAVE_DECL___FSETLOCKING && HAVE___FSETLOCKING +# if HAVE_STDIO_EXT_H +# include +# endif +#else +# define __fsetlocking(stream, type) /* empty */ #endif #if HAVE_TERMIOS_H # include #endif -#include "getline.h" - #if USE_UNLOCKED_IO # include "unlocked-io.h" #else @@ -139,22 +139,22 @@ getpass (const char *prompt) == fileno (out). The POSIX restrictions are tricky and change from POSIX version to POSIX version, so play it safe and invoke fseek even if in != out. */ - fseek (out, 0, SEEK_CUR); + fseeko (out, 0, SEEK_CUR); if (buf != NULL) { if (nread < 0) - buf[0] = '\0'; + buf[0] = '\0'; else if (buf[nread - 1] == '\n') - { - /* Remove the newline. */ - buf[nread - 1] = '\0'; - if (tty_changed) - { - /* Write the newline that was not echoed. */ - putc_unlocked ('\n', out); - } - } + { + /* Remove the newline. */ + buf[nread - 1] = '\0'; + if (tty_changed) + { + /* Write the newline that was not echoed. */ + putc_unlocked ('\n', out); + } + } } /* Restore the original setting. */ @@ -203,20 +203,20 @@ getpass (const char *prompt) { c = _getch (); if (c == '\r') - { - getpassbuf[i] = '\0'; - break; - } + { + getpassbuf[i] = '\0'; + break; + } else if (i < PASS_MAX) - { - getpassbuf[i++] = c; - } + { + getpassbuf[i++] = c; + } if (i >= PASS_MAX) - { - getpassbuf[i] = '\0'; - break; - } + { + getpassbuf[i] = '\0'; + break; + } } if (prompt)