(root)/
glibc-2.38/
gshadow/
fgetsgent_r.c
       1  /* Copyright (C) 2009-2023 Free Software Foundation, Inc.
       2     This file is part of the GNU C Library.
       3  
       4     The GNU C Library is free software; you can redistribute it and/or
       5     modify it under the terms of the GNU Lesser General Public
       6     License as published by the Free Software Foundation; either
       7     version 2.1 of the License, or (at your option) any later version.
       8  
       9     The GNU C Library is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      12     Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public
      15     License along with the GNU C Library; if not, see
      16     <https://www.gnu.org/licenses/>.  */
      17  
      18  #include <ctype.h>
      19  #include <errno.h>
      20  #include <gshadow.h>
      21  #include <stdio.h>
      22  
      23  /* Define a line parsing function using the common code
      24     used in the nss_files module.  */
      25  
      26  #define STRUCTURE	sgrp
      27  #define ENTNAME		sgent
      28  #define	EXTERN_PARSER	1
      29  struct sgent_data {};
      30  
      31  #include <nss/nss_files/files-parse.c>
      32  
      33  
      34  /* Read one shadow entry from the given stream.  */
      35  int
      36  __fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer, size_t buflen,
      37  	       struct sgrp **result)
      38  {
      39    int ret = __nss_fgetent_r (stream, resbuf, buffer, buflen, parse_line);
      40    if (ret == 0)
      41      *result = resbuf;
      42    else
      43      *result = NULL;
      44    return ret;
      45  }
      46  weak_alias (__fgetsgent_r, fgetsgent_r)