Annotation of embedaddon/libiconv/srclib/xreadlink.c, revision 1.1
1.1 ! misho 1: /* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage
! 2:
! 3: Copyright (C) 2001, 2003-2007 Free Software Foundation, Inc.
! 4:
! 5: This program is free software: you can redistribute it and/or modify
! 6: it under the terms of the GNU General Public License as published by
! 7: the Free Software Foundation; either version 3 of the License, or
! 8: (at your option) any later version.
! 9:
! 10: This program is distributed in the hope that it will be useful,
! 11: but WITHOUT ANY WARRANTY; without even the implied warranty of
! 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 13: GNU General Public License for more details.
! 14:
! 15: You should have received a copy of the GNU General Public License
! 16: along with this program. If not, see <http://www.gnu.org/licenses/>. */
! 17:
! 18: /* Written by Jim Meyering <jim@meyering.net>
! 19: and Bruno Haible <bruno@clisp.org>. */
! 20:
! 21: #include <config.h>
! 22:
! 23: /* Specification. */
! 24: #include "xreadlink.h"
! 25:
! 26: #include <errno.h>
! 27:
! 28: #include "areadlink.h"
! 29: #include "xalloc.h"
! 30:
! 31: /* Call readlink to get the symbolic link value of FILENAME.
! 32: Return a pointer to that NUL-terminated string in malloc'd storage.
! 33: If readlink fails, return NULL and set errno.
! 34: If realloc fails, or if the link value is longer than SIZE_MAX :-),
! 35: give a diagnostic and exit. */
! 36:
! 37: char *
! 38: xreadlink (char const *filename)
! 39: {
! 40: char *result = areadlink (filename);
! 41: if (result == NULL && errno == ENOMEM)
! 42: xalloc_die ();
! 43: return result;
! 44: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>