]> git.proxmox.com Git - mirror_edk2.git/blobdiff - StdLib/LibC/Stdio/fgets.c
edk2: Remove AppPkg, StdLib, StdLibPrivateInternalFiles
[mirror_edk2.git] / StdLib / LibC / Stdio / fgets.c
diff --git a/StdLib/LibC/Stdio/fgets.c b/StdLib/LibC/Stdio/fgets.c
deleted file mode 100644 (file)
index cb07154..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/** @file\r
-    Implementation of fgets as declared in <stdio.h>.\r
-\r
-    Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
-    This program and the accompanying materials are licensed and made available\r
-    under the terms and conditions of the BSD License that accompanies this\r
-    distribution.  The full text of the license may be found at\r
-    http://opensource.org/licenses/bsd-license.\r
-\r
-    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-    Copyright (c) 1990, 1993\r
-    The Regents of the University of California.  All rights reserved.\r
-\r
-    This code is derived from software contributed to Berkeley by\r
-    Chris Torek.\r
-\r
-    Redistribution and use in source and binary forms, with or without\r
-    modification, are permitted provided that the following conditions\r
-    are met:\r
-      - Redistributions of source code must retain the above copyright\r
-        notice, this list of conditions and the following disclaimer.\r
-      - Redistributions in binary form must reproduce the above copyright\r
-        notice, this list of conditions and the following disclaimer in the\r
-        documentation and/or other materials provided with the distribution.\r
-      - Neither the name of the University nor the names of its contributors\r
-        may be used to endorse or promote products derived from this software\r
-        without specific prior written permission.\r
-\r
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
-    AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
-    IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
-    ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE\r
-    LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
-    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
-    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
-    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
-    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
-    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
-    POSSIBILITY OF SUCH DAMAGE.\r
-\r
-    NetBSD: fgets.c,v 1.20 2003/12/14 23:56:28 lukem Exp\r
-    fgets.c 8.2 (Berkeley) 12/22/93\r
-**/\r
-#include  <LibConfig.h>\r
-\r
-#include <assert.h>\r
-#include <stdio.h>\r
-#include <string.h>\r
-#include  <errno.h>\r
-#include "reentrant.h"\r
-#include "local.h"\r
-\r
-/*\r
- * Read at most n-1 characters from the given file.\r
- * Stop when a newline has been read, or the count runs out.\r
- * Return first argument, or NULL if no characters were read.\r
- */\r
-char *\r
-fgets(char *buf, int n, FILE *fp)\r
-{\r
-  size_t len;\r
-  char *s;\r
-  unsigned char *p, *t;\r
-\r
-  _DIAGASSERT(buf != NULL);\r
-  _DIAGASSERT(fp != NULL);\r
-  if ((fp == NULL) || (n <= 0)) {        /* sanity check */\r
-    errno = EINVAL;\r
-    return (NULL);\r
-  }\r
-\r
-  FLOCKFILE(fp);\r
-  _SET_ORIENTATION(fp, -1);\r
-  s = buf;\r
-  n--;      /* leave space for NUL */\r
-  while (n != 0) {\r
-    /*\r
-     * If the buffer is empty, refill it.\r
-     */\r
-    if (fp->_r <= 0) {\r
-      if (__srefill(fp)) {\r
-        /* EOF/error: stop with partial or no line */\r
-        if (s == buf) {\r
-          FUNLOCKFILE(fp);\r
-          return (NULL);\r
-        }\r
-        break;\r
-      }\r
-    }\r
-    len = fp->_r;\r
-    p = fp->_p;\r
-\r
-    /*\r
-     * Scan through at most n bytes of the current buffer,\r
-     * looking for '\n'.  If found, copy up to and including\r
-     * newline, and stop.  Otherwise, copy entire chunk\r
-     * and loop.\r
-     */\r
-    if (len > (size_t)n)\r
-      len = n;\r
-    t = memchr((void *)p, '\n', len);\r
-    if (t != NULL) {\r
-      len = ++t - p;\r
-      fp->_r -= (int)len;\r
-      fp->_p = t;\r
-      (void)memcpy((void *)s, (void *)p, len);\r
-      s[len] = 0;\r
-      FUNLOCKFILE(fp);\r
-      return (buf);\r
-    }\r
-    fp->_r -= (int)len;\r
-    fp->_p += len;\r
-    (void)memcpy((void *)s, (void *)p, len);\r
-    s += len;\r
-    n -= (int)len;\r
-  }\r
-  *s = 0;\r
-  FUNLOCKFILE(fp);\r
-  return (buf);\r
-}\r