"Fossies" - the Fresh Open Source Software Archive

Member "gnuastro-0.8/bootstrapped/m4/getdelim.m4" (28 Dec 2018, 2595 Bytes) of package /linux/privat/gnuastro-0.8.tar.lz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. See also the last Fossies "Diffs" side-by-side code changes report for "getdelim.m4": 0.5_vs_0.6.

    1 # getdelim.m4 serial 12
    2 
    3 dnl Copyright (C) 2005-2007, 2009-2018 Free Software Foundation, Inc.
    4 dnl
    5 dnl This file is free software; the Free Software Foundation
    6 dnl gives unlimited permission to copy and/or distribute it,
    7 dnl with or without modifications, as long as this notice is preserved.
    8 
    9 AC_PREREQ([2.59])
   10 
   11 AC_DEFUN([gl_FUNC_GETDELIM],
   12 [
   13   AC_REQUIRE([gl_STDIO_H_DEFAULTS])
   14 
   15   dnl Persuade glibc <stdio.h> to declare getdelim().
   16   AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])
   17 
   18   AC_CHECK_DECLS_ONCE([getdelim])
   19 
   20   AC_CHECK_FUNCS_ONCE([getdelim])
   21   if test $ac_cv_func_getdelim = yes; then
   22     HAVE_GETDELIM=1
   23     dnl Found it in some library.  Verify that it works.
   24     AC_CACHE_CHECK([for working getdelim function], [gl_cv_func_working_getdelim],
   25     [echo fooNbarN | tr -d '\012' | tr N '\012' > conftest.data
   26     AC_RUN_IFELSE([AC_LANG_SOURCE([[
   27 #    include <stdio.h>
   28 #    include <stdlib.h>
   29 #    include <string.h>
   30     int main ()
   31     {
   32       FILE *in = fopen ("./conftest.data", "r");
   33       if (!in)
   34         return 1;
   35       {
   36         /* Test result for a NULL buffer and a zero size.
   37            Based on a test program from Karl Heuer.  */
   38         char *line = NULL;
   39         size_t siz = 0;
   40         int len = getdelim (&line, &siz, '\n', in);
   41         if (!(len == 4 && line && strcmp (line, "foo\n") == 0))
   42           { free (line); fclose (in); return 2; }
   43       }
   44       {
   45         /* Test result for a NULL buffer and a non-zero size.
   46            This crashes on FreeBSD 8.0.  */
   47         char *line = NULL;
   48         size_t siz = (size_t)(~0) / 4;
   49         if (getdelim (&line, &siz, '\n', in) == -1)
   50           { fclose (in); return 3; }
   51         free (line);
   52       }
   53       fclose (in);
   54       return 0;
   55     }
   56     ]])], [gl_cv_func_working_getdelim=yes] dnl The library version works.
   57     , [gl_cv_func_working_getdelim=no] dnl The library version does NOT work.
   58     , dnl We're cross compiling. Assume it works on glibc2 systems.
   59       [AC_EGREP_CPP([Lucky GNU user],
   60          [
   61 #include <features.h>
   62 #ifdef __GNU_LIBRARY__
   63  #if (__GLIBC__ >= 2) && !defined __UCLIBC__
   64   Lucky GNU user
   65  #endif
   66 #endif
   67          ],
   68          [gl_cv_func_working_getdelim="guessing yes"],
   69          [gl_cv_func_working_getdelim="guessing no"])]
   70     )])
   71     case "$gl_cv_func_working_getdelim" in
   72       *no)
   73         REPLACE_GETDELIM=1
   74         ;;
   75     esac
   76   else
   77     HAVE_GETDELIM=0
   78   fi
   79 
   80   if test $ac_cv_have_decl_getdelim = no; then
   81     HAVE_DECL_GETDELIM=0
   82   fi
   83 ])
   84 
   85 # Prerequisites of lib/getdelim.c.
   86 AC_DEFUN([gl_PREREQ_GETDELIM],
   87 [
   88   AC_CHECK_FUNCS([flockfile funlockfile])
   89   AC_CHECK_DECLS([getc_unlocked])
   90 ])