Fix large-file macro usage in bits/statvfs.h
[kopensolaris-gnu/glibc.git] / libio / iogetwline.c
index 760d54a..45db478 100644 (file)
@@ -1,32 +1,38 @@
-/* Copyright (C) 1993, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
-   This file is part of the GNU IO Library.
+/* Copyright (C) 1993,1997-2000,2002,2005 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
 
-   This library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2, or (at
-   your option) any later version.
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
 
-   This library is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
+   Lesser General Public License for more details.
 
-   You should have received a copy of the GNU General Public License
-   along with this library; see the file COPYING.  If not, write to
-   the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
 
-   As a special exception, if you link this library with files
-   compiled with a GNU compiler to produce an executable, this does
-   not cause the resulting executable to be covered by the GNU General
-   Public License.  This exception does not however invalidate any
-   other reasons why the executable file might be covered by the GNU
-   General Public License.  */
+   As a special exception, if you link the code in this file with
+   files compiled with a GNU compiler to produce an executable,
+   that does not cause the resulting executable to be covered by
+   the GNU Lesser General Public License.  This exception does not
+   however invalidate any other reasons why the executable file
+   might be covered by the GNU Lesser General Public License.
+   This exception applies to code released by its copyright holders
+   in files containing the exception.  */
 
 #include "libioP.h"
 #include <string.h>
 #include <wchar.h>
 
+#ifdef _LIBC
+# define wmemcpy __wmemcpy
+#endif
+
 #if defined _LIBC || !_G_HAVE_IO_GETLINE_INFO
 
 _IO_size_t
@@ -60,6 +66,8 @@ _IO_getwline_info (fp, buf, n, delim, extract_delim, eof)
   wchar_t *ptr = buf;
   if (eof != NULL)
     *eof = 0;
+  if (__builtin_expect (fp->_mode, 1) == 0)
+    _IO_fwide (fp, 1);
   while (n != 0)
     {
       _IO_ssize_t len = (fp->_wide_data->_IO_read_end
@@ -78,10 +86,10 @@ _IO_getwline_info (fp, buf, n, delim, extract_delim, eof)
              if (extract_delim > 0)
                *ptr++ = wc;
              else if (extract_delim < 0)
-               _IO_sputbackc (fp, wc);
-             return ptr - buf;
+               INTUSE(_IO_sputbackc) (fp, wc);
              if (extract_delim > 0)
                ++len;
+             return ptr - buf;
            }
          *ptr++ = wc;
          n--;