added missing dependencies to fix failing unistr/ tests
[gnulib.git] / lib / getpass.c
index 4e33396..1aac4b7 100644 (file)
@@ -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 <config.h>
 #endif
 
 
 #include <stdbool.h>
 
-#if HAVE_STDIO_EXT_H
-# include <stdio_ext.h>
-#endif
-#if !HAVE___FSETLOCKING
-# define __fsetlocking(stream, type)   /* empty */
+#if HAVE_DECL___FSETLOCKING && HAVE___FSETLOCKING
+# if HAVE_STDIO_EXT_H
+#  include <stdio_ext.h>
+# endif
+#else
+# define __fsetlocking(stream, type)    /* empty */
 #endif
 
 #if HAVE_TERMIOS_H
 # include <termios.h>
 #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)