]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Move module xreadlink to gnulib.
authorBruno Haible <bruno@clisp.org>
Thu, 1 Mar 2007 01:04:31 +0000 (01:04 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:14:42 +0000 (12:14 +0200)
gnulib-local/ChangeLog
gnulib-local/Makefile.am
gnulib-local/lib/xreadlink.c [deleted file]
gnulib-local/lib/xreadlink.h [deleted file]
gnulib-local/m4/xreadlink.m4 [deleted file]
gnulib-local/modules/xreadlink [deleted file]

index f989d3dbc5d1382b39d5f1424ec0409b44a4c901..9fd1bd1b4f09d98abef5329dc1e04cbebd0eb0ff 100644 (file)
@@ -1,3 +1,12 @@
+2007-02-28  Bruno Haible  <bruno@clisp.org>
+
+       Move module xreadlink to gnulib.
+       * modules/xreadlink: Remove file.
+       * lib/xreadlink.h: Remove file.
+       * lib/xreadlink.c: Remove file.
+       * m4/xreadlink.m4: Remove file.
+       * Makefile.am (EXTRA_DIST): Remove these files.
+
 2007-02-19  Bruno Haible  <bruno@clisp.org>
 
        * lib/closeout.c: Include <stdlib.h> instead of exit.h.
index 1aec055040fecc8874ea63a590a83c7cc9143229..0180c0d17354fa5b556940e912f44fb891c64354 100644 (file)
@@ -250,8 +250,6 @@ lib/xerror.h \
 lib/xgetcwd.c \
 lib/xgetcwd.h \
 lib/xmalloc.c \
-lib/xreadlink.c \
-lib/xreadlink.h \
 lib/xstrdup.c \
 m4/alloca.m4 \
 m4/backupfile.m4 \
@@ -273,7 +271,6 @@ m4/terminfo.m4 \
 m4/term-ostream.m4 \
 m4/unionwait.m4 \
 m4/vasprintf.m4 \
-m4/xreadlink.m4 \
 modules/backupfile \
 modules/basename \
 modules/closeout \
@@ -320,7 +317,6 @@ modules/xalloc \
 modules/xalloc-die \
 modules/xerror \
 modules/xgetcwd \
-modules/xreadlink \
 tests/test-moo-aroot.oo.c \
 tests/test-moo-aroot.oo.h \
 tests/test-moo-assign.c \
diff --git a/gnulib-local/lib/xreadlink.c b/gnulib-local/lib/xreadlink.c
deleted file mode 100644 (file)
index 51714cd..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/* xreadlink.c -- readlink wrapper to return the link name in malloc'd storage
-
-   Copyright (C) 2001, 2003-2007 Free Software Foundation, Inc.
-
-   This program 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.
-
-   This program 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; see the file COPYING.
-   If not, write to the Free Software Foundation,
-   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Written by Jim Meyering <jim@meyering.net>
-   and Bruno Haible <bruno@clisp.org>.  */
-
-#include <config.h>
-
-/* Specification.  */
-#include "xreadlink.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <limits.h>
-#include <sys/types.h>
-#include <stdlib.h>
-#if HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-
-#ifndef SIZE_MAX
-# define SIZE_MAX ((size_t) -1)
-#endif
-#ifndef SSIZE_MAX
-# define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2))
-#endif
-
-#ifdef NO_XMALLOC
-# define xmalloc malloc
-#else
-# include "xalloc.h"
-#endif
-
-/* Call readlink to get the symbolic link value of FILENAME.
-   Return a pointer to that NUL-terminated string in malloc'd storage.
-   If readlink fails, return NULL (caller may use errno to diagnose).
-   If realloc fails, or if the link value is longer than SIZE_MAX :-),
-   give a diagnostic and exit.  */
-
-char *
-xreadlink (char const *filename)
-{
-  /* The initial buffer size for the link value.  A power of 2
-     detects arithmetic overflow earlier, but is not required.  */
-#define INITIAL_BUF_SIZE 1024
-
-  /* Allocate the initial buffer on the stack.  This way, in the common
-     case of a symlink of small size, we get away with a single small malloc()
-     instead of a big malloc() followed by a shrinking realloc().  */
-  char initial_buf[INITIAL_BUF_SIZE];
-
-  char *buffer = initial_buf;
-  size_t buf_size = sizeof (initial_buf);
-
-  while (1)
-    {
-      /* Attempt to read the link into the current buffer.  */
-      ssize_t link_length = readlink (filename, buffer, buf_size);
-
-      /* On AIX 5L v5.3 and HP-UX 11i v2 04/09, readlink returns -1
-        with errno == ERANGE if the buffer is too small.  */
-      if (link_length < 0 && errno != ERANGE)
-       {
-         if (buffer != initial_buf)
-           {
-             int saved_errno = errno;
-             free (buffer);
-             errno = saved_errno;
-           }
-         return NULL;
-       }
-
-      if ((size_t) link_length < buf_size)
-       {
-         buffer[link_length++] = '\0';
-
-         /* Return it in a chunk of memory as small as possible.  */
-         if (buffer == initial_buf)
-           {
-             buffer = (char *) xmalloc (link_length);
-#ifdef NO_XMALLOC
-             if (buffer == NULL)
-               return NULL;
-#endif
-             memcpy (buffer, initial_buf, link_length);
-           }
-         else
-           {
-             /* Shrink buffer before returning it.  */
-             if ((size_t) link_length < buf_size)
-               {
-                 char *smaller_buffer = (char *) realloc (buffer, link_length);
-
-                 if (smaller_buffer != NULL)
-                   buffer = smaller_buffer;
-               }
-           }
-         return buffer;
-       }
-
-      if (buffer != initial_buf)
-       free (buffer);
-      buf_size *= 2;
-      if (SSIZE_MAX < buf_size || (SIZE_MAX / 2 < SSIZE_MAX && buf_size == 0))
-#ifdef NO_XMALLOC
-       return NULL;
-#else
-       xalloc_die ();
-#endif
-      buffer = (char *) xmalloc (buf_size);
-#ifdef NO_XMALLOC
-      if (buffer == NULL)
-       return NULL;
-#endif
-    }
-}
diff --git a/gnulib-local/lib/xreadlink.h b/gnulib-local/lib/xreadlink.h
deleted file mode 100644 (file)
index 1a32437..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Reading symbolic links without size limitation.
-   Copyright (C) 2001, 2003 Free Software Foundation, Inc.
-
-   This program 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.
-
-   This program 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.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
-
-/* Call readlink to get the symbolic link value of FILENAME.
-   Return a pointer to that NUL-terminated string in malloc'd storage.
-   If readlink fails, return NULL and set errno.  */
-extern char *xreadlink (char const *filename);
diff --git a/gnulib-local/m4/xreadlink.m4 b/gnulib-local/m4/xreadlink.m4
deleted file mode 100644 (file)
index f4b25bc..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-# xreadlink.m4 serial 5
-dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_XREADLINK],
-[
-  dnl Prerequisites of lib/xreadlink.c.
-  AC_REQUIRE([gt_TYPE_SSIZE_T])
-  AC_CHECK_HEADERS_ONCE(unistd.h)
-])
diff --git a/gnulib-local/modules/xreadlink b/gnulib-local/modules/xreadlink
deleted file mode 100644 (file)
index a240cc1..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-Description:
-Reading symbolic links without size limitation.
-
-Files:
-lib/xreadlink.h
-lib/xreadlink.c
-m4/xreadlink.m4
-
-Depends-on:
-readlink
-ssize_t
-xalloc
-
-configure.ac:
-gl_XREADLINK
-
-Makefile.am:
-lib_SOURCES += xreadlink.h xreadlink.c
-
-Include:
-"xreadlink.h"
-
-License:
-GPL
-
-Maintainer:
-Bruno Haible
-